<?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>208583</bug_id>
          
          <creation_ts>2020-03-04 10:56:57 -0800</creation_ts>
          <short_desc>[GPUP] Implement RemoteAudioSession</short_desc>
          <delta_ts>2020-03-05 11:43:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>208090</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1625624</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 10:56:57 -0800</bug_when>
    <thetext>[GPUP] Implement RemoteAudioSession</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625638</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-04 11:16:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/60047827&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625639</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-04 11:18:57 -0800</bug_when>
    <thetext>Is it the same as https://bugs.webkit.org/show_bug.cgi?id=208578?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625647</commentid>
    <comment_count>3</comment_count>
      <attachid>392445</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 11:26:39 -0800</bug_when>
    <thetext>Created attachment 392445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625653</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 11:34:13 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; Is it the same as https://bugs.webkit.org/show_bug.cgi?id=208578?

Oof, looks like it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625656</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 11:36:36 -0800</bug_when>
    <thetext>(In reply to Jer Noble from comment #4)
&gt; (In reply to youenn fablet from comment #2)
&gt; &gt; Is it the same as https://bugs.webkit.org/show_bug.cgi?id=208578?
&gt; 
&gt; Oof, looks like it is.

That said, I think it&apos;s more useful to have an entire remote type rather than doing the commands ad-hoc. Also, the other patch doesn&apos;t seem to do the right thing when multiple WebContent processes have different audio categories or buffer sizes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625687</commentid>
    <comment_count>6</comment_count>
      <attachid>392454</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 12:10:55 -0800</bug_when>
    <thetext>Created attachment 392454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625697</commentid>
    <comment_count>7</comment_count>
      <attachid>392457</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 12:38:05 -0800</bug_when>
    <thetext>Created attachment 392457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625698</commentid>
    <comment_count>8</comment_count>
      <attachid>392454</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-04 12:42:23 -0800</bug_when>
    <thetext>Comment on attachment 392454
Patch

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

&gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:363
&gt; +#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
&gt; +    if (decoder.messageReceiverName() == Messages::RemoteLegacyCDMFactoryProxy::messageReceiverName()) {
&gt; +        legacyCdmFactoryProxy().didReceiveMessageFromWebProcess(connection, decoder);
&gt; +        return true;
&gt; +    }
&gt; +
&gt; +    if (decoder.messageReceiverName() == Messages::RemoteLegacyCDMProxy::messageReceiverName()) {
&gt; +        legacyCdmFactoryProxy().didReceiveCDMMessage(connection, decoder);
&gt; +        return true;
&gt; +    }
&gt; +
&gt; +    if (decoder.messageReceiverName() == Messages::RemoteLegacyCDMSessionProxy::messageReceiverName()) {
&gt; +        legacyCdmFactoryProxy().didReceiveCDMSessionMessage(connection, decoder);
&gt; +        return true;
&gt; +    }
&gt; +#endif

Does this belong in another patch?

&gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:432
&gt; +#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
&gt; +    if (decoder.messageReceiverName() == Messages::RemoteLegacyCDMFactoryProxy::messageReceiverName()) {
&gt; +        legacyCdmFactoryProxy().didReceiveSyncMessageFromWebProcess(connection, decoder, replyEncoder);
&gt; +        return true;
&gt; +    }
&gt; +
&gt; +    if (decoder.messageReceiverName() == Messages::RemoteLegacyCDMProxy::messageReceiverName()) {
&gt; +        legacyCdmFactoryProxy().didReceiveSyncCDMMessage(connection, decoder, replyEncoder);
&gt; +        return true;
&gt; +    }
&gt; +
&gt; +    if (decoder.messageReceiverName() == Messages::RemoteLegacyCDMSessionProxy::messageReceiverName()) {
&gt; +        legacyCdmFactoryProxy().didReceiveSyncCDMSessionMessage(connection, decoder, replyEncoder);
&gt; +        return true;
&gt; +    }
&gt; +#endif

Ditto

&gt; Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp:108
&gt; +    m_session-&gt;setCategory(category, policy);

We should log this change.

&gt; Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp:145
&gt; +        // This proxy wants to de-activate, as is the last remaining active

s/as is/and is/

&gt; Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp:158
&gt; +    // proxy with mix with the active proxies. No-op, and return activation

s/with mix/will mix/

&gt; Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp:173
&gt; +        if (otherProxy-&gt;category() == AudioSession::AmbientSound)

Nit: it would be nice to encapsulate this logic in a a proxy method. Something like &quot;canMixWithOthers()&quot;?

&gt; Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp:77
&gt; +void RemoteAudioSession::configurationChanged(RemoteAudioSessionConfiguration&amp;&amp; configuration)

This is never called?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625709</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 13:05:34 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #8)
&gt; Comment on attachment 392454 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=392454&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:363
&gt; &gt; +#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
&gt; &gt; +    if (decoder.messageReceiverName() == Messages::RemoteLegacyCDMFactoryProxy::messageReceiverName()) {
&gt; &gt; +        legacyCdmFactoryProxy().didReceiveMessageFromWebProcess(connection, decoder);
&gt; &gt; +        return true;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    if (decoder.messageReceiverName() == Messages::RemoteLegacyCDMProxy::messageReceiverName()) {
&gt; &gt; +        legacyCdmFactoryProxy().didReceiveCDMMessage(connection, decoder);
&gt; &gt; +        return true;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    if (decoder.messageReceiverName() == Messages::RemoteLegacyCDMSessionProxy::messageReceiverName()) {
&gt; &gt; +        legacyCdmFactoryProxy().didReceiveCDMSessionMessage(connection, decoder);
&gt; &gt; +        return true;
&gt; &gt; +    }
&gt; &gt; +#endif
&gt; 
&gt; Does this belong in another patch?

It does; it got mixed in with the Legacy EME patch. Will remove.

&gt; &gt; +    m_session-&gt;setCategory(category, policy);
&gt; 
&gt; We should log this change.

Ok. I don&apos;t know how we&apos;re doing logging in the GPU Process yet, but I&apos;ll just do a standard INFO_LOG() statement here.

&gt; &gt; Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp:145
&gt; &gt; +        // This proxy wants to de-activate, as is the last remaining active
&gt; 
&gt; s/as is/and is/

Changed.

&gt; &gt; Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp:158
&gt; &gt; +    // proxy with mix with the active proxies. No-op, and return activation
&gt; 
&gt; s/with mix/will mix/

Changed

&gt; &gt; Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp:173
&gt; &gt; +        if (otherProxy-&gt;category() == AudioSession::AmbientSound)
&gt; 
&gt; Nit: it would be nice to encapsulate this logic in a a proxy method.
&gt; Something like &quot;canMixWithOthers()&quot;?

Ok.

&gt; &gt; Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp:77
&gt; &gt; +void RemoteAudioSession::configurationChanged(RemoteAudioSessionConfiguration&amp;&amp; configuration)
&gt; 
&gt; This is never called?

Not yet. Planning for the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625710</commentid>
    <comment_count>10</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 13:10:07 -0800</bug_when>
    <thetext>(In reply to Jer Noble from comment #9)
&gt; (In reply to Eric Carlson from comment #8)
&gt; &gt; Comment on attachment 392454 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=392454&amp;action=review
&gt; &gt; 
&gt; 
&gt; &gt; &gt; +    m_session-&gt;setCategory(category, policy);
&gt; &gt; 
&gt; &gt; We should log this change.
&gt; 
&gt; Ok. I don&apos;t know how we&apos;re doing logging in the GPU Process yet, but I&apos;ll
&gt; just do a standard INFO_LOG() statement here.

Wait, this will be logged by AudioSession; we should just be able to look through GPUProcess logs for AudioSession::setCategory().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625713</commentid>
    <comment_count>11</comment_count>
      <attachid>392460</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 13:13:42 -0800</bug_when>
    <thetext>Created attachment 392460
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625714</commentid>
    <comment_count>12</comment_count>
      <attachid>392461</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 13:16:02 -0800</bug_when>
    <thetext>Created attachment 392461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625727</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-04 13:20:15 -0800</bug_when>
    <thetext>(In reply to Jer Noble from comment #10)
&gt; (In reply to Jer Noble from comment #9)
&gt; &gt; (In reply to Eric Carlson from comment #8)
&gt; &gt; &gt; Comment on attachment 392454 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=392454&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; &gt; &gt; +    m_session-&gt;setCategory(category, policy);
&gt; &gt; &gt; 
&gt; &gt; &gt; We should log this change.
&gt; &gt; 
&gt; &gt; Ok. I don&apos;t know how we&apos;re doing logging in the GPU Process yet, but I&apos;ll
&gt; &gt; just do a standard INFO_LOG() statement here.
&gt; 

Use GPUConnectionToWebProcess.logger() and WebKit2LogMedia.

&gt; Wait, this will be logged by AudioSession; we should just be able to look
&gt; through GPUProcess logs for AudioSession::setCategory().

AudioSession still uses debug-only logging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625730</commentid>
    <comment_count>14</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 13:23:53 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #13)
&gt; (In reply to Jer Noble from comment #10)
&gt; &gt; (In reply to Jer Noble from comment #9)
&gt; &gt; &gt; (In reply to Eric Carlson from comment #8)
&gt; &gt; &gt; &gt; Comment on attachment 392454 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=392454&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; +    m_session-&gt;setCategory(category, policy);
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; We should log this change.
&gt; &gt; &gt; 
&gt; &gt; &gt; Ok. I don&apos;t know how we&apos;re doing logging in the GPU Process yet, but I&apos;ll
&gt; &gt; &gt; just do a standard INFO_LOG() statement here.
&gt; &gt; 
&gt; 
&gt; Use GPUConnectionToWebProcess.logger() and WebKit2LogMedia.

That won&apos;t work; this class isn&apos;t associated with a specific GPUConnectionToWebProcess. Is there something similar on GPUProcess?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625733</commentid>
    <comment_count>15</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 13:25:45 -0800</bug_when>
    <thetext>(In reply to Jer Noble from comment #14)
&gt; That won&apos;t work; this class isn&apos;t associated with a specific
&gt; GPUConnectionToWebProcess. Is there something similar on GPUProcess?

To answer my own question, no, there isn&apos;t. GPUProcess just uses RELEASE_LOG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625737</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-04 13:27:36 -0800</bug_when>
    <thetext>(In reply to Jer Noble from comment #15)
&gt; (In reply to Jer Noble from comment #14)
&gt; &gt; That won&apos;t work; this class isn&apos;t associated with a specific
&gt; &gt; GPUConnectionToWebProcess. Is there something similar on GPUProcess?
&gt; 
&gt; To answer my own question, no, there isn&apos;t. GPUProcess just uses RELEASE_LOG.

Because we need a session ID to know if logging is allowed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625748</commentid>
    <comment_count>17</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 13:37:13 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #16)
&gt; (In reply to Jer Noble from comment #15)
&gt; &gt; (In reply to Jer Noble from comment #14)
&gt; &gt; &gt; That won&apos;t work; this class isn&apos;t associated with a specific
&gt; &gt; &gt; GPUConnectionToWebProcess. Is there something similar on GPUProcess?
&gt; &gt; 
&gt; &gt; To answer my own question, no, there isn&apos;t. GPUProcess just uses RELEASE_LOG.
&gt; 
&gt; Because we need a session ID to know if logging is allowed.

Okay, I don&apos;t think that we&apos;re going to be able to solve this with Logger currently; we can&apos;t aggregate logs across multiple loggers in a way that is compatible with the goal of disabling logging when not allowed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625750</commentid>
    <comment_count>18</comment_count>
      <attachid>392471</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 13:38:38 -0800</bug_when>
    <thetext>Created attachment 392471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625773</commentid>
    <comment_count>19</comment_count>
      <attachid>392482</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 14:16:49 -0800</bug_when>
    <thetext>Created attachment 392482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625849</commentid>
    <comment_count>20</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 16:46:27 -0800</bug_when>
    <thetext>The Mac-wk2 test failures seem to be because MockAudioSharedUnit() is calling into AudioSession inside the UIProcess. On one hand, platformStrategies() should never be null, even in the UIProcess. On the other, why is MockAudioSharedUnit() using AudioSession directly in the first place?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625877</commentid>
    <comment_count>21</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 17:29:26 -0800</bug_when>
    <thetext>It definitely doesn&apos;t seem to be correct that platformStrategies() returns a nullable pointer that is never null-checked anywhere. It should either be guaranteed non null (i.e., a reference), or should be null-checked in every place it&apos;s called. For expediency&apos;s sake, I null-checked inside AudioSession::sharedSession(), but I don&apos;t think this is correct. I&apos;ll file a different bug on what the correct behavior should be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625878</commentid>
    <comment_count>22</comment_count>
      <attachid>392518</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 17:30:00 -0800</bug_when>
    <thetext>Created attachment 392518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625882</commentid>
    <comment_count>23</comment_count>
      <attachid>392520</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 17:38:49 -0800</bug_when>
    <thetext>Created attachment 392520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625892</commentid>
    <comment_count>24</comment_count>
      <attachid>392524</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-04 18:10:18 -0800</bug_when>
    <thetext>Created attachment 392524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625946</commentid>
    <comment_count>25</comment_count>
      <attachid>392524</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-04 22:26:53 -0800</bug_when>
    <thetext>Comment on attachment 392524
Patch

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

&gt; Source/WebKit/GPUProcess/GPUPlatformStrategies.h:42
&gt; +class GPUPlatformStrategies : public WebCore::PlatformStrategies {

Oh please no.  I have worked long and hard to move PlatformStrategies to PageConfiguration, which is the direction they should be going.  If you can&apos;t get to or from a Page, fail to do whatever you were about to do.  We should rename PlatformStrategies to LegacyPlatformStrategies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626012</commentid>
    <comment_count>26</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-05 03:24:50 -0800</bug_when>
    <thetext>I am removing the usage of MediaSessionManagerCocoa in GPUProcess for now in https://bugs.webkit.org/show_bug.cgi?id=208568, which might help a little.

Ideally, we would like AudioSession::sharedSession() to only be called in GPUProcess when media for GPUProcess is enabled.
There is a small number of non-platform calls to AudioSession::sharedSession() that we could probably update easily.

When we discussed with Eric, the idea was to use PlatformMediaSessionManager as the interface between WebProcess and GPUProcess. This would handle AudioSession management.
That is made somehow harder given PlatformMediaSessionManager unfortunate tight relationships with HTMLMediaElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626051</commentid>
    <comment_count>27</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-05 07:42:56 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #25)
&gt; Comment on attachment 392524 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=392524&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/GPUProcess/GPUPlatformStrategies.h:42
&gt; &gt; +class GPUPlatformStrategies : public WebCore::PlatformStrategies {
&gt; 
&gt; Oh please no.  I have worked long and hard to move PlatformStrategies to
&gt; PageConfiguration, which is the direction they should be going.  If you
&gt; can&apos;t get to or from a Page, fail to do whatever you were about to do.  We
&gt; should rename PlatformStrategies to LegacyPlatformStrategies.

AudioSession is a global; Page is the wrong level of abstraction. 

That said, this setting should be a WebProcessCreationParameter, not a setting or a page configuration, which should also be global in the WebProcess. I&apos;ll switch this around so that the AudioSession global allows you to set the global object, which will accomplish the same goal without using platformStrategies().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626069</commentid>
    <comment_count>28</comment_count>
      <attachid>392570</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-05 08:12:41 -0800</bug_when>
    <thetext>Created attachment 392570
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626081</commentid>
    <comment_count>29</comment_count>
      <attachid>392574</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-05 08:25:15 -0800</bug_when>
    <thetext>Created attachment 392574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626084</commentid>
    <comment_count>30</comment_count>
      <attachid>392575</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-05 08:34:05 -0800</bug_when>
    <thetext>Created attachment 392575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626096</commentid>
    <comment_count>31</comment_count>
      <attachid>392575</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-05 08:52:14 -0800</bug_when>
    <thetext>Comment on attachment 392575
Patch

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

Much better.

&gt; Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.h:51
&gt; +    using SetActiveCompletion = CompletionHandler&lt;void(bool)&gt;;

I think this is unused.

&gt; Source/WebKit/Shared/WebCoreArgumentCoders.h:1035
&gt; +    WebCore::AudioSession::CategoryType,

We usually try to put these in the same header as the enum class.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteAudioSessionConfiguration.h:39
&gt; +    float sampleRate;

These should probably have default initializers to prevent use of uninitialized memory if we make a mistake and don&apos;t initialize everything somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626098</commentid>
    <comment_count>32</comment_count>
      <attachid>392575</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-05 08:54:17 -0800</bug_when>
    <thetext>Comment on attachment 392575
Patch

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

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.h:51
&gt;&gt; +    using SetActiveCompletion = CompletionHandler&lt;void(bool)&gt;;
&gt; 
&gt; I think this is unused.

Whoops, will remove.

&gt;&gt; Source/WebKit/Shared/WebCoreArgumentCoders.h:1035
&gt;&gt; +    WebCore::AudioSession::CategoryType,
&gt; 
&gt; We usually try to put these in the same header as the enum class.

Ok, will move.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/RemoteAudioSessionConfiguration.h:39
&gt;&gt; +    float sampleRate;
&gt; 
&gt; These should probably have default initializers to prevent use of uninitialized memory if we make a mistake and don&apos;t initialize everything somewhere.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626101</commentid>
    <comment_count>33</comment_count>
      <attachid>392578</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-05 09:02:03 -0800</bug_when>
    <thetext>Created attachment 392578
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626102</commentid>
    <comment_count>34</comment_count>
      <attachid>392579</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-05 09:06:48 -0800</bug_when>
    <thetext>Created attachment 392579
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626119</commentid>
    <comment_count>35</comment_count>
      <attachid>392584</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-05 09:21:36 -0800</bug_when>
    <thetext>Created attachment 392584
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626126</commentid>
    <comment_count>36</comment_count>
      <attachid>392585</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-05 09:30:15 -0800</bug_when>
    <thetext>Created attachment 392585
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626203</commentid>
    <comment_count>37</comment_count>
      <attachid>392600</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-05 10:58:11 -0800</bug_when>
    <thetext>Created attachment 392600
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626223</commentid>
    <comment_count>38</comment_count>
      <attachid>392600</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-05 11:43:18 -0800</bug_when>
    <thetext>Comment on attachment 392600
Patch for landing

Clearing flags on attachment: 392600

Committed r257936: &lt;https://trac.webkit.org/changeset/257936&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626224</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-05 11:43:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392445</attachid>
            <date>2020-03-04 11:26:39 -0800</date>
            <delta_ts>2020-03-04 12:10:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200304112638.patch</filename>
            <type>text/plain</type>
            <size>104370</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkODA0MjkxNDkyNWFlNWJmYTc5ZWZj
ZmUxYTMwZDc5YjU1Yjg3NjEuLjcxNWExOGJmMDQzMDAxYjE3ZjUyODUyMzQ4OGUyNmYwOGIxNWU1
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBV
bmlxdWVSZWYgdG8gdGhlIGxpc3Qgb2YgZm9yd2FyZC1kZWNsYXJlZCB0ZW1wbGF0ZSB0eXBlcy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisKIDIwMjAtMDMtMDMgIEppdGVuIE1laHRhICA8
am1laHRhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBIVFRQIEFsdGVybmF0aXZlIFNlcnZp
Y2VzIFN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTFkOTE0MmI0MWVkYzIwNDViMDFkNzE4YzYzZjE0
MTBhNmM0MjNhLi4xZGI3MGE2NmUxYmRhOThiYTJkNTU3ZGFmNGYxNDg3M2UyODY1ZGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
biBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5IHdoaWNoIHByb3ZpZGVzIGRlZmF1bHQg
aW1wbGVtZW50YXRpb25zIG9mIHRoZQorICAgICAgICBwbGF0Zm9ybSBjcmVhdGlvbiBtZXRob2Rz
LCBzbyB0aGV5IGRvbid0IG5lZWQgdG8gYmUgcmUtaW1wbGVtZW50ZWQgYnkgZWFjaCBjbGllbnQg
dW5sZXNzCisgICAgICAgIHRoYXQgY2xpZW50IG5lZWRzIHRvIG92ZXJyaWRlIHRoYXQgYmVoYXZp
b3IuCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUgZW51bWVyYXRpb25zIGlu
c2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1ZGlvU2Vzc2lvbiBtZXRo
b2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGNhc2Ugd2hlcmUg
dGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0
ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb24uaDoKKwogMjAyMC0wMi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUF0gSW1wbGVtZW50IE1vZGVybiBFTUUgQVBJIGluIHRoZSBHUFUgUHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA0NTBlN2UzNTJmM2VhYjhmMzU2MGUxNjViNzNhYmU5M2MwODQ2OTA4
Li5lMjEzNWE3ZjM1YmY0Yjg0MzQxNzVjYmU4MWQ3YTdmMTE1YTM2NjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDk1IEBACisyMDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdWJjbGFzcyBv
ZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBhdWRpbyBiZWhh
dmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAgICAgYXVkaW8g
YmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJvY2Vzcywgc2lu
Y2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFsbHkKKyAgICAg
ICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAgICAgICAgRHVl
IHRvIHRoZSB3YXkgQXVkaW9TZXNzaW9uIG5vdyByZXF1aXJlcyB0aGUgUGxhdGZvcm1TdHJhdGVn
aWVzIG9iamVjdCB0byBjcmVhdGUgYSBjb25jcmV0ZSBBdWRpb1Nlc3Npb24sIHRoZSBHUFUKKyAg
ICAgICAgcHJvY2VzcyBuZWVkcyBpdHMgb3duIFBsYXRmb3JtU3RyYXRlZ2llcyBzdWJjbGFzcywg
YnV0IHVzaW5nIHRoZSBkZWZhdWx0IE1lZGlhU3RyYXRlZ3kgZnJvbSBXZWJDb3JlLgorCisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKToKKyAg
ICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVB
dWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpsZWdhY3lDZG1GYWN0b3J5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZUxvYWRlclN0cmF0ZWd5KToKKyAgICAgICAgKFdlYktpdDo6R1BV
UGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3kpOgorICAgICAgICAo
V2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorICAg
ICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Ojppbml0aWFsaXplR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmF1
ZGlvU2Vzc2lvbk1hbmFnZXIgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Ojpwcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6ZW5kSW50ZXJydXB0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbik6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnJvdXRl
U2hhcmluZ1BvbGljeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjpwcmVmZXJyZWRCdWZmZXJTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmdldFByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRDYXRlZ29yeUZvclByb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNl
dFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2Vzc2lv
biBjb25zdCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uOjpSZW1vdGVBdWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb246OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
OjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmg6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmg6CisKIDIwMjAtMDItMjMgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIEltcGxlbWVudCBNb2Rlcm4gRU1FIEFQ
SSBpbiB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4ODZk
ZGVhNWY2ZjAzMmU5YTg4MjZlZjFkYjYwMDc0YmI2OTc3MGQyLi45OTlkYmRiNzlkNzhmZTM2YzJi
YTY0ODUwYzk1YzQyM2UwNGU4MDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUgZGVmYXVsdCBN
ZWRpYVN0cmF0ZWd5IGZyb20gV2ViQ29yZSBub3cgdGhhdCBpdCdzIGF2YWlsYWJsZS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisKIDIwMjAtMDMt
MDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEl0ZW1zIGluIHRoZSB0b29sYmFyIHRha2UgdXAgdG8gbXVjaCB2ZXJ0aWNhbCBzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYv
Rm9yd2FyZC5oCmluZGV4IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThmNzAzYThmMGQu
LjZlOTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAg
LTY4LDYgKzY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBEdW1iUHRyVHJh
aXRzPFQ+PiBjbGFzcyBSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IER1bWJQ
dHJUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJp
bmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBjbGFzcyBTdHJp
bmdUeXBlQWRhcHRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1ZVJlZjsKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBz
dHJ1Y3QgRGVmYXVsdEhhc2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEyNSw2ICsxMjYs
NyBAQCB1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3NpdGlvbjsKIHVz
aW5nIFdURjo6VGV4dFN0cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RGOjpVbmlxdWVS
ZWY7CiB1c2luZyBXVEY6OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCBhNzIxZmJiMWFkOGE1YWE2YmRhMDliNjNiM2EyYTlkOTk3YzkxMTJmLi4wMDZlMzhh
YjY5MGE1Njg1Njk4ZDc3M2QzOGViZDRlZTEyMmNhM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc0
MCw2ICsxNzQwLDcgQEAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKIHBsYXRmb3JtL0xvd1Bvd2VyTW9k
ZU5vdGlmaWVyLmNwcAogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKIHBsYXRmb3JtL01h
aW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKK3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCiBwbGF0
Zm9ybS9Ob3RJbXBsZW1lbnRlZC5jcHAKIHBsYXRmb3JtL1Bhc3RlYm9hcmQuY3BwCiBwbGF0Zm9y
bS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZjAyM2ViZDRlZGRiZjY5MzQwNTcyMzY5
N2FkZTliZjUzOTY4NTg5Li5iNzY1NTk3M2U3MDM0MTI4ODViODk1NGM2ZjllZDI2ZWFmYTI0NGIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzk4Nyw2ICsxMzk4Nyw3IEBACiAJCUNEQUU4QzA4MTc0NkI5NTcwMDUzMkQ3OCAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVh
bWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDRE1GYWlyUGxheVN0cmVhbWluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREI3MDQ1OTFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBs
YXlTdHJlYW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0My
OTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmF0ZWd5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNEMjgxRkU4NUNCODAwMTJD
NTQ1IC8qIFZpZGVvQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlk
ZW9Db25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNE
MjkxRkU4NUNCOTAwMTJDNTQ1IC8qIE1lZGlhQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RCRDNEMkExRkU4NUNCQTAwMTJDNTQ1IC8qIE1lZGlhRW5jb2RpbmdDb25maWd1
cmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUVuY29kaW5nQ29uZmlndXJh
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTk2NCw2ICsyNTk2NSw3
IEBACiAJCQkJQ0Q2NDFFQzcxODFFRDYwMTAwRUU0QzQxIC8qIE1lZGlhU2FtcGxlLmggKi8sCiAJ
CQkJQTE3RDI3NUQxRUFDNTc5ODAwQkYwMUU3IC8qIE1lZGlhU2VsZWN0aW9uT3B0aW9uLmggKi8s
CiAJCQkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKKwkJ
CQlDREJCNDlGMjI0MEQ4NjUyMDAxN0MyOTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8sCiAJCQkJ
QkM3NzJDNEMwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuY3BwICovLAogCQkJ
CUJDNzcyQzREMEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi8sCiAJCQkJ
RTE1MTNENTAxNjc3RjA4ODAwMTQ5RkNCIC8qIE5vdEltcGxlbWVudGVkLmNwcCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFkZjQyZGYx
NDlmMDUyMjg1MzE5MDE2YzA4NzdhNWMyOTIyZmEyZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgorCisjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lv
bi5oIgorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJDRE1GYWN0b3J5
LmgiCisjaW5jbHVkZSAiTGVnYWN5Q0RNLmgiCisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1VuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+IE1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpCit7CisgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6
Y3JlYXRlKCk7Cit9CisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorc3RkOjp1bmlxdWVfcHRyPEF1
ZGlvRGVzdGluYXRpb24+IE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVk
aW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorICAg
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKK3sKKyAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMs
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworfQorI2VuZGlmCisKKyNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQordm9pZCBNZWRpYVN0cmF0ZWd5OjpyZWdpc3RlckNETUZh
Y3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMpCit7CisgICAgcmV0dXJuIENE
TUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoZmFjdG9yaWVzKTsKK30KKyNlbmRp
ZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXggNjBhNTg0
N2M4Y2VjMTBiNzliNzQ5YTZmYWY4NTAzZDE2YTE5OWI5NS4uN2NiOGQ0ZjQ0N2FjOWZmZGM4M2Ix
MWYwMTliNmNjZTJiYzcyMzkwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TWVkaWFTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRl
Z3kuaApAQCAtMzEsMTYgKzMxLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXVk
aW9EZXN0aW5hdGlvbjsKIGNsYXNzIEF1ZGlvSU9DYWxsYmFjazsKK2NsYXNzIEF1ZGlvU2Vzc2lv
bjsKIGNsYXNzIENETUZhY3Rvcnk7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlhU3RyYXRl
Z3kgewogcHVibGljOgorICAgIHZpcnR1YWwgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4gY3JlYXRl
QXVkaW9TZXNzaW9uKCk7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICB2aXJ0dWFsIHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKAotICAg
ICAgICBBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2ln
bmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgZmxvYXQgc2FtcGxlUmF0ZSkgPSAwOworICAgICAgICBBdWRpb0lPQ2FsbGJhY2smLCBjb25z
dCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywg
dW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAjZW5k
aWYKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAgIHZpcnR1YWwgdm9pZCByZWdpc3Rl
ckNETUZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+JikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RlckNETUZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+Jik7CiAjZW5kaWYKIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIH5NZWRpYVN0cmF0ZWd5KCkgPSBkZWZhdWx0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggYjVmYjU4
MDY0OGY5Y2Y4ZWM0ZjE4NmZhZmE0OGUxM2ZkY2YyZjU3ZC4uNDZlYzczZGVhODI1Y2EzYzYyMmIx
MmViYWZlNzMxM2U2ZmMwMzQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uY3BwCkBAIC0yOCwxNSArMjgsMjIgQEAKIAogI2lmIFVTRShBVURJT19T
RVNTSU9OKQogCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorVW5pcXVlUmVmPEF1
ZGlvU2Vzc2lvbj4gQXVkaW9TZXNzaW9uOjpjcmVhdGUoKQoreworICAgIHJldHVybiBtYWtlVW5p
cXVlUmVmPEF1ZGlvU2Vzc2lvbj4oKTsKK30KKwogQXVkaW9TZXNzaW9uJiBBdWRpb1Nlc3Npb246
OnNoYXJlZFNlc3Npb24oKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdWRpb1Nlc3Np
b24+IHNlc3Npb247Ci0gICAgcmV0dXJuIHNlc3Npb247CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+PiBzZXNzaW9uID0gcGxhdGZvcm1TdHJhdGVnaWVz
KCktPm1lZGlhU3RyYXRlZ3koKS5jcmVhdGVBdWRpb1Nlc3Npb24oKTsKKyAgICByZXR1cm4gc2Vz
c2lvbi5nZXQoKTsKIH0KIAogYm9vbCBBdWRpb1Nlc3Npb246OnRyeVRvU2V0QWN0aXZlKGJvb2wg
YWN0aXZlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9T
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaApp
bmRleCBlNzAwODIyZmYxZmVlYmQ3ODI5YWVjNzUwY2NlNDBhNjBiOTI1NjZhLi5jZmM0MTM4NjAy
NWU3YTY0OGFjMmUzYjYzYjk2NWZhNDNkNTQzZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCwxMyAr
NDUsMTcgQEAgZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90IHsKICAgICBM
b25nRm9ybVZpZGVvCiB9OwogCi1jbGFzcyBBdWRpb1Nlc3Npb24gZmluYWwgeworY2xhc3MgV0VC
Q09SRV9FWFBPUlQgQXVkaW9TZXNzaW9uIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1Nlc3Npb24pOworICAgIGZyaWVuZCBjbGFz
cyBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPjsKKyAgICBmcmllbmQgVW5pcXVlUmVmPEF1ZGlvU2Vz
c2lvbj4gV1RGOjptYWtlVW5pcXVlUmVmV2l0aG91dEZhc3RNYWxsb2NDaGVjazxBdWRpb1Nlc3Np
b24+KCk7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvU2Vzc2lvbiYg
c2hhcmVkU2Vzc2lvbigpOworICAgIHN0YXRpYyBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBjcmVh
dGUoKTsKKyAgICBzdGF0aWMgQXVkaW9TZXNzaW9uJiBzaGFyZWRTZXNzaW9uKCk7CisgICAgdmly
dHVhbCB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBlbnVtIENhdGVnb3J5VHlwZSB7CisgICAgZW51
bSBDYXRlZ29yeVR5cGUgOiB1aW50OF90IHsKICAgICAgICAgTm9uZSwKICAgICAgICAgQW1iaWVu
dFNvdW5kLAogICAgICAgICBTb2xvQW1iaWVudFNvdW5kLApAQCAtNTksMjMgKzY0LDIzIEBAIHB1
YmxpYzoKICAgICAgICAgUGxheUFuZFJlY29yZCwKICAgICAgICAgQXVkaW9Qcm9jZXNzaW5nLAog
ICAgIH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUs
IFJvdXRlU2hhcmluZ1BvbGljeSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ2F0ZWdvcnlUeXBlIGNh
dGVnb3J5KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5VHlw
ZSwgUm91dGVTaGFyaW5nUG9saWN5KTsKKyAgICB2aXJ0dWFsIENhdGVnb3J5VHlwZSBjYXRlZ29y
eSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSk7
CiAgICAgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdDsKIAotICAgIFJvdXRl
U2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdDsKLSAgICBTdHJpbmcgcm91
dGluZ0NvbnRleHRVSUQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFJvdXRlU2hhcmluZ1BvbGljeSBy
b3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyByb3V0aW5nQ29u
dGV4dFVJRCgpIGNvbnN0OwogCi0gICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0OwotICAgIHNp
emVfdCBidWZmZXJTaXplKCkgY29uc3Q7Ci0gICAgc2l6ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHNpemVfdCBidWZmZXJTaXplKCkgY29uc3Q7CisgICAgdmlydHVhbCBzaXplX3QgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscygpIGNvbnN0OwogCiAgICAgYm9vbCB0cnlUb1NldEFjdGl2ZShi
b29sKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHNpemVfdCBwcmVmZXJyZWRCdWZmZXJTaXplKCkg
Y29uc3Q7Ci0gICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCk7CisgICAgdmly
dHVhbCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9p
ZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCk7CiAKICAgICBjbGFzcyBNdXRlZFN0YXRl
T2JzZXJ2ZXIgewogICAgIHB1YmxpYzoKQEAgLTg3LDE3ICs5MiwxNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhZGRNdXRlZFN0YXRlT2JzZXJ2ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKik7CiAgICAgdm9p
ZCByZW1vdmVNdXRlZFN0YXRlT2JzZXJ2ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKik7CiAKLSAgICBi
b29sIGlzTXV0ZWQoKSBjb25zdDsKLSAgICB2b2lkIGhhbmRsZU11dGVkU3RhdGVDaGFuZ2UoKTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNNdXRlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVNdXRlZFN0YXRlQ2hhbmdlKCk7CiAKLSAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1
cm4gbV9hY3RpdmU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVy
biBtX2FjdGl2ZTsgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBO
ZXZlckRlc3Ryb3llZDxBdWRpb1Nlc3Npb24+OwogICAgIEF1ZGlvU2Vzc2lvbigpOwotICAgIH5B
dWRpb1Nlc3Npb24oKTsKIAotICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sKTsK
KyAgICB2aXJ0dWFsIGJvb2wgdHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sKTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb1Nlc3Npb25Qcml2YXRlPiBtX3ByaXZhdGU7CiAgICAgSGFzaFNl
dDxNdXRlZFN0YXRlT2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCmluZGV4IGE4ZDE4YmU0
ZWFiYWU5ZWM4MGZmNWRlZjRmYjdiY2E5ZGE2NTcwN2EuLjEyOGZhZGFlMGZkOTY3ZWZhMGZlOWNj
MTQxNTc0N2Q5M2ZlY2NkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhU2Vzc2lvbigpOwogCi0gICAgZW51bSBjbGFzcyBN
ZWRpYVR5cGUgeworICAgIGVudW0gY2xhc3MgTWVkaWFUeXBlIDogdWludDhfdCB7CiAgICAgICAg
IE5vbmUgPSAwLAogICAgICAgICBWaWRlbywKICAgICAgICAgVmlkZW9BdWRpbywKQEAgLTY5LDcg
KzY5LDcgQEAgcHVibGljOgogICAgIE1lZGlhVHlwZSBtZWRpYVR5cGUoKSBjb25zdDsKICAgICBN
ZWRpYVR5cGUgcHJlc2VudGF0aW9uVHlwZSgpIGNvbnN0OwogCi0gICAgZW51bSBTdGF0ZSB7Cisg
ICAgZW51bSBTdGF0ZSA6IHVpbnQ4X3QgewogICAgICAgICBJZGxlLAogICAgICAgICBBdXRvcGxh
eWluZywKICAgICAgICAgUGxheWluZywKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIFN0
YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogICAgIHZvaWQgc2V0U3RhdGUo
U3RhdGUpOwogCi0gICAgZW51bSBJbnRlcnJ1cHRpb25UeXBlIHsKKyAgICBlbnVtIEludGVycnVw
dGlvblR5cGUgOiB1aW50OF90IHsKICAgICAgICAgTm9JbnRlcnJ1cHRpb24sCiAgICAgICAgIFN5
c3RlbVNsZWVwLAogICAgICAgICBFbnRlcmluZ0JhY2tncm91bmQsCkBAIC05MSw3ICs5MSw3IEBA
IHB1YmxpYzoKICAgICB9OwogICAgIEludGVycnVwdGlvblR5cGUgaW50ZXJydXB0aW9uVHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1faW50ZXJydXB0aW9uVHlwZTsgfQogCi0gICAgZW51bSBFbmRJbnRl
cnJ1cHRpb25GbGFncyB7CisgICAgZW51bSBFbmRJbnRlcnJ1cHRpb25GbGFncyA6IHVpbnQ4X3Qg
ewogICAgICAgICBOb0ZsYWdzID0gMCwKICAgICAgICAgTWF5UmVzdW1lUGxheWluZyA9IDEgPDwg
MCwKICAgICB9OwpAQCAtMTI0LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICAgICAgZG91YmxlIGFz
RG91YmxlOwogICAgIH0gUmVtb3RlQ29tbWFuZEFyZ3VtZW50OwogCi0gICAgZW51bSBSZW1vdGVD
b250cm9sQ29tbWFuZFR5cGUgeworICAgIGVudW0gUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIDog
dWludDhfdCB7CiAgICAgICAgIE5vQ29tbWFuZCwKICAgICAgICAgUGxheUNvbW1hbmQsCiAgICAg
ICAgIFBhdXNlQ29tbWFuZCwKQEAgLTE0MCw3ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQoUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlLCBj
b25zdCBSZW1vdGVDb21tYW5kQXJndW1lbnQqIGFyZ3VtZW50ID0gbnVsbHB0cik7CiAgICAgYm9v
bCBzdXBwb3J0c1NlZWtpbmcoKSBjb25zdDsKIAotICAgIGVudW0gRGlzcGxheVR5cGUgeworICAg
IGVudW0gRGlzcGxheVR5cGUgOiB1aW50OF90IHsKICAgICAgICAgTm9ybWFsLAogICAgICAgICBG
dWxsc2NyZWVuLAogICAgICAgICBPcHRpbWl6ZWQsCkBAIC0zMTEsNCArMzExLDY0IEBAIHN0cnVj
dCBMb2dBcmd1bWVudDxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJv
bENvbW1hbmRUeXBlPiB7CiAgICAgfQogfTsKIAordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXMgPAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpNZWRpYVR5cGUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlw
ZTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpW
aWRlbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpWaWRl
b0F1ZGlvLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6OkF1
ZGlvLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6OldlYkF1
ZGlvCisgICAgPjsKK307CisKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXMgPAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZSwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU6OklkbGUsCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpBdXRvcGxheWluZywKKyAgICBXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU6OlBsYXlpbmcsCisgICAgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OlN0YXRlOjpQYXVzZWQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlN0YXRlOjpJbnRlcnJ1cHRlZAorICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0
aW9uVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMgPAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlLAorICAgIFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpOb0ludGVycnVwdGlvbiwKKyAg
ICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVt
U2xlZXAsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5
cGU6OkVudGVyaW5nQmFja2dyb3VuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVtSW50ZXJydXB0aW9uLAorICAgIFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpTdXNwZW5kZWRVbmRlckxvY2ss
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6Oklu
dmlzaWJsZUF1dG9wbGF5LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRl
cnJ1cHRpb25UeXBlOjpQcm9jZXNzSW5hY3RpdmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlBsYXliYWNrU3VzcGVuZGVkCisgICAgPjsKK307
CisKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncz4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXMgPAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRp
b25GbGFncywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0
aW9uRmxhZ3M6Ok5vRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVu
ZEludGVycnVwdGlvbkZsYWdzOjpNYXlSZXN1bWVQbGF5aW5nCisgICAgPjsKK307CisKK3RlbXBs
YXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpS
ZW1vdGVDb250cm9sQ29tbWFuZFR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
IDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1h
bmRUeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9s
Q29tbWFuZFR5cGU6Ok5vQ29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpQbGF5Q29tbWFuZCwKKyAgICBXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpQYXVzZUNvbW1h
bmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21t
YW5kVHlwZTo6U3RvcENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6VG9nZ2xlUGxheVBhdXNlQ29tbWFuZCwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpC
ZWdpblNlZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNl
c3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6RW5kU2Vla2luZ0JhY2t3YXJkQ29tbWFu
ZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1h
bmRUeXBlOjpCZWdpblNlZWtpbmdGb3J3YXJkQ29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpFbmRTZWVraW5nRm9yd2Fy
ZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZTo6U2Vla1RvUGxheWJhY2tQb3NpdGlvbkNvbW1hbmQKKyAgICA+OworfTsK
KwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKaW5kZXggOWY5NDZmODQ5N2FmMjNiNGFmYTUxYjc5MTg0MTg1MTg4NjBh
YzViOS4uZDc0OWIyZGIwOWI5Njc0NmY0YTBmMWUzNGMyMTc0MmVkZjUzZTQ2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTgsNiArMTgs
OCBAQCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUu
V2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIp
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KKyQo
UFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUZhY3RvcnlQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBA
IC0xMTYsNiArMTE4LDcgQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQ
cml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBhOTZjMmNmZGRkNDZiMzU5MjM4ZTk2MjM0M2E5OTIy
MTA0ZWVhNTliLi45OTUwMzUxMmJhNTU4YjJiNDEwMDhmNWIxNjY1MDQ2MGE5NTQxNDU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEz
Nyw2ICsxMzcsMTUgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdl
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25NZXNz
YWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5
UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IDQ1ZWUzZGI3ZWQ3ZTEzMzcyYzhhNzVhZDU1NWExNjU4N2Y2N2Qw
OGEuLjFjM2QxYTIwZWVhM2I3MzgwMDEwMmUxZDMxOTgzNzkwM2FhNmNkMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0OCw2ICsxNDgsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9
IFwKICAgICBQbHVnaW5Qcm94eSBcCiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIg
XAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBcCisgICAgUmVtb3RlQXVkaW9TZXNz
aW9uIFwKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSBcCiAgICAgUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlciBcCiAgICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggNmNmMWMzMGIzZTMzMDEyNzc0NjZkOTJlZTI5MzMyNDYwN2U1OWNjMS4u
YjhkZDFkNzE4MjAxOGFiZDA1MDg4NmEzMWY4N2QzN2FkZjI3MWExMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApA
QCAtNDEsNiArNDEsOSBAQAogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5j
bHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIgpAQCAtMTE5LDYgKzEyMiwxMCBAQCBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjp+R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpCiAKIHZvaWQgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKIHsKKyAgICBpZiAo
bV9hdWRpb1Nlc3Npb25Qcm94eSkgeworICAgICAgICBncHVQcm9jZXNzKCkuYXVkaW9TZXNzaW9u
TWFuYWdlcigpLnJlbW92ZVByb3h5KHdlYlByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgICAgICBt
X2F1ZGlvU2Vzc2lvblByb3h5ID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIExvZ2dlciYgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nZ2VyKCkKQEAgLTIxNyw2ICsyMjQsMTUgQEAgUmVtb3Rl
Q0RNRmFjdG9yeVByb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjZG1GYWN0b3J5UHJv
eHkoKQogfQogI2VuZGlmCiAKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5JiBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjphdWRpb1Nlc3Npb25Qcm94eSgpCit7CisgICAgaWYgKCFtX2F1ZGlvU2Vz
c2lvblByb3h5KSB7CisgICAgICAgIG1fYXVkaW9TZXNzaW9uUHJveHkgPSBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eTo6Y3JlYXRlKCp0aGlzKS5tb3ZlVG9VbmlxdWVQdHIoKTsKKyAgICAgICAgZ3B1
UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5hZGRQcm94eShtYWtlV2Vha1B0cihtX2F1
ZGlvU2Vzc2lvblByb3h5LmdldCgpKSk7CisgICAgfQorICAgIHJldHVybiAqbV9hdWRpb1Nlc3Np
b25Qcm94eTsKK30KKwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5k
ZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHlNYXAuZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBA
IC0yMzEsNiArMjQ3LDIxIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVsZWFz
ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFja2VuZElkZW50aWZpCiAgICAgQVNTRVJUX1VO
VVNFRChmb3VuZCwgZm91bmQpOwogfQogCit2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1cmVBdWRpb1Nlc3Npb25Db21wbGV0aW9uJiYgY29tcGxl
dGlvbikKK3sKKyAgICBjb21wbGV0aW9uKGF1ZGlvU2Vzc2lvblByb3h5KCkuY29uZmlndXJhdGlv
bigpKTsKK30KKworI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQorUmVtb3RlTGVn
YWN5Q0RNRmFjdG9yeVByb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsZWdhY3lDZG1G
YWN0b3J5UHJveHkoKQoreworICAgIGlmICghbV9sZWdhY3lDZG1GYWN0b3J5UHJveHkpCisgICAg
ICAgIG1fbGVnYWN5Q2RtRmFjdG9yeVByb3h5ID0gbWFrZVVuaXF1ZTxSZW1vdGVMZWdhY3lDRE1G
YWN0b3J5UHJveHk+KCp0aGlzKTsKKworICAgIHJldHVybiAqbV9sZWdhY3lDZG1GYWN0b3J5UHJv
eHk7Cit9CisjZW5kaWYKKwogYm9vbCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRj
aE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2Vz
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
CkBAIC0zMDgsNiArMzM5LDI2IEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlz
cGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KICNlbmRpZgorI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01F
RElBKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAg
ICAgICAgbGVnYWN5Q2RtRmFjdG9yeVByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJv
Y2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1v
dGVMZWdhY3lDRE1Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGxlZ2Fj
eUNkbUZhY3RvcnlQcm94eSgpLmRpZFJlY2VpdmVDRE1NZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGxlZ2FjeUNkbUZhY3RvcnlQcm94
eSgpLmRpZFJlY2VpdmVDRE1TZXNzaW9uTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCisgICAgaWYgKGRlY29kZXIubWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGF1ZGlvU2Vzc2lvblByb3h5KCkuZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KIAogICAgIHJldHVybiBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2Uo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CkBAIC0zNTUsNiArNDA2LDI2IEBAIGJvb2wgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICNlbmRpZgorI2lmIEVO
QUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNl
aXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgbGVnYWN5Q2RtRmFjdG9yeVByb3h5KCkuZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1Qcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGxlZ2FjeUNkbUZhY3RvcnlQcm94
eSgpLmRpZFJlY2VpdmVTeW5jQ0RNTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUxlZ2FjeUNETVNlc3Npb25Q
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGxlZ2FjeUNkbUZhY3RvcnlQ
cm94eSgpLmRpZFJlY2VpdmVTeW5jQ0RNU2Vzc2lvbk1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
ciwgcmVwbHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCisg
ICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGF1ZGlv
U2Vzc2lvblByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIs
IHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAgIHJldHVy
biBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhM2VjYTVjOGZhZDY5MTgzODBm
ZDkzM2JmNjMwZGQ0Y2ZmNzMwZDk2Li5jYmMxMzQ4MjZkNjA3MzY2ZjgwOGNjOWNlNjM1MWFkMDE0
ZjIxMGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9u
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgog
I2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9Qcm9jZXNzSWRlbnRpZmllci5oPgpAQCAtNDgsMTIgKzQ5LDE1IEBAIGNsYXNzIEdQVVByb2Nl
c3M7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eTsKIGNsYXNzIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyOworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7CitjbGFzcyBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVDRE1GYWN0b3J5UHJveHk7CiBjbGFz
cyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUmVjb3Jk
ZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CiBjbGFzcyBSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3MgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTsKK3N0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uOwog
CiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMgUmVmQ291bnRl
ZDxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPgpAQCAtODksNiArOTMsMTIgQEAgcHVibGljOgog
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgUmVtb3RlQ0RNRmFjdG9yeVByb3h5JiBj
ZG1GYWN0b3J5UHJveHkoKTsKICNlbmRpZgorI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01F
RElBKQorICAgIFJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eSYgbGVnYWN5Q2RtRmFjdG9yeVBy
b3h5KCk7CisjZW5kaWYKKworICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiByZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpOwogCiBwcml2YXRlOgogICAgIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
LCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEKTsKQEAgLTEwNiw4
ICsxMTYsMTMgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyJiBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAjZW5kaWYKICNlbmRp
ZgorCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkmIGF1ZGlvU2Vzc2lvblByb3h5KCk7CisK
ICAgICB2b2lkIGNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIpOwogICAgIHZvaWQgcmVsZWFzZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIpOworICAgIHVzaW5nIEVuc3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24gPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24m
KT47CisgICAgdm9pZCBlbnN1cmVBdWRpb1Nlc3Npb24oRW5zdXJlQXVkaW9TZXNzaW9uQ29tcGxl
dGlvbiYmKTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBkaWRD
bG9zZShJUEM6OkNvbm5lY3Rpb24mKSBmaW5hbDsKQEAgLTE0Nyw2ICsxNjIsMTAgQEAgcHJpdmF0
ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVDRE1GYWN0b3J5UHJveHk+IG1fY2RtRmFjdG9yeVByb3h5OwogI2VuZGlmCisjaWYgRU5BQkxF
KExFR0FDWV9FTkNSWVBURURfTUVESUEpCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUxlZ2Fj
eUNETUZhY3RvcnlQcm94eT4gbV9sZWdhY3lDZG1GYWN0b3J5UHJveHk7CisjZW5kaWYKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IG1fYXVkaW9TZXNzaW9uUHJv
eHk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggOTMyYzAxMjJkZTA4MWVkZTliYjllZmI1NmY5YmM1MjU5YmE0ZDcwNC4uNGZkMGYy
MjMwN2U4Mzg4MzZkNDc0YmFiM2UwMjc1YTM1YzA3NTBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTI1LDYgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+IEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MgV2FudHNEaXNwYXRjaE1lc3NhZ2UgewogICAgIHZvaWQgQ3JlYXRlUmVuZGVyaW5n
QmFja2VuZChXZWJLaXQ6OlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKQogICAgIHZvaWQgUmVsZWFzZVJlbmRlcmluZ0JhY2tlbmQoV2ViS2l0OjpS
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcikKKyAg
ICBFbnN1cmVBdWRpb1Nlc3Npb24oKSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlQXVkaW9TZXNz
aW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKSBTeW5jaHJvbm91cwogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjVkM2U0YTYyOGM5YjMzMTVm
MmRmM2I2YWNlZDc5NjZkYWExZGUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVQbGF0Zm9ybVN0cmF0
ZWdpZXMuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUv
QXVkaW9EZXN0aW5hdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ0RNRmFjdG9yeS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTGVnYWN5Q0RNLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmF0
ZWd5Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
Kwordm9pZCBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM+IHBsYXRmb3JtU3RyYXRlZ2ll
czsKKyAgICBzZXRQbGF0Zm9ybVN0cmF0ZWdpZXMoJnBsYXRmb3JtU3RyYXRlZ2llcy5nZXQoKSk7
Cit9CisKK0dQVVBsYXRmb3JtU3RyYXRlZ2llczo6R1BVUGxhdGZvcm1TdHJhdGVnaWVzKCkgPSBk
ZWZhdWx0OworCitMb2FkZXJTdHJhdGVneSogR1BVUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVM
b2FkZXJTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Bhc3RlYm9hcmRT
dHJhdGVneSogR1BVUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3ko
KQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitNZWRpYVN0cmF0ZWd5KiBHUFVQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQoreworICAgIHJldHVybiBuZXcgTWVk
aWFTdHJhdGVneSgpOworfQorCitCbG9iUmVnaXN0cnkqIEdQVVBsYXRmb3JtU3RyYXRlZ2llczo6
Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0
cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41N2Y5Mzk3Y2RiMGNjOGFkMTBiN2JmYzljZjAwNzM2MDlhZTYzMWE5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBsYXRmb3Jt
U3RyYXRlZ2llcy5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJhdGVnaWVzLmg+CisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgTG9hZGVyU3RyYXRlZ3k7CitjbGFzcyBQYXN0ZWJvYXJkU3RyYXRlZ3k7Citj
bGFzcyBNZWRpYVN0cmF0ZWd5OworY2xhc3MgQmxvYlJlZ2lzdHJ5OworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgR1BVUGxhdGZvcm1TdHJhdGVnaWVzIDogcHVibGljIFdlYkNvcmU6
OlBsYXRmb3JtU3RyYXRlZ2llcyB7CisgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPEdQVVBsYXRm
b3JtU3RyYXRlZ2llcz47CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZSgpOwor
Citwcml2YXRlOgorICAgIEdQVVBsYXRmb3JtU3RyYXRlZ2llcygpOworCisgICAgLy8gV2ViQ29y
ZTo6UGxhdGZvcm1TdHJhdGVnaWVzCisgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0
ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0
ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpN
ZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29y
ZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKK307CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKaW5kZXggMGU3
YmQwOWJlYTVkMTIzYTQwN2VjZmI5ZDM5ZjcyNDBmNWIzYzdiOS4uYTQ4ZDA2YmJkZDhkNTRmNmQ0
YWM2MDI3ODEwMWE0OWU0MmY5MmZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9j
ZXNzLmNwcApAQCAtMzMsOSArMzMsMTEgQEAKICNpbmNsdWRlICJBdXhpbGlhcnlQcm9jZXNzTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIkdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oIgog
I2luY2x1ZGUgIkdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJHUFVQ
cm9jZXNzU2Vzc2lvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4
dGVuc2lvbi5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgpAQCAtMTEwLDYgKzExMiw4IEBAIHZvaWQgR1BVUHJv
Y2Vzczo6aW5pdGlhbGl6ZUdQVVByb2Nlc3MoR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYm
IHBhcmFtZXRlcnMpCiAgICAgV1RGOjpUaHJlYWQ6OnNldEN1cnJlbnRUaHJlYWRJc1VzZXJJbml0
aWF0ZWQoKTsKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAKKyAgICBHUFVQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmluaXRpYWxpemUoKTsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRGVw
cmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29y
eSh0cnVlKTsKICNlbmRpZgpAQCAtMjEyLDYgKzIxNiwxMyBAQCBjb25zdCBTdHJpbmcmIEdQVVBy
b2Nlc3M6Om1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KSBjbwogfQogI2VuZGlmCiAKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgR1BVUHJv
Y2Vzczo6YXVkaW9TZXNzaW9uTWFuYWdlcigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2F1ZGlvU2Vz
c2lvbk1hbmFnZXIpCisgICAgICAgIG1fYXVkaW9TZXNzaW9uTWFuYWdlciA9IFdURjo6bWFrZVVu
aXF1ZTxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI+KCk7CisgICAgcmV0dXJuICptX2F1
ZGlvU2Vzc2lvbk1hbmFnZXI7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgK
aW5kZXggNmZhMDIwMTRiOTQ3ODFlYTk5ZTAzNWRiM2FkNzlkNjVhMjRmMjg3Yi4uNjJmMWY1NWI5
MDAzYzZiZTFmMTNkN2YwYjRmZjlkMjhmZmJkNmM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUHJvY2Vzcy5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M7CiBzdHJ1Y3QgR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBHUFVQ
cm9jZXNzU2Vzc2lvblBhcmFtZXRlcnM7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OworY2xh
c3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOwogCiBjbGFzcyBHUFVQcm9jZXNzIDog
cHVibGljIEF1eGlsaWFyeVByb2Nlc3MsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxHUFVQ
cm9jZXNzPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEdQVVByb2Nlc3M+IHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShHUFVQcm9jZXNzKTsKQEAgLTYzLDYgKzY0LDggQEAgcHVibGljOgogICAg
IGNvbnN0IFN0cmluZyYgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeShQQUw6OlNlc3Npb25JRCkg
Y29uc3Q7CiAjZW5kaWYKIAorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVk
aW9TZXNzaW9uTWFuYWdlcigpIGNvbnN0OworCiBwcml2YXRlOgogICAgIHZvaWQgbG93TWVtb3J5
SGFuZGxlcihDcml0aWNhbCk7CiAKQEAgLTEwMyw2ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdDb250ZXh0PiBtX2NvbnRleHRGb3JWaXNpYmlsaXR5
UHJvcGFnYXRpb247CiAgICAgYm9vbCBtX2NhblNob3dXaGlsZUxvY2tlZCB7IGZhbHNlIH07CiAj
ZW5kaWYKKyAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXI+IG1fYXVkaW9TZXNzaW9uTWFuYWdlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU4YTU3NDhiOWQ3ZjIxY2FhMzE2
OWNjYTQwZmE3OWUzZGQ3MTIyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAKQEAgLTAsMCArMSwxMTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworVW5pcXVlUmVmPFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5PiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb24pCit7CisgICAgcmV0dXJuIG1ha2VVbmlx
dWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+KGdwdUNvbm5lY3Rpb24pOworfQorCitSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eTo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvbikKKyAgICA6IG1fZ3B1Q29ubmVjdGlvbihncHVD
b25uZWN0aW9uKQoreworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6flJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5KCkgPSBkZWZhdWx0OworCitXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6cHJvY2Vzc0lkZW50aWZpZXIoKQoreworICAgIHJldHVy
biBtX2dwdUNvbm5lY3Rpb24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KKworUmVtb3RlQXVk
aW9TZXNzaW9uQ29uZmlndXJhdGlvbiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29uZmlndXJh
dGlvbigpCit7CisgICAgYXV0byYgc2Vzc2lvbiA9IGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXNz
aW9uKCk7CisgICAgcmV0dXJuIHsKKyAgICAgICAgc2Vzc2lvbi5jYXRlZ29yeSgpLAorICAgICAg
ICBzZXNzaW9uLnJvdXRlU2hhcmluZ1BvbGljeSgpLAorICAgICAgICBzZXNzaW9uLnJvdXRpbmdD
b250ZXh0VUlEKCksCisgICAgICAgIHNlc3Npb24uc2FtcGxlUmF0ZSgpLAorICAgICAgICBzZXNz
aW9uLmJ1ZmZlclNpemUoKSwKKyAgICAgICAgc2Vzc2lvbi5udW1iZXJPZk91dHB1dENoYW5uZWxz
KCksCisgICAgICAgIHNlc3Npb24ucHJlZmVycmVkQnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNz
aW9uLmlzTXV0ZWQoKSwKKyAgICAgICAgbV9hY3RpdmUKKyAgICB9OworfQorCit2b2lkIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5OjpzZXRDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZSB0eXBlLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQorewor
ICAgIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXRDYXRlZ29yeUZvclByb2Nlc3MobV9ncHVDb25u
ZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIHR5cGUsIHBvbGljeSk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUodWludDY0X3Qg
c2l6ZSkKK3sKKyAgICBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6
ZUZvclByb2Nlc3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIHNpemUp
OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1NldEFjdGl2ZShib29s
IGFjdGl2ZSwgU2V0QWN0aXZlQ29tcGxldGlvbiYmIGNvbXBsZXRpb24pCit7CisgICAgY29tcGxl
dGlvbihhdWRpb1Nlc3Npb25NYW5hZ2VyKCkudHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKG1fZ3B1
Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCBhY3RpdmUpKTsKK30KKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkKK3sKKyAgICBjb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uOjpCZWdpbkludGVycnVwdGlvbih0
eXBlKSwgeyB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6ZW5kSW50ZXJy
dXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFn
cyBmbGFncykKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb24oZmxhZ3MpLCB7IH0pOworfQorCitSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXImIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjphdWRpb1Nlc3Npb25N
YW5hZ2VyKCkKK3sKKyAgICByZXR1cm4gbV9ncHVDb25uZWN0aW9uLmdwdVByb2Nlc3MoKS5hdWRp
b1Nlc3Npb25NYW5hZ2VyKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiYgUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk6OmNvbm5lY3Rpb24oKQoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb24uY29u
bmVjdGlvbigpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YWQ4MDY5NGZjM2ZkNDg4Yjc3NWVmZmQwZjQ4NjExYmY0OGYxYTRmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
LmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
QXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7
CisKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5CisgICAgOiBwdWJsaWMgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eT4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0
YXRpYyBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IGNyZWF0ZShHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJik7CisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHko
KTsKKworICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKCk7
CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKCk7CisK
KyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0
IHsgcmV0dXJuIG1fY2F0ZWdvcnk7IH07CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5
IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcm91dGVTaGFyaW5nUG9saWN5
OyB9CisgICAgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiBtX3By
ZWZlcnJlZEJ1ZmZlclNpemU7IH0KKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4g
bV9hY3RpdmU7IH0KKworICAgIHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUpOworICAgIHZvaWQgZW5kSW50ZXJydXB0
aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyk7
CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBmcmllbmQg
VW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRo
b3V0RmFzdE1hbGxvY0NoZWNrPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PihHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJik7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYpOworCisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIHNldENhdGVnb3J5
KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXZWJDb3JlOjpSb3V0ZVNoYXJp
bmdQb2xpY3kpOworICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCk7Cisg
ICAgdXNpbmcgU2V0QWN0aXZlQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+OworICAgIHZvaWQgdHJ5VG9TZXRBY3RpdmUoYm9vbCwgU2V0QWN0aXZlQ29tcGxldGlvbiYm
KTsKKworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFu
YWdlcigpOworICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOworCisgICAgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9uOworICAgIFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnk7CisgICAgV2ViQ29yZTo6Um91dGVTaGFy
aW5nUG9saWN5IG1fcm91dGVTaGFyaW5nUG9saWN5OworICAgIHNpemVfdCBtX3ByZWZlcnJlZEJ1
ZmZlclNpemUgeyAwIH07CisgICAgYm9vbCBtX2FjdGl2ZSB7IGZhbHNlIH07Cit9OworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQx
ZThkMTkzYjVjMTZjZjlhNzU4ZWUxZDM5ZTFiZGFlNmZmN2MzMjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5IE5vdFJlZkNv
dW50ZWQgeworICAgIFNldENhdGVnb3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZSB0eXBlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5n
UG9saWN5IHBvbGljeSkKKyAgICBTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHVpbnQ2NF90IHByZWZl
cnJlZEJ1ZmZlclNpemUpCisgICAgVHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpIC0+IChib29s
IHN1Y2VlZGVkKSBTeW5jaHJvbm91cworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM4ZjE1OTQ2NTA3ZDgyNDMzZWVkOGY2ODBhZjVlYmZj
MDk5ZDE4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTg2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vz
c2lvbi5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcjo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCkKKyAgICA6IG1fc2Vz
c2lvbihBdWRpb1Nlc3Npb246OmNyZWF0ZSgpKQoreworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXI6On5SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKSA9IGRlZmF1bHQ7
CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eShXZWFrUHRy
PFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiYmIHByb3h5KQoreworICAgIGF1dG8gaWQgPSBwcm94
eS0+cHJvY2Vzc0lkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlucyhp
ZCkpOworICAgIG1fcHJveGllcy5zZXQoaWQsIFdURk1vdmUocHJveHkpKTsKK30KKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnJlbW92ZVByb3h5KGNvbnN0IFByb2Nlc3NJ
ZGVudGlmaWVyJiBpZCkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7Cisg
ICAgbV9wcm94aWVzLnJlbW92ZShpZCk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmdldFByb3h5KGNvbnN0IFByb2Nlc3NJZGVu
dGlmaWVyJiBpZCkKK3sKKyAgICBhdXRvIHJlc3VsdHMgPSBtX3Byb3hpZXMuZmluZChpZCk7Cisg
ICAgaWYgKHJlc3VsdHMgIT0gbV9wcm94aWVzLmVuZCgpKQorICAgICAgICByZXR1cm4gcmVzdWx0
cy0+dmFsdWUuZ2V0KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRDYXRlZ29yeUZvclByb2Nlc3MoY29uc3QgUHJvY2Vz
c0lkZW50aWZpZXImIGlkLCBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSwgUm91
dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5z
KGlkKSk7CisgICAgYXV0byBwcm94eSA9IGdldFByb3h5KGlkKTsKKyAgICBpZiAoIXByb3h5KQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAocHJveHktPmNhdGVnb3J5KCkgPT0gY2F0ZWdvcnkg
JiYgcHJveHktPnJvdXRlU2hhcmluZ1BvbGljeSgpID09IHBvbGljeSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgSGFzaENvdW50ZWRTZXQ8QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdURjo6
SW50SGFzaDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4sIFdURjo6U3Ryb25nRW51bUhhc2hU
cmFpdHM8QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+PiBjYXRlZ29yeUNvdW50czsKKyAgICBI
YXNoQ291bnRlZFNldDxSb3V0ZVNoYXJpbmdQb2xpY3ksIFdURjo6SW50SGFzaDxSb3V0ZVNoYXJp
bmdQb2xpY3k+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPFJvdXRlU2hhcmluZ1BvbGljeT4+
IHBvbGljeUNvdW50czsKKyAgICBmb3IgKGF1dG8mIG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFs
dWVzKCkpIHsKKyAgICAgICAgY2F0ZWdvcnlDb3VudHMuYWRkKG90aGVyUHJveHktPmNhdGVnb3J5
KCkpOworICAgICAgICBwb2xpY3lDb3VudHMuYWRkKG90aGVyUHJveHktPnJvdXRlU2hhcmluZ1Bv
bGljeSgpKTsKKyAgICB9CisKKyAgICBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9T
ZXNzaW9uOjpQbGF5QW5kUmVjb3JkKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246
OlBsYXlBbmRSZWNvcmQ7CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVk
aW9TZXNzaW9uOjpSZWNvcmRBdWRpbykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9u
OjpSZWNvcmRBdWRpbzsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRp
b1Nlc3Npb246Ok1lZGlhUGxheWJhY2spKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lv
bjo6TWVkaWFQbGF5YmFjazsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhB
dWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlv
U2Vzc2lvbjo6U29sb0FtYmllbnRTb3VuZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5j
b250YWlucyhBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZCkpCisgICAgICAgIGNhdGVnb3J5ID0g
QXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ7CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMu
Y29udGFpbnMoQXVkaW9TZXNzaW9uOjpBdWRpb1Byb2Nlc3NpbmcpKQorICAgICAgICBjYXRlZ29y
eSA9IEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nOworICAgIGVsc2UKKyAgICAgICAgY2F0
ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok5vbmU7CisKKyAgICBpZiAocG9saWN5Q291bnRzLmNvbnRh
aW5zKFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1WaWRlbykpCisgICAgICAgIHBvbGljeSA9
IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1WaWRlbzsKKyAgICBlbHNlIGlmIChwb2xpY3lD
b3VudHMuY29udGFpbnMoUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvKSkKKyAgICAg
ICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvOworICAgIGVsc2Ug
aWYgKHBvbGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6OkluZGVwZW5kZW50
KSkKKyAgICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpJbmRlcGVuZGVudDsKKyAg
ICBlbHNlCisgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdDsKKwor
ICAgIG1fc2Vzc2lvbi0+c2V0Q2F0ZWdvcnkoY2F0ZWdvcnksIHBvbGljeSk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9y
UHJvY2Vzcyhjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQsIHNpemVfdCBwcmVmZXJyZWRCdWZm
ZXJTaXplKQoreworICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1ZXMo
KSkgeworICAgICAgICBpZiAoIW90aGVyUHJveHkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgaWYgKG90aGVyUHJveHktPnByZWZlcnJlZEJ1ZmZlclNpemUoKSA8IHByZWZlcnJlZEJ1
ZmZlclNpemUpCisgICAgICAgICAgICBwcmVmZXJyZWRCdWZmZXJTaXplID0gb3RoZXJQcm94eS0+
cHJlZmVycmVkQnVmZmVyU2l6ZSgpOworICAgIH0KKworICAgIG1fc2Vzc2lvbi0+c2V0UHJlZmVy
cmVkQnVmZmVyU2l6ZShwcmVmZXJyZWRCdWZmZXJTaXplKTsKK30KKworYm9vbCBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI6OnRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyhjb25zdCBQcm9j
ZXNzSWRlbnRpZmllciYgaWQsIGJvb2wgYWN0aXZlKQoreworICAgIEFTU0VSVChtX3Byb3hpZXMu
Y29udGFpbnMoaWQpKTsKKyAgICBhdXRvIHByb3h5ID0gZ2V0UHJveHkoaWQpOworICAgIGlmICgh
cHJveHkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHNpemVfdCBhY3RpdmVQcm94eUNv
dW50IHsgMCB9OworICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1ZXMo
KSkgeworICAgICAgICBpZiAoIW90aGVyUHJveHkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgaWYgKG90aGVyUHJveHktPmlzQWN0aXZlKCkpCisgICAgICAgICAgICArK2FjdGl2ZVBy
b3h5Q291bnQ7CisgICAgfQorCisgICAgaWYgKCFhY3RpdmUgJiYgYWN0aXZlUHJveHlDb3VudCA+
IDEpIHsKKyAgICAgICAgLy8gVGhpcyBwcm94eSB3YW50cyB0byBkZS1hY3RpdmF0ZSwgYnV0IG90
aGVyIHByb3hpZXMgYXJlIHN0aWxsCisgICAgICAgIC8vIGFjdGl2ZS4gTm8tb3AsIGFuZCByZXR1
cm4gZGVhY3RpdmF0aW9uIHdhcyBzdWNlc3NmdWwuCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIGlmICghYWN0aXZlKSB7CisgICAgICAgIC8vIFRoaXMgcHJveHkgd2FudHMgdG8g
ZGUtYWN0aXZhdGUsIGFzIGlzIHRoZSBsYXN0IHJlbWFpbmluZyBhY3RpdmUKKyAgICAgICAgLy8g
cHJveHkuIERlYWN0aXZhdGUgdGhlIHNlc3Npb24sIGFuZCByZXR1cm4gd2hldGhlciB0aGF0IGRl
YWN0aXZhdGlvbgorICAgICAgICAvLyB3YXMgc3VjZXNzZnVsOworICAgICAgICByZXR1cm4gbV9z
ZXNzaW9uLT50cnlUb1NldEFjdGl2ZShmYWxzZSk7CisgICAgfQorCisgICAgaWYgKGFjdGl2ZSAm
JiAhYWN0aXZlUHJveHlDb3VudCkgeworICAgICAgICAvLyBUaGlzIHByb3h5IGFuZCBvbmx5IHRo
aXMgcHJveHkgd2FudHMgdG8gYmVjb21lIGFjdGl2ZS4gQWN0aXZhdGUKKyAgICAgICAgLy8gdGhl
IHNlc3Npb24sIGFuZCByZXR1cm4gd2hldGhlciB0aGF0IGFjdGl2YXRpb24gd2FzIHN1Y2Nlc3Nm
dWwuCisgICAgICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGFjdGl2ZSk7Cisg
ICAgfQorCisgICAgLy8gSWYgdGhpcyBwcm94eSBpcyBBbWJpZW50LCBhbmQgdGhlIHNlc3Npb24g
aXMgYWxyZWFkeSBhY3RpdmUsIHRoaXMKKyAgICAvLyBwcm94eSB3aXRoIG1peCB3aXRoIHRoZSBh
Y3RpdmUgcHJveGllcy4gTm8tb3AsIGFuZCByZXR1cm4gYWN0aXZhdGlvbgorICAgIC8vIHdhcyBz
dWNlc3NmdWwuCisgICAgaWYgKHByb3h5LT5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6QW1i
aWVudFNvdW5kKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgLy8gT3RoZXJ3aXNlLCB0aGlzIHByb3h5IHdhbnRzIHRvIGJlY29tZSBhY3RpdmUs
IGJ1dCB0aGVyZSBhcmUgb3RoZXIKKyAgICAvLyBwcm94aWVzIHdobyBhcmUgYWxyZWFkeSBhY3Rp
dmUuIFdhbGsgb3ZlciB0aGUgcHJveGllcywgYW5kIGludGVycnVwdAorICAgIC8vIHRob3NlIHBy
b3hpZXMgd2hvc2UgY2F0ZW9ncmllcyBpbmRpY2F0ZSB0aGV5IGNhbm5vdCBtaXggd2l0aCBvdGhl
cnMuCisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7Cisg
ICAgICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBp
ZiAoIW90aGVyUHJveHktPmlzQWN0aXZlKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICBpZiAob3RoZXJQcm94eS0+Y2F0ZWdvcnkoKSA9PSBBdWRpb1Nlc3Npb246OkFtYmllbnRT
b3VuZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIG90aGVyUHJveHktPmJlZ2lu
SW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpTeXN0
ZW1JbnRlcnJ1cHRpb24pOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7CisKK30K
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MTRiOTYxMTUwYmY5YTA5OGVhODU3OTc0ZDA5MTI0NThmZTE3OTgwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9u
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7CisKK2NsYXNzIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcgorICAgIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpOworICAg
IH5SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKTsKKworICAgIHZvaWQgYWRkUHJveHko
V2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4mJik7CisgICAgdm9pZCByZW1vdmVQcm94
eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYpOworICAgIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5KiBnZXRQcm94eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYpOwor
CisgICAgdm9pZCBzZXRDYXRlZ29yeUZvclByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXImLCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgV2ViQ29yZTo6
Um91dGVTaGFyaW5nUG9saWN5KTsKKyAgICB2b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQ
cm9jZXNzKGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJiwgc2l6ZV90KTsKKworICAg
IHVzaW5nIFNldEFjdGl2ZUNvbXBsZXRpb24gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PjsKKyAgICBib29sIHRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciYsIGJvb2wpOworCisgICAgY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9u
JiBzZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uOyB9CisKK3ByaXZhdGU6CisgICAg
VW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIEhhc2hNYXA8
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHk+PiBtX3Byb3hpZXM7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRiM2RlYzdjZDM5ZDAxMDJi
ODVmMGY5NWRmNGU0MzBmOWFlMTNmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CmluZGV4IDI1NmRjOTkwNWJmNDQ2NmQwYzJhZDU3NGQ4YzM2OGExNGJl
Njk2M2EuLjRiYTE0ZGJhZjI0YjI0MWU1OWRiMGE3ZjIwODBkMDJkMDI3YzNiMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjM0LDYgKzIzNCw3IEBAIGRl
ZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0
OjpNZWRpYVJlY29yZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25JZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6UmVtb3RlQXVkaW9TZXNz
aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUlkZW50aWZpZXInLAog
ICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZUlkZW50aWZpZXInLAogICAgICAgICAn
V2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25JZGVudGlmaWVyJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggZDA3ZjJiZjViMjFiNjIw
YjkxOTgxMDE5OTQwZTI3NDRlZDI1MDBjZC4uMTYzOGEyYzQ4NWU1ZDhlN2I3ODk2YWZhZGQzZDA4
YjkwMTYyNmY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXJndW1l
bnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KQEAgLTEwMjUs
NCArMTAyNiwxOCBAQCB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDRE1J
bnN0YW5jZTo6SERDUFN0YXR1cz4gewogCiAjZW5kaWYKIAordGVtcGxhdGUgPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+IHsKKyAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSwK
KyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kLAor
ICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5k
LAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNr
LAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbywK
KyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCwK
KyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5n
CisgICAgPjsKK307CisKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA2ZDBl
OGM2OGEwMjM4ODczYjY4NjQyMzgzZTViN2JjNWFhMDYzN2RjLi5kMDA2MjNhNjI5Njc4MWNhZDdk
Y2E2ZWJlMDVkMTk2M2FkNjY5NjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTIyLDExICsyMiwxNCBAQAog
Ly8gVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBHUFVQcm9jZXNzL0dQVVByb2Nl
c3MuY3BwCitHUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKIEdQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94
eS5jcHAKK0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCitHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1JbnN0YW5jZVByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5j
ZVNlc3Npb25Qcm94eS5jcHAKQEAgLTU0Niw2ICs1NDksNyBAQCBXZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVk
aW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24u
Y3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0uY3BwCiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVDRE1GYWN0b3J5LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RN
SW5zdGFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMGE3NzY5Mzk4NzllYjY5NWZm
YmZlYWZiZWQ4YmMyZjljNDRjZWZhNC4uNjQ0YmNiYzM1YjQ1OGY0M2U1M2JmYjEwYTkxZDM3YmM5
ODY1NjE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjU0LDYgKzY1NCw4IEBAIExpYldl
YlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCitS
ZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDUzZWRlNTY2ZDNkZThlOTk3NTRiOTY2MjU0NjRiNjFlYjE3NDhhMzguLjVm
NDhhODEzYWUyOTllZjVlYTRhZWQ3ZGMwZmE0YzMzMWVkMzYwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc0Myw2ICsxNzQzLDgg
QEAKIAkJQ0RBQzIwRjgyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RBQzIwRjUyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDREFDMjBGOTIzRkM3MjZDMDAyMURFRTMg
LyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQzIwRUMyM0ZDMzgz
ODAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKIAkJQ0RBQzIwRkEyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQUMyMEVGMjNGQzM4MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNEQkI0OUYwMjQwRDU3RDIwMDE3QzI5MiAvKiBHUFVQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQkI0OUVFMjQwRDU3RDIwMDE3QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCAqLzsgfTsKKwkJQ0RCQjQ5RkQyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQkI0OUZDMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uLmggKi87IH07CiAJCUNEQzI4MzFEMjAxQkQ3OUQwMEU2RTc0NSAvKiBXS0Z1
bGxzY3JlZW5TdGFja1ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQzI4MzFCMjAxQkQ3OUQwMEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1Zp
ZXcuaCAqLzsgfTsKIAkJQ0RDQTg1QzkxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEQ0E4NUM3MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyLmggKi87IH07CiAJCUNFMTFBRDUyMUNCQzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmlu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UxMUFE
NTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWduaW5nLmggKi87IH07CkBAIC01MDk0LDYgKzUw
OTYsMTcgQEAKIAkJQ0RBQzIwRjQyM0ZDMzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ0RNUHJveHlN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREFDMjBGNTIzRkMzODNC
MDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVDRE1JbnN0YW5jZVByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBQzIw
RjYyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ0RNSW5zdGFuY2VQ
cm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJC
NDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDREJCNDlFRjI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY0MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVB
dWRpb1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY1MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1v
dGVBdWRpb1Nlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjYyNDBEOEM5NTAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY3
MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEQkI0OUY4MjQwRDhENTMwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGQjI0MEQ5NzRB
MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNEQkI0OUZDMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDMjgzMUIyMDFCRDc5RDAwRTZF
NzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Z1bGxzY3Jl
ZW5TdGFja1ZpZXcuaDsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbHNjcmVlblN0YWNrVmll
dy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREMyODMxQzIwMUJENzlEMDBFNkU3
NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tG
dWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsc2NyZWVu
U3RhY2tWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREMzODJGNzE3MjEx
NTA2MDA4QTJGQzMgLyogQ0ZOZXR3b3JrLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ0ZO
ZXR3b3JrLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NGTmV0
d29yay5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CkBAIC01MTAxLDYg
KzUxMTQsMTcgQEAKIAkJQ0RDQTg1QzYxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4NUQ0
MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IElP
S2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0lPS2l0LmZy
YW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKKwkJQ0RENTM1NkYyNDBERDM0
MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVB
dWRpb1Nlc3Npb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
RDUzNTcwMjQwREQ0RUYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4
QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3MjI0MERERTA2MDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNERDUzNTczMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RENTM1NzQyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1l
c3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdl
c1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzUyNDBEREUw
NzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzcyNDBE
REUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc4MjQwRERFMDgwMEY3QjhDNCAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDREQ1MzU3OTI0MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRTExQUQ0RjFDQkM0N0Y4MDA2ODFFRTUgLyogQ29kZVNpZ25pbmcu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb2RlU2lnbmluZy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UxMUFENTExQ0JDNDgyRjAwNjgxRUU1
IC8qIENvZGVTaWduaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvZGVT
aWduaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFMUEwQkNDMUE0OEU2QzYw
MDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNTM3OCw2ICs1NDAyLDExIEBACiAJCQkJOUI1QkVDMjkyNDAxMDE1ODAwNzBDNkVG
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgKi8sCiAJCQkJOUI1QkVDMjgyNDAx
MDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oICovLAogCQkJCTlC
NUJFQzJFMjQwMTAxOEMwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkubWVz
c2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjUyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlv
U2Vzc2lvbi5jcHAgKi8sCisJCQkJQ0RCQjQ5RjQyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1
ZGlvU2Vzc2lvbi5oICovLAorCQkJCUNERDUzNTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjky
IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAqLywKKwkJCQlDREJCNDlGQjI0
MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oICovLAogCQkJ
CUNEQUMyMEJGMjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE0uY3BwICovLAogCQkJCUNEQUMy
MEJBMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1vdGVDRE0uaCAqLywKIAkJCQlDREFDMjBCODIzRkMy
RjczMDAyMURFRTMgLyogUmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oICovLApAQCAtNTQyMCw2ICs1
NDQ5LDEyIEBACiAJCQkJOUIxMjI5Q0MyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5QjEyMjlDQjIzRkYyNUYyMDA4Q0E3NTEgLyog
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCAqLywKIAkJCQk5QjEyMjlDRjIzRkYyODE0
MDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8s
CisJCQkJQ0RCQjQ5RjcyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
LmNwcCAqLywKKwkJCQlDREJCNDlGNjI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuaCAqLywKKwkJCQlDREJCNDlGODI0MEQ4RDUzMDAxN0MyOTIgLyogUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAgKi8sCisJCQkJQ0RCQjQ5
RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oICov
LAorCQkJCUNERDUzNTcwMjQwREQ0RUYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDcxQkM1N0UyM0NBNURCMTAwNjgwRDdDIC8q
IFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJMDcxQkM1N0YyM0NBNURCMTAwNjgw
RDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oICovLAogCQkJCUNEQUMyMDc5MjNGQjFFMjEw
MDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwICovLApAQCAtNjcwNiw2ICs2NzQx
LDggQEAKIAkJCQkyRDlGQjIwQzIzNzUyMDlEMDA0OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAgKi8sCiAJCQkJMkQ5RkIyMDAyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQkyRDlGQjIwOTIzNzUyMDlEMDA0OUY5MzYgLyog
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlFRjI0
MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLywKKwkJCQlDREJC
NDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggKi8sCiAJCQkJ
MkQ5RkIyMDEyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3MuY3BwICovLAogCQkJCTJEOUZC
MjE1MjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9jZXNzLmggKi8sCiAJCQkJMkQ5RkIyMDIyMzc1
MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCkBAIC05ODMxLDYgKzk4
NjgsMTUgQEAKIAkJCQkxQTA0M0I1QzEyNEQ1RTlEMDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCAqLywKIAkJCQkxQThFRkE2RTEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2lu
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBOEVGQTZGMTI1MkI4NDEwMEY3MDY3
RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzYyNDBEREUwNzAwRjdC
OEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJQ0RE
NTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmggKi8s
CisJCQkJQ0RENTM1NzQyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3Nh
Z2VzUmVwbGllcy5oICovLAorCQkJCUNERDUzNTczMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUz
NTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNz
YWdlcy5oICovLAorCQkJCUNERDUzNTc5MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQlDREQ1MzU3MTI0MERE
RTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCUNERDUzNTcyMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJQ0RBQzIwRjIyM0ZD
MzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCiAJCQkJQ0RBQzIwRjMyM0ZDMzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94
eU1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBQzIwRUUyM0ZDMzgzOTAwMjFERUUzIC8qIFJlbW90ZUNE
TUZhY3RvcnlQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovLApAQCAtMTA1MzQsNiArMTA1ODAsNyBA
QAogCQkJCUJDMDZGNDRBMTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzA2RjQzQTEyREJDQ0ZC
MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggaW4g
SGVhZGVycyAqLywKKwkJCQlDREJCNDlGMDI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1T
dHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREEwNDlCODE4MENDRDBBMDBBQUZBOUUg
LyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMENFNzJBRDEy
NDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFD
NzVBMUIxQjMzNjgyNzAwNTY3NDVCIC8qIEhhbmdEZXRlY3Rpb25EaXNhYmxlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMDc1Miw2ICsxMDc5OSw3IEBACiAJCQkJOUIxMjI5RDIyM0ZGMkJDQzAwOENB
NzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5QjEyMjlDRDIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCNUJFQzJBMjQwMTAxNTgwMDcwQzZFRiAvKiBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEQkI0OUZE
MjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDREFDMjBDNzIzRkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDNTIzRkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RN
Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQ0QyM0ZDMkY3NTAwMjFE
RUUzIC8qIFJlbW90ZUNETUZhY3RvcnkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNiMWUzODM5N2EyYzRmZjk2MjY4YmJlZDJmOTg1OWUyNzE4MzY1ZGUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb24uaCIKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIkdQVVByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK1VuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb24+IFJlbW90ZUF1ZGlv
U2Vzc2lvbjo6Y3JlYXRlKFdlYlByb2Nlc3MmIHByb2Nlc3MpCit7CisgICAgUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uOworICAgIHByb2Nlc3MuZW5zdXJlR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkVuc3VyZUF1ZGlvU2Vzc2lvbigpLCBNZXNzYWdlczo6R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RW5zdXJlQXVkaW9TZXNzaW9uOjpSZXBseShjb25maWd1
cmF0aW9uKSwgeyB9KTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Np
b24+KHByb2Nlc3MsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOworfQorCitSZW1vdGVBdWRpb1Nl
c3Npb246OlJlbW90ZUF1ZGlvU2Vzc2lvbihXZWJQcm9jZXNzJiBwcm9jZXNzLCBSZW1vdGVBdWRp
b1Nlc3Npb25Db25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKKyAgICA6IG1fcHJvY2Vzcyhw
cm9jZXNzKQorICAgICwgbV9jb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpCit7
Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvbjo6flJlbW90ZUF1ZGlvU2Vzc2lvbigpID0gZGVmYXVs
dDsKKworSVBDOjpDb25uZWN0aW9uJiBSZW1vdGVBdWRpb1Nlc3Npb246OmNvbm5lY3Rpb24oKQor
eworICAgIHJldHVybiBtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25u
ZWN0aW9uKCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRl
Z29yeVR5cGUgdHlwZSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBjb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlNldENhdGVnb3J5
KHR5cGUsIHBvbGljeSksIHsgfSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQ
cmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBzaXplKQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6U2V0UHJlZmVycmVkQnVmZmVyU2l6
ZShzaXplKSwgeyB9KTsKK30KKworYm9vbCBSZW1vdGVBdWRpb1Nlc3Npb246OnRyeVRvU2V0QWN0
aXZlSW50ZXJuYWwoYm9vbCBhY3RpdmUpCit7CisgICAgYm9vbCBzdWNjZWVkZWQ7CisgICAgY29u
bmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6VHJ5
VG9TZXRBY3RpdmUoYWN0aXZlKSwgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpU
cnlUb1NldEFjdGl2ZTo6UmVwbHkoc3VjY2VlZGVkKSwgeyB9KTsKKyAgICByZXR1cm4gc3VjY2Vl
ZGVkOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29uZmlndXJhdGlvbkNoYW5nZWQo
UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit7CisgICAg
Ym9vbCBtdXRlZFN0YXRlQ2hhbmdlZCA9IGNvbmZpZ3VyYXRpb24uaXNNdXRlZCAhPSBtX2NvbmZp
Z3VyYXRpb24uaXNNdXRlZDsKKworICAgIG1fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247
CisKKyAgICBpZiAobXV0ZWRTdGF0ZUNoYW5nZWQpCisgICAgICAgIGhhbmRsZU11dGVkU3RhdGVD
aGFuZ2UoKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OmJlZ2luSW50ZXJydXB0aW9u
KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCit7CisgICAgUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuYmVnaW5JbnRlcnJ1cHRp
b24odHlwZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjplbmRJbnRlcnJ1cHRpb24o
UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzIGZsYWdzKQoreworICAg
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmVuZEludGVycnVw
dGlvbihmbGFncyk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
ZWUzMTBmNWY5MmY1NWJlNTVhNDA0NjFiYjNlYTU5YzQ4ZmVmZjgyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24u
aApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRl
ICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg+
CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgV2ViUHJvY2VzczsK
KworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uIGZpbmFsCisgICAgOiBwdWJsaWMgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uCisgICAgLCBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxSZW1vdGVBdWRp
b1Nlc3Npb24+IGNyZWF0ZShXZWJQcm9jZXNzJik7CisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9T
ZXNzaW9uKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nl
c3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UmVtb3RlQXVk
aW9TZXNzaW9uPihXZWJQcm9jZXNzJiwgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYm
KTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb24oV2ViUHJvY2VzcyYsIFJlbW90ZUF1ZGlvU2Vzc2lv
bkNvbmZpZ3VyYXRpb24mJik7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCk7CisK
KyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdl
cworICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmln
dXJhdGlvbiYmKTsKKyAgICB2b2lkIGJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlKTsKKyAgICB2b2lkIGVuZEludGVycnVwdGlv
bihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MpOwor
CisgICAgLy8gQXVkaW9TZXNzaW9uCisgICAgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUs
IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSkgZmluYWw7CisgICAgdm9pZCBzZXRQcmVmZXJy
ZWRCdWZmZXJTaXplKHNpemVfdCkgZmluYWw7CisgICAgYm9vbCB0cnlUb1NldEFjdGl2ZUludGVy
bmFsKGJvb2wpIGZpbmFsOworCisgICAgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmNhdGVnb3J5OyB9CisgICAgV2ViQ29yZTo6Um91
dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fY29uZmlndXJhdGlvbi5yb3V0ZVNoYXJpbmdQb2xpY3k7IH0KKyAgICBTdHJpbmcgcm91dGlu
Z0NvbnRleHRVSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24ucm91dGlu
Z0NvbnRleHRVSUQ7IH0KKyAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9jb25maWd1cmF0aW9uLnNhbXBsZVJhdGU7IH0KKyAgICBzaXplX3QgYnVmZmVyU2l6ZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5idWZmZXJTaXplOyB9CisgICAg
c2l6ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nv
bmZpZ3VyYXRpb24ubnVtYmVyT2ZPdXRwdXRDaGFubmVsczsgfQorICAgIHNpemVfdCBwcmVmZXJy
ZWRCdWZmZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnByZWZl
cnJlZEJ1ZmZlclNpemU7IH0KKyAgICBib29sIGlzTXV0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NvbmZpZ3VyYXRpb24uaXNNdXRlZDsgfQorICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uaXNBY3RpdmU7IH0KKworICAgIFdlYlByb2Nl
c3MmIG1fcHJvY2VzczsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIG1fY29u
ZmlndXJhdGlvbjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNhYWVhZDJjNzJmNDMyMjcxMDdkN2JmZmZlZTcyMTFmYzc3NWQw
ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9T
ZXNzaW9uIE5vdFJlZkNvdW50ZWQgeworICAgIENvbmZpZ3VyYXRpb25DaGFuZ2VkKHN0cnVjdCBX
ZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKKyAg
ICBCZWdpbkludGVycnVwdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNl
c3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkKKyAgICBFbmRJbnRlcnJ1cHRpb24oZW51bTp1
aW50OF90IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFn
cyBmbGFncykKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlv
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdiYWIxNTQ3ZGIxZGU0OTAwMTkwMmJhYmM1YjY0MTczYWNmZTAxOTMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVj
dCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIHsKKworICAgIFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5OworICAgIFdlYkNvcmU6OlJvdXRlU2hhcmlu
Z1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlE
OworICAgIGZsb2F0IHNhbXBsZVJhdGU7CisgICAgdWludDY0X3QgYnVmZmVyU2l6ZTsKKyAgICB1
aW50NjRfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzOworICAgIHVpbnQ2NF90IHByZWZlcnJlZEJ1
ZmZlclNpemU7CisgICAgYm9vbCBpc011dGVkOworICAgIGJvb2wgaXNBY3RpdmU7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IGNhdGVnb3J5OworICAgICAgICBlbmNv
ZGVyIDw8IHJvdXRlU2hhcmluZ1BvbGljeTsKKyAgICAgICAgZW5jb2RlciA8PCByb3V0aW5nQ29u
dGV4dFVJRDsKKyAgICAgICAgZW5jb2RlciA8PCBzYW1wbGVSYXRlOworICAgICAgICBlbmNvZGVy
IDw8IGJ1ZmZlclNpemU7CisgICAgICAgIGVuY29kZXIgPDwgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
czsKKyAgICAgICAgZW5jb2RlciA8PCBwcmVmZXJyZWRCdWZmZXJTaXplOworICAgICAgICBlbmNv
ZGVyIDw8IGlzTXV0ZWQ7CisgICAgICAgIGVuY29kZXIgPDwgaXNBY3RpdmU7CisgICAgfQorCisg
ICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+CisgICAgc3RhdGljIE9wdGlvbmFsPFJlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsK
KyAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+IGNh
dGVnb3J5OworICAgICAgICBkZWNvZGVyID4+IGNhdGVnb3J5OworICAgICAgICBpZiAoIWNhdGVn
b3J5KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25h
bDxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHJvdXRlU2hhcmluZ1BvbGljeTsKKyAgICAg
ICAgZGVjb2RlciA+PiByb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgICAgIGlmICghcm91dGVTaGFy
aW5nUG9saWN5KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBP
cHRpb25hbDxTdHJpbmc+IHJvdXRpbmdDb250ZXh0VUlEOworICAgICAgICBkZWNvZGVyID4+IHJv
dXRpbmdDb250ZXh0VUlEOworICAgICAgICBpZiAoIXJvdXRpbmdDb250ZXh0VUlEKQorICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxmbG9hdD4gc2Ft
cGxlUmF0ZTsKKyAgICAgICAgZGVjb2RlciA+PiBzYW1wbGVSYXRlOworICAgICAgICBpZiAoIXNh
bXBsZVJhdGUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9w
dGlvbmFsPHVpbnQ2NF90PiBidWZmZXJTaXplOworICAgICAgICBkZWNvZGVyID4+IGJ1ZmZlclNp
emU7CisgICAgICAgIGlmICghYnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IG51bWJlck9mT3V0cHV0Q2hhbm5l
bHM7CisgICAgICAgIGRlY29kZXIgPj4gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKKyAgICAgICAg
aWYgKCFudW1iZXJPZk91dHB1dENoYW5uZWxzKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgICAgICBPcHRpb25hbDx1aW50NjRfdD4gcHJlZmVycmVkQnVmZmVyU2l6ZTsK
KyAgICAgICAgZGVjb2RlciA+PiBwcmVmZXJyZWRCdWZmZXJTaXplOworICAgICAgICBpZiAoIXBy
ZWZlcnJlZEJ1ZmZlclNpemUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgICAgIE9wdGlvbmFsPGJvb2w+IGlzTXV0ZWQ7CisgICAgICAgIGRlY29kZXIgPj4gaXNNdXRl
ZDsKKyAgICAgICAgaWYgKCFpc011dGVkKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgICAgICBPcHRpb25hbDxib29sPiBpc0FjdGl2ZTsKKyAgICAgICAgZGVjb2RlciA+
PiBpc0FjdGl2ZTsKKyAgICAgICAgaWYgKCFpc0FjdGl2ZSkKKyAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHt7CisgICAgICAgICAgICBXVEZNb3ZlKCpj
YXRlZ29yeSksCisgICAgICAgICAgICBXVEZNb3ZlKCpyb3V0ZVNoYXJpbmdQb2xpY3kpLAorICAg
ICAgICAgICAgV1RGTW92ZSgqcm91dGluZ0NvbnRleHRVSUQpLAorICAgICAgICAgICAgKnNhbXBs
ZVJhdGUsCisgICAgICAgICAgICAqYnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICpudW1iZXJPZk91
dHB1dENoYW5uZWxzLAorICAgICAgICAgICAgKnByZWZlcnJlZEJ1ZmZlclNpemUsCisgICAgICAg
ICAgICAqaXNNdXRlZCwKKyAgICAgICAgICAgICppc0FjdGl2ZSwKKyAgICAgICAgfX07CisgICAg
fQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbklkZW50
aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiODNiMzI2ZmVkZmY4NzM3ZGYxOGI1Y2Ji
YWNjMjQ5YjVlOGM3ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworZW51bSBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBS
ZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxSZW1vdGVBdWRp
b1Nlc3Npb25JZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVk
aWFTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1l
ZGlhU3RyYXRlZ3kuY3BwCmluZGV4IDVkN2E4YjhkMTEyNGIyYTUyOGFkNzNiZGM5NmQ5YTk3ODBk
YzIwNGMuLjNkYTI3M2YzNzhmY2MwMmE1MjVlYmM1ZjViMzE4ZTMwYzU0YmMxYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0
ZWd5LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCIKKyNpbmNsdWRl
ICJSZW1vdGVBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZW1vdGVDRE1GYWN0b3J5LmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlv
bi5oPgpAQCAtMzYsMjIgKzM3LDI0IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKwogV2ViTWVkaWFTdHJhdGVneTo6fldlYk1lZGlhU3RyYXRlZ3ko
KSA9IGRlZmF1bHQ7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVz
dGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5n
JiBpbnB1dERldmljZUlkLAorc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IFdlYk1l
ZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxs
YmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgIHVuc2lnbmVkIG51bWJlck9m
SW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2Ft
cGxlUmF0ZSkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fdXNlR1BVUHJv
Y2VzcykKICAgICAgICAgcmV0dXJuIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6Y3JlYXRl
KGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9m
T3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogI2VuZGlmCi0gICAgcmV0dXJuIFdlYkNvcmU6
OkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAg
ICByZXR1cm4gTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihjYWxsYmFjaywg
aW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBzYW1wbGVSYXRlKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKLXZvaWQgV2ViTWVkaWFTdHJhdGVneTo6cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPFdl
YkNvcmU6OkNETUZhY3RvcnkqPiYgZmFjdG9yaWVzKQordm9pZCBXZWJNZWRpYVN0cmF0ZWd5Ojpy
ZWdpc3RlckNETUZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMpCiB7CiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpIHsKQEAgLTU5
LDggKzYyLDE3IEBAIHZvaWQgV2ViTWVkaWFTdHJhdGVneTo6cmVnaXN0ZXJDRE1GYWN0b3JpZXMo
VmVjdG9yPFdlYkNvcmU6OkNETUZhY3RvcnkqPiYgZmFjdG9yCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAjZW5kaWYKLSAgICBXZWJDb3JlOjpDRE1GYWN0b3J5OjpwbGF0Zm9ybVJlZ2lzdGVyRmFj
dG9yaWVzKGZhY3Rvcmllcyk7CisgICAgTWVkaWFTdHJhdGVneTo6cmVnaXN0ZXJDRE1GYWN0b3Jp
ZXMoZmFjdG9yaWVzKTsKIH0KICNlbmRpZgogCitVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBXZWJN
ZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb1Nlc3Npb24oKQoreworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKyAgICBpZiAobV91c2VHUFVQcm9jZXNzKQorICAgICAgICByZXR1cm4gUmVtb3RlQXVk
aW9TZXNzaW9uOjpjcmVhdGUoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkpOworI2VuZGlmCisgICAg
cmV0dXJuIE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKaW5kZXggNGZhYjBlOTQ0ZmMxNGU2ODQzNzllMzAwODE2
M2JlMTYyZGQ4OWI0ZC4uYWE0MWJmMjk0ZmJmODIzYzVhYWMwZGI1YTcwNmU1Y2MyYjY4NmY0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0
cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRp
YVN0cmF0ZWd5LmgKQEAgLTQ2LDYgKzQ2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVy
Q0RNRmFjdG9yaWVzKFZlY3RvcjxXZWJDb3JlOjpDRE1GYWN0b3J5Kj4mKSBvdmVycmlkZTsKICNl
bmRpZgogCisgICAgVW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbj4gY3JlYXRlQXVkaW9T
ZXNzaW9uKCkgb3ZlcnJpZGU7CisKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgYm9vbCBt
X3VzZUdQVVByb2Nlc3MgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMubW0KaW5kZXggYjkwOWVjYzQzOWJjZDNjNmY2ZGE4MDQxYzZlZjI5M2ZmMzQ2Njk2Zi4uNmI0
NzNjZTkzYWI4ZWVjOTFkOTNiNzA4NzA0M2ViYTc4MzVmMTZkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5tbQpAQCAtNjUsMjYgKzY1LDkgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiAgICAgcmV0dXJu
IHRoaXM7CiB9CiAKLWNsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFT
dHJhdGVneSB7Ci1wcml2YXRlOgotI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgc3RkOjp1bmlx
dWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0Nh
bGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAotICAgICAgICB1
bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hh
bm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlCi0gICAgewotICAgICAgICByZXR1cm4g
QXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJP
ZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwotICAg
IH0KLSNlbmRpZgotI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0gICAgdm9pZCByZWdpc3Rl
ckNETUZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMpIG92ZXJyaWRlCi0g
ICAgewotICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3RvcmllcyhmYWN0b3JpZXMpOwotICAgIH0KLSNlbmRpZgotfTsKLQogTWVkaWFTdHJhdGVn
eSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkKIHsKLSAgICBy
ZXR1cm4gbmV3IFdlYk1lZGlhU3RyYXRlZ3k7CisgICAgcmV0dXJuIG5ldyBNZWRpYVN0cmF0ZWd5
OwogfQogCiBjbGFzcyBXZWJCbG9iUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lzdHJ5
IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392454</attachid>
            <date>2020-03-04 12:10:55 -0800</date>
            <delta_ts>2020-03-04 12:38:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200304121054.patch</filename>
            <type>text/plain</type>
            <size>105575</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkODA0MjkxNDkyNWFlNWJmYTc5ZWZj
ZmUxYTMwZDc5YjU1Yjg3NjEuLjcxNWExOGJmMDQzMDAxYjE3ZjUyODUyMzQ4OGUyNmYwOGIxNWU1
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBV
bmlxdWVSZWYgdG8gdGhlIGxpc3Qgb2YgZm9yd2FyZC1kZWNsYXJlZCB0ZW1wbGF0ZSB0eXBlcy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisKIDIwMjAtMDMtMDMgIEppdGVuIE1laHRhICA8
am1laHRhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBIVFRQIEFsdGVybmF0aXZlIFNlcnZp
Y2VzIFN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTFkOTE0MmI0MWVkYzIwNDViMDFkNzE4YzYzZjE0
MTBhNmM0MjNhLi4xZGI3MGE2NmUxYmRhOThiYTJkNTU3ZGFmNGYxNDg3M2UyODY1ZGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
biBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5IHdoaWNoIHByb3ZpZGVzIGRlZmF1bHQg
aW1wbGVtZW50YXRpb25zIG9mIHRoZQorICAgICAgICBwbGF0Zm9ybSBjcmVhdGlvbiBtZXRob2Rz
LCBzbyB0aGV5IGRvbid0IG5lZWQgdG8gYmUgcmUtaW1wbGVtZW50ZWQgYnkgZWFjaCBjbGllbnQg
dW5sZXNzCisgICAgICAgIHRoYXQgY2xpZW50IG5lZWRzIHRvIG92ZXJyaWRlIHRoYXQgYmVoYXZp
b3IuCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUgZW51bWVyYXRpb25zIGlu
c2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1ZGlvU2Vzc2lvbiBtZXRo
b2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGNhc2Ugd2hlcmUg
dGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0
ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb24uaDoKKwogMjAyMC0wMi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUF0gSW1wbGVtZW50IE1vZGVybiBFTUUgQVBJIGluIHRoZSBHUFUgUHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA0NTBlN2UzNTJmM2VhYjhmMzU2MGUxNjViNzNhYmU5M2MwODQ2OTA4
Li5lMjEzNWE3ZjM1YmY0Yjg0MzQxNzVjYmU4MWQ3YTdmMTE1YTM2NjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDk1IEBACisyMDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdWJjbGFzcyBv
ZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBhdWRpbyBiZWhh
dmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAgICAgYXVkaW8g
YmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJvY2Vzcywgc2lu
Y2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFsbHkKKyAgICAg
ICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAgICAgICAgRHVl
IHRvIHRoZSB3YXkgQXVkaW9TZXNzaW9uIG5vdyByZXF1aXJlcyB0aGUgUGxhdGZvcm1TdHJhdGVn
aWVzIG9iamVjdCB0byBjcmVhdGUgYSBjb25jcmV0ZSBBdWRpb1Nlc3Npb24sIHRoZSBHUFUKKyAg
ICAgICAgcHJvY2VzcyBuZWVkcyBpdHMgb3duIFBsYXRmb3JtU3RyYXRlZ2llcyBzdWJjbGFzcywg
YnV0IHVzaW5nIHRoZSBkZWZhdWx0IE1lZGlhU3RyYXRlZ3kgZnJvbSBXZWJDb3JlLgorCisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKToKKyAg
ICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVB
dWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpsZWdhY3lDZG1GYWN0b3J5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZUxvYWRlclN0cmF0ZWd5KToKKyAgICAgICAgKFdlYktpdDo6R1BV
UGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3kpOgorICAgICAgICAo
V2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorICAg
ICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Ojppbml0aWFsaXplR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmF1
ZGlvU2Vzc2lvbk1hbmFnZXIgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Ojpwcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6ZW5kSW50ZXJydXB0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbik6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnJvdXRl
U2hhcmluZ1BvbGljeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjpwcmVmZXJyZWRCdWZmZXJTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmdldFByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRDYXRlZ29yeUZvclByb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNl
dFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2Vzc2lv
biBjb25zdCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uOjpSZW1vdGVBdWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb246OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
OjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmg6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmg6CisKIDIwMjAtMDItMjMgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIEltcGxlbWVudCBNb2Rlcm4gRU1FIEFQ
SSBpbiB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4ODZk
ZGVhNWY2ZjAzMmU5YTg4MjZlZjFkYjYwMDc0YmI2OTc3MGQyLi45OTlkYmRiNzlkNzhmZTM2YzJi
YTY0ODUwYzk1YzQyM2UwNGU4MDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUgZGVmYXVsdCBN
ZWRpYVN0cmF0ZWd5IGZyb20gV2ViQ29yZSBub3cgdGhhdCBpdCdzIGF2YWlsYWJsZS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisKIDIwMjAtMDMt
MDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEl0ZW1zIGluIHRoZSB0b29sYmFyIHRha2UgdXAgdG8gbXVjaCB2ZXJ0aWNhbCBzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYv
Rm9yd2FyZC5oCmluZGV4IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThmNzAzYThmMGQu
LjZlOTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAg
LTY4LDYgKzY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBEdW1iUHRyVHJh
aXRzPFQ+PiBjbGFzcyBSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IER1bWJQ
dHJUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJp
bmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBjbGFzcyBTdHJp
bmdUeXBlQWRhcHRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1ZVJlZjsKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBz
dHJ1Y3QgRGVmYXVsdEhhc2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEyNSw2ICsxMjYs
NyBAQCB1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3NpdGlvbjsKIHVz
aW5nIFdURjo6VGV4dFN0cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RGOjpVbmlxdWVS
ZWY7CiB1c2luZyBXVEY6OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCBhNzIxZmJiMWFkOGE1YWE2YmRhMDliNjNiM2EyYTlkOTk3YzkxMTJmLi4wMDZlMzhh
YjY5MGE1Njg1Njk4ZDc3M2QzOGViZDRlZTEyMmNhM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc0
MCw2ICsxNzQwLDcgQEAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKIHBsYXRmb3JtL0xvd1Bvd2VyTW9k
ZU5vdGlmaWVyLmNwcAogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKIHBsYXRmb3JtL01h
aW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKK3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCiBwbGF0
Zm9ybS9Ob3RJbXBsZW1lbnRlZC5jcHAKIHBsYXRmb3JtL1Bhc3RlYm9hcmQuY3BwCiBwbGF0Zm9y
bS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZjAyM2ViZDRlZGRiZjY5MzQwNTcyMzY5
N2FkZTliZjUzOTY4NTg5Li5iNzY1NTk3M2U3MDM0MTI4ODViODk1NGM2ZjllZDI2ZWFmYTI0NGIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzk4Nyw2ICsxMzk4Nyw3IEBACiAJCUNEQUU4QzA4MTc0NkI5NTcwMDUzMkQ3OCAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVh
bWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDRE1GYWlyUGxheVN0cmVhbWluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREI3MDQ1OTFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBs
YXlTdHJlYW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0My
OTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmF0ZWd5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNEMjgxRkU4NUNCODAwMTJD
NTQ1IC8qIFZpZGVvQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlk
ZW9Db25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNE
MjkxRkU4NUNCOTAwMTJDNTQ1IC8qIE1lZGlhQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RCRDNEMkExRkU4NUNCQTAwMTJDNTQ1IC8qIE1lZGlhRW5jb2RpbmdDb25maWd1
cmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUVuY29kaW5nQ29uZmlndXJh
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTk2NCw2ICsyNTk2NSw3
IEBACiAJCQkJQ0Q2NDFFQzcxODFFRDYwMTAwRUU0QzQxIC8qIE1lZGlhU2FtcGxlLmggKi8sCiAJ
CQkJQTE3RDI3NUQxRUFDNTc5ODAwQkYwMUU3IC8qIE1lZGlhU2VsZWN0aW9uT3B0aW9uLmggKi8s
CiAJCQkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKKwkJ
CQlDREJCNDlGMjI0MEQ4NjUyMDAxN0MyOTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8sCiAJCQkJ
QkM3NzJDNEMwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuY3BwICovLAogCQkJ
CUJDNzcyQzREMEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi8sCiAJCQkJ
RTE1MTNENTAxNjc3RjA4ODAwMTQ5RkNCIC8qIE5vdEltcGxlbWVudGVkLmNwcCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdjMjRjZDA2
MDMxMzVlNGVjZjFmY2VlYTBkMTAwZjE3YmU1ZDgxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgorCisjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lv
bi5oIgorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJDRE1GYWN0b3J5
LmgiCisjaW5jbHVkZSAiTGVnYWN5Q0RNLmgiCisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKK1VuaXF1ZVJl
ZjxBdWRpb1Nlc3Npb24+IE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpCit7Cisg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJM
RShXRUJfQVVESU8pCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gTWVkaWFTdHJh
dGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KQoreworICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0
RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
c2FtcGxlUmF0ZSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCit2
b2lkIE1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5
Kj4mIGZhY3RvcmllcykKK3sKKyAgICByZXR1cm4gQ0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3RvcmllcyhmYWN0b3JpZXMpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU3RyYXRlZ3kuaAppbmRleCA2MGE1ODQ3YzhjZWMxMGI3OWI3NDlhNmZhZjg1MDNk
MTZhMTk5Yjk1Li5jZGM0ODVjZjQ0MDI3MDJjOWJhNTAxYTNiMGI0YmY2MjdkNDY4YmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCkBAIC0zMSwxNiArMzEsMjAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uOwogY2xhc3MgQXVk
aW9JT0NhbGxiYWNrOworY2xhc3MgQXVkaW9TZXNzaW9uOwogY2xhc3MgQ0RNRmFjdG9yeTsKIAog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CisjaWYgVVNFKEFV
RElPX1NFU1NJT04pCisgICAgdmlydHVhbCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBjcmVhdGVB
dWRpb1Nlc3Npb24oKTsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bigKLSAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKKyAgICAgICAgQXVkaW9JT0NhbGxiYWNr
JiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpOwogI2Vu
ZGlmCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+TWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4
IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNmMmY1N2QuLjQ2ZWM3M2RlYTgyNWNh
M2M2MjJiMTJlYmFmZTczMTNlNmZjMDM0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMjgsMTUgKzI4LDIyIEBACiAKICNpZiBVU0Uo
QVVESU9fU0VTU0lPTikKIAorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1VuaXF1
ZVJlZjxBdWRpb1Nlc3Npb24+IEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
bWFrZVVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+KCk7Cit9CisKIEF1ZGlvU2Vzc2lvbiYgQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXVk
aW9TZXNzaW9uPiBzZXNzaW9uOwotICAgIHJldHVybiBzZXNzaW9uOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPj4gc2Vzc2lvbiA9IHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkuY3JlYXRlQXVkaW9TZXNzaW9uKCk7CisgICAgcmV0
dXJuIHNlc3Npb24uZ2V0KCk7CiB9CiAKIGJvb2wgQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2
ZShib29sIGFjdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uLmgKaW5kZXggZTcwMDgyMmZmMWZlZWJkNzgyOWFlYzc1MGNjZTQwYTYwYjkyNTY2YS4uY2Zj
NDEzODYwMjVlN2E2NDhhYzJlM2I2M2I5NjVmYTQzZDU0M2QyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDQsMTMgKzQ1LDE3IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdCB7
CiAgICAgTG9uZ0Zvcm1WaWRlbwogfTsKIAotY2xhc3MgQXVkaW9TZXNzaW9uIGZpbmFsIHsKK2Ns
YXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9TZXNzaW9uKTsKKyAgICBmcmll
bmQgY2xhc3MgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj47CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxB
dWRpb1Nlc3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8QXVk
aW9TZXNzaW9uPigpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1Nl
c3Npb24mIHNoYXJlZFNlc3Npb24oKTsKKyAgICBzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lv
bj4gY3JlYXRlKCk7CisgICAgc3RhdGljIEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOwor
ICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgewor
ICAgIGVudW0gQ2F0ZWdvcnlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAg
IEFtYmllbnRTb3VuZCwKICAgICAgICAgU29sb0FtYmllbnRTb3VuZCwKQEAgLTU5LDIzICs2NCwy
MyBAQCBwdWJsaWM6CiAgICAgICAgIFBsYXlBbmRSZWNvcmQsCiAgICAgICAgIEF1ZGlvUHJvY2Vz
c2luZywKICAgICB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdv
cnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpOwotICAgIFdFQkNPUkVfRVhQT1JUIENhdGVnb3J5
VHlwZSBjYXRlZ29yeSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRl
Z29yeVR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdmlydHVhbCBDYXRlZ29yeVR5cGUg
Y2F0ZWdvcnkoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29y
eVR5cGUpOwogICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3Q7CiAKLSAg
ICBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7Ci0gICAgU3Ry
aW5nIHJvdXRpbmdDb250ZXh0VUlEKCkgY29uc3Q7CisgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQ
b2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgcm91
dGluZ0NvbnRleHRVSUQoKSBjb25zdDsKIAotICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsK
LSAgICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZk91dHB1
dENoYW5uZWxzKCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7
CisgICAgdmlydHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgc2l6
ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAogICAgIGJvb2wgdHJ5VG9TZXRB
Y3RpdmUoYm9vbCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVy
U2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwor
ICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xhc3MgTXV0
ZWRTdGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04NywxNyArOTIsMTYgQEAgcHVibGlj
OgogICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwog
ICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwog
Ci0gICAgYm9vbCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBoYW5kbGVNdXRlZFN0YXRlQ2hh
bmdlKCk7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBmcmllbmQg
Y2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRpb1Nlc3Npb24oKTsK
LSAgICB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwo
Ym9vbCk7CisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCk7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0ZT4gbV9wcml2YXRlOwogICAg
IEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAppbmRleCBh
OGQxOGJlNGVhYmFlOWVjODBmZjVkZWY0ZmI3YmNhOWRhNjU3MDdhLi4xMjhmYWRhZTBmZDk2N2Vm
YTBmZTljYzE0MTU3NDdkOTNmZWNjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb24oKTsKIAotICAgIGVudW0g
Y2xhc3MgTWVkaWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSA6IHVpbnQ4X3Qgewog
ICAgICAgICBOb25lID0gMCwKICAgICAgICAgVmlkZW8sCiAgICAgICAgIFZpZGVvQXVkaW8sCkBA
IC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5cGUgbWVkaWFUeXBlKCkgY29uc3Q7
CiAgICAgTWVkaWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBjb25zdDsKIAotICAgIGVudW0gU3Rh
dGUgeworICAgIGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAgICAgICAgSWRsZSwKICAgICAgICAg
QXV0b3BsYXlpbmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoK
ICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICB2b2lkIHNl
dFN0YXRlKFN0YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0aW9uVHlwZSB7CisgICAgZW51bSBJ
bnRlcnJ1cHRpb25UeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vSW50ZXJydXB0aW9uLAogICAg
ICAgICBTeXN0ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdCYWNrZ3JvdW5kLApAQCAtOTEsNyAr
OTEsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIGludGVycnVwdGlv
blR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlvblR5cGU7IH0KIAotICAgIGVudW0g
RW5kSW50ZXJydXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgOiB1
aW50OF90IHsKICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAgICAgIE1heVJlc3VtZVBsYXlpbmcg
PSAxIDw8IDAsCiAgICAgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGRv
dWJsZSBhc0RvdWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRBcmd1bWVudDsKIAotICAgIGVudW0g
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVtIFJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQsCiAgICAgICAgIFBsYXlDb21tYW5k
LAogICAgICAgICBQYXVzZUNvbW1hbmQsCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSwgY29uc3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBhcmd1bWVudCA9IG51bGxwdHIpOwog
ICAgIGJvb2wgc3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAKLSAgICBlbnVtIERpc3BsYXlUeXBl
IHsKKyAgICBlbnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vcm1hbCwKICAg
ICAgICAgRnVsbHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVkLApAQCAtMzExLDQgKzMxMSw2NCBA
QCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZT4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpN
ZWRpYVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlh
VHlwZTo6VmlkZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlw
ZTo6VmlkZW9BdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFU
eXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBl
OjpXZWJBdWRpbworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGUs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpJZGxlLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6QXV0b3BsYXlpbmcsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQbGF5aW5nLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2VkLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQKKyAgICA+OworfTsKKwordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Oklu
dGVycnVwdGlvblR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6Tm9JbnRlcnJ1cHRp
b24sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6
OlN5c3RlbVNsZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRpb25UeXBlOjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUludGVycnVwdGlvbiwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3VzcGVuZGVkVW5k
ZXJMb2NrLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25U
eXBlOjpJbnZpc2libGVBdXRvcGxheSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6SW50ZXJydXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZlLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQbGF5YmFja1N1c3BlbmRlZAorICAg
ID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50
ZXJydXB0aW9uRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZElu
dGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1lUGxheWluZworICAgID47Cit9Owor
Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3Rl
Q29udHJvbENvbW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGxheUNvbW1hbmQsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGF1
c2VDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250
cm9sQ29tbWFuZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRvZ2dsZVBsYXlQYXVzZUNvbW1hbmQs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZTo6QmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OkVuZFNlZWtpbmdCYWNrd2Fy
ZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6RW5kU2Vla2lu
Z0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1v
dGVDb250cm9sQ29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNrUG9zaXRpb25Db21tYW5kCisgICAg
PjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggZDZjMDA3ZjQwYjVmYjc2
MzcyMmQ1MzhhZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGExZDBhYTYzODljM2RmODkzNjcxMGEz
NTg5YTQ0NTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9p
b3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQzLDE1IEBAIHZvaWQgQXVkaW9TZXNz
aW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZmZXJTaXplKQogICAgIEFTU0VS
VCghZXJyb3IpOwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6aXNNdXRlZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6aGFuZGxlTXV0ZWRTdGF0
ZUNoYW5nZSgpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKSAmJiBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IDlmOTQ2Zjg0OTdhZjIzYjRhZmE1MWI3OTE4NDE4NTE4ODYwYWM1
YjkuLmQ3NDliMmRiMDliOTY3NDZmNGEwZjFlMzRjMjE3NDJlZGY1M2U0NmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE4LDYgKzE4LDgg
QEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldl
YktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1G
YWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAt
MTE2LDYgKzExOCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYTk2YzJjZmRkZDQ2YjM1OTIzOGU5NjIzNDNhOTkyMjEw
NGVlYTU5Yi4uOTk1MDM1MTJiYTU1OGIyYjQxMDA4ZjViMTY2NTA0NjBhOTU0MTQ1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzcs
NiArMTM3LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVBy
b3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCA0NWVlM2RiN2VkN2UxMzM3MmM4YTc1YWQ1NTVhMTY1ODdmNjdkMDhh
Li4xYzNkMWEyMGVlYTNiNzM4MDAxMDJlMWQzMTk4Mzc5MDNhYTZjZDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0xNDgsNiArMTQ4LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAgICAgUGx1Z2luUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwK
ICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAorICAgIFJlbW90ZUF1ZGlvU2Vzc2lv
biBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCmluZGV4IDZjZjFjMzBiM2UzMzAxMjc3NDY2ZDkyZWUyOTMzMjQ2MDdlNTljYzEuLjQx
YmRjZDA1MmUzZWJkYjZiZTZiZWNhZTJmNDc0ZTg1MmY2YjNjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTcxLDYgKzcxLDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oIgogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorI2lu
Y2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
ZXNzYWdlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xMTksNiArMTI0LDEwIEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKIAogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworICAgIGlmIChtX2F1ZGlvU2Vz
c2lvblByb3h5KSB7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2VyKCku
cmVtb3ZlUHJveHkod2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIG1fYXVkaW9TZXNz
aW9uUHJveHkgPSBudWxscHRyOworICAgIH0KIH0KIAogTG9nZ2VyJiBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpsb2dnZXIoKQpAQCAtMjE3LDYgKzIyNiwxNyBAQCBSZW1vdGVDRE1GYWN0b3J5
UHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNkbUZhY3RvcnlQcm94eSgpCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCitS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9T
ZXNzaW9uUHJveHkoKQoreworICAgIGlmICghbV9hdWRpb1Nlc3Npb25Qcm94eSkgeworICAgICAg
ICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNyZWF0ZSgq
dGhpcykubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Np
b25NYW5hZ2VyKCkuYWRkUHJveHkobWFrZVdlYWtQdHIobV9hdWRpb1Nlc3Npb25Qcm94eS5nZXQo
KSkpOworICAgIH0KKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uUHJveHk7Cit9CisjZW5kaWYK
Kwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5k
KFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQog
ewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNYXAu
ZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0yMzEsNiArMjUx
LDIzIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVsZWFzZVJlbmRlcmluZ0Jh
Y2tlbmQoUmVuZGVyaW5nQmFja2VuZElkZW50aWZpCiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwg
Zm91bmQpOwogfQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lP
TikKK3ZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlQXVkaW9TZXNzaW9uKEVu
c3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24mJiBjb21wbGV0aW9uKQoreworICAgIGNvbXBsZXRp
b24oYXVkaW9TZXNzaW9uUHJveHkoKS5jb25maWd1cmF0aW9uKCkpOworfQorI2VuZGlmCisKKyNp
ZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKK1JlbW90ZUxlZ2FjeUNETUZhY3RvcnlQ
cm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bGVnYWN5Q2RtRmFjdG9yeVByb3h5KCkK
K3sKKyAgICBpZiAoIW1fbGVnYWN5Q2RtRmFjdG9yeVByb3h5KQorICAgICAgICBtX2xlZ2FjeUNk
bUZhY3RvcnlQcm94eSA9IG1ha2VVbmlxdWU8UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5Pigq
dGhpcyk7CisKKyAgICByZXR1cm4gKm1fbGVnYWN5Q2RtRmFjdG9yeVByb3h5OworfQorI2VuZGlm
CisKIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMzA4LDYgKzM0
NSwyOCBAQCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUxlZ2FjeUNE
TUZhY3RvcnlQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGxlZ2FjeUNk
bUZhY3RvcnlQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlv
biwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTGVnYWN5Q0RNUHJv
eHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBsZWdhY3lDZG1GYWN0b3J5UHJv
eHkoKS5kaWRSZWNlaXZlQ0RNTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkgeworICAgICAgICBsZWdhY3lDZG1GYWN0b3J5UHJveHkoKS5kaWRSZWNlaXZl
Q0RNU2Vzc2lvbk1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Cisg
ICAgICAgIGF1ZGlvU2Vzc2lvblByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgogCiAgICAgcmV0
dXJuIG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsKIH0KQEAgLTM1NSw2ICs0MTQsMjggQEAgYm9vbCBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogI2VuZGlmCisjaWYgRU5BQkxFKExFR0FDWV9FTkNS
WVBURURfTUVESUEpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1l
c3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgeworICAgICAgICBsZWdhY3lDZG1GYWN0b3J5UHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3Nh
Z2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUxlZ2FjeUNETVByb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKKyAgICAgICAgbGVnYWN5Q2RtRmFjdG9yeVByb3h5KCkuZGlkUmVjZWl2ZVN5
bmNDRE1NZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgbGVnYWN5Q2RtRmFjdG9yeVByb3h5KCkuZGlkUmVjZWl2
ZVN5bmNDRE1TZXNzaW9uTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNl
aXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSkgeworICAgICAgICBhdWRpb1Nlc3Npb25Qcm94eSgpLmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiBtZXNzYWdlUmVjZWl2ZXJN
YXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rl
cik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaAppbmRleCBhM2VjYTVjOGZhZDY5MTgzODBmZDkzM2JmNjMwZGQ0Y2ZmNzMw
ZDk2Li4zY2Q3MjhiMTY3YzFkODUyYmY3YjEyZTQwY2Q4YjM2NjJjYjk3MmRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyTWFwLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIlJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmll
ci5oPgpAQCAtNDgsMTIgKzQ5LDE1IEBAIGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBMaWJXZWJS
VENDb2RlY3NQcm94eTsKIGNsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogY2xh
c3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOworY2xhc3MgUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXI7CiBjbGFzcyBSZW1vdGVDRE1GYWN0b3J5UHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOwogY2xhc3Mg
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKK3N0
cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uOwogCiBjbGFzcyBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzPgpAQCAtOTAsNiArOTQsMTEgQEAgcHVibGljOgogICAgIFJlbW90ZUNETUZhY3Rv
cnlQcm94eSYgY2RtRmFjdG9yeVByb3h5KCk7CiAjZW5kaWYKIAorICAgIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5JiByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpOworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNl
c3Npb25JRCk7CiAKQEAgLTEwNiw4ICsxMTUsMTcgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyKCk7CiAjZW5kaWYKICNlbmRpZgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0Uo
QVVESU9fU0VTU0lPTikKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgYXVkaW9TZXNzaW9u
UHJveHkoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdCYWNrZW5k
KFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IFVTRShBVURJT19TRVNTSU9OKQorICAgIHVzaW5nIEVuc3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRp
b24gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24mKT47CisgICAgdm9pZCBlbnN1cmVBdWRpb1Nlc3Npb24oRW5zdXJlQXVkaW9TZXNz
aW9uQ29tcGxldGlvbiYmKTsKKyNlbmRpZgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGll
bnQKICAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIGZpbmFsOwpAQCAtMTQ3LDYg
KzE2NSw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UmVtb3RlQ0RNRmFjdG9yeVByb3h5PiBtX2NkbUZhY3RvcnlQcm94eTsKICNl
bmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAg
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBtX2F1ZGlvU2Vzc2lvblBy
b3h5OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KaW5kZXggOTMyYzAxMjJkZTA4MWVkZTliYjllZmI1NmY5YmM1MjU5YmE0ZDcw
NC4uNGZkMGYyMjMwN2U4Mzg4MzZkNDc0YmFiM2UwMjc1YTM1YzA3NTBiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+IEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgV2FudHNEaXNwYXRjaE1lc3NhZ2UgewogICAgIHZvaWQgQ3JlYXRl
UmVuZGVyaW5nQmFja2VuZChXZWJLaXQ6OlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyKQogICAgIHZvaWQgUmVsZWFzZVJlbmRlcmluZ0JhY2tlbmQo
V2ViS2l0OjpSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kSWRlbnRp
ZmllcikKKyAgICBFbnN1cmVBdWRpb1Nlc3Npb24oKSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKSBTeW5jaHJvbm91cwogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjVkM2U0YTYy
OGM5YjMzMTVmMmRmM2I2YWNlZDc5NjZkYWExZGUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTAsMCArMSw3
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHUFVQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUg
PFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ0RNRmFjdG9y
eS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGVnYWN5Q0RNLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVN0cmF0ZWd5Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKwordm9pZCBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKQorewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM+IHBsYXRmb3Jt
U3RyYXRlZ2llczsKKyAgICBzZXRQbGF0Zm9ybVN0cmF0ZWdpZXMoJnBsYXRmb3JtU3RyYXRlZ2ll
cy5nZXQoKSk7Cit9CisKK0dQVVBsYXRmb3JtU3RyYXRlZ2llczo6R1BVUGxhdGZvcm1TdHJhdGVn
aWVzKCkgPSBkZWZhdWx0OworCitMb2FkZXJTdHJhdGVneSogR1BVUGxhdGZvcm1TdHJhdGVnaWVz
OjpjcmVhdGVMb2FkZXJTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Bh
c3RlYm9hcmRTdHJhdGVneSogR1BVUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJk
U3RyYXRlZ3koKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitNZWRpYVN0cmF0ZWd5KiBH
UFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQoreworICAgIHJldHVy
biBuZXcgTWVkaWFTdHJhdGVneSgpOworfQorCitCbG9iUmVnaXN0cnkqIEdQVVBsYXRmb3JtU3Ry
YXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQbGF0Zm9y
bVN0cmF0ZWdpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2Y5Mzk3Y2RiMGNjOGFkMTBiN2JmYzljZjAwNzM2
MDlhZTYzMWE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VVBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJhdGVnaWVzLmg+CisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgTG9hZGVyU3RyYXRlZ3k7CitjbGFzcyBQYXN0ZWJvYXJkU3Ry
YXRlZ3k7CitjbGFzcyBNZWRpYVN0cmF0ZWd5OworY2xhc3MgQmxvYlJlZ2lzdHJ5OworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVUGxhdGZvcm1TdHJhdGVnaWVzIDogcHVibGlj
IFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcyB7CisgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVk
PEdQVVBsYXRmb3JtU3RyYXRlZ2llcz47CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgaW5pdGlh
bGl6ZSgpOworCitwcml2YXRlOgorICAgIEdQVVBsYXRmb3JtU3RyYXRlZ2llcygpOworCisgICAg
Ly8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCisgICAgV2ViQ29yZTo6TG9hZGVyU3RyYXRl
Z3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6UGFzdGVi
b2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBX
ZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJpZGU7Cisg
ICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsK
K307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAK
aW5kZXggMGU3YmQwOWJlYTVkMTIzYTQwN2VjZmI5ZDM5ZjcyNDBmNWIzYzdiOS4uNjAzNzAwNTlj
ZDE0OTU1MzZlZjQ1Y2Y0OTY0NTJkZDQxZTI0ZTQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkF1eGlsaWFyeVBy
b2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiR1BVUGxhdGZvcm1TdHJhdGVn
aWVzLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIkdQVVByb2Nlc3NTZXNzaW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
QEAgLTUxLDYgKzUyLDEwIEBACiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNF
KEFVRElPX1NFU1NJT04pCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIApAQCAtMTEwLDYgKzExNSw4IEBAIHZvaWQgR1BVUHJvY2Vzczo6aW5pdGlhbGl6ZUdQVVBy
b2Nlc3MoR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgV1RG
OjpUaHJlYWQ6OnNldEN1cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQoKTsKICAgICBBdG9tU3Ry
aW5nOjppbml0KCk7CiAKKyAgICBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKTsK
KwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdz
OjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKICNlbmRpZgpAQCAt
MjEyLDYgKzIxOSwxNSBAQCBjb25zdCBTdHJpbmcmIEdQVVByb2Nlc3M6Om1lZGlhS2V5c1N0b3Jh
Z2VEaXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjbwogfQogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyJiBHUFVQcm9jZXNzOjphdWRpb1Nlc3Npb25NYW5hZ2VyKCkgY29u
c3QKK3sKKyAgICBpZiAoIW1fYXVkaW9TZXNzaW9uTWFuYWdlcikKKyAgICAgICAgbV9hdWRpb1Nl
c3Npb25NYW5hZ2VyID0gV1RGOjptYWtlVW5pcXVlPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlcj4oKTsKKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uTWFuYWdlcjsKK30KKyNlbmRpZgor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCmluZGV4IDZmYTAyMDE0Yjk0NzgxZWE5
OWUwMzVkYjNhZDc5ZDY1YTI0ZjI4N2IuLjQzYWFlMWExMmI1Yjg4NWIyNmM1NmRkZjE1Mjk2MGYw
MjI3YzUyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaApAQCAtNDAsNiAr
NDAsNyBAQCBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogc3RydWN0IEdQVVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgR1BVUHJvY2Vzc1Nlc3Npb25QYXJhbWV0ZXJz
OwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcjsKIAogY2xhc3MgR1BVUHJvY2VzcyA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNz
LCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8R1BVUHJvY2Vzcz4sIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxHUFVQcm9jZXNzPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR1BVUHJvY2Vz
cyk7CkBAIC02Myw2ICs2NCwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBtZWRpYUtl
eXNTdG9yYWdlRGlyZWN0b3J5KFBBTDo6U2Vzc2lvbklEKSBjb25zdDsKICNlbmRpZgogCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXImIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKSBjb25zdDsKKyNlbmRp
ZgorCiBwcml2YXRlOgogICAgIHZvaWQgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbCk7CiAKQEAg
LTEwMyw2ICsxMDgsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3Rp
bmdDb250ZXh0PiBtX2NvbnRleHRGb3JWaXNpYmlsaXR5UHJvcGFnYXRpb247CiAgICAgYm9vbCBt
X2NhblNob3dXaGlsZUxvY2tlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcj4gbV9hdWRpb1Nlc3Npb25NYW5hZ2VyOwor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQxNjJiMTkxMmFkNGM4OTczMDhiZDRjYzIyMGMwN2ZiODdkM2E5NmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHkuY3BwCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSAiUmVt
b3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitVbmlxdWVSZWY8UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpjcmVhdGUoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvbikKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZVJl
ZjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4oZ3B1Q29ubmVjdGlvbik7Cit9CisKK1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eShHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uKQorICAgIDogbV9ncHVDb25uZWN0aW9uKGdwdUNvbm5l
Y3Rpb24pCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp+UmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkoKSA9IGRlZmF1bHQ7CisKK1dlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5Ojpwcm9jZXNzSWRlbnRpZmllcigpCit7CisgICAgcmV0dXJuIG1f
Z3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpOworfQorCitSZW1vdGVBdWRpb1Nl
c3Npb25Db25maWd1cmF0aW9uIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25maWd1cmF0aW9u
KCkKK3sKKyAgICBhdXRvJiBzZXNzaW9uID0gYXVkaW9TZXNzaW9uTWFuYWdlcigpLnNlc3Npb24o
KTsKKyAgICByZXR1cm4geworICAgICAgICBzZXNzaW9uLmNhdGVnb3J5KCksCisgICAgICAgIHNl
c3Npb24ucm91dGVTaGFyaW5nUG9saWN5KCksCisgICAgICAgIHNlc3Npb24ucm91dGluZ0NvbnRl
eHRVSUQoKSwKKyAgICAgICAgc2Vzc2lvbi5zYW1wbGVSYXRlKCksCisgICAgICAgIHNlc3Npb24u
YnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNzaW9uLm51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSwK
KyAgICAgICAgc2Vzc2lvbi5wcmVmZXJyZWRCdWZmZXJTaXplKCksCisgICAgICAgIHNlc3Npb24u
aXNNdXRlZCgpLAorICAgICAgICBtX2FjdGl2ZQorICAgIH07Cit9CisKK3ZvaWQgUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIHR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7CisgICAg
YXVkaW9TZXNzaW9uTWFuYWdlcigpLnNldENhdGVnb3J5Rm9yUHJvY2VzcyhtX2dwdUNvbm5lY3Rp
b24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgdHlwZSwgcG9saWN5KTsKK30KKwordm9pZCBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCBzaXpl
KQoreworICAgIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9y
UHJvY2VzcyhtX2dwdUNvbm5lY3Rpb24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgc2l6ZSk7Cit9
CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0
aXZlLCBTZXRBY3RpdmVDb21wbGV0aW9uJiYgY29tcGxldGlvbikKK3sKKyAgICBjb21wbGV0aW9u
KGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS50cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MobV9ncHVDb25u
ZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIGFjdGl2ZSkpOworfQorCit2b2lkIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbkludGVycnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQoreworICAgIGNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246OkJlZ2luSW50ZXJydXB0aW9uKHR5cGUp
LCB7IH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjplbmRJbnRlcnJ1cHRp
b24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzIGZs
YWdzKQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Np
b246OkVuZEludGVycnVwdGlvbihmbGFncyksIHsgfSk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlciYgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFn
ZXIoKQoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb24uZ3B1UHJvY2VzcygpLmF1ZGlvU2Vz
c2lvbk1hbmFnZXIoKTsKK30KKworSVBDOjpDb25uZWN0aW9uJiBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eTo6Y29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi5jb25uZWN0
aW9uKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjZDJj
NmMzN2MxNzk2NGUwYmM4ZGZhNzIxMzY0OTkyMWQ4NDkzYzEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaApA
QCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSAiTWVzc2FnZVJl
Y2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIu
aD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENv
bm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXI7CisKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5CisgICAg
OiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+
IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisgICAgdmlydHVhbCB+UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkoKTsKKworICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHBy
b2Nlc3NJZGVudGlmaWVyKCk7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBj
b25maWd1cmF0aW9uKCk7CisKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZSBjYXRlZ29yeSgpIGNvbnN0IHsgcmV0dXJuIG1fY2F0ZWdvcnk7IH07CisgICAgV2ViQ29yZTo6
Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1f
cm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBj
b25zdCB7IHJldHVybiBtX3ByZWZlcnJlZEJ1ZmZlclNpemU7IH0KKyAgICBib29sIGlzQWN0aXZl
KCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KKworICAgIHZvaWQgYmVnaW5JbnRlcnJ1cHRp
b24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUpOworICAg
IHZvaWQgZW5kSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJ
bnRlcnJ1cHRpb25GbGFncyk7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKKworcHJp
dmF0ZToKKyAgICBmcmllbmQgVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBXVEY6
Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5PihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOworCisgICAgLy8gTWVzc2FnZXMKKyAg
ICB2b2lkIHNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBX
ZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVy
U2l6ZSh1aW50NjRfdCk7CisgICAgdXNpbmcgU2V0QWN0aXZlQ29tcGxldGlvbiA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+OworICAgIHZvaWQgdHJ5VG9TZXRBY3RpdmUoYm9vbCwgU2V0
QWN0aXZlQ29tcGxldGlvbiYmKTsKKworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpOworICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
bigpOworCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9uOwor
ICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnk7CisgICAg
V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IG1fcm91dGVTaGFyaW5nUG9saWN5OworICAgIHNp
emVfdCBtX3ByZWZlcnJlZEJ1ZmZlclNpemUgeyAwIH07CisgICAgYm9vbCBtX2FjdGl2ZSB7IGZh
bHNlIH07Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk3ZjNiYWU4MjQzZmFhNTQ1NTJiYmZmMDRkOWE2ZWI4NTJiNjA2MjEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCittZXNz
YWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSBOb3RSZWZDb3VudGVkIHsKKyAgICBTZXRD
YXRlZ29yeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUg
dHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCisg
ICAgU2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCBwcmVmZXJyZWRCdWZmZXJTaXplKQor
ICAgIFRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlKSAtPiAoYm9vbCBzdWNlZWRlZCkgU3luY2hy
b25vdXMKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc3MzM0OGIxYzgwYzBjYTZkZGM0N2U0YzY1MDA1MzY1YWRkM2U4ZmUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDE4NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNp
bmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVk
aW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKQorICAgIDog
bV9zZXNzaW9uKEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkpCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlcjo6flJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpID0gZGVm
YXVsdDsKKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmFkZFByb3h5KFdl
YWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+JiYgcHJveHkpCit7CisgICAgYXV0byBpZCA9
IHByb3h5LT5wcm9jZXNzSWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRh
aW5zKGlkKSk7CisgICAgbV9wcm94aWVzLnNldChpZCwgV1RGTW92ZShwcm94eSkpOworfQorCit2
b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkoY29uc3QgUHJv
Y2Vzc0lkZW50aWZpZXImIGlkKQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMoaWQp
KTsKKyAgICBtX3Byb3hpZXMucmVtb3ZlKGlkKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkqIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6Z2V0UHJveHkoY29uc3QgUHJvY2Vz
c0lkZW50aWZpZXImIGlkKQoreworICAgIGF1dG8gcmVzdWx0cyA9IG1fcHJveGllcy5maW5kKGlk
KTsKKyAgICBpZiAocmVzdWx0cyAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIHJldHVybiBy
ZXN1bHRzLT52YWx1ZS5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyhjb25zdCBQ
cm9jZXNzSWRlbnRpZmllciYgaWQsIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5
LCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29u
dGFpbnMoaWQpKTsKKyAgICBhdXRvIHByb3h5ID0gZ2V0UHJveHkoaWQpOworICAgIGlmICghcHJv
eHkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChwcm94eS0+Y2F0ZWdvcnkoKSA9PSBjYXRl
Z29yeSAmJiBwcm94eS0+cm91dGVTaGFyaW5nUG9saWN5KCkgPT0gcG9saWN5KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBIYXNoQ291bnRlZFNldDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwg
V1RGOjpJbnRIYXNoPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiwgV1RGOjpTdHJvbmdFbnVt
SGFzaFRyYWl0czxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4+IGNhdGVnb3J5Q291bnRzOwor
ICAgIEhhc2hDb3VudGVkU2V0PFJvdXRlU2hhcmluZ1BvbGljeSwgV1RGOjpJbnRIYXNoPFJvdXRl
U2hhcmluZ1BvbGljeT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8Um91dGVTaGFyaW5nUG9s
aWN5Pj4gcG9saWN5Q291bnRzOworICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGll
cy52YWx1ZXMoKSkgeworICAgICAgICBjYXRlZ29yeUNvdW50cy5hZGQob3RoZXJQcm94eS0+Y2F0
ZWdvcnkoKSk7CisgICAgICAgIHBvbGljeUNvdW50cy5hZGQob3RoZXJQcm94eS0+cm91dGVTaGFy
aW5nUG9saWN5KCkpOworICAgIH0KKworICAgIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhB
dWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vz
c2lvbjo6UGxheUFuZFJlY29yZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlu
cyhBdWRpb1Nlc3Npb246OlJlY29yZEF1ZGlvKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nl
c3Npb246OlJlY29yZEF1ZGlvOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5z
KEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjaykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9T
ZXNzaW9uOjpNZWRpYVBsYXliYWNrOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRh
aW5zKEF1ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRTb3VuZCkpCisgICAgICAgIGNhdGVnb3J5ID0g
QXVkaW9TZXNzaW9uOjpTb2xvQW1iaWVudFNvdW5kOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291
bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKSkKKyAgICAgICAgY2F0ZWdv
cnkgPSBBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNv
dW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZykpCisgICAgICAgIGNh
dGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpBdWRpb1Byb2Nlc3Npbmc7CisgICAgZWxzZQorICAgICAg
ICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsKKworICAgIGlmIChwb2xpY3lDb3VudHMu
Y29udGFpbnMoUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybVZpZGVvKSkKKyAgICAgICAgcG9s
aWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybVZpZGVvOworICAgIGVsc2UgaWYgKHBv
bGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW8pKQor
ICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW87CisgICAg
ZWxzZSBpZiAocG9saWN5Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmluZ1BvbGljeTo6SW5kZXBl
bmRlbnQpKQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkluZGVwZW5kZW50
OworICAgIGVsc2UKKyAgICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0
OworCisgICAgbV9zZXNzaW9uLT5zZXRDYXRlZ29yeShjYXRlZ29yeSwgcG9saWN5KTsKK30KKwor
dm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldFByZWZlcnJlZEJ1ZmZlclNp
emVGb3JQcm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgc2l6ZV90IHByZWZlcnJl
ZEJ1ZmZlclNpemUpCit7CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZh
bHVlcygpKSB7CisgICAgICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICBpZiAob3RoZXJQcm94eS0+cHJlZmVycmVkQnVmZmVyU2l6ZSgpIDwgcHJlZmVy
cmVkQnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIHByZWZlcnJlZEJ1ZmZlclNpemUgPSBvdGhlclBy
b3h5LT5wcmVmZXJyZWRCdWZmZXJTaXplKCk7CisgICAgfQorCisgICAgbV9zZXNzaW9uLT5zZXRQ
cmVmZXJyZWRCdWZmZXJTaXplKHByZWZlcnJlZEJ1ZmZlclNpemUpOworfQorCitib29sIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6dHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKGNvbnN0
IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgYm9vbCBhY3RpdmUpCit7CisgICAgQVNTRVJUKG1fcHJv
eGllcy5jb250YWlucyhpZCkpOworICAgIGF1dG8gcHJveHkgPSBnZXRQcm94eShpZCk7CisgICAg
aWYgKCFwcm94eSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc2l6ZV90IGFjdGl2ZVBy
b3h5Q291bnQgeyAwIH07CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZh
bHVlcygpKSB7CisgICAgICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICBpZiAob3RoZXJQcm94eS0+aXNBY3RpdmUoKSkKKyAgICAgICAgICAgICsrYWN0
aXZlUHJveHlDb3VudDsKKyAgICB9CisKKyAgICBpZiAoIWFjdGl2ZSAmJiBhY3RpdmVQcm94eUNv
dW50ID4gMSkgeworICAgICAgICAvLyBUaGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBi
dXQgb3RoZXIgcHJveGllcyBhcmUgc3RpbGwKKyAgICAgICAgLy8gYWN0aXZlLiBOby1vcCwgYW5k
IHJldHVybiBkZWFjdGl2YXRpb24gd2FzIHN1Y2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorCisgICAgaWYgKCFhY3RpdmUpIHsKKyAgICAgICAgLy8gVGhpcyBwcm94eSB3YW50
cyB0byBkZS1hY3RpdmF0ZSwgYXMgaXMgdGhlIGxhc3QgcmVtYWluaW5nIGFjdGl2ZQorICAgICAg
ICAvLyBwcm94eS4gRGVhY3RpdmF0ZSB0aGUgc2Vzc2lvbiwgYW5kIHJldHVybiB3aGV0aGVyIHRo
YXQgZGVhY3RpdmF0aW9uCisgICAgICAgIC8vIHdhcyBzdWNlc3NmdWw7CisgICAgICAgIHJldHVy
biBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGZhbHNlKTsKKyAgICB9CisKKyAgICBpZiAoYWN0
aXZlICYmICFhY3RpdmVQcm94eUNvdW50KSB7CisgICAgICAgIC8vIFRoaXMgcHJveHkgYW5kIG9u
bHkgdGhpcyBwcm94eSB3YW50cyB0byBiZWNvbWUgYWN0aXZlLiBBY3RpdmF0ZQorICAgICAgICAv
LyB0aGUgc2Vzc2lvbiwgYW5kIHJldHVybiB3aGV0aGVyIHRoYXQgYWN0aXZhdGlvbiB3YXMgc3Vj
Y2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIG1fc2Vzc2lvbi0+dHJ5VG9TZXRBY3RpdmUoYWN0aXZl
KTsKKyAgICB9CisKKyAgICAvLyBJZiB0aGlzIHByb3h5IGlzIEFtYmllbnQsIGFuZCB0aGUgc2Vz
c2lvbiBpcyBhbHJlYWR5IGFjdGl2ZSwgdGhpcworICAgIC8vIHByb3h5IHdpdGggbWl4IHdpdGgg
dGhlIGFjdGl2ZSBwcm94aWVzLiBOby1vcCwgYW5kIHJldHVybiBhY3RpdmF0aW9uCisgICAgLy8g
d2FzIHN1Y2Vzc2Z1bC4KKyAgICBpZiAocHJveHktPmNhdGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9u
OjpBbWJpZW50U291bmQpCisgICAgICAgIHJldHVybiB0cnVlOworCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAvLyBPdGhlcndpc2UsIHRoaXMgcHJveHkgd2FudHMgdG8gYmVjb21lIGFj
dGl2ZSwgYnV0IHRoZXJlIGFyZSBvdGhlcgorICAgIC8vIHByb3hpZXMgd2hvIGFyZSBhbHJlYWR5
IGFjdGl2ZS4gV2FsayBvdmVyIHRoZSBwcm94aWVzLCBhbmQgaW50ZXJydXB0CisgICAgLy8gdGhv
c2UgcHJveGllcyB3aG9zZSBjYXRlb2dyaWVzIGluZGljYXRlIHRoZXkgY2Fubm90IG1peCB3aXRo
IG90aGVycy4KKyAgICBmb3IgKGF1dG8mIG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkp
IHsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIGlmICghb3RoZXJQcm94eS0+aXNBY3RpdmUoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgIGlmIChvdGhlclByb3h5LT5jYXRlZ29yeSgpID09IEF1ZGlvU2Vzc2lvbjo6QW1i
aWVudFNvdW5kKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgb3RoZXJQcm94eS0+
YmVnaW5JbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6
OlN5c3RlbUludGVycnVwdGlvbik7CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gdHJ1ZTsK
KworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI2YTdmNzYxZjZiMWU4NWJhNzE1OGUwYmRmNDBjNWZjMjNiYWExN2IKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNz
SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk7CisKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcgorICAg
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcj4g
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcigpOworICAgIH5SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIoKTsKKworICAgIHZvaWQgYWRkUHJveHkoV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eT4mJik7CisgICAgdm9pZCByZW1vdmVQcm94eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciYpOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KiBnZXRQcm94eShjb25zdCBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciYpOworCisgICAgdm9pZCBzZXRDYXRlZ29yeUZvclByb2Nl
c3MoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImLCBXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KTsKKyAgICB2b2lk
IHNldFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyJiwgc2l6ZV90KTsKKworICAgIHVzaW5nIFNldEFjdGl2ZUNvbXBsZXRpb24gPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPjsKKyAgICBib29sIHRyeVRvU2V0QWN0aXZlRm9y
UHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIGJvb2wpOworCisgICAg
Y29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uJiBzZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXNzaW9uOyB9CisKK3ByaXZhdGU6CisgICAgVW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bj4gbV9zZXNzaW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFdl
YWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+PiBtX3Byb3hpZXM7Cit9OworCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDRiM2RlYzdjZDM5ZDAxMDJiODVmMGY5NWRmNGU0MzBmOWFlMTNmZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDI1NmRjOTkw
NWJmNDQ2NmQwYzJhZDU3NGQ4YzM2OGExNGJlNjk2M2EuLjRiYTE0ZGJhZjI0YjI0MWU1OWRiMGE3
ZjIwODBkMDJkMDI3YzNiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQpAQCAtMjM0LDYgKzIzNCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJk
X2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyJywKKyAgICAg
ICAgJ1dlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJL
aXQ6OlJlbW90ZUNETUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JbnN0
YW5jZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZVNlc3Np
b25JZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKaW5kZXggZDA3ZjJiZjViMjFiNjIwYjkxOTgxMDE5OTQwZTI3NDRlZDI1MDBjZC4uMTYz
OGEyYzQ4NWU1ZDhlN2I3ODk2YWZhZGQzZDA4YjkwMTYyNmY5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0F1ZGlvU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaD4KQEAgLTEwMjUsNCArMTAyNiwxOCBAQCB0ZW1wbGF0ZSA8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDRE1JbnN0YW5jZTo6SERDUFN0YXR1cz4gewogCiAjZW5k
aWYKIAordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBX
ZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZTo6QW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZTo6UGxheUFuZFJlY29yZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5nCisgICAgPjsKK307CisKKwogfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAppbmRleCA2ZDBlOGM2OGEwMjM4ODczYjY4NjQyMzgzZTViN2JjNWFh
MDYzN2RjLi5kMDA2MjNhNjI5Njc4MWNhZDdkY2E2ZWJlMDVkMTk2M2FkNjY5NjQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKQEAgLTIyLDExICsyMiwxNCBAQAogLy8gVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogCiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCitHUFVQcm9jZXNzL0dQVVBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
IEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcAogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKK0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkuY3BwCitHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlci5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5
LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcAogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHAKQEAgLTU0Niw2ICs1
NDksNyBAQCBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNw
cAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCitXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVDRE0uY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5LmNwcAogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKaW5kZXggMGE3NzY5Mzk4NzllYjY5NWZmYmZlYWZiZWQ4YmMyZjljNDRjZWZhNC4uNjQ0YmNi
YzM1YjQ1OGY0M2U1M2JmYjEwYTkxZDM3YmM5ODY1NjE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dApAQCAtNjU0LDYgKzY1NCw4IEBAIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcAogTGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2
ZXIuY3BwCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAK
IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAog
UmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUzZWRlNTY2ZDNkZThlOTk3
NTRiOTY2MjU0NjRiNjFlYjE3NDhhMzguLjVmNDhhODEzYWUyOTllZjVlYTRhZWQ3ZGMwZmE0YzMz
MWVkMzYwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTc0Myw2ICsxNzQzLDggQEAKIAkJQ0RBQzIwRjgyM0ZDNzI2QzAwMjFERUUz
IC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQzIwRjUyM0ZDMzgzQjAwMjFE
RUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9Owog
CQlDREFDMjBGOTIzRkM3MjZDMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RBQzIwRUMyM0ZDMzgzODAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNl
U2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0RBQzIwRkEyM0ZDNzI2
QzAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEVGMjNGQzM4MzkwMDIx
REVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNEQkI0
OUYwMjQwRDU3RDIwMDE3QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQkI0OUVFMjQwRDU3RDIwMDE3
QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsKKwkJQ0RCQjQ5RkQyNDBEOUE3
MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQkI0OUZDMjQwRDlBNzIwMDE3
QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi87IH07CiAJCUNEQzI4
MzFEMjAxQkQ3OUQwMEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzI4MzFCMjAxQkQ3OUQwMEU2
RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCAqLzsgfTsKIAkJQ0RDQTg1QzkxMzJBQkE0
RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4NUM3MTMyQUJBNEUwMEU5NjFE
RiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi87IH07CiAJCUNFMTFBRDUyMUNC
QzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UxMUFENTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWdu
aW5nLmggKi87IH07CkBAIC01MDk0LDYgKzUwOTYsMTcgQEAKIAkJQ0RBQzIwRjQyM0ZDMzgzQTAw
MjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDREFDMjBGNTIzRkMzODNCMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBQzIwRjYyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNE
TUluc3RhbmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxh
dGZvcm1TdHJhdGVnaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlFRjI0MEQ1N0QyMDAxN0MyOTIg
LyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVBsYXRm
b3JtU3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY0
MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlQXVkaW9TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0
OUY1MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RCQjQ5RjYyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY3MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY4MjQwRDhENTMw
MDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdDMjky
IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9u
SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZDMjQwRDlBNzIwMDE3QzI5
MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RDMjgzMUIyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmlldy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaDsgcGF0aCA9IGlvcy9mdWxs
c2NyZWVuL1dLRnVsbHNjcmVlblN0YWNrVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDREMyODMxQzIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBwYXRoID0g
aW9zL2Z1bGxzY3JlZW4vV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDREMzODJGNzE3MjExNTA2MDA4QTJGQzMgLyogQ0ZOZXR3b3JrLmZyYW1l
d29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdy
YXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ0ZOZXR3b3JrLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NGTmV0d29yay5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAi
PGFic29sdXRlPiI7IH07CkBAIC01MTAxLDYgKzUxMTQsMTcgQEAKIAkJQ0RDQTg1QzYxMzJBQkE0
RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENBODVDNzEzMkFCQTRFMDBFOTYx
REYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5mcmFt
ZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3
cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1
dGU+IjsgfTsKKwkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
bi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcwMjQwREQ0RUYwMEY3QjhDNCAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
REQ1MzU3MjI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTczMjQwRERFMDYwMEY3QjhDNCAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzQyNDBEREUwNzAwRjdC
OEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
bk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhDNCAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNERDUzNTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3OTI0MERE
RTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBs
aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTExQUQ0RjFDQkM0
N0Y4MDA2ODFFRTUgLyogQ29kZVNpZ25pbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBDb2RlU2lnbmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0UxMUFENTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWduaW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvZGVTaWduaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNFMUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQ
SS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3NlcnRpb25TZXJ2aWNlc1NQ
SS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTM3OCw2ICs1NDAyLDExIEBACiAJ
CQkJOUI1QkVDMjkyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eS5jcHAgKi8sCiAJCQkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5oICovLAogCQkJCTlCNUJFQzJFMjQwMTAxOEMwMDcwQzZFRiAvKiBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjUyNDBE
OEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAgKi8sCisJCQkJQ0RCQjQ5RjQy
NDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5oICovLAorCQkJCUNERDUzNTZG
MjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8sCisJ
CQkJQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3Vy
YXRpb24uaCAqLywKKwkJCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9T
ZXNzaW9uSWRlbnRpZmllci5oICovLAogCQkJCUNEQUMyMEJGMjNGQzJGNzUwMDIxREVFMyAvKiBS
ZW1vdGVDRE0uY3BwICovLAogCQkJCUNEQUMyMEJBMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1vdGVD
RE0uaCAqLywKIAkJCQlDREFDMjBCODIzRkMyRjczMDAyMURFRTMgLyogUmVtb3RlQ0RNQ29uZmln
dXJhdGlvbi5oICovLApAQCAtNTQyMCw2ICs1NDQ5LDEyIEBACiAJCQkJOUIxMjI5Q0MyM0ZGMjVG
MjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5
QjEyMjlDQjIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIu
aCAqLywKIAkJCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjcyNDBEOEM5NTAwMTdDMjky
IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCAqLywKKwkJCQlDREJCNDlGNjI0MEQ4Qzk1
MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCAqLywKKwkJCQlDREJCNDlGODI0
MEQ4RDUzMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gKi8s
CisJCQkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5jcHAgKi8sCisJCQkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oICovLAorCQkJCUNERDUzNTcwMjQwREQ0RUYwMEY3QjhD
NCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJ
MDcxQkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgKi8s
CiAJCQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5o
ICovLAogCQkJCUNEQUMyMDc5MjNGQjFFMjEwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJv
eHkuY3BwICovLApAQCAtNjcwNiw2ICs2NzQxLDggQEAKIAkJCQkyRDlGQjIwQzIzNzUyMDlEMDA0
OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCiAJCQkJMkQ5RkIyMDAy
Mzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQky
RDlGQjIwOTIzNzUyMDlEMDA0OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbiAqLywKKwkJCQlDREJCNDlFRjI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcCAqLywKKwkJCQlDREJCNDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxh
dGZvcm1TdHJhdGVnaWVzLmggKi8sCiAJCQkJMkQ5RkIyMDEyMzc1MjA5RDAwNDlGOTM2IC8qIEdQ
VVByb2Nlc3MuY3BwICovLAogCQkJCTJEOUZCMjE1MjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9j
ZXNzLmggKi8sCiAJCQkJMkQ5RkIyMDIyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3MubWVz
c2FnZXMuaW4gKi8sCkBAIC05ODMxLDYgKzk4NjgsMTUgQEAKIAkJCQkxQTA0M0I1QzEyNEQ1RTlE
MDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQkxQThFRkE2
RTEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAog
CQkJCTFBOEVGQTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VzLmggKi8s
CisJCQkJQ0RENTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzQyNDBEREUwNzAwRjdCOEM0
IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCUNERDUzNTcz
MjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc5MjQwRERF
MDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCAqLywKKwkJCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTcyMjQwRERFMDYwMEY3
QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1
NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBs
aWVzLmggKi8sCiAJCQkJQ0RBQzIwRjIyM0ZDMzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3Rv
cnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RBQzIwRjMyM0ZDMzgzQTAwMjFE
RUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBQzIwRUUy
M0ZDMzgzOTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzUmVwbGllcy5o
ICovLApAQCAtMTA1MzQsNiArMTA1ODAsNyBAQAogCQkJCUJDMDZGNDRBMTJEQkQxRjUwMDJENzhE
RSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzA2RjQzQTEyREJDQ0ZCMDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREE5NDRBNDE4ODRFNEYwMDBF
RDg2REIgLyogR2VzdHVyZVR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREJCNDlGMDI0MEQ1
N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyREEwNDlCODE4MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDMENFNzJBRDEyNDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVzc2Fn
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDNzVBMUIxQjMzNjgyNzAwNTY3NDVCIC8qIEhhbmdE
ZXRlY3Rpb25EaXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDc1Miw2ICsxMDc5OSw3IEBA
CiAJCQkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25J
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjEyMjlDRDIzRkYyNUYyMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTlC
NUJFQzJBMjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCBp
biBIZWFkZXJzICovLAorCQkJCUNEQkI0OUZEMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRp
b1Nlc3Npb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDNzIzRkMy
Rjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDNTIz
RkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0RBQzIwQ0QyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnkuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZTVjZWM4ZWExYjY4N2Q1
YmRkNzE3ZGNkYzMzMWM0NjFhZGQ1NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw5
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVB
dWRpb1Nlc3Npb24uaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NF
U1NJT04pCisKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJHUFVQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPiBSZW1vdGVBdWRpb1Nlc3Npb246
OmNyZWF0ZShXZWJQcm9jZXNzJiBwcm9jZXNzKQoreworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbkNv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKKyAgICBwcm9jZXNzLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpFbnN1cmVBdWRpb1Nlc3Npb24oKSwgTWVzc2FnZXM6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OkVuc3VyZUF1ZGlvU2Vzc2lvbjo6UmVwbHkoY29uZmlndXJhdGlvbiks
IHsgfSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPihwcm9j
ZXNzLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uOjpS
ZW1vdGVBdWRpb1Nlc3Npb24oV2ViUHJvY2VzcyYgcHJvY2VzcywgUmVtb3RlQXVkaW9TZXNzaW9u
Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykK
KyAgICAsIG1fY29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKQoreworfQorCitS
ZW1vdGVBdWRpb1Nlc3Npb246On5SZW1vdGVBdWRpb1Nlc3Npb24oKSA9IGRlZmF1bHQ7CisKK0lQ
Qzo6Q29ubmVjdGlvbiYgUmVtb3RlQXVkaW9TZXNzaW9uOjpjb25uZWN0aW9uKCkKK3sKKyAgICBy
ZXR1cm4gbV9wcm9jZXNzLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigp
OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBl
IHR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7CisgICAgY29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpTZXRDYXRlZ29yeSh0eXBlLCBw
b2xpY3kpLCB7IH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVk
QnVmZmVyU2l6ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZSks
IHsgfSk7Cit9CisKK2Jvb2wgUmVtb3RlQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVy
bmFsKGJvb2wgYWN0aXZlKQoreworICAgIGJvb2wgc3VjY2VlZGVkOworICAgIGNvbm5lY3Rpb24o
KS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRyeVRvU2V0QWN0
aXZlKGFjdGl2ZSksIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6VHJ5VG9TZXRB
Y3RpdmU6OlJlcGx5KHN1Y2NlZWRlZCksIHsgfSk7CisgICAgcmV0dXJuIHN1Y2NlZWRlZDsKK30K
Kwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKFJlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQoreworICAgIGJvb2wgbXV0
ZWRTdGF0ZUNoYW5nZWQgPSBjb25maWd1cmF0aW9uLmlzTXV0ZWQgIT0gbV9jb25maWd1cmF0aW9u
LmlzTXV0ZWQ7CisKKyAgICBtX2NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOworCisgICAg
aWYgKG11dGVkU3RhdGVDaGFuZ2VkKQorICAgICAgICBoYW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCk7
Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpiZWdpbkludGVycnVwdGlvbihQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQoreworICAgIFBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmJlZ2luSW50ZXJydXB0aW9uKHR5cGUp
OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5kSW50ZXJydXB0aW9uKFBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyBmbGFncykKK3sKKyAgICBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5lbmRJbnRlcnJ1cHRpb24oZmxh
Z3MpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThmOGRjODIz
ZTNmMDEwN2MxOTNiZTk0OGJmN2ZiOTY4YmNlNzlmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKQEAgLTAs
MCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1N
ZWRpYVNlc3Npb24uaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CitjbGFz
cyBXZWJQcm9jZXNzOworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb24gZmluYWwKKyAgICA6IHB1
YmxpYyBXZWJDb3JlOjpBdWRpb1Nlc3Npb24KKyAgICAsIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgVW5pcXVl
UmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4gY3JlYXRlKFdlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFs
IH5SZW1vdGVBdWRpb1Nlc3Npb24oKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgVW5pcXVlUmVm
PFJlbW90ZUF1ZGlvU2Vzc2lvbj4gV1RGOjptYWtlVW5pcXVlUmVmV2l0aG91dEZhc3RNYWxsb2ND
aGVjazxSZW1vdGVBdWRpb1Nlc3Npb24+KFdlYlByb2Nlc3MmLCBSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uJiYpOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbihXZWJQcm9jZXNzJiwgUmVt
b3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYmKTsKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24oKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKwor
ICAgIC8vIE1lc3NhZ2VzCisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChSZW1vdGVBdWRp
b1Nlc3Npb25Db25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24oV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUpOworICAgIHZvaWQg
ZW5kSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1
cHRpb25GbGFncyk7CisKKyAgICAvLyBBdWRpb1Nlc3Npb24KKyAgICB2b2lkIHNldENhdGVnb3J5
KENhdGVnb3J5VHlwZSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KSBmaW5hbDsKKyAgICB2
b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KSBmaW5hbDsKKyAgICBib29sIHRyeVRv
U2V0QWN0aXZlSW50ZXJuYWwoYm9vbCkgZmluYWw7CisKKyAgICBDYXRlZ29yeVR5cGUgY2F0ZWdv
cnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uY2F0ZWdvcnk7IH0KKyAg
ICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnJvdXRlU2hhcmluZ1BvbGljeTsgfQorICAg
IFN0cmluZyByb3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmln
dXJhdGlvbi5yb3V0aW5nQ29udGV4dFVJRDsgfQorICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uc2FtcGxlUmF0ZTsgfQorICAgIHNpemVf
dCBidWZmZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmJ1ZmZl
clNpemU7IH0KKyAgICBzaXplX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscygpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5udW1iZXJPZk91dHB1dENoYW5uZWxzOyB9CisgICAg
c2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZp
Z3VyYXRpb24ucHJlZmVycmVkQnVmZmVyU2l6ZTsgfQorICAgIGJvb2wgaXNNdXRlZCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5pc011dGVkOyB9CisgICAgYm9vbCBpc0Fj
dGl2ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5pc0FjdGl2ZTsgfQor
CisgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24gbV9jb25maWd1cmF0aW9uOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg5NjI4ZjY1N2VmN2NkYmNkYmE3Nzlk
NDFkYjk5YmNhNWQ0NGIxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9f
U0VTU0lPTikKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9TZXNzaW9uIE5vdFJlZkNvdW50ZWQg
eworICAgIENvbmZpZ3VyYXRpb25DaGFuZ2VkKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKKyAgICBCZWdpbkludGVycnVwdGlvbihl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5
cGUgdHlwZSkKKyAgICBFbmRJbnRlcnJ1cHRpb24oZW51bTp1aW50OF90IFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyBmbGFncykKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlNmM0
MzYyZWQ5NWFhNmM1MDFjZDBhNmEyMDNkMmI1ZWE3MWYwYjgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24uaApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1
ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1
Y3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiB7CisKKyAgICBXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeTsKKyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJp
bmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5OworICAgIFN0cmluZyByb3V0aW5nQ29udGV4dFVJ
RDsKKyAgICBmbG9hdCBzYW1wbGVSYXRlOworICAgIHVpbnQ2NF90IGJ1ZmZlclNpemU7CisgICAg
dWludDY0X3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKKyAgICB1aW50NjRfdCBwcmVmZXJyZWRC
dWZmZXJTaXplOworICAgIGJvb2wgaXNNdXRlZDsKKyAgICBib29sIGlzQWN0aXZlOworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjYXRlZ29yeTsKKyAgICAgICAgZW5j
b2RlciA8PCByb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgICAgIGVuY29kZXIgPDwgcm91dGluZ0Nv
bnRleHRVSUQ7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlUmF0ZTsKKyAgICAgICAgZW5jb2Rl
ciA8PCBidWZmZXJTaXplOworICAgICAgICBlbmNvZGVyIDw8IG51bWJlck9mT3V0cHV0Q2hhbm5l
bHM7CisgICAgICAgIGVuY29kZXIgPDwgcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgZW5j
b2RlciA8PCBpc011dGVkOworICAgICAgICBlbmNvZGVyIDw8IGlzQWN0aXZlOworICAgIH0KKwor
ICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBPcHRpb25hbDxSZW1vdGVB
dWRpb1Nlc3Npb25Db25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7
CisgICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiBj
YXRlZ29yeTsKKyAgICAgICAgZGVjb2RlciA+PiBjYXRlZ29yeTsKKyAgICAgICAgaWYgKCFjYXRl
Z29yeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9u
YWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiByb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAg
ICAgIGRlY29kZXIgPj4gcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBpZiAoIXJvdXRlU2hh
cmluZ1BvbGljeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAg
T3B0aW9uYWw8U3RyaW5nPiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgZGVjb2RlciA+PiBy
b3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgaWYgKCFyb3V0aW5nQ29udGV4dFVJRCkKKyAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+IHNh
bXBsZVJhdGU7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxlUmF0ZTsKKyAgICAgICAgaWYgKCFz
YW1wbGVSYXRlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBP
cHRpb25hbDx1aW50NjRfdD4gYnVmZmVyU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBidWZmZXJT
aXplOworICAgICAgICBpZiAoIWJ1ZmZlclNpemUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBudW1iZXJPZk91dHB1dENoYW5u
ZWxzOworICAgICAgICBkZWNvZGVyID4+IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAgICAg
IGlmICghbnVtYmVyT2ZPdXRwdXRDaGFubmVscykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IHByZWZlcnJlZEJ1ZmZlclNpemU7
CisgICAgICAgIGRlY29kZXIgPj4gcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgaWYgKCFw
cmVmZXJyZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgICAgICBPcHRpb25hbDxib29sPiBpc011dGVkOworICAgICAgICBkZWNvZGVyID4+IGlzTXV0
ZWQ7CisgICAgICAgIGlmICghaXNNdXRlZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNBY3RpdmU7CisgICAgICAgIGRlY29kZXIg
Pj4gaXNBY3RpdmU7CisgICAgICAgIGlmICghaXNBY3RpdmUpCisgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAgICAgICAgV1RGTW92ZSgq
Y2F0ZWdvcnkpLAorICAgICAgICAgICAgV1RGTW92ZSgqcm91dGVTaGFyaW5nUG9saWN5KSwKKyAg
ICAgICAgICAgIFdURk1vdmUoKnJvdXRpbmdDb250ZXh0VUlEKSwKKyAgICAgICAgICAgICpzYW1w
bGVSYXRlLAorICAgICAgICAgICAgKmJ1ZmZlclNpemUsCisgICAgICAgICAgICAqbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywKKyAgICAgICAgICAgICpwcmVmZXJyZWRCdWZmZXJTaXplLAorICAgICAg
ICAgICAgKmlzTXV0ZWQsCisgICAgICAgICAgICAqaXNBY3RpdmUsCisgICAgICAgIH19OworICAg
IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVu
dGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvbklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTQ4MGM2OTRlMmIzZDk3YjU5NmUyYTA3
MzAzZDY3ZmIwZjk5YmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgKQEAgLTAsMCArMSwz
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVy
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50
aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIgPSBPYmpl
Y3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKaW5kZXggNWQ3YThiOGQxMTI0
YjJhNTI4YWQ3M2JkYzk2ZDlhOTc4MGRjMjA0Yy4uMDJlNmIyOTljOTdjODJkYTdhZThlZGQ1ZmRh
MTI3ZGQ2MjU0YTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNs
dWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUg
IlJlbW90ZUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9uLmg+CkBAIC0zNiwyMiArMzcsMjQgQEAKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBXZWJNZWRpYVN0cmF0
ZWd5Ojp+V2ViTWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsKIAogI2lmIEVOQUJMRShXRUJfQVVE
SU8pCi1zdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVkaWFT
dHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2sm
IGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCitzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlv
bihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91
dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKICAgICBpZiAobV91c2VHUFVQcm9jZXNzKQogICAgICAgICByZXR1cm4gUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5OjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9m
SW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CiAjZW5k
aWYKLSAgICByZXR1cm4gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNr
LCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hh
bm5lbHMsIHNhbXBsZVJhdGUpOworICAgIHJldHVybiBNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRp
b0Rlc3RpbmF0aW9uKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogfQogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotdm9pZCBXZWJNZWRpYVN0cmF0ZWd5OjpyZWdpc3Rl
ckNETUZhY3RvcmllcyhWZWN0b3I8V2ViQ29yZTo6Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMpCit2
b2lkIFdlYk1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0
b3J5Kj4mIGZhY3RvcmllcykKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1f
dXNlR1BVUHJvY2VzcykgewpAQCAtNTksNyArNjIsMTggQEAgdm9pZCBXZWJNZWRpYVN0cmF0ZWd5
OjpyZWdpc3RlckNETUZhY3RvcmllcyhWZWN0b3I8V2ViQ29yZTo6Q0RNRmFjdG9yeSo+JiBmYWN0
b3IKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgotICAgIFdlYkNvcmU6OkNETUZhY3Rv
cnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoZmFjdG9yaWVzKTsKKyAgICBNZWRpYVN0cmF0
ZWd5OjpyZWdpc3RlckNETUZhY3RvcmllcyhmYWN0b3JpZXMpOworfQorI2VuZGlmCisKKyNpZiBV
U0UoQVVESU9fU0VTU0lPTikKK1VuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+IFdlYk1lZGlhU3RyYXRl
Z3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAg
IGlmIChtX3VzZUdQVVByb2Nlc3MpCisgICAgICAgIHJldHVybiBSZW1vdGVBdWRpb1Nlc3Npb246
OmNyZWF0ZShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKSk7CisjZW5kaWYKKyAgICByZXR1cm4gTWVk
aWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9TZXNzaW9uKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApp
bmRleCA0ZmFiMGU5NDRmYzE0ZTY4NDM3OWUzMDA4MTYzYmUxNjJkZDg5YjRkLi40YzVjZDdjMzUw
OGQ2ZGJmOWI0ZmYwYmFiMGRiNTJmNzg0ZTYzMzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApAQCAtNDYsNiArNDYs
MTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxXZWJD
b3JlOjpDRE1GYWN0b3J5Kj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgVVNFKEFVRElPX1NF
U1NJT04pCisgICAgVW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbj4gY3JlYXRlQXVkaW9T
ZXNzaW9uKCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAg
ICBib29sIG1fdXNlR1BVUHJvY2VzcyB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5tbQppbmRleCBiOTA5ZWNjNDM5YmNkM2M2ZjZkYTgwNDFjNmVmMjkzZmYzNDY2
OTZmLi42YjQ3M2NlOTNhYjhlZWM5MWQ5M2I3MDg3MDQzZWJhNzgzNWYxNmQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC02NSwyNiArNjUsOSBAQCBQYXN0ZWJvYXJkU3RyYXRl
Z3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkKICAg
ICByZXR1cm4gdGhpczsKIH0KIAotY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1Ymxp
YyBNZWRpYVN0cmF0ZWd5IHsKLXByaXZhdGU6Ci0jaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihB
dWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCi0g
ICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAg
IHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQs
IG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0
ZSk7Ci0gICAgfQotI2VuZGlmCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2b2lk
IHJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5Kj4mIGZhY3Rvcmllcykgb3Zl
cnJpZGUKLSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpDRE1GYWN0b3J5OjpwbGF0Zm9y
bVJlZ2lzdGVyRmFjdG9yaWVzKGZhY3Rvcmllcyk7Ci0gICAgfQotI2VuZGlmCi19OwotCiBNZWRp
YVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQog
ewotICAgIHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKKyAgICByZXR1cm4gbmV3IE1lZGlh
U3RyYXRlZ3k7CiB9CiAKIGNsYXNzIFdlYkJsb2JSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBCbG9i
UmVnaXN0cnkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392457</attachid>
            <date>2020-03-04 12:38:05 -0800</date>
            <delta_ts>2020-03-04 13:13:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200304123804.patch</filename>
            <type>text/plain</type>
            <size>105957</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkODA0MjkxNDkyNWFlNWJmYTc5ZWZj
ZmUxYTMwZDc5YjU1Yjg3NjEuLjcxNWExOGJmMDQzMDAxYjE3ZjUyODUyMzQ4OGUyNmYwOGIxNWU1
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBV
bmlxdWVSZWYgdG8gdGhlIGxpc3Qgb2YgZm9yd2FyZC1kZWNsYXJlZCB0ZW1wbGF0ZSB0eXBlcy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisKIDIwMjAtMDMtMDMgIEppdGVuIE1laHRhICA8
am1laHRhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBIVFRQIEFsdGVybmF0aXZlIFNlcnZp
Y2VzIFN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTFkOTE0MmI0MWVkYzIwNDViMDFkNzE4YzYzZjE0
MTBhNmM0MjNhLi4xZGI3MGE2NmUxYmRhOThiYTJkNTU3ZGFmNGYxNDg3M2UyODY1ZGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
biBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5IHdoaWNoIHByb3ZpZGVzIGRlZmF1bHQg
aW1wbGVtZW50YXRpb25zIG9mIHRoZQorICAgICAgICBwbGF0Zm9ybSBjcmVhdGlvbiBtZXRob2Rz
LCBzbyB0aGV5IGRvbid0IG5lZWQgdG8gYmUgcmUtaW1wbGVtZW50ZWQgYnkgZWFjaCBjbGllbnQg
dW5sZXNzCisgICAgICAgIHRoYXQgY2xpZW50IG5lZWRzIHRvIG92ZXJyaWRlIHRoYXQgYmVoYXZp
b3IuCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUgZW51bWVyYXRpb25zIGlu
c2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1ZGlvU2Vzc2lvbiBtZXRo
b2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGNhc2Ugd2hlcmUg
dGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0
ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb24uaDoKKwogMjAyMC0wMi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUF0gSW1wbGVtZW50IE1vZGVybiBFTUUgQVBJIGluIHRoZSBHUFUgUHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA0NTBlN2UzNTJmM2VhYjhmMzU2MGUxNjViNzNhYmU5M2MwODQ2OTA4
Li5lMjEzNWE3ZjM1YmY0Yjg0MzQxNzVjYmU4MWQ3YTdmMTE1YTM2NjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDk1IEBACisyMDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdWJjbGFzcyBv
ZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBhdWRpbyBiZWhh
dmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAgICAgYXVkaW8g
YmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJvY2Vzcywgc2lu
Y2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFsbHkKKyAgICAg
ICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAgICAgICAgRHVl
IHRvIHRoZSB3YXkgQXVkaW9TZXNzaW9uIG5vdyByZXF1aXJlcyB0aGUgUGxhdGZvcm1TdHJhdGVn
aWVzIG9iamVjdCB0byBjcmVhdGUgYSBjb25jcmV0ZSBBdWRpb1Nlc3Npb24sIHRoZSBHUFUKKyAg
ICAgICAgcHJvY2VzcyBuZWVkcyBpdHMgb3duIFBsYXRmb3JtU3RyYXRlZ2llcyBzdWJjbGFzcywg
YnV0IHVzaW5nIHRoZSBkZWZhdWx0IE1lZGlhU3RyYXRlZ3kgZnJvbSBXZWJDb3JlLgorCisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKToKKyAg
ICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVB
dWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpsZWdhY3lDZG1GYWN0b3J5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZUxvYWRlclN0cmF0ZWd5KToKKyAgICAgICAgKFdlYktpdDo6R1BV
UGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3kpOgorICAgICAgICAo
V2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorICAg
ICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Ojppbml0aWFsaXplR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmF1
ZGlvU2Vzc2lvbk1hbmFnZXIgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Ojpwcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6ZW5kSW50ZXJydXB0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbik6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnJvdXRl
U2hhcmluZ1BvbGljeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjpwcmVmZXJyZWRCdWZmZXJTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmdldFByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRDYXRlZ29yeUZvclByb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNl
dFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2Vzc2lv
biBjb25zdCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uOjpSZW1vdGVBdWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb246OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
OjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmg6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmg6CisKIDIwMjAtMDItMjMgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIEltcGxlbWVudCBNb2Rlcm4gRU1FIEFQ
SSBpbiB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4ODZk
ZGVhNWY2ZjAzMmU5YTg4MjZlZjFkYjYwMDc0YmI2OTc3MGQyLi45OTlkYmRiNzlkNzhmZTM2YzJi
YTY0ODUwYzk1YzQyM2UwNGU4MDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUgZGVmYXVsdCBN
ZWRpYVN0cmF0ZWd5IGZyb20gV2ViQ29yZSBub3cgdGhhdCBpdCdzIGF2YWlsYWJsZS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisKIDIwMjAtMDMt
MDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEl0ZW1zIGluIHRoZSB0b29sYmFyIHRha2UgdXAgdG8gbXVjaCB2ZXJ0aWNhbCBzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYv
Rm9yd2FyZC5oCmluZGV4IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThmNzAzYThmMGQu
LjZlOTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAg
LTY4LDYgKzY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBEdW1iUHRyVHJh
aXRzPFQ+PiBjbGFzcyBSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IER1bWJQ
dHJUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJp
bmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBjbGFzcyBTdHJp
bmdUeXBlQWRhcHRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1ZVJlZjsKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBz
dHJ1Y3QgRGVmYXVsdEhhc2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEyNSw2ICsxMjYs
NyBAQCB1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3NpdGlvbjsKIHVz
aW5nIFdURjo6VGV4dFN0cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RGOjpVbmlxdWVS
ZWY7CiB1c2luZyBXVEY6OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCBhNzIxZmJiMWFkOGE1YWE2YmRhMDliNjNiM2EyYTlkOTk3YzkxMTJmLi4wMDZlMzhh
YjY5MGE1Njg1Njk4ZDc3M2QzOGViZDRlZTEyMmNhM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc0
MCw2ICsxNzQwLDcgQEAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKIHBsYXRmb3JtL0xvd1Bvd2VyTW9k
ZU5vdGlmaWVyLmNwcAogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKIHBsYXRmb3JtL01h
aW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKK3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCiBwbGF0
Zm9ybS9Ob3RJbXBsZW1lbnRlZC5jcHAKIHBsYXRmb3JtL1Bhc3RlYm9hcmQuY3BwCiBwbGF0Zm9y
bS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZjAyM2ViZDRlZGRiZjY5MzQwNTcyMzY5
N2FkZTliZjUzOTY4NTg5Li5kZGFmNzFkM2NmNGZhZmM2YjRhNzUyOTM5NDA5YzYxZDQxODZkYWU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzk4Nyw2ICsxMzk4Nyw3IEBACiAJCUNEQUU4QzA4MTc0NkI5NTcwMDUzMkQ3OCAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVh
bWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDRE1GYWlyUGxheVN0cmVhbWluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREI3MDQ1OTFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBs
YXlTdHJlYW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0My
OTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmF0ZWd5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNEMjgxRkU4NUNCODAwMTJD
NTQ1IC8qIFZpZGVvQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlk
ZW9Db25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNE
MjkxRkU4NUNCOTAwMTJDNTQ1IC8qIE1lZGlhQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RCRDNEMkExRkU4NUNCQTAwMTJDNTQ1IC8qIE1lZGlhRW5jb2RpbmdDb25maWd1
cmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUVuY29kaW5nQ29uZmlndXJh
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTk2Myw2ICsyNTk2NCw3
IEBACiAJCQkJQ0RGMkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAq
LywKIAkJCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLywKIAkJ
CQlBMTdEMjc1RDFFQUM1Nzk4MDBCRjAxRTcgLyogTWVkaWFTZWxlY3Rpb25PcHRpb24uaCAqLywK
KwkJCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0MyOTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8sCiAJ
CQkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCQlC
Qzc3MkM0QzBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJ
QkM3NzJDNEQwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdjMjRjZDA2
MDMxMzVlNGVjZjFmY2VlYTBkMTAwZjE3YmU1ZDgxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgorCisjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lv
bi5oIgorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJDRE1GYWN0b3J5
LmgiCisjaW5jbHVkZSAiTGVnYWN5Q0RNLmgiCisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKK1VuaXF1ZVJl
ZjxBdWRpb1Nlc3Npb24+IE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpCit7Cisg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJM
RShXRUJfQVVESU8pCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gTWVkaWFTdHJh
dGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KQoreworICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0
RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
c2FtcGxlUmF0ZSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCit2
b2lkIE1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5
Kj4mIGZhY3RvcmllcykKK3sKKyAgICByZXR1cm4gQ0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3RvcmllcyhmYWN0b3JpZXMpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU3RyYXRlZ3kuaAppbmRleCA2MGE1ODQ3YzhjZWMxMGI3OWI3NDlhNmZhZjg1MDNk
MTZhMTk5Yjk1Li5jZGM0ODVjZjQ0MDI3MDJjOWJhNTAxYTNiMGI0YmY2MjdkNDY4YmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCkBAIC0zMSwxNiArMzEsMjAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uOwogY2xhc3MgQXVk
aW9JT0NhbGxiYWNrOworY2xhc3MgQXVkaW9TZXNzaW9uOwogY2xhc3MgQ0RNRmFjdG9yeTsKIAog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CisjaWYgVVNFKEFV
RElPX1NFU1NJT04pCisgICAgdmlydHVhbCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBjcmVhdGVB
dWRpb1Nlc3Npb24oKTsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bigKLSAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKKyAgICAgICAgQXVkaW9JT0NhbGxiYWNr
JiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpOwogI2Vu
ZGlmCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+TWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4
IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNmMmY1N2QuLjQ2ZWM3M2RlYTgyNWNh
M2M2MjJiMTJlYmFmZTczMTNlNmZjMDM0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMjgsMTUgKzI4LDIyIEBACiAKICNpZiBVU0Uo
QVVESU9fU0VTU0lPTikKIAorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1VuaXF1
ZVJlZjxBdWRpb1Nlc3Npb24+IEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
bWFrZVVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+KCk7Cit9CisKIEF1ZGlvU2Vzc2lvbiYgQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXVk
aW9TZXNzaW9uPiBzZXNzaW9uOwotICAgIHJldHVybiBzZXNzaW9uOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPj4gc2Vzc2lvbiA9IHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkuY3JlYXRlQXVkaW9TZXNzaW9uKCk7CisgICAgcmV0
dXJuIHNlc3Npb24uZ2V0KCk7CiB9CiAKIGJvb2wgQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2
ZShib29sIGFjdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uLmgKaW5kZXggZTcwMDgyMmZmMWZlZWJkNzgyOWFlYzc1MGNjZTQwYTYwYjkyNTY2YS4uY2Zj
NDEzODYwMjVlN2E2NDhhYzJlM2I2M2I5NjVmYTQzZDU0M2QyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDQsMTMgKzQ1LDE3IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdCB7
CiAgICAgTG9uZ0Zvcm1WaWRlbwogfTsKIAotY2xhc3MgQXVkaW9TZXNzaW9uIGZpbmFsIHsKK2Ns
YXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9TZXNzaW9uKTsKKyAgICBmcmll
bmQgY2xhc3MgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj47CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxB
dWRpb1Nlc3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8QXVk
aW9TZXNzaW9uPigpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1Nl
c3Npb24mIHNoYXJlZFNlc3Npb24oKTsKKyAgICBzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lv
bj4gY3JlYXRlKCk7CisgICAgc3RhdGljIEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOwor
ICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgewor
ICAgIGVudW0gQ2F0ZWdvcnlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAg
IEFtYmllbnRTb3VuZCwKICAgICAgICAgU29sb0FtYmllbnRTb3VuZCwKQEAgLTU5LDIzICs2NCwy
MyBAQCBwdWJsaWM6CiAgICAgICAgIFBsYXlBbmRSZWNvcmQsCiAgICAgICAgIEF1ZGlvUHJvY2Vz
c2luZywKICAgICB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdv
cnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpOwotICAgIFdFQkNPUkVfRVhQT1JUIENhdGVnb3J5
VHlwZSBjYXRlZ29yeSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRl
Z29yeVR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdmlydHVhbCBDYXRlZ29yeVR5cGUg
Y2F0ZWdvcnkoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29y
eVR5cGUpOwogICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3Q7CiAKLSAg
ICBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7Ci0gICAgU3Ry
aW5nIHJvdXRpbmdDb250ZXh0VUlEKCkgY29uc3Q7CisgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQ
b2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgcm91
dGluZ0NvbnRleHRVSUQoKSBjb25zdDsKIAotICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsK
LSAgICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZk91dHB1
dENoYW5uZWxzKCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7
CisgICAgdmlydHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgc2l6
ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAogICAgIGJvb2wgdHJ5VG9TZXRB
Y3RpdmUoYm9vbCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVy
U2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwor
ICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xhc3MgTXV0
ZWRTdGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04NywxNyArOTIsMTYgQEAgcHVibGlj
OgogICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwog
ICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwog
Ci0gICAgYm9vbCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBoYW5kbGVNdXRlZFN0YXRlQ2hh
bmdlKCk7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBmcmllbmQg
Y2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRpb1Nlc3Npb24oKTsK
LSAgICB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwo
Ym9vbCk7CisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCk7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0ZT4gbV9wcml2YXRlOwogICAg
IEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAppbmRleCBh
OGQxOGJlNGVhYmFlOWVjODBmZjVkZWY0ZmI3YmNhOWRhNjU3MDdhLi4xMjhmYWRhZTBmZDk2N2Vm
YTBmZTljYzE0MTU3NDdkOTNmZWNjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb24oKTsKIAotICAgIGVudW0g
Y2xhc3MgTWVkaWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSA6IHVpbnQ4X3Qgewog
ICAgICAgICBOb25lID0gMCwKICAgICAgICAgVmlkZW8sCiAgICAgICAgIFZpZGVvQXVkaW8sCkBA
IC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5cGUgbWVkaWFUeXBlKCkgY29uc3Q7
CiAgICAgTWVkaWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBjb25zdDsKIAotICAgIGVudW0gU3Rh
dGUgeworICAgIGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAgICAgICAgSWRsZSwKICAgICAgICAg
QXV0b3BsYXlpbmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoK
ICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICB2b2lkIHNl
dFN0YXRlKFN0YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0aW9uVHlwZSB7CisgICAgZW51bSBJ
bnRlcnJ1cHRpb25UeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vSW50ZXJydXB0aW9uLAogICAg
ICAgICBTeXN0ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdCYWNrZ3JvdW5kLApAQCAtOTEsNyAr
OTEsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIGludGVycnVwdGlv
blR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlvblR5cGU7IH0KIAotICAgIGVudW0g
RW5kSW50ZXJydXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgOiB1
aW50OF90IHsKICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAgICAgIE1heVJlc3VtZVBsYXlpbmcg
PSAxIDw8IDAsCiAgICAgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGRv
dWJsZSBhc0RvdWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRBcmd1bWVudDsKIAotICAgIGVudW0g
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVtIFJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQsCiAgICAgICAgIFBsYXlDb21tYW5k
LAogICAgICAgICBQYXVzZUNvbW1hbmQsCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSwgY29uc3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBhcmd1bWVudCA9IG51bGxwdHIpOwog
ICAgIGJvb2wgc3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAKLSAgICBlbnVtIERpc3BsYXlUeXBl
IHsKKyAgICBlbnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vcm1hbCwKICAg
ICAgICAgRnVsbHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVkLApAQCAtMzExLDQgKzMxMSw2NCBA
QCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZT4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpN
ZWRpYVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlh
VHlwZTo6VmlkZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlw
ZTo6VmlkZW9BdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFU
eXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBl
OjpXZWJBdWRpbworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGUs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpJZGxlLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6QXV0b3BsYXlpbmcsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQbGF5aW5nLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2VkLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQKKyAgICA+OworfTsKKwordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Oklu
dGVycnVwdGlvblR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6Tm9JbnRlcnJ1cHRp
b24sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6
OlN5c3RlbVNsZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRpb25UeXBlOjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUludGVycnVwdGlvbiwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3VzcGVuZGVkVW5k
ZXJMb2NrLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25U
eXBlOjpJbnZpc2libGVBdXRvcGxheSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6SW50ZXJydXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZlLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQbGF5YmFja1N1c3BlbmRlZAorICAg
ID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50
ZXJydXB0aW9uRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZElu
dGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1lUGxheWluZworICAgID47Cit9Owor
Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3Rl
Q29udHJvbENvbW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGxheUNvbW1hbmQsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGF1
c2VDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250
cm9sQ29tbWFuZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRvZ2dsZVBsYXlQYXVzZUNvbW1hbmQs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZTo6QmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OkVuZFNlZWtpbmdCYWNrd2Fy
ZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6RW5kU2Vla2lu
Z0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1v
dGVDb250cm9sQ29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNrUG9zaXRpb25Db21tYW5kCisgICAg
PjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggZDZjMDA3ZjQwYjVmYjc2
MzcyMmQ1MzhhZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGExZDBhYTYzODljM2RmODkzNjcxMGEz
NTg5YTQ0NTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9p
b3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQzLDE1IEBAIHZvaWQgQXVkaW9TZXNz
aW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZmZXJTaXplKQogICAgIEFTU0VS
VCghZXJyb3IpOwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6aXNNdXRlZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6aGFuZGxlTXV0ZWRTdGF0
ZUNoYW5nZSgpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKSAmJiBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IDlmOTQ2Zjg0OTdhZjIzYjRhZmE1MWI3OTE4NDE4NTE4ODYwYWM1
YjkuLmQ3NDliMmRiMDliOTY3NDZmNGEwZjFlMzRjMjE3NDJlZGY1M2U0NmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE4LDYgKzE4LDgg
QEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldl
YktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1G
YWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAt
MTE2LDYgKzExOCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYTk2YzJjZmRkZDQ2YjM1OTIzOGU5NjIzNDNhOTkyMjEw
NGVlYTU5Yi4uOTk1MDM1MTJiYTU1OGIyYjQxMDA4ZjViMTY2NTA0NjBhOTU0MTQ1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzcs
NiArMTM3LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVBy
b3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCA0NWVlM2RiN2VkN2UxMzM3MmM4YTc1YWQ1NTVhMTY1ODdmNjdkMDhh
Li4xYzNkMWEyMGVlYTNiNzM4MDAxMDJlMWQzMTk4Mzc5MDNhYTZjZDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0xNDgsNiArMTQ4LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAgICAgUGx1Z2luUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwK
ICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAorICAgIFJlbW90ZUF1ZGlvU2Vzc2lv
biBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCmluZGV4IDZjZjFjMzBiM2UzMzAxMjc3NDY2ZDkyZWUyOTMzMjQ2MDdlNTljYzEuLjQx
YmRjZDA1MmUzZWJkYjZiZTZiZWNhZTJmNDc0ZTg1MmY2YjNjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTcxLDYgKzcxLDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oIgogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorI2lu
Y2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
ZXNzYWdlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xMTksNiArMTI0LDEwIEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKIAogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworICAgIGlmIChtX2F1ZGlvU2Vz
c2lvblByb3h5KSB7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2VyKCku
cmVtb3ZlUHJveHkod2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIG1fYXVkaW9TZXNz
aW9uUHJveHkgPSBudWxscHRyOworICAgIH0KIH0KIAogTG9nZ2VyJiBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpsb2dnZXIoKQpAQCAtMjE3LDYgKzIyNiwxNyBAQCBSZW1vdGVDRE1GYWN0b3J5
UHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNkbUZhY3RvcnlQcm94eSgpCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCitS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9T
ZXNzaW9uUHJveHkoKQoreworICAgIGlmICghbV9hdWRpb1Nlc3Npb25Qcm94eSkgeworICAgICAg
ICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNyZWF0ZSgq
dGhpcykubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Np
b25NYW5hZ2VyKCkuYWRkUHJveHkobWFrZVdlYWtQdHIobV9hdWRpb1Nlc3Npb25Qcm94eS5nZXQo
KSkpOworICAgIH0KKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uUHJveHk7Cit9CisjZW5kaWYK
Kwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5k
KFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQog
ewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNYXAu
ZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0yMzEsNiArMjUx
LDIzIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVsZWFzZVJlbmRlcmluZ0Jh
Y2tlbmQoUmVuZGVyaW5nQmFja2VuZElkZW50aWZpCiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwg
Zm91bmQpOwogfQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lP
TikKK3ZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlQXVkaW9TZXNzaW9uKEVu
c3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24mJiBjb21wbGV0aW9uKQoreworICAgIGNvbXBsZXRp
b24oYXVkaW9TZXNzaW9uUHJveHkoKS5jb25maWd1cmF0aW9uKCkpOworfQorI2VuZGlmCisKKyNp
ZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKK1JlbW90ZUxlZ2FjeUNETUZhY3RvcnlQ
cm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bGVnYWN5Q2RtRmFjdG9yeVByb3h5KCkK
K3sKKyAgICBpZiAoIW1fbGVnYWN5Q2RtRmFjdG9yeVByb3h5KQorICAgICAgICBtX2xlZ2FjeUNk
bUZhY3RvcnlQcm94eSA9IG1ha2VVbmlxdWU8UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5Pigq
dGhpcyk7CisKKyAgICByZXR1cm4gKm1fbGVnYWN5Q2RtRmFjdG9yeVByb3h5OworfQorI2VuZGlm
CisKIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMzA4LDYgKzM0
NSwyOCBAQCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUxlZ2FjeUNE
TUZhY3RvcnlQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGxlZ2FjeUNk
bUZhY3RvcnlQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlv
biwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTGVnYWN5Q0RNUHJv
eHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBsZWdhY3lDZG1GYWN0b3J5UHJv
eHkoKS5kaWRSZWNlaXZlQ0RNTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkgeworICAgICAgICBsZWdhY3lDZG1GYWN0b3J5UHJveHkoKS5kaWRSZWNlaXZl
Q0RNU2Vzc2lvbk1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Cisg
ICAgICAgIGF1ZGlvU2Vzc2lvblByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgogCiAgICAgcmV0
dXJuIG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsKIH0KQEAgLTM1NSw2ICs0MTQsMjggQEAgYm9vbCBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogI2VuZGlmCisjaWYgRU5BQkxFKExFR0FDWV9FTkNS
WVBURURfTUVESUEpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1l
c3NhZ2VzOjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgeworICAgICAgICBsZWdhY3lDZG1GYWN0b3J5UHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3Nh
Z2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUxlZ2FjeUNETVByb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKKyAgICAgICAgbGVnYWN5Q2RtRmFjdG9yeVByb3h5KCkuZGlkUmVjZWl2ZVN5
bmNDRE1NZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgbGVnYWN5Q2RtRmFjdG9yeVByb3h5KCkuZGlkUmVjZWl2
ZVN5bmNDRE1TZXNzaW9uTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNl
aXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSkgeworICAgICAgICBhdWRpb1Nlc3Npb25Qcm94eSgpLmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiBtZXNzYWdlUmVjZWl2ZXJN
YXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rl
cik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaAppbmRleCBhM2VjYTVjOGZhZDY5MTgzODBmZDkzM2JmNjMwZGQ0Y2ZmNzMw
ZDk2Li4zMDc5MDZmYTIwNTA2ODM4YTU0NTNjMTc5OTc3NWQ3ZjMyZmI1YmEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyTWFwLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIlJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmll
ci5oPgpAQCAtNDgsMTIgKzQ5LDE1IEBAIGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBMaWJXZWJS
VENDb2RlY3NQcm94eTsKIGNsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogY2xh
c3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOworY2xhc3MgUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXI7CiBjbGFzcyBSZW1vdGVDRE1GYWN0b3J5UHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOwogY2xhc3Mg
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKK3N0
cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uOwogCiBjbGFzcyBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzPgpAQCAtOTAsMTEgKzk0LDE1IEBAIHB1YmxpYzoKICAgICBSZW1vdGVDRE1GYWN0
b3J5UHJveHkmIGNkbUZhY3RvcnlQcm94eSgpOwogI2VuZGlmCiAKKyAgICBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpOworI2VuZGlmCisKIHBy
aXZhdGU6CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiwgV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgUEFMOjpT
ZXNzaW9uSUQpOwogCiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXImIHJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkmIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCk7CiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIFVTRShMSUJXRUJSVEMpCiAgICAgTGliV2ViUlRDQ29kZWNzUHJveHkmIGxpYldlYlJUQ0Nv
ZGVjc1Byb3h5KCk7CiAjZW5kaWYKQEAgLTEwNiw4ICsxMTQsMTcgQEAgcHJpdmF0ZToKICAgICBS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyKCk7CiAjZW5kaWYKICNlbmRpZgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgYXVk
aW9TZXNzaW9uUHJveHkoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBjcmVhdGVSZW5kZXJpbmdCYWNr
ZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW5kZXJp
bmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIHVzaW5nIEVuc3VyZUF1ZGlvU2Vzc2lv
bkNvbXBsZXRpb24gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlbW90ZUF1ZGlvU2Vz
c2lvbkNvbmZpZ3VyYXRpb24mKT47CisgICAgdm9pZCBlbnN1cmVBdWRpb1Nlc3Npb24oRW5zdXJl
QXVkaW9TZXNzaW9uQ29tcGxldGlvbiYmKTsKKyNlbmRpZgogCiAgICAgLy8gSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIGZpbmFsOwpA
QCAtMTQ3LDYgKzE2NCw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ0RNRmFjdG9yeVByb3h5PiBtX2NkbUZhY3RvcnlQ
cm94eTsKICNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJ
T04pCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBtX2F1ZGlv
U2Vzc2lvblByb3h5OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTMyYzAxMjJkZTA4MWVkZTliYjllZmI1NmY5YmM1
MjU5YmE0ZDcwNC4uNGZkMGYyMjMwN2U4Mzg4MzZkNDc0YmFiM2UwMjc1YTM1YzA3NTBiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgV2FudHNEaXNwYXRjaE1lc3NhZ2UgewogICAgIHZv
aWQgQ3JlYXRlUmVuZGVyaW5nQmFja2VuZChXZWJLaXQ6OlJlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQogICAgIHZvaWQgUmVsZWFzZVJlbmRlcmlu
Z0JhY2tlbmQoV2ViS2l0OjpSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllcikKKyAgICBFbnN1cmVBdWRpb1Nlc3Npb24oKSAtPiAoc3RydWN0IFdlYktp
dDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKSBTeW5jaHJv
bm91cwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
NjVkM2U0YTYyOGM5YjMzMTVmMmRmM2I2YWNlZDc5NjZkYWExZGUyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAg
LTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
Q0RNRmFjdG9yeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGVnYWN5Q0RNLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYVN0cmF0ZWd5Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxp
emUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM+
IHBsYXRmb3JtU3RyYXRlZ2llczsKKyAgICBzZXRQbGF0Zm9ybVN0cmF0ZWdpZXMoJnBsYXRmb3Jt
U3RyYXRlZ2llcy5nZXQoKSk7Cit9CisKK0dQVVBsYXRmb3JtU3RyYXRlZ2llczo6R1BVUGxhdGZv
cm1TdHJhdGVnaWVzKCkgPSBkZWZhdWx0OworCitMb2FkZXJTdHJhdGVneSogR1BVUGxhdGZvcm1T
dHJhdGVnaWVzOjpjcmVhdGVMb2FkZXJTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1Bhc3RlYm9hcmRTdHJhdGVneSogR1BVUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQ
YXN0ZWJvYXJkU3RyYXRlZ3koKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitNZWRpYVN0
cmF0ZWd5KiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQorewor
ICAgIHJldHVybiBuZXcgTWVkaWFTdHJhdGVneSgpOworfQorCitCbG9iUmVnaXN0cnkqIEdQVVBs
YXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKK3sKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2Y5Mzk3Y2RiMGNjOGFkMTBiN2Jm
YzljZjAwNzM2MDlhZTYzMWE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJhdGVnaWVz
Lmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTG9hZGVyU3RyYXRlZ3k7CitjbGFzcyBQYXN0
ZWJvYXJkU3RyYXRlZ3k7CitjbGFzcyBNZWRpYVN0cmF0ZWd5OworY2xhc3MgQmxvYlJlZ2lzdHJ5
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVUGxhdGZvcm1TdHJhdGVnaWVz
IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcyB7CisgICAgZnJpZW5kIE5ldmVy
RGVzdHJveWVkPEdQVVBsYXRmb3JtU3RyYXRlZ2llcz47CitwdWJsaWM6CisgICAgc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIEdQVVBsYXRmb3JtU3RyYXRlZ2llcygp
OworCisgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCisgICAgV2ViQ29yZTo6TG9h
ZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29y
ZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlk
ZTsKKyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3Zl
cnJpZGU7CisgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBv
dmVycmlkZTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJv
Y2Vzcy5jcHAKaW5kZXggMGU3YmQwOWJlYTVkMTIzYTQwN2VjZmI5ZDM5ZjcyNDBmNWIzYzdiOS4u
NjAzNzAwNTljZDE0OTU1MzZlZjQ1Y2Y0OTY0NTJkZDQxZTI0ZTQ3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkF1
eGlsaWFyeVByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNp
bmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiR1BVUGxhdGZv
cm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IgogI2luY2x1ZGUgIkdQVVByb2Nlc3NTZXNzaW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKQEAgLTUxLDYgKzUyLDEwIEBACiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApAQCAtMTEwLDYgKzExNSw4IEBAIHZvaWQgR1BVUHJvY2Vzczo6aW5pdGlh
bGl6ZUdQVVByb2Nlc3MoR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAgICAgV1RGOjpUaHJlYWQ6OnNldEN1cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQoKTsKICAg
ICBBdG9tU3RyaW5nOjppbml0KCk7CiAKKyAgICBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRp
YWxpemUoKTsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRGVwcmVjYXRlZEdsb2Jh
bFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKICNl
bmRpZgpAQCAtMjEyLDYgKzIxOSwxNSBAQCBjb25zdCBTdHJpbmcmIEdQVVByb2Nlc3M6Om1lZGlh
S2V5c1N0b3JhZ2VEaXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjbwogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyJiBHUFVQcm9jZXNzOjphdWRpb1Nlc3Npb25NYW5h
Z2VyKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYXVkaW9TZXNzaW9uTWFuYWdlcikKKyAgICAgICAg
bV9hdWRpb1Nlc3Npb25NYW5hZ2VyID0gV1RGOjptYWtlVW5pcXVlPFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlcj4oKTsKKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uTWFuYWdlcjsKK30K
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCmluZGV4IDZmYTAyMDE0
Yjk0NzgxZWE5OWUwMzVkYjNhZDc5ZDY1YTI0ZjI4N2IuLjQzYWFlMWExMmI1Yjg4NWIyNmM1NmRk
ZjE1Mjk2MGYwMjI3YzUyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaApA
QCAtNDAsNiArNDAsNyBAQCBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogc3RydWN0
IEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgR1BVUHJvY2Vzc1Nlc3Npb25Q
YXJhbWV0ZXJzOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKK2NsYXNzIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcjsKIAogY2xhc3MgR1BVUHJvY2VzcyA6IHB1YmxpYyBBdXhpbGlh
cnlQcm9jZXNzLCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8R1BVUHJvY2Vzcz4sIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxHUFVQcm9jZXNzPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
R1BVUHJvY2Vzcyk7CkBAIC02Myw2ICs2NCwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5n
JiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KFBBTDo6U2Vzc2lvbklEKSBjb25zdDsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXImIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKSBjb25z
dDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgbG93TWVtb3J5SGFuZGxlcihDcml0aWNh
bCk7CiAKQEAgLTEwMyw2ICsxMDgsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxM
YXllckhvc3RpbmdDb250ZXh0PiBtX2NvbnRleHRGb3JWaXNpYmlsaXR5UHJvcGFnYXRpb247CiAg
ICAgYm9vbCBtX2NhblNob3dXaGlsZUxvY2tlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIG11dGFibGUgc3RkOjp1
bmlxdWVfcHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcj4gbV9hdWRpb1Nlc3Npb25N
YW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUzZTQ3ZjBmNjdkMDM5MWI5MTg3NWE4OWNhNTRiNmY5Yjk4ZjY2
MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5j
bHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitVbmlxdWVSZWY8UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpjcmVhdGUoR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvbikKK3sKKyAgICByZXR1cm4gbWFr
ZVVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4oZ3B1Q29ubmVjdGlvbik7Cit9CisK
K1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eShHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uKQorICAgIDogbV9ncHVDb25uZWN0aW9u
KGdwdUNvbm5lY3Rpb24pCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp+UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkoKSA9IGRlZmF1bHQ7CisKK1dlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpwcm9jZXNzSWRlbnRpZmllcigpCit7CisgICAg
cmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpOworfQorCitSZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25m
aWd1cmF0aW9uKCkKK3sKKyAgICBhdXRvJiBzZXNzaW9uID0gYXVkaW9TZXNzaW9uTWFuYWdlcigp
LnNlc3Npb24oKTsKKyAgICByZXR1cm4geworICAgICAgICBzZXNzaW9uLmNhdGVnb3J5KCksCisg
ICAgICAgIHNlc3Npb24ucm91dGVTaGFyaW5nUG9saWN5KCksCisgICAgICAgIHNlc3Npb24ucm91
dGluZ0NvbnRleHRVSUQoKSwKKyAgICAgICAgc2Vzc2lvbi5zYW1wbGVSYXRlKCksCisgICAgICAg
IHNlc3Npb24uYnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNzaW9uLm51bWJlck9mT3V0cHV0Q2hh
bm5lbHMoKSwKKyAgICAgICAgc2Vzc2lvbi5wcmVmZXJyZWRCdWZmZXJTaXplKCksCisgICAgICAg
IHNlc3Npb24uaXNNdXRlZCgpLAorICAgICAgICBtX2FjdGl2ZQorICAgIH07Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcG9s
aWN5KQoreworICAgIG1fY2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyAgICBtX3JvdXRlU2hhcmluZ1Bv
bGljeSA9IHBvbGljeTsKKyAgICBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2V0Q2F0ZWdvcnlGb3JQ
cm9jZXNzKG1fZ3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCB0eXBlLCBwb2xp
Y3kpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpzZXRQcmVmZXJyZWRCdWZm
ZXJTaXplKHVpbnQ2NF90IHNpemUpCit7CisgICAgbV9wcmVmZXJyZWRCdWZmZXJTaXplID0gc2l6
ZTsKKyAgICBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclBy
b2Nlc3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIHNpemUpOworfQor
Cit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1NldEFjdGl2ZShib29sIGFjdGl2
ZSwgU2V0QWN0aXZlQ29tcGxldGlvbiYmIGNvbXBsZXRpb24pCit7CisgICAgbV9hY3RpdmUgPSBh
dWRpb1Nlc3Npb25NYW5hZ2VyKCkudHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKG1fZ3B1Q29ubmVj
dGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCBhY3RpdmUpOworICAgIGNvbXBsZXRpb24obV9h
Y3RpdmUpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbkludGVycnVw
dGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBl
KQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246
OkJlZ2luSW50ZXJydXB0aW9uKHR5cGUpLCB7IH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5OjplbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OkVuZEludGVycnVwdGlvbkZsYWdzIGZsYWdzKQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246OkVuZEludGVycnVwdGlvbihmbGFncyksIHsgfSk7
Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKQoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rp
b24uZ3B1UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKTsKK30KKworSVBDOjpDb25uZWN0
aW9uJiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbigpCit7CisgICAgcmV0dXJu
IG1fZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVjZDJjNmMzN2MxNzk2NGUwYmM4ZGZhNzIxMzY0OTkyMWQ4NDkz
YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHkuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9O
KQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CisKK2NsYXNzIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5CisgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAg
ICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4geworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Jik7CisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoKTsKKworICAgIFdlYkNv
cmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKCk7CisgICAgUmVtb3RlQXVk
aW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKCk7CisKKyAgICBXZWJDb3JlOjpB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0IHsgcmV0dXJuIG1fY2F0
ZWdvcnk7IH07CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1Bv
bGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAgc2l6ZV90
IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcnJlZEJ1ZmZlclNp
emU7IH0KKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KKwor
ICAgIHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OkludGVycnVwdGlvblR5cGUpOworICAgIHZvaWQgZW5kSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyk7CisKKyAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
RW5jb2Rlcj4mKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgVW5pcXVlUmVmPFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5PiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0No
ZWNrPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7
CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYp
OworCisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIHNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAg
IHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCk7CisgICAgdXNpbmcgU2V0QWN0
aXZlQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+OworICAgIHZvaWQg
dHJ5VG9TZXRBY3RpdmUoYm9vbCwgU2V0QWN0aXZlQ29tcGxldGlvbiYmKTsKKworICAgIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpOworICAgIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOworCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgbV9ncHVDb25uZWN0aW9uOworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIG1fY2F0ZWdvcnk7CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IG1fcm91
dGVTaGFyaW5nUG9saWN5OworICAgIHNpemVfdCBtX3ByZWZlcnJlZEJ1ZmZlclNpemUgeyAwIH07
CisgICAgYm9vbCBtX2FjdGl2ZSB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZjNiYWU4MjQzZmFhNTQ1
NTJiYmZmMDRkOWE2ZWI4NTJiNjA2MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVT
RShBVURJT19TRVNTSU9OKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSBO
b3RSZWZDb3VudGVkIHsKKyAgICBTZXRDYXRlZ29yeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgdHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeSBwb2xpY3kpCisgICAgU2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRf
dCBwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgIFRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlKSAt
PiAoYm9vbCBzdWNlZWRlZCkgU3luY2hyb25vdXMKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3MzM0OGIxYzgwYzBjYTZkZGM0N2U0YzY1
MDA1MzY1YWRkM2U4ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDE4
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
VVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hD
b3VudGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIoKQorICAgIDogbV9zZXNzaW9uKEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkp
Cit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6flJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlcigpID0gZGVmYXVsdDsKKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXI6OmFkZFByb3h5KFdlYWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+JiYg
cHJveHkpCit7CisgICAgYXV0byBpZCA9IHByb3h5LT5wcm9jZXNzSWRlbnRpZmllcigpOworICAg
IEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9wcm94aWVzLnNldChpZCwg
V1RGTW92ZShwcm94eSkpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
cjo6cmVtb3ZlUHJveHkoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlkKQoreworICAgIEFTU0VS
VChtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3Byb3hpZXMucmVtb3ZlKGlkKTsKK30K
KworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkqIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
cjo6Z2V0UHJveHkoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlkKQoreworICAgIGF1dG8gcmVz
dWx0cyA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAgICBpZiAocmVzdWx0cyAhPSBtX3Byb3hpZXMu
ZW5kKCkpCisgICAgICAgIHJldHVybiByZXN1bHRzLT52YWx1ZS5nZXQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldENh
dGVnb3J5Rm9yUHJvY2Vzcyhjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQsIEF1ZGlvU2Vzc2lv
bjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQorewor
ICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAgICBhdXRvIHByb3h5ID0gZ2V0
UHJveHkoaWQpOworICAgIGlmICghcHJveHkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChw
cm94eS0+Y2F0ZWdvcnkoKSA9PSBjYXRlZ29yeSAmJiBwcm94eS0+cm91dGVTaGFyaW5nUG9saWN5
KCkgPT0gcG9saWN5KQorICAgICAgICByZXR1cm47CisKKyAgICBIYXNoQ291bnRlZFNldDxBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgV1RGOjpJbnRIYXNoPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZT4+IGNhdGVnb3J5Q291bnRzOworICAgIEhhc2hDb3VudGVkU2V0PFJvdXRlU2hhcmluZ1Bv
bGljeSwgV1RGOjpJbnRIYXNoPFJvdXRlU2hhcmluZ1BvbGljeT4sIFdURjo6U3Ryb25nRW51bUhh
c2hUcmFpdHM8Um91dGVTaGFyaW5nUG9saWN5Pj4gcG9saWN5Q291bnRzOworICAgIGZvciAoYXV0
byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1ZXMoKSkgeworICAgICAgICBjYXRlZ29yeUNv
dW50cy5hZGQob3RoZXJQcm94eS0+Y2F0ZWdvcnkoKSk7CisgICAgICAgIHBvbGljeUNvdW50cy5h
ZGQob3RoZXJQcm94eS0+cm91dGVTaGFyaW5nUG9saWN5KCkpOworICAgIH0KKworICAgIGlmIChj
YXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQpKQorICAg
ICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZDsKKyAgICBlbHNlIGlm
IChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OlJlY29yZEF1ZGlvKSkKKyAg
ICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlJlY29yZEF1ZGlvOworICAgIGVsc2UgaWYg
KGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6TWVkaWFQbGF5YmFjaykpCisg
ICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrOworICAgIGVsc2Ug
aWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRTb3Vu
ZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpTb2xvQW1iaWVudFNvdW5kOwor
ICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6QW1iaWVu
dFNvdW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZDsK
KyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OkF1ZGlv
UHJvY2Vzc2luZykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpBdWRpb1Byb2Nl
c3Npbmc7CisgICAgZWxzZQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsK
KworICAgIGlmIChwb2xpY3lDb3VudHMuY29udGFpbnMoUm91dGVTaGFyaW5nUG9saWN5OjpMb25n
Rm9ybVZpZGVvKSkKKyAgICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9y
bVZpZGVvOworICAgIGVsc2UgaWYgKHBvbGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQ
b2xpY3k6OkxvbmdGb3JtQXVkaW8pKQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xp
Y3k6OkxvbmdGb3JtQXVkaW87CisgICAgZWxzZSBpZiAocG9saWN5Q291bnRzLmNvbnRhaW5zKFJv
dXRlU2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQpKQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNo
YXJpbmdQb2xpY3k6OkluZGVwZW5kZW50OworICAgIGVsc2UKKyAgICAgICAgcG9saWN5ID0gUm91
dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0OworCisgICAgbV9zZXNzaW9uLT5zZXRDYXRlZ29yeShj
YXRlZ29yeSwgcG9saWN5KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXI6OnNldFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlm
aWVyJiBpZCwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUpCit7CisgICAgZm9yIChhdXRvJiBv
dGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAgICAgIGlmICghb3RoZXJQcm94
eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAob3RoZXJQcm94eS0+cHJlZmVy
cmVkQnVmZmVyU2l6ZSgpIDwgcHJlZmVycmVkQnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIHByZWZl
cnJlZEJ1ZmZlclNpemUgPSBvdGhlclByb3h5LT5wcmVmZXJyZWRCdWZmZXJTaXplKCk7CisgICAg
fQorCisgICAgbV9zZXNzaW9uLT5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKHByZWZlcnJlZEJ1ZmZl
clNpemUpOworfQorCitib29sIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6dHJ5VG9T
ZXRBY3RpdmVGb3JQcm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgYm9vbCBhY3Rp
dmUpCit7CisgICAgQVNTRVJUKG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIGF1dG8gcHJv
eHkgPSBnZXRQcm94eShpZCk7CisgICAgaWYgKCFwcm94eSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgc2l6ZV90IGFjdGl2ZVByb3h5Q291bnQgeyAwIH07CisgICAgZm9yIChhdXRvJiBv
dGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAgICAgIGlmICghb3RoZXJQcm94
eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAob3RoZXJQcm94eS0+aXNBY3Rp
dmUoKSkKKyAgICAgICAgICAgICsrYWN0aXZlUHJveHlDb3VudDsKKyAgICB9CisKKyAgICBpZiAo
IWFjdGl2ZSAmJiBhY3RpdmVQcm94eUNvdW50ID4gMSkgeworICAgICAgICAvLyBUaGlzIHByb3h5
IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBidXQgb3RoZXIgcHJveGllcyBhcmUgc3RpbGwKKyAgICAg
ICAgLy8gYWN0aXZlLiBOby1vcCwgYW5kIHJldHVybiBkZWFjdGl2YXRpb24gd2FzIHN1Y2Vzc2Z1
bC4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKCFhY3RpdmUpIHsKKyAg
ICAgICAgLy8gVGhpcyBwcm94eSB3YW50cyB0byBkZS1hY3RpdmF0ZSwgYXMgaXMgdGhlIGxhc3Qg
cmVtYWluaW5nIGFjdGl2ZQorICAgICAgICAvLyBwcm94eS4gRGVhY3RpdmF0ZSB0aGUgc2Vzc2lv
biwgYW5kIHJldHVybiB3aGV0aGVyIHRoYXQgZGVhY3RpdmF0aW9uCisgICAgICAgIC8vIHdhcyBz
dWNlc3NmdWw7CisgICAgICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGZhbHNl
KTsKKyAgICB9CisKKyAgICBpZiAoYWN0aXZlICYmICFhY3RpdmVQcm94eUNvdW50KSB7CisgICAg
ICAgIC8vIFRoaXMgcHJveHkgYW5kIG9ubHkgdGhpcyBwcm94eSB3YW50cyB0byBiZWNvbWUgYWN0
aXZlLiBBY3RpdmF0ZQorICAgICAgICAvLyB0aGUgc2Vzc2lvbiwgYW5kIHJldHVybiB3aGV0aGVy
IHRoYXQgYWN0aXZhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIG1fc2Vzc2lv
bi0+dHJ5VG9TZXRBY3RpdmUoYWN0aXZlKTsKKyAgICB9CisKKyAgICAvLyBJZiB0aGlzIHByb3h5
IGlzIEFtYmllbnQsIGFuZCB0aGUgc2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZSwgdGhpcworICAg
IC8vIHByb3h5IHdpdGggbWl4IHdpdGggdGhlIGFjdGl2ZSBwcm94aWVzLiBOby1vcCwgYW5kIHJl
dHVybiBhY3RpdmF0aW9uCisgICAgLy8gd2FzIHN1Y2Vzc2Z1bC4KKyAgICBpZiAocHJveHktPmNh
dGVnb3J5KCkgPT0gQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQpCisgICAgICAgIHJldHVybiB0
cnVlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBPdGhlcndpc2UsIHRoaXMg
cHJveHkgd2FudHMgdG8gYmVjb21lIGFjdGl2ZSwgYnV0IHRoZXJlIGFyZSBvdGhlcgorICAgIC8v
IHByb3hpZXMgd2hvIGFyZSBhbHJlYWR5IGFjdGl2ZS4gV2FsayBvdmVyIHRoZSBwcm94aWVzLCBh
bmQgaW50ZXJydXB0CisgICAgLy8gdGhvc2UgcHJveGllcyB3aG9zZSBjYXRlb2dyaWVzIGluZGlj
YXRlIHRoZXkgY2Fubm90IG1peCB3aXRoIG90aGVycy4KKyAgICBmb3IgKGF1dG8mIG90aGVyUHJv
eHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5KQorICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghb3RoZXJQcm94eS0+aXNBY3RpdmUoKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChvdGhlclByb3h5LT5jYXRlZ29y
eSgpID09IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKQorICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgb3RoZXJQcm94eS0+YmVnaW5JbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNl
c3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUludGVycnVwdGlvbik7CisgICAgfQorI2Vu
ZGlmCisKKyAgICByZXR1cm4gdHJ1ZTsKKworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2YTdmNzYxZjZiMWU4NWJhNzE1OGUwYmRmNDBj
NWZjMjNiYWExN2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBV
U0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7CisKK2NsYXNzIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcgorICAgIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpOworICAgIH5SZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKTsKKworICAgIHZvaWQgYWRkUHJveHkoV2Vha1B0
cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4mJik7CisgICAgdm9pZCByZW1vdmVQcm94eShjb25z
dCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYpOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5KiBnZXRQcm94eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYpOworCisgICAg
dm9pZCBzZXRDYXRlZ29yeUZvclByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXImLCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgV2ViQ29yZTo6Um91dGVT
aGFyaW5nUG9saWN5KTsKKyAgICB2b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNz
KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJiwgc2l6ZV90KTsKKworICAgIHVzaW5n
IFNldEFjdGl2ZUNvbXBsZXRpb24gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPjsKKyAg
ICBib29sIHRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciYsIGJvb2wpOworCisgICAgY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uJiBzZXNz
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uOyB9CisKK3ByaXZhdGU6CisgICAgVW5pcXVl
UmVmPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIEhhc2hNYXA8V2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+PiBt
X3Byb3hpZXM7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRiM2RlYzdjZDM5ZDAxMDJiODVmMGY5
NWRmNGU0MzBmOWFlMTNmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CmluZGV4IDI1NmRjOTkwNWJmNDQ2NmQwYzJhZDU3NGQ4YzM2OGExNGJlNjk2M2Eu
LjRiYTE0ZGJhZjI0YjI0MWU1OWRiMGE3ZjIwODBkMDJkMDI3YzNiMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjM0LDYgKzIzNCw3IEBAIGRlZiB0eXBl
c190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRp
YVJlY29yZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25JZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUlkZW50aWZpZXInLAogICAgICAg
ICAnV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0
OjpSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25JZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggZDA3ZjJiZjViMjFiNjIwYjkxOTgx
MDE5OTQwZTI3NDRlZDI1MDBjZC4uNjc1MmNiNmQ0NWU1YWYwMDVlZmY4MjdhNzY2YmEzYmIxYjNh
OGQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgK
QEAgLTYxLDYgKzYxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DRE1JbnN0YW5jZVNlc3Npb24u
aD4KICNlbmRpZgogCisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb1Nlc3Npb24uaD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiBuYW1lc3BhY2Ug
V1RGIHsKIGNsYXNzIE1hY2hTZW5kUmlnaHQ7CkBAIC0xMDI1LDQgKzEwMjksMTkgQEAgdGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q0RNSW5zdGFuY2U6OkhEQ1BTdGF0dXM+
IHsKIAogI2VuZGlmCiAKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKK3RlbXBsYXRlIDw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGUsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5v
bmUsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3Vu
ZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6U29sb0FtYmllbnRT
b3VuZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5
YmFjaywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVk
aW8sCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNv
cmQsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vz
c2luZworICAgID47Cit9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
aW5kZXggNmQwZThjNjhhMDIzODg3M2I2ODY0MjM4M2U1YjdiYzVhYTA2MzdkYy4uZDAwNjIzYTYy
OTY3ODFjYWQ3ZGNhNmViZTA1ZDE5NjNhZDY2OTY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yMiwxMSAr
MjIsMTQgQEAKIC8vIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLmNwcAorR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCiBH
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1RyYWNrUHJveHkuY3BwCitHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
LmNwcAorR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3Bw
CiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eS5jcHAKIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHkuY3BwCkBAIC01NDYsNiArNTQ5LDcgQEAgV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKIFdlYlByb2Nlc3MvR1BV
L21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVk
aW9TZXNzaW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNLmNwcAogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDBhNzc2OTM5
ODc5ZWI2OTVmZmJmZWFmYmVkOGJjMmY5YzQ0Y2VmYTQuLjY0NGJjYmMzNWI0NThmNDNlNTNiZmIx
MGE5MWQzN2JjOTg2NTYxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTY1NCw2ICs2NTQs
OCBAQCBMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0Nv
ZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcAorUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3Jk
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA1M2VkZTU2NmQzZGU4ZTk5NzU0Yjk2NjI1NDY0YjYxZWIx
NzQ4YTM4Li41ZjQ4YTgxM2FlMjk5ZWY1ZWE0YWVkN2RjMGZhNGMzMzFlZDM2MDAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NDMs
NiArMTc0Myw4IEBACiAJCUNEQUMyMEY4MjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0
YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEY1MjNGQzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1J
bnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0RBQzIwRjkyM0ZDNzI2
QzAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMy
MEVDMjNGQzM4MzgwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNEQUMyMEZBMjNGQzcyNkMwMDIxREVFMyAvKiBSZW1v
dGVDRE1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREFDMjBFRjIzRkMzODM5MDAyMURFRTMgLyogUmVtb3RlQ0RN
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDREJCNDlGMDI0MEQ1N0QyMDAxN0My
OTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREJCNDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZv
cm1TdHJhdGVnaWVzLmggKi87IH07CisJCUNEQkI0OUZEMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVk
aW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovOyB9OwogCQlDREMyODMxRDIwMUJENzlEMDBFNkU3
NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREMyODMxQjIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxsc2Ny
ZWVuU3RhY2tWaWV3LmggKi87IH07CiAJCUNEQ0E4NUM5MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlci5oICovOyB9OwogCQlDRTExQUQ1MjFDQkM0ODJGMDA2ODFFRTUgLyog
Q29kZVNpZ25pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENFMTFBRDUxMUNCQzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5oICovOyB9OwpAQCAt
NTA5NCw2ICs1MDk2LDE3IEBACiAJCUNEQUMyMEY0MjNGQzM4M0EwMDIxREVFMyAvKiBSZW1vdGVD
RE1Qcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZUNETVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBQzIw
RjUyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ0RNSW5z
dGFuY2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEQUMyMEY2MjNGQzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVz
c2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNE
TUluc3RhbmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RCQjQ5RUUyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RUYyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGNDI0MEQ4QUM2MDAxN0MyOTIg
LyogUmVtb3RlQXVkaW9TZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGNTI0MEQ4QUM2MDAxN0My
OTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1
ZGlvU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY2MjQw
RDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDREJCNDlGNzI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGODI0MEQ4RDUzMDAxN0MyOTIgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY5MjQw
RDk2M0MwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEQkI0OUZBMjQwRDk2M0QwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5
RkIyNDBEOTc0QTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzI4MzFCMjAx
QkQ3OUQwMEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V0tGdWxsc2NyZWVuU3RhY2tWaWV3Lmg7IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxzY3Jl
ZW5TdGFja1ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDMjgzMUMyMDFC
RDc5RDAwRTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IFdLRnVsbHNjcmVlblN0YWNrVmlldy5tbTsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dL
RnVsbHNjcmVlblN0YWNrVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RD
MzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
bmFtZSA9IENGTmV0d29yay5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9DRk5ldHdvcmsuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpA
QCAtNTEwMSw2ICs1MTE0LDE3IEBACiAJCUNEQ0E4NUM2MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1QzcxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRENBODVENDEzMkFDMkIzMDBFOTYxREYgLyogSU9LaXQuZnJhbWV3b3JrICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7
IG5hbWUgPSBJT0tpdC5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9JT0tpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CisJCUNERDUz
NTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREQ1MzU3MDI0MERENEVGMDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzEyNDBE
REUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzIyNDBEREUwNjAw
RjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDREQ1MzU3MzI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc0MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRp
b1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNz
aW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUz
NTc1MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDREQ1MzU3NjI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNz
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vz
c2lvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
RDUzNTc3MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2Vz
UmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2Vz
UmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3ODI0MERERTA4
MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzkyNDBEREUwODAwRjdCOEM0IC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UxMUFENEYxQ0JDNDdGODAwNjgxRUU1IC8qIENv
ZGVTaWduaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29k
ZVNpZ25pbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFMTFBRDUxMUNCQzQ4
MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb2RlU2lnbmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTFBMEJD
QzFBNDhFNkM2MDA1NEVGNzQgLyogQXNzZXJ0aW9uU2VydmljZXNTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXNzZXJ0aW9uU2VydmljZXNTUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTUzNzgsNiArNTQwMiwxMSBAQAogCQkJCTlCNUJFQzI5MjQwMTAx
NTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwICovLAogCQkJCTlC
NUJFQzI4MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCAq
LywKIAkJCQk5QjVCRUMyRTI0MDEwMThDMDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCUNEQkI0OUY1MjQwRDhBQzYwMDE3QzI5MiAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb24uY3BwICovLAorCQkJCUNEQkI0OUY0MjQwRDhBQzYwMDE3QzI5MiAv
KiBSZW1vdGVBdWRpb1Nlc3Npb24uaCAqLywKKwkJCQlDREQ1MzU2RjI0MEREMzQzMDBGN0I4QzQg
LyogUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluICovLAorCQkJCUNEQkI0OUZDMjQwRDlB
NzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi8sCisJCQkJ
Q0RCQjQ5RkIyNDBEOTc0QTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIu
aCAqLywKIAkJCQlDREFDMjBCRjIzRkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNLmNwcCAqLywK
IAkJCQlDREFDMjBCQTIzRkMyRjc0MDAyMURFRTMgLyogUmVtb3RlQ0RNLmggKi8sCiAJCQkJQ0RB
QzIwQjgyM0ZDMkY3MzAwMjFERUUzIC8qIFJlbW90ZUNETUNvbmZpZ3VyYXRpb24uaCAqLywKQEAg
LTU0MjAsNiArNTQ0OSwxMiBAQAogCQkJCTlCMTIyOUNDMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOUIxMjI5Q0IyM0ZGMjVGMjAw
OENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggKi8sCiAJCQkJOUIxMjI5
Q0YyM0ZGMjgxNDAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3Nh
Z2VzLmluICovLAorCQkJCUNEQkI0OUY3MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eS5jcHAgKi8sCisJCQkJQ0RCQjQ5RjYyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5LmggKi8sCisJCQkJQ0RCQjQ5RjgyNDBEOEQ1MzAwMTdDMjkyIC8q
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCUNEQkI0OUZBMjQw
RDk2M0QwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwICovLAor
CQkJCUNEQkI0OUY5MjQwRDk2M0MwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXIuaCAqLywKKwkJCQlDREQ1MzU3MDI0MERENEVGMDBGN0I4QzQgLyogUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTA3MUJDNTdFMjNDQTVEQjEw
MDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwICovLAogCQkJCTA3MUJDNTdGMjND
QTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCAqLywKIAkJCQlDREFDMjA3
OTIzRkIxRTIxMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcCAqLywKQEAgLTY3
MDYsNiArNjc0MSw4IEBACiAJCQkJMkQ5RkIyMEMyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovLAogCQkJCTJEOUZCMjAwMjM3NTIwOUQwMDQ5RjkzNiAv
KiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggKi8sCiAJCQkJMkQ5RkIyMDkyMzc1MjA5RDAw
NDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCisJCQkJ
Q0RCQjQ5RUYyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8s
CisJCQkJQ0RCQjQ5RUUyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5o
ICovLAogCQkJCTJEOUZCMjAxMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9jZXNzLmNwcCAqLywK
IAkJCQkyRDlGQjIxNTIzNzUyMDlEMDA0OUY5MzYgLyogR1BVUHJvY2Vzcy5oICovLAogCQkJCTJE
OUZCMjAyMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9jZXNzLm1lc3NhZ2VzLmluICovLApAQCAt
OTgzMSw2ICs5ODY4LDE1IEBACiAJCQkJMUEwNDNCNUMxMjRENUU5RDAwRkZCRkI1IC8qIFBsdWdp
blByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMUE4RUZBNkUxMjUyQjg0MTAwRjcwNjdG
IC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQThFRkE2RjEyNTJC
ODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc2MjQw
RERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAorCQkJCUNERDUzNTc1MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNz
YWdlcy5oICovLAorCQkJCUNERDUzNTc0MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nl
c3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQlDREQ1MzU3MzI0MERERTA2MDBGN0I4QzQg
LyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
KwkJCQlDREQ1MzU3ODI0MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQlDREQ1MzU3OTI0MERERTA4MDBGN0I4QzQgLyogUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJQ0RE
NTM1NzEyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKKwkJCQlDREQ1MzU3MjI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc3MjQwRERFMDcwMEY3QjhD
NCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCUNE
QUMyMEYyMjNGQzM4M0EwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCUNEQUMyMEYzMjNGQzM4M0EwMDIxREVFMyAvKiBSZW1vdGVDRE1G
YWN0b3J5UHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNEQUMyMEVFMjNGQzM4MzkwMDIxREVFMyAv
KiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKQEAgLTEwNTM0LDYg
KzEwNTgwLDcgQEAKIAkJCQlCQzA2RjQ0QTEyREJEMUY1MDAyRDc4REUgLyogR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwNkY0
M0ExMkRCQ0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBOTQ0QTQxODg0RTRGMDAwRUQ4NkRCIC8qIEdlc3R1cmVU
eXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RCQjQ5RjAyNDBENTdEMjAwMTdDMjkyIC8qIEdQ
VVBsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBMDQ5QjgxODBDQ0Qw
QTAwQUFGQTlFIC8qIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzBDRTcyQUQxMjQ3RTc4RDAwQkMwRUM0IC8qIEhhbmRsZU1lc3NhZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBQzc1QTFCMUIzMzY4MjcwMDU2NzQ1QiAvKiBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtMTA3NTIsNiArMTA3OTksNyBAQAogCQkJCTlCMTIyOUQyMjNG
RjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOUIxMjI5Q0QyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjVCRUMyQTI0MDEwMTU4MDA3
MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDREJCNDlGRDI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzcyM0ZDMkY3NTAwMjFERUUzIC8qIFJl
bW90ZUNETS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzUyM0ZDMkY3NTAwMjFERUUzIC8q
IFJlbW90ZUNETUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQUMyMENEMjNG
QzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5LmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmU1Y2VjOGVhMWI2ODdkNWJkZDcxN2RjZGMzMzFjNDYx
YWRkNTUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVk
ZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiR1BVUHJv
Y2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworVW5pcXVlUmVm
PFJlbW90ZUF1ZGlvU2Vzc2lvbj4gUmVtb3RlQXVkaW9TZXNzaW9uOjpjcmVhdGUoV2ViUHJvY2Vz
cyYgcHJvY2VzcykKK3sKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIGNvbmZp
Z3VyYXRpb247CisgICAgcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RW5z
dXJlQXVkaW9TZXNzaW9uKCksIE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpF
bnN1cmVBdWRpb1Nlc3Npb246OlJlcGx5KGNvbmZpZ3VyYXRpb24pLCB7IH0pOworICAgIHJldHVy
biBtYWtlVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4ocHJvY2VzcywgV1RGTW92ZShjb25m
aWd1cmF0aW9uKSk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvbjo6UmVtb3RlQXVkaW9TZXNzaW9u
KFdlYlByb2Nlc3MmIHByb2Nlc3MsIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCisgICAgLCBtX2NvbmZpZ3Vy
YXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKK3sKK30KKworUmVtb3RlQXVkaW9TZXNzaW9u
Ojp+UmVtb3RlQXVkaW9TZXNzaW9uKCkgPSBkZWZhdWx0OworCitJUEM6OkNvbm5lY3Rpb24mIFJl
bW90ZUF1ZGlvU2Vzc2lvbjo6Y29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1fcHJvY2Vzcy5l
bnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKK30KKwordm9pZCBSZW1v
dGVBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSB0eXBlLCBSb3V0ZVNoYXJp
bmdQb2xpY3kgcG9saWN5KQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eTo6U2V0Q2F0ZWdvcnkodHlwZSwgcG9saWN5KSwgeyB9KTsKK30K
Kwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90
IHNpemUpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5OjpTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemUpLCB7IH0pOworfQorCitib29s
IFJlbW90ZUF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sIGFjdGl2ZSkK
K3sKKyAgICBib29sIHN1Y2NlZWRlZDsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2Fn
ZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpUcnlUb1NldEFjdGl2ZShhY3RpdmUpLCBNZXNz
YWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRyeVRvU2V0QWN0aXZlOjpSZXBseShzdWNj
ZWVkZWQpLCB7IH0pOworICAgIHJldHVybiBzdWNjZWVkZWQ7Cit9CisKK3ZvaWQgUmVtb3RlQXVk
aW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZChSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1
cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBib29sIG11dGVkU3RhdGVDaGFuZ2VkID0g
Y29uZmlndXJhdGlvbi5pc011dGVkICE9IG1fY29uZmlndXJhdGlvbi5pc011dGVkOworCisgICAg
bV9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsKKworICAgIGlmIChtdXRlZFN0YXRlQ2hh
bmdlZCkKKyAgICAgICAgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOworfQorCit2b2lkIFJlbW90
ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246Oklu
dGVycnVwdGlvblR5cGUgdHlwZSkKK3sKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6
OnNoYXJlZE1hbmFnZXIoKS5iZWdpbkludGVycnVwdGlvbih0eXBlKTsKK30KKwordm9pZCBSZW1v
dGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5k
SW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpzaGFyZWRNYW5hZ2VyKCkuZW5kSW50ZXJydXB0aW9uKGZsYWdzKTsKK30KKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4ZjhkYzgyM2UzZjAxMDdjMTkzYmU5NDhi
ZjdmYjk2OGJjZTc5ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFV
RElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJS
ZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRp
b1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg+CisK
K25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgV2ViUHJvY2VzczsKKwor
Y2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uIGZpbmFsCisgICAgOiBwdWJsaWMgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uCisgICAgLCBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nl
c3Npb24+IGNyZWF0ZShXZWJQcm9jZXNzJik7CisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9TZXNz
aW9uKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Np
b24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UmVtb3RlQXVkaW9T
ZXNzaW9uPihXZWJQcm9jZXNzJiwgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYmKTsK
KyAgICBSZW1vdGVBdWRpb1Nlc3Npb24oV2ViUHJvY2VzcyYsIFJlbW90ZUF1ZGlvU2Vzc2lvbkNv
bmZpZ3VyYXRpb24mJik7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCk7CisKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdlcwor
ICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbiYmKTsKKyAgICB2b2lkIGJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlKTsKKyAgICB2b2lkIGVuZEludGVycnVwdGlvbihX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MpOworCisg
ICAgLy8gQXVkaW9TZXNzaW9uCisgICAgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUsIFdl
YkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSkgZmluYWw7CisgICAgdm9pZCBzZXRQcmVmZXJyZWRC
dWZmZXJTaXplKHNpemVfdCkgZmluYWw7CisgICAgYm9vbCB0cnlUb1NldEFjdGl2ZUludGVybmFs
KGJvb2wpIGZpbmFsOworCisgICAgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmNhdGVnb3J5OyB9CisgICAgV2ViQ29yZTo6Um91dGVT
aGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
Y29uZmlndXJhdGlvbi5yb3V0ZVNoYXJpbmdQb2xpY3k7IH0KKyAgICBTdHJpbmcgcm91dGluZ0Nv
bnRleHRVSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24ucm91dGluZ0Nv
bnRleHRVSUQ7IH0KKyAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9jb25maWd1cmF0aW9uLnNhbXBsZVJhdGU7IH0KKyAgICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5idWZmZXJTaXplOyB9CisgICAgc2l6
ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZp
Z3VyYXRpb24ubnVtYmVyT2ZPdXRwdXRDaGFubmVsczsgfQorICAgIHNpemVfdCBwcmVmZXJyZWRC
dWZmZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnByZWZlcnJl
ZEJ1ZmZlclNpemU7IH0KKyAgICBib29sIGlzTXV0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2NvbmZpZ3VyYXRpb24uaXNNdXRlZDsgfQorICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uaXNBY3RpdmU7IH0KKworICAgIFdlYlByb2Nlc3Mm
IG1fcHJvY2VzczsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIG1fY29uZmln
dXJhdGlvbjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA4OTYyOGY2NTdlZjdjZGJjZGJhNzc5ZDQxZGI5OWJjYTVkNDRiMTIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKK21lc3Nh
Z2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvbiBOb3RSZWZDb3VudGVkIHsKKyAgICBDb25maWd1cmF0
aW9uQ2hhbmdlZChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24pCisgICAgQmVnaW5JbnRlcnJ1cHRpb24oZW51bTp1aW50OF90IFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCisgICAgRW5k
SW50ZXJydXB0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTZjNDM2MmVkOTVhYTZjNTAxY2Qw
YTZhMjAzZDJiNWVhNzFmMGI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgKQEAgLTAs
MCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlv
U2Vzc2lvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFJlbW90ZUF1ZGlvU2Vz
c2lvbkNvbmZpZ3VyYXRpb24geworCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGUgY2F0ZWdvcnk7CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hh
cmluZ1BvbGljeTsKKyAgICBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQ7CisgICAgZmxvYXQgc2Ft
cGxlUmF0ZTsKKyAgICB1aW50NjRfdCBidWZmZXJTaXplOworICAgIHVpbnQ2NF90IG51bWJlck9m
T3V0cHV0Q2hhbm5lbHM7CisgICAgdWludDY0X3QgcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICBi
b29sIGlzTXV0ZWQ7CisgICAgYm9vbCBpc0FjdGl2ZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7Cisg
ICAgICAgIGVuY29kZXIgPDwgY2F0ZWdvcnk7CisgICAgICAgIGVuY29kZXIgPDwgcm91dGVTaGFy
aW5nUG9saWN5OworICAgICAgICBlbmNvZGVyIDw8IHJvdXRpbmdDb250ZXh0VUlEOworICAgICAg
ICBlbmNvZGVyIDw8IHNhbXBsZVJhdGU7CisgICAgICAgIGVuY29kZXIgPDwgYnVmZmVyU2l6ZTsK
KyAgICAgICAgZW5jb2RlciA8PCBudW1iZXJPZk91dHB1dENoYW5uZWxzOworICAgICAgICBlbmNv
ZGVyIDw8IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgICAgIGVuY29kZXIgPDwgaXNNdXRlZDsK
KyAgICAgICAgZW5jb2RlciA8PCBpc0FjdGl2ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xh
c3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9uYWw8UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmln
dXJhdGlvbj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBPcHRpb25h
bDxXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gY2F0ZWdvcnk7CisgICAgICAg
IGRlY29kZXIgPj4gY2F0ZWdvcnk7CisgICAgICAgIGlmICghY2F0ZWdvcnkpCisgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeT4gcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBkZWNvZGVyID4+IHJv
dXRlU2hhcmluZ1BvbGljeTsKKyAgICAgICAgaWYgKCFyb3V0ZVNoYXJpbmdQb2xpY3kpCisgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPFN0cmluZz4g
cm91dGluZ0NvbnRleHRVSUQ7CisgICAgICAgIGRlY29kZXIgPj4gcm91dGluZ0NvbnRleHRVSUQ7
CisgICAgICAgIGlmICghcm91dGluZ0NvbnRleHRVSUQpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGZsb2F0PiBzYW1wbGVSYXRlOworICAgICAg
ICBkZWNvZGVyID4+IHNhbXBsZVJhdGU7CisgICAgICAgIGlmICghc2FtcGxlUmF0ZSkKKyAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+
IGJ1ZmZlclNpemU7CisgICAgICAgIGRlY29kZXIgPj4gYnVmZmVyU2l6ZTsKKyAgICAgICAgaWYg
KCFidWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBPcHRpb25hbDx1aW50NjRfdD4gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKKyAgICAgICAgZGVj
b2RlciA+PiBudW1iZXJPZk91dHB1dENoYW5uZWxzOworICAgICAgICBpZiAoIW51bWJlck9mT3V0
cHV0Q2hhbm5lbHMpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBwcmVmZXJyZWRCdWZmZXJTaXplOworICAgICAgICBkZWNvZGVy
ID4+IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgICAgIGlmICghcHJlZmVycmVkQnVmZmVyU2l6
ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8
Ym9vbD4gaXNNdXRlZDsKKyAgICAgICAgZGVjb2RlciA+PiBpc011dGVkOworICAgICAgICBpZiAo
IWlzTXV0ZWQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9w
dGlvbmFsPGJvb2w+IGlzQWN0aXZlOworICAgICAgICBkZWNvZGVyID4+IGlzQWN0aXZlOworICAg
ICAgICBpZiAoIWlzQWN0aXZlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4ge3sKKyAgICAgICAgICAgIFdURk1vdmUoKmNhdGVnb3J5KSwKKyAgICAg
ICAgICAgIFdURk1vdmUoKnJvdXRlU2hhcmluZ1BvbGljeSksCisgICAgICAgICAgICBXVEZNb3Zl
KCpyb3V0aW5nQ29udGV4dFVJRCksCisgICAgICAgICAgICAqc2FtcGxlUmF0ZSwKKyAgICAgICAg
ICAgICpidWZmZXJTaXplLAorICAgICAgICAgICAgKm51bWJlck9mT3V0cHV0Q2hhbm5lbHMsCisg
ICAgICAgICAgICAqcHJlZmVycmVkQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICppc011dGVkLAor
ICAgICAgICAgICAgKmlzQWN0aXZlLAorICAgICAgICB9fTsKKyAgICB9Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzE0ODBjNjk0ZTJiM2Q5N2I1OTZlMmEwNzMwM2Q2N2ZiMGY5OWJkNgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NF
U1NJT04pCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworZW51bSBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyVHlwZSB7IH07Cit1
c2luZyBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxSZW1v
dGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
V2ViTWVkaWFTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1dlYk1lZGlhU3RyYXRlZ3kuY3BwCmluZGV4IDVkN2E4YjhkMTEyNGIyYTUyOGFkNzNiZGM5NmQ5
YTk3ODBkYzIwNGMuLjAyZTZiMjk5Yzk3YzgyZGE3YWU4ZWRkNWZkYTEyN2RkNjI1NGEzN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJh
dGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRp
YVN0cmF0ZWd5LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCIKKyNp
bmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZW1vdGVDRE1GYWN0b3J5
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0
aW5hdGlvbi5oPgpAQCAtMzYsMjIgKzM3LDI0IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogV2ViTWVkaWFTdHJhdGVneTo6fldlYk1lZGlhU3Ry
YXRlZ3koKSA9IGRlZmF1bHQ7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3Qg
U3RyaW5nJiBpbnB1dERldmljZUlkLAorc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+
IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNr
JiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAogICAgIHVuc2lnbmVkIG51
bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxv
YXQgc2FtcGxlUmF0ZSkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fdXNl
R1BVUHJvY2VzcykKICAgICAgICAgcmV0dXJuIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogI2VuZGlmCi0gICAgcmV0dXJuIFdl
YkNvcmU6OkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRl
KTsKKyAgICByZXR1cm4gTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihjYWxs
YmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1
dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKLXZvaWQgV2ViTWVkaWFTdHJhdGVneTo6cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVj
dG9yPFdlYkNvcmU6OkNETUZhY3RvcnkqPiYgZmFjdG9yaWVzKQordm9pZCBXZWJNZWRpYVN0cmF0
ZWd5OjpyZWdpc3RlckNETUZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMp
CiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpIHsK
QEAgLTU5LDcgKzYyLDE4IEBAIHZvaWQgV2ViTWVkaWFTdHJhdGVneTo6cmVnaXN0ZXJDRE1GYWN0
b3JpZXMoVmVjdG9yPFdlYkNvcmU6OkNETUZhY3RvcnkqPiYgZmFjdG9yCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAjZW5kaWYKLSAgICBXZWJDb3JlOjpDRE1GYWN0b3J5OjpwbGF0Zm9ybVJlZ2lz
dGVyRmFjdG9yaWVzKGZhY3Rvcmllcyk7CisgICAgTWVkaWFTdHJhdGVneTo6cmVnaXN0ZXJDRE1G
YWN0b3JpZXMoZmFjdG9yaWVzKTsKK30KKyNlbmRpZgorCisjaWYgVVNFKEFVRElPX1NFU1NJT04p
CitVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb1Nl
c3Npb24oKQoreworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAobV91c2VHUFVQcm9j
ZXNzKQorICAgICAgICByZXR1cm4gUmVtb3RlQXVkaW9TZXNzaW9uOjpjcmVhdGUoV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkpOworI2VuZGlmCisgICAgcmV0dXJuIE1lZGlhU3RyYXRlZ3k6OmNyZWF0
ZUF1ZGlvU2Vzc2lvbigpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKaW5kZXggNGZhYjBlOTQ0ZmMx
NGU2ODQzNzllMzAwODE2M2JlMTYyZGQ4OWI0ZC4uNGM1Y2Q3YzM1MDhkNmRiZjliNGZmMGJhYjBk
YjUyZjc4NGU2MzMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKQEAgLTQ2LDYgKzQ2LDEwIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZWdpc3RlckNETUZhY3RvcmllcyhWZWN0b3I8V2ViQ29yZTo6Q0RNRmFjdG9yeSo+
Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKQorICAgIFVuaXF1
ZVJlZjxXZWJDb3JlOjpBdWRpb1Nlc3Npb24+IGNyZWF0ZUF1ZGlvU2Vzc2lvbigpIG92ZXJyaWRl
OworI2VuZGlmCisKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgYm9vbCBtX3VzZUdQVVBy
b2Nlc3MgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5k
ZXggYjkwOWVjYzQzOWJjZDNjNmY2ZGE4MDQxYzZlZjI5M2ZmMzQ2Njk2Zi4uNmI0NzNjZTkzYWI4
ZWVjOTFkOTNiNzA4NzA0M2ViYTc4MzVmMTZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5tbQpAQCAtNjUsMjYgKzY1LDkgQEAgUGFzdGVib2FyZFN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiAgICAgcmV0dXJuIHRoaXM7CiB9
CiAKLWNsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJhdGVneSB7
Ci1wcml2YXRlOgotI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgc3RkOjp1bmlxdWVfcHRyPEF1
ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBj
YWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAotICAgICAgICB1bnNpZ25lZCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZs
b2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlCi0gICAgewotICAgICAgICByZXR1cm4gQXVkaW9EZXN0
aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwotICAgIH0KLSNlbmRp
ZgotI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0gICAgdm9pZCByZWdpc3RlckNETUZhY3Rv
cmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMpIG92ZXJyaWRlCi0gICAgewotICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6Q0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3Rvcmll
cyhmYWN0b3JpZXMpOwotICAgIH0KLSNlbmRpZgotfTsKLQogTWVkaWFTdHJhdGVneSogV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkKIHsKLSAgICByZXR1cm4gbmV3
IFdlYk1lZGlhU3RyYXRlZ3k7CisgICAgcmV0dXJuIG5ldyBNZWRpYVN0cmF0ZWd5OwogfQogCiBj
bGFzcyBXZWJCbG9iUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lzdHJ5IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392460</attachid>
            <date>2020-03-04 13:13:42 -0800</date>
            <delta_ts>2020-03-04 13:16:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200304131341.patch</filename>
            <type>text/plain</type>
            <size>104837</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkODA0MjkxNDkyNWFlNWJmYTc5ZWZj
ZmUxYTMwZDc5YjU1Yjg3NjEuLjcxNWExOGJmMDQzMDAxYjE3ZjUyODUyMzQ4OGUyNmYwOGIxNWU1
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBV
bmlxdWVSZWYgdG8gdGhlIGxpc3Qgb2YgZm9yd2FyZC1kZWNsYXJlZCB0ZW1wbGF0ZSB0eXBlcy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisKIDIwMjAtMDMtMDMgIEppdGVuIE1laHRhICA8
am1laHRhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBIVFRQIEFsdGVybmF0aXZlIFNlcnZp
Y2VzIFN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTFkOTE0MmI0MWVkYzIwNDViMDFkNzE4YzYzZjE0
MTBhNmM0MjNhLi4xZGI3MGE2NmUxYmRhOThiYTJkNTU3ZGFmNGYxNDg3M2UyODY1ZGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
biBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5IHdoaWNoIHByb3ZpZGVzIGRlZmF1bHQg
aW1wbGVtZW50YXRpb25zIG9mIHRoZQorICAgICAgICBwbGF0Zm9ybSBjcmVhdGlvbiBtZXRob2Rz
LCBzbyB0aGV5IGRvbid0IG5lZWQgdG8gYmUgcmUtaW1wbGVtZW50ZWQgYnkgZWFjaCBjbGllbnQg
dW5sZXNzCisgICAgICAgIHRoYXQgY2xpZW50IG5lZWRzIHRvIG92ZXJyaWRlIHRoYXQgYmVoYXZp
b3IuCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUgZW51bWVyYXRpb25zIGlu
c2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1ZGlvU2Vzc2lvbiBtZXRo
b2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGNhc2Ugd2hlcmUg
dGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0
ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb24uaDoKKwogMjAyMC0wMi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUF0gSW1wbGVtZW50IE1vZGVybiBFTUUgQVBJIGluIHRoZSBHUFUgUHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA0NTBlN2UzNTJmM2VhYjhmMzU2MGUxNjViNzNhYmU5M2MwODQ2OTA4
Li5lMjEzNWE3ZjM1YmY0Yjg0MzQxNzVjYmU4MWQ3YTdmMTE1YTM2NjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDk1IEBACisyMDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdWJjbGFzcyBv
ZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBhdWRpbyBiZWhh
dmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAgICAgYXVkaW8g
YmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJvY2Vzcywgc2lu
Y2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFsbHkKKyAgICAg
ICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAgICAgICAgRHVl
IHRvIHRoZSB3YXkgQXVkaW9TZXNzaW9uIG5vdyByZXF1aXJlcyB0aGUgUGxhdGZvcm1TdHJhdGVn
aWVzIG9iamVjdCB0byBjcmVhdGUgYSBjb25jcmV0ZSBBdWRpb1Nlc3Npb24sIHRoZSBHUFUKKyAg
ICAgICAgcHJvY2VzcyBuZWVkcyBpdHMgb3duIFBsYXRmb3JtU3RyYXRlZ2llcyBzdWJjbGFzcywg
YnV0IHVzaW5nIHRoZSBkZWZhdWx0IE1lZGlhU3RyYXRlZ3kgZnJvbSBXZWJDb3JlLgorCisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKToKKyAg
ICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVB
dWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpsZWdhY3lDZG1GYWN0b3J5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZUxvYWRlclN0cmF0ZWd5KToKKyAgICAgICAgKFdlYktpdDo6R1BV
UGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3kpOgorICAgICAgICAo
V2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorICAg
ICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Ojppbml0aWFsaXplR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmF1
ZGlvU2Vzc2lvbk1hbmFnZXIgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Ojpwcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6ZW5kSW50ZXJydXB0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbik6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnJvdXRl
U2hhcmluZ1BvbGljeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjpwcmVmZXJyZWRCdWZmZXJTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmdldFByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRDYXRlZ29yeUZvclByb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNl
dFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2Vzc2lv
biBjb25zdCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uOjpSZW1vdGVBdWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb246OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
OjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmg6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmg6CisKIDIwMjAtMDItMjMgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIEltcGxlbWVudCBNb2Rlcm4gRU1FIEFQ
SSBpbiB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4ODZk
ZGVhNWY2ZjAzMmU5YTg4MjZlZjFkYjYwMDc0YmI2OTc3MGQyLi45OTlkYmRiNzlkNzhmZTM2YzJi
YTY0ODUwYzk1YzQyM2UwNGU4MDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUgZGVmYXVsdCBN
ZWRpYVN0cmF0ZWd5IGZyb20gV2ViQ29yZSBub3cgdGhhdCBpdCdzIGF2YWlsYWJsZS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisKIDIwMjAtMDMt
MDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEl0ZW1zIGluIHRoZSB0b29sYmFyIHRha2UgdXAgdG8gbXVjaCB2ZXJ0aWNhbCBzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYv
Rm9yd2FyZC5oCmluZGV4IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThmNzAzYThmMGQu
LjZlOTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAg
LTY4LDYgKzY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBEdW1iUHRyVHJh
aXRzPFQ+PiBjbGFzcyBSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IER1bWJQ
dHJUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJp
bmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBjbGFzcyBTdHJp
bmdUeXBlQWRhcHRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1ZVJlZjsKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBz
dHJ1Y3QgRGVmYXVsdEhhc2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEyNSw2ICsxMjYs
NyBAQCB1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3NpdGlvbjsKIHVz
aW5nIFdURjo6VGV4dFN0cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RGOjpVbmlxdWVS
ZWY7CiB1c2luZyBXVEY6OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCBhNzIxZmJiMWFkOGE1YWE2YmRhMDliNjNiM2EyYTlkOTk3YzkxMTJmLi4wMDZlMzhh
YjY5MGE1Njg1Njk4ZDc3M2QzOGViZDRlZTEyMmNhM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc0
MCw2ICsxNzQwLDcgQEAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKIHBsYXRmb3JtL0xvd1Bvd2VyTW9k
ZU5vdGlmaWVyLmNwcAogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKIHBsYXRmb3JtL01h
aW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKK3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCiBwbGF0
Zm9ybS9Ob3RJbXBsZW1lbnRlZC5jcHAKIHBsYXRmb3JtL1Bhc3RlYm9hcmQuY3BwCiBwbGF0Zm9y
bS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZjAyM2ViZDRlZGRiZjY5MzQwNTcyMzY5
N2FkZTliZjUzOTY4NTg5Li5kZGFmNzFkM2NmNGZhZmM2YjRhNzUyOTM5NDA5YzYxZDQxODZkYWU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzk4Nyw2ICsxMzk4Nyw3IEBACiAJCUNEQUU4QzA4MTc0NkI5NTcwMDUzMkQ3OCAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVh
bWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDRE1GYWlyUGxheVN0cmVhbWluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREI3MDQ1OTFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBs
YXlTdHJlYW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0My
OTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmF0ZWd5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNEMjgxRkU4NUNCODAwMTJD
NTQ1IC8qIFZpZGVvQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlk
ZW9Db25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNE
MjkxRkU4NUNCOTAwMTJDNTQ1IC8qIE1lZGlhQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RCRDNEMkExRkU4NUNCQTAwMTJDNTQ1IC8qIE1lZGlhRW5jb2RpbmdDb25maWd1
cmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUVuY29kaW5nQ29uZmlndXJh
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTk2Myw2ICsyNTk2NCw3
IEBACiAJCQkJQ0RGMkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAq
LywKIAkJCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLywKIAkJ
CQlBMTdEMjc1RDFFQUM1Nzk4MDBCRjAxRTcgLyogTWVkaWFTZWxlY3Rpb25PcHRpb24uaCAqLywK
KwkJCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0MyOTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8sCiAJ
CQkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCQlC
Qzc3MkM0QzBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJ
QkM3NzJDNEQwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdjMjRjZDA2
MDMxMzVlNGVjZjFmY2VlYTBkMTAwZjE3YmU1ZDgxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgorCisjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lv
bi5oIgorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJDRE1GYWN0b3J5
LmgiCisjaW5jbHVkZSAiTGVnYWN5Q0RNLmgiCisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKK1VuaXF1ZVJl
ZjxBdWRpb1Nlc3Npb24+IE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpCit7Cisg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJM
RShXRUJfQVVESU8pCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gTWVkaWFTdHJh
dGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KQoreworICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0
RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
c2FtcGxlUmF0ZSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCit2
b2lkIE1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5
Kj4mIGZhY3RvcmllcykKK3sKKyAgICByZXR1cm4gQ0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3RvcmllcyhmYWN0b3JpZXMpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU3RyYXRlZ3kuaAppbmRleCA2MGE1ODQ3YzhjZWMxMGI3OWI3NDlhNmZhZjg1MDNk
MTZhMTk5Yjk1Li5jZGM0ODVjZjQ0MDI3MDJjOWJhNTAxYTNiMGI0YmY2MjdkNDY4YmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCkBAIC0zMSwxNiArMzEsMjAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uOwogY2xhc3MgQXVk
aW9JT0NhbGxiYWNrOworY2xhc3MgQXVkaW9TZXNzaW9uOwogY2xhc3MgQ0RNRmFjdG9yeTsKIAog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CisjaWYgVVNFKEFV
RElPX1NFU1NJT04pCisgICAgdmlydHVhbCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBjcmVhdGVB
dWRpb1Nlc3Npb24oKTsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bigKLSAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKKyAgICAgICAgQXVkaW9JT0NhbGxiYWNr
JiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpOwogI2Vu
ZGlmCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+TWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4
IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNmMmY1N2QuLjQ2ZWM3M2RlYTgyNWNh
M2M2MjJiMTJlYmFmZTczMTNlNmZjMDM0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMjgsMTUgKzI4LDIyIEBACiAKICNpZiBVU0Uo
QVVESU9fU0VTU0lPTikKIAorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1VuaXF1
ZVJlZjxBdWRpb1Nlc3Npb24+IEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
bWFrZVVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+KCk7Cit9CisKIEF1ZGlvU2Vzc2lvbiYgQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXVk
aW9TZXNzaW9uPiBzZXNzaW9uOwotICAgIHJldHVybiBzZXNzaW9uOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPj4gc2Vzc2lvbiA9IHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkuY3JlYXRlQXVkaW9TZXNzaW9uKCk7CisgICAgcmV0
dXJuIHNlc3Npb24uZ2V0KCk7CiB9CiAKIGJvb2wgQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2
ZShib29sIGFjdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uLmgKaW5kZXggZTcwMDgyMmZmMWZlZWJkNzgyOWFlYzc1MGNjZTQwYTYwYjkyNTY2YS4uY2Zj
NDEzODYwMjVlN2E2NDhhYzJlM2I2M2I5NjVmYTQzZDU0M2QyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDQsMTMgKzQ1LDE3IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdCB7
CiAgICAgTG9uZ0Zvcm1WaWRlbwogfTsKIAotY2xhc3MgQXVkaW9TZXNzaW9uIGZpbmFsIHsKK2Ns
YXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9TZXNzaW9uKTsKKyAgICBmcmll
bmQgY2xhc3MgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj47CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxB
dWRpb1Nlc3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8QXVk
aW9TZXNzaW9uPigpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1Nl
c3Npb24mIHNoYXJlZFNlc3Npb24oKTsKKyAgICBzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lv
bj4gY3JlYXRlKCk7CisgICAgc3RhdGljIEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOwor
ICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgewor
ICAgIGVudW0gQ2F0ZWdvcnlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAg
IEFtYmllbnRTb3VuZCwKICAgICAgICAgU29sb0FtYmllbnRTb3VuZCwKQEAgLTU5LDIzICs2NCwy
MyBAQCBwdWJsaWM6CiAgICAgICAgIFBsYXlBbmRSZWNvcmQsCiAgICAgICAgIEF1ZGlvUHJvY2Vz
c2luZywKICAgICB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdv
cnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpOwotICAgIFdFQkNPUkVfRVhQT1JUIENhdGVnb3J5
VHlwZSBjYXRlZ29yeSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRl
Z29yeVR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdmlydHVhbCBDYXRlZ29yeVR5cGUg
Y2F0ZWdvcnkoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29y
eVR5cGUpOwogICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3Q7CiAKLSAg
ICBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7Ci0gICAgU3Ry
aW5nIHJvdXRpbmdDb250ZXh0VUlEKCkgY29uc3Q7CisgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQ
b2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgcm91
dGluZ0NvbnRleHRVSUQoKSBjb25zdDsKIAotICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsK
LSAgICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZk91dHB1
dENoYW5uZWxzKCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7
CisgICAgdmlydHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgc2l6
ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAogICAgIGJvb2wgdHJ5VG9TZXRB
Y3RpdmUoYm9vbCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVy
U2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwor
ICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xhc3MgTXV0
ZWRTdGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04NywxNyArOTIsMTYgQEAgcHVibGlj
OgogICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwog
ICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwog
Ci0gICAgYm9vbCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBoYW5kbGVNdXRlZFN0YXRlQ2hh
bmdlKCk7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBmcmllbmQg
Y2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRpb1Nlc3Npb24oKTsK
LSAgICB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwo
Ym9vbCk7CisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCk7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0ZT4gbV9wcml2YXRlOwogICAg
IEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAppbmRleCBh
OGQxOGJlNGVhYmFlOWVjODBmZjVkZWY0ZmI3YmNhOWRhNjU3MDdhLi4xMjhmYWRhZTBmZDk2N2Vm
YTBmZTljYzE0MTU3NDdkOTNmZWNjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb24oKTsKIAotICAgIGVudW0g
Y2xhc3MgTWVkaWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSA6IHVpbnQ4X3Qgewog
ICAgICAgICBOb25lID0gMCwKICAgICAgICAgVmlkZW8sCiAgICAgICAgIFZpZGVvQXVkaW8sCkBA
IC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5cGUgbWVkaWFUeXBlKCkgY29uc3Q7
CiAgICAgTWVkaWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBjb25zdDsKIAotICAgIGVudW0gU3Rh
dGUgeworICAgIGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAgICAgICAgSWRsZSwKICAgICAgICAg
QXV0b3BsYXlpbmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoK
ICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICB2b2lkIHNl
dFN0YXRlKFN0YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0aW9uVHlwZSB7CisgICAgZW51bSBJ
bnRlcnJ1cHRpb25UeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vSW50ZXJydXB0aW9uLAogICAg
ICAgICBTeXN0ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdCYWNrZ3JvdW5kLApAQCAtOTEsNyAr
OTEsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIGludGVycnVwdGlv
blR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlvblR5cGU7IH0KIAotICAgIGVudW0g
RW5kSW50ZXJydXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgOiB1
aW50OF90IHsKICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAgICAgIE1heVJlc3VtZVBsYXlpbmcg
PSAxIDw8IDAsCiAgICAgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGRv
dWJsZSBhc0RvdWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRBcmd1bWVudDsKIAotICAgIGVudW0g
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVtIFJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQsCiAgICAgICAgIFBsYXlDb21tYW5k
LAogICAgICAgICBQYXVzZUNvbW1hbmQsCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSwgY29uc3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBhcmd1bWVudCA9IG51bGxwdHIpOwog
ICAgIGJvb2wgc3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAKLSAgICBlbnVtIERpc3BsYXlUeXBl
IHsKKyAgICBlbnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vcm1hbCwKICAg
ICAgICAgRnVsbHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVkLApAQCAtMzExLDQgKzMxMSw2NCBA
QCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZT4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpN
ZWRpYVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlh
VHlwZTo6VmlkZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlw
ZTo6VmlkZW9BdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFU
eXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBl
OjpXZWJBdWRpbworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGUs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpJZGxlLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6QXV0b3BsYXlpbmcsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQbGF5aW5nLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2VkLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQKKyAgICA+OworfTsKKwordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Oklu
dGVycnVwdGlvblR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6Tm9JbnRlcnJ1cHRp
b24sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6
OlN5c3RlbVNsZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRpb25UeXBlOjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUludGVycnVwdGlvbiwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3VzcGVuZGVkVW5k
ZXJMb2NrLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25U
eXBlOjpJbnZpc2libGVBdXRvcGxheSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6SW50ZXJydXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZlLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQbGF5YmFja1N1c3BlbmRlZAorICAg
ID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50
ZXJydXB0aW9uRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZElu
dGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1lUGxheWluZworICAgID47Cit9Owor
Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3Rl
Q29udHJvbENvbW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGxheUNvbW1hbmQsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGF1
c2VDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250
cm9sQ29tbWFuZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRvZ2dsZVBsYXlQYXVzZUNvbW1hbmQs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZTo6QmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OkVuZFNlZWtpbmdCYWNrd2Fy
ZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6RW5kU2Vla2lu
Z0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1v
dGVDb250cm9sQ29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNrUG9zaXRpb25Db21tYW5kCisgICAg
PjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggZDZjMDA3ZjQwYjVmYjc2
MzcyMmQ1MzhhZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGExZDBhYTYzODljM2RmODkzNjcxMGEz
NTg5YTQ0NTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9p
b3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQzLDE1IEBAIHZvaWQgQXVkaW9TZXNz
aW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZmZXJTaXplKQogICAgIEFTU0VS
VCghZXJyb3IpOwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6aXNNdXRlZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6aGFuZGxlTXV0ZWRTdGF0
ZUNoYW5nZSgpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKSAmJiBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IDlmOTQ2Zjg0OTdhZjIzYjRhZmE1MWI3OTE4NDE4NTE4ODYwYWM1
YjkuLmQ3NDliMmRiMDliOTY3NDZmNGEwZjFlMzRjMjE3NDJlZGY1M2U0NmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE4LDYgKzE4LDgg
QEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldl
YktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1G
YWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAt
MTE2LDYgKzExOCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYTk2YzJjZmRkZDQ2YjM1OTIzOGU5NjIzNDNhOTkyMjEw
NGVlYTU5Yi4uOTk1MDM1MTJiYTU1OGIyYjQxMDA4ZjViMTY2NTA0NjBhOTU0MTQ1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzcs
NiArMTM3LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVBy
b3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCA0NWVlM2RiN2VkN2UxMzM3MmM4YTc1YWQ1NTVhMTY1ODdmNjdkMDhh
Li4xYzNkMWEyMGVlYTNiNzM4MDAxMDJlMWQzMTk4Mzc5MDNhYTZjZDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0xNDgsNiArMTQ4LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAgICAgUGx1Z2luUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwK
ICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAorICAgIFJlbW90ZUF1ZGlvU2Vzc2lv
biBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCmluZGV4IDZjZjFjMzBiM2UzMzAxMjc3NDY2ZDkyZWUyOTMzMjQ2MDdlNTljYzEuLjFi
MWM2Yjc4YmFiMDJlMGJlNmZmYjM3MTJjNjdlZTdmNDE3Y2VmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTcxLDYgKzcxLDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oIgogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorI2lu
Y2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
ZXNzYWdlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xMTksNiArMTI0LDEwIEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKIAogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworICAgIGlmIChtX2F1ZGlvU2Vz
c2lvblByb3h5KSB7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2VyKCku
cmVtb3ZlUHJveHkod2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIG1fYXVkaW9TZXNz
aW9uUHJveHkgPSBudWxscHRyOworICAgIH0KIH0KIAogTG9nZ2VyJiBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpsb2dnZXIoKQpAQCAtMjE3LDYgKzIyNiwxNyBAQCBSZW1vdGVDRE1GYWN0b3J5
UHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNkbUZhY3RvcnlQcm94eSgpCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCitS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9T
ZXNzaW9uUHJveHkoKQoreworICAgIGlmICghbV9hdWRpb1Nlc3Npb25Qcm94eSkgeworICAgICAg
ICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNyZWF0ZSgq
dGhpcykubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Np
b25NYW5hZ2VyKCkuYWRkUHJveHkobWFrZVdlYWtQdHIobV9hdWRpb1Nlc3Npb25Qcm94eS5nZXQo
KSkpOworICAgIH0KKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uUHJveHk7Cit9CisjZW5kaWYK
Kwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5k
KFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQog
ewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNYXAu
ZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0yMzEsNiArMjUx
LDEzIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVsZWFzZVJlbmRlcmluZ0Jh
Y2tlbmQoUmVuZGVyaW5nQmFja2VuZElkZW50aWZpCiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwg
Zm91bmQpOwogfQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lP
TikKK3ZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlQXVkaW9TZXNzaW9uKEVu
c3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24mJiBjb21wbGV0aW9uKQoreworICAgIGNvbXBsZXRp
b24oYXVkaW9TZXNzaW9uUHJveHkoKS5jb25maWd1cmF0aW9uKCkpOworfQorI2VuZGlmCisKIGJv
b2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMzA4LDYgKzMzNSwxMiBA
QCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAj
ZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBhdWRpb1Nl
c3Npb25Qcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiBtZXNzYWdlUmVj
ZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CkBAIC0z
NTUsNiArMzg4LDEyIEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KICNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Cisg
ICAgICAgIGF1ZGlvU2Vzc2lvblByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyNlbmRpZgogCiAgICAgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoU3luY01l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KQEAgLTM2NCwxMyAr
NDAzLDYgQEAgY29uc3QgU3RyaW5nJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRpYUNh
Y2hlRGlyZWN0b3J5KCkgY29uc3QKICAgICByZXR1cm4gbV9ncHVQcm9jZXNzLT5tZWRpYUNhY2hl
RGlyZWN0b3J5KG1fc2Vzc2lvbklEKTsKIH0KIAotI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
IHx8IEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQotY29uc3QgU3RyaW5nJiBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9ncHVQcm9jZXNzLT5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KG1fc2Vz
c2lvbklEKTsKLX0KLSNlbmRpZgotCiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXImIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNlc3Npb25NYW5hZ2VyKCkKIHsKICAgICBpZiAoIW1fc2Vz
c2lvbk1hbmFnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhM2VjYTVjOGZhZDY5MTgzODBmZDkzM2JmNjMwZGQ0
Y2ZmNzMwZDk2Li4zMDc5MDZmYTIwNTA2ODM4YTU0NTNjMTc5OTc3NWQ3ZjMyZmI1YmEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyTWFwLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIlJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRl
bnRpZmllci5oPgpAQCAtNDgsMTIgKzQ5LDE1IEBAIGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBM
aWJXZWJSVENDb2RlY3NQcm94eTsKIGNsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2Vy
OwogY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOworY2xh
c3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVDRE1GYWN0b3J5UHJveHk7CiBjbGFzcyBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOwog
Y2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTsKK3N0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uOwogCiBjbGFzcyBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzPgpAQCAtOTAsMTEgKzk0LDE1IEBAIHB1YmxpYzoKICAgICBSZW1vdGVD
RE1GYWN0b3J5UHJveHkmIGNkbUZhY3RvcnlQcm94eSgpOwogI2VuZGlmCiAKKyAgICBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpOworI2VuZGlm
CisKIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiwg
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwg
UEFMOjpTZXNzaW9uSUQpOwogCiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXImIHJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCk7CiAjaWYgUExBVEZPUk0o
Q09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgTGliV2ViUlRDQ29kZWNzUHJveHkmIGxpYldl
YlJUQ0NvZGVjc1Byb3h5KCk7CiAjZW5kaWYKQEAgLTEwNiw4ICsxMTQsMTcgQEAgcHJpdmF0ZToK
ICAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAjZW5kaWYKICNlbmRpZgorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eSYgYXVkaW9TZXNzaW9uUHJveHkoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBjcmVhdGVSZW5kZXJp
bmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VS
ZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIHVzaW5nIEVuc3VyZUF1ZGlv
U2Vzc2lvbkNvbXBsZXRpb24gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mKT47CisgICAgdm9pZCBlbnN1cmVBdWRpb1Nlc3Npb24o
RW5zdXJlQXVkaW9TZXNzaW9uQ29tcGxldGlvbiYmKTsKKyNlbmRpZgogCiAgICAgLy8gSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIGZp
bmFsOwpAQCAtMTQ3LDYgKzE2NCw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ0RNRmFjdG9yeVByb3h5PiBtX2NkbUZh
Y3RvcnlQcm94eTsKICNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBt
X2F1ZGlvU2Vzc2lvblByb3h5OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTMyYzAxMjJkZTA4MWVkZTliYjllZmI1
NmY5YmM1MjU5YmE0ZDcwNC4uNGZkMGYyMjMwN2U4Mzg4MzZkNDc0YmFiM2UwMjc1YTM1YzA3NTBi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDcgQEAKIG1lc3Nh
Z2VzIC0+IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgV2FudHNEaXNwYXRjaE1lc3NhZ2Ugewog
ICAgIHZvaWQgQ3JlYXRlUmVuZGVyaW5nQmFja2VuZChXZWJLaXQ6OlJlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQogICAgIHZvaWQgUmVsZWFzZVJl
bmRlcmluZ0JhY2tlbmQoV2ViS2l0OjpSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcikKKyAgICBFbnN1cmVBdWRpb1Nlc3Npb24oKSAtPiAoc3RydWN0
IFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKSBT
eW5jaHJvbm91cwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NjVkM2U0YTYyOGM5YjMzMTVmMmRmM2I2YWNlZDc5NjZkYWExZGUyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvQ0RNRmFjdG9yeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGVnYWN5Q0RNLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVN0cmF0ZWd5Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6Omlu
aXRpYWxpemUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxHUFVQbGF0Zm9ybVN0cmF0
ZWdpZXM+IHBsYXRmb3JtU3RyYXRlZ2llczsKKyAgICBzZXRQbGF0Zm9ybVN0cmF0ZWdpZXMoJnBs
YXRmb3JtU3RyYXRlZ2llcy5nZXQoKSk7Cit9CisKK0dQVVBsYXRmb3JtU3RyYXRlZ2llczo6R1BV
UGxhdGZvcm1TdHJhdGVnaWVzKCkgPSBkZWZhdWx0OworCitMb2FkZXJTdHJhdGVneSogR1BVUGxh
dGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVMb2FkZXJTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK1Bhc3RlYm9hcmRTdHJhdGVneSogR1BVUGxhdGZvcm1TdHJhdGVnaWVzOjpj
cmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitN
ZWRpYVN0cmF0ZWd5KiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3ko
KQoreworICAgIHJldHVybiBuZXcgTWVkaWFTdHJhdGVneSgpOworfQorCitCbG9iUmVnaXN0cnkq
IEdQVVBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKK3sKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2Y5Mzk3Y2RiMGNjOGFk
MTBiN2JmYzljZjAwNzM2MDlhZTYzMWE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0wLDAgKzEsNTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJh
dGVnaWVzLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTG9hZGVyU3RyYXRlZ3k7CitjbGFz
cyBQYXN0ZWJvYXJkU3RyYXRlZ3k7CitjbGFzcyBNZWRpYVN0cmF0ZWd5OworY2xhc3MgQmxvYlJl
Z2lzdHJ5OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVUGxhdGZvcm1TdHJh
dGVnaWVzIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcyB7CisgICAgZnJpZW5k
IE5ldmVyRGVzdHJveWVkPEdQVVBsYXRmb3JtU3RyYXRlZ2llcz47CitwdWJsaWM6CisgICAgc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIEdQVVBsYXRmb3JtU3RyYXRl
Z2llcygpOworCisgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCisgICAgV2ViQ29y
ZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAg
V2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBv
dmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5
KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0
cnkoKSBvdmVycmlkZTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUHJvY2Vzcy5jcHAKaW5kZXggMGU3YmQwOWJlYTVkMTIzYTQwN2VjZmI5ZDM5ZjcyNDBmNWIz
YzdiOS4uNjAzNzAwNTljZDE0OTU1MzZlZjQ1Y2Y0OTY0NTJkZDQxZTI0ZTQ3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkF1eGlsaWFyeVByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiR1BV
UGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NTZXNzaW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKQEAgLTUxLDYgKzUyLDEwIEBACiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJl
Zi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTEwLDYgKzExNSw4IEBAIHZvaWQgR1BVUHJvY2Vzczo6
aW5pdGlhbGl6ZUdQVVByb2Nlc3MoR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgV1RGOjpUaHJlYWQ6OnNldEN1cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQo
KTsKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAKKyAgICBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmluaXRpYWxpemUoKTsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVl
KTsKICNlbmRpZgpAQCAtMjEyLDYgKzIxOSwxNSBAQCBjb25zdCBTdHJpbmcmIEdQVVByb2Nlc3M6
Om1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjbwog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9O
KQorUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyJiBHUFVQcm9jZXNzOjphdWRpb1Nlc3Np
b25NYW5hZ2VyKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYXVkaW9TZXNzaW9uTWFuYWdlcikKKyAg
ICAgICAgbV9hdWRpb1Nlc3Npb25NYW5hZ2VyID0gV1RGOjptYWtlVW5pcXVlPFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcj4oKTsKKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uTWFuYWdl
cjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCmluZGV4IDZm
YTAyMDE0Yjk0NzgxZWE5OWUwMzVkYjNhZDc5ZDY1YTI0ZjI4N2IuLjQzYWFlMWExMmI1Yjg4NWIy
NmM1NmRkZjE1Mjk2MGYwMjI3YzUyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MuaApAQCAtNDAsNiArNDAsNyBAQCBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwog
c3RydWN0IEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgR1BVUHJvY2Vzc1Nl
c3Npb25QYXJhbWV0ZXJzOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKK2NsYXNzIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKIAogY2xhc3MgR1BVUHJvY2VzcyA6IHB1YmxpYyBB
dXhpbGlhcnlQcm9jZXNzLCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8R1BVUHJvY2Vzcz4s
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxHUFVQcm9jZXNzPiB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoR1BVUHJvY2Vzcyk7CkBAIC02Myw2ICs2NCwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
U3RyaW5nJiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KFBBTDo6U2Vzc2lvbklEKSBjb25zdDsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXImIGF1ZGlvU2Vzc2lvbk1hbmFnZXIo
KSBjb25zdDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgbG93TWVtb3J5SGFuZGxlcihD
cml0aWNhbCk7CiAKQEAgLTEwMyw2ICsxMDgsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxMYXllckhvc3RpbmdDb250ZXh0PiBtX2NvbnRleHRGb3JWaXNpYmlsaXR5UHJvcGFnYXRp
b247CiAgICAgYm9vbCBtX2NhblNob3dXaGlsZUxvY2tlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIG11dGFibGUg
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcj4gbV9hdWRpb1Nl
c3Npb25NYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZTQ3ZjBmNjdkMDM5MWI5MTg3NWE4OWNhNTRiNmY5
Yjk4ZjY2MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQor
CisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitVbmlxdWVS
ZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpjcmVh
dGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvbikKK3sKKyAgICByZXR1
cm4gbWFrZVVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4oZ3B1Q29ubmVjdGlvbik7
Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eShH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uKQorICAgIDogbV9ncHVDb25u
ZWN0aW9uKGdwdUNvbm5lY3Rpb24pCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp+
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoKSA9IGRlZmF1bHQ7CisKK1dlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpwcm9jZXNzSWRlbnRpZmllcigpCit7
CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpOworfQor
CitSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
Ojpjb25maWd1cmF0aW9uKCkKK3sKKyAgICBhdXRvJiBzZXNzaW9uID0gYXVkaW9TZXNzaW9uTWFu
YWdlcigpLnNlc3Npb24oKTsKKyAgICByZXR1cm4geworICAgICAgICBzZXNzaW9uLmNhdGVnb3J5
KCksCisgICAgICAgIHNlc3Npb24ucm91dGVTaGFyaW5nUG9saWN5KCksCisgICAgICAgIHNlc3Np
b24ucm91dGluZ0NvbnRleHRVSUQoKSwKKyAgICAgICAgc2Vzc2lvbi5zYW1wbGVSYXRlKCksCisg
ICAgICAgIHNlc3Npb24uYnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNzaW9uLm51bWJlck9mT3V0
cHV0Q2hhbm5lbHMoKSwKKyAgICAgICAgc2Vzc2lvbi5wcmVmZXJyZWRCdWZmZXJTaXplKCksCisg
ICAgICAgIHNlc3Npb24uaXNNdXRlZCgpLAorICAgICAgICBtX2FjdGl2ZQorICAgIH07Cit9CisK
K3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xp
Y3kgcG9saWN5KQoreworICAgIG1fY2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyAgICBtX3JvdXRlU2hh
cmluZ1BvbGljeSA9IHBvbGljeTsKKyAgICBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2V0Q2F0ZWdv
cnlGb3JQcm9jZXNzKG1fZ3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCB0eXBl
LCBwb2xpY3kpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpzZXRQcmVmZXJy
ZWRCdWZmZXJTaXplKHVpbnQ2NF90IHNpemUpCit7CisgICAgbV9wcmVmZXJyZWRCdWZmZXJTaXpl
ID0gc2l6ZTsKKyAgICBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6
ZUZvclByb2Nlc3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIHNpemUp
OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1NldEFjdGl2ZShib29s
IGFjdGl2ZSwgU2V0QWN0aXZlQ29tcGxldGlvbiYmIGNvbXBsZXRpb24pCit7CisgICAgbV9hY3Rp
dmUgPSBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkudHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKG1fZ3B1
Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCBhY3RpdmUpOworICAgIGNvbXBsZXRp
b24obV9hY3RpdmUpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbklu
dGVycnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlw
ZSB0eXBlKQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nl
c3Npb246OkJlZ2luSW50ZXJydXB0aW9uKHR5cGUpLCB7IH0pOworfQorCit2b2lkIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5OjplbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNl
c3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzIGZsYWdzKQoreworICAgIGNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246OkVuZEludGVycnVwdGlvbihmbGFncyks
IHsgfSk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKQoreworICAgIHJldHVybiBtX2dwdUNv
bm5lY3Rpb24uZ3B1UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKTsKK30KKworSVBDOjpD
b25uZWN0aW9uJiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbigpCit7CisgICAg
cmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCk7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjZDJjNmMzN2MxNzk2NGUwYmM4ZGZhNzIxMzY0OTky
MWQ4NDkzYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19T
RVNTSU9OKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3Rl
QXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNz
aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CisKK2NsYXNz
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5CisgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2
ZXIKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4g
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlx
dWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJik7CisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoKTsKKworICAg
IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKCk7CisgICAgUmVt
b3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKCk7CisKKyAgICBXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0IHsgcmV0dXJu
IG1fY2F0ZWdvcnk7IH07CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hh
cmluZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAg
c2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcnJlZEJ1
ZmZlclNpemU7IH0KKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7
IH0KKworICAgIHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNl
c3Npb246OkludGVycnVwdGlvblR5cGUpOworICAgIHZvaWQgZW5kSW50ZXJydXB0aW9uKFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyk7CisKKyAgICAv
LyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRy
PElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgVW5pcXVlUmVm
PFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1h
bGxvY0NoZWNrPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PihHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJik7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYpOworCisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIHNldENhdGVnb3J5KFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kp
OworICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCk7CisgICAgdXNpbmcg
U2V0QWN0aXZlQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+OworICAg
IHZvaWQgdHJ5VG9TZXRBY3RpdmUoYm9vbCwgU2V0QWN0aXZlQ29tcGxldGlvbiYmKTsKKworICAg
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpOwor
ICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOworCisgICAgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9uOworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnk7CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5
IG1fcm91dGVTaGFyaW5nUG9saWN5OworICAgIHNpemVfdCBtX3ByZWZlcnJlZEJ1ZmZlclNpemUg
eyAwIH07CisgICAgYm9vbCBtX2FjdGl2ZSB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZjNiYWU4MjQz
ZmFhNTQ1NTJiYmZmMDRkOWE2ZWI4NTJiNjA2MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIFVTRShBVURJT19TRVNTSU9OKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eSBOb3RSZWZDb3VudGVkIHsKKyAgICBTZXRDYXRlZ29yeShlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgdHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6
OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCisgICAgU2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1
aW50NjRfdCBwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgIFRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0
aXZlKSAtPiAoYm9vbCBzdWNlZWRlZCkgU3luY2hyb25vdXMKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNmI0ZWYyMTFmMmEzODMwNzA1
NGM1MTI2MWI3MTYxZmM3ZDA4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcApAQCAtMCww
ICsxLDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hDb3VudGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworc3RhdGljIGJvb2wgY2F0ZWdvcnlDYW5NaXhXaXRoT3RoZXJzKEF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQoreworICAgIHJldHVybiBjYXRlZ29yeSA9
PSBBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZDsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKQorICAgIDogbV9zZXNz
aW9uKEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkpCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcjo6flJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpID0gZGVmYXVsdDsK
Kwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmFkZFByb3h5KFdlYWtQdHI8
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+JiYgcHJveHkpCit7CisgICAgYXV0byBpZCA9IHByb3h5
LT5wcm9jZXNzSWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlk
KSk7CisgICAgbV9wcm94aWVzLnNldChpZCwgV1RGTW92ZShwcm94eSkpOworfQorCit2b2lkIFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkoY29uc3QgUHJvY2Vzc0lk
ZW50aWZpZXImIGlkKQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAg
ICBtX3Byb3hpZXMucmVtb3ZlKGlkKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkqIFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6Z2V0UHJveHkoY29uc3QgUHJvY2Vzc0lkZW50
aWZpZXImIGlkKQoreworICAgIGF1dG8gcmVzdWx0cyA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAg
ICBpZiAocmVzdWx0cyAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIHJldHVybiByZXN1bHRz
LT52YWx1ZS5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyhjb25zdCBQcm9jZXNz
SWRlbnRpZmllciYgaWQsIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBSb3V0
ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMo
aWQpKTsKKyAgICBhdXRvIHByb3h5ID0gZ2V0UHJveHkoaWQpOworICAgIGlmICghcHJveHkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChwcm94eS0+Y2F0ZWdvcnkoKSA9PSBjYXRlZ29yeSAm
JiBwcm94eS0+cm91dGVTaGFyaW5nUG9saWN5KCkgPT0gcG9saWN5KQorICAgICAgICByZXR1cm47
CisKKyAgICBIYXNoQ291bnRlZFNldDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgV1RGOjpJ
bnRIYXNoPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRy
YWl0czxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4+IGNhdGVnb3J5Q291bnRzOworICAgIEhh
c2hDb3VudGVkU2V0PFJvdXRlU2hhcmluZ1BvbGljeSwgV1RGOjpJbnRIYXNoPFJvdXRlU2hhcmlu
Z1BvbGljeT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8Um91dGVTaGFyaW5nUG9saWN5Pj4g
cG9saWN5Q291bnRzOworICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1
ZXMoKSkgeworICAgICAgICBjYXRlZ29yeUNvdW50cy5hZGQob3RoZXJQcm94eS0+Y2F0ZWdvcnko
KSk7CisgICAgICAgIHBvbGljeUNvdW50cy5hZGQob3RoZXJQcm94eS0+cm91dGVTaGFyaW5nUG9s
aWN5KCkpOworICAgIH0KKworICAgIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nl
c3Npb246OlBsYXlBbmRSZWNvcmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6
UGxheUFuZFJlY29yZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRp
b1Nlc3Npb246OlJlY29yZEF1ZGlvKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246
OlJlY29yZEF1ZGlvOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlv
U2Vzc2lvbjo6TWVkaWFQbGF5YmFjaykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9u
OjpNZWRpYVBsYXliYWNrOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1
ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRTb3VuZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9T
ZXNzaW9uOjpTb2xvQW1iaWVudFNvdW5kOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNv
bnRhaW5zKEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBB
dWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5j
b250YWlucyhBdWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZykpCisgICAgICAgIGNhdGVnb3J5
ID0gQXVkaW9TZXNzaW9uOjpBdWRpb1Byb2Nlc3Npbmc7CisgICAgZWxzZQorICAgICAgICBjYXRl
Z29yeSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsKKworICAgIGlmIChwb2xpY3lDb3VudHMuY29udGFp
bnMoUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybVZpZGVvKSkKKyAgICAgICAgcG9saWN5ID0g
Um91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybVZpZGVvOworICAgIGVsc2UgaWYgKHBvbGljeUNv
dW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW8pKQorICAgICAg
ICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW87CisgICAgZWxzZSBp
ZiAocG9saWN5Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQp
KQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkluZGVwZW5kZW50OworICAg
IGVsc2UKKyAgICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0OworCisg
ICAgbV9zZXNzaW9uLT5zZXRDYXRlZ29yeShjYXRlZ29yeSwgcG9saWN5KTsKK30KKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQ
cm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZl
clNpemUpCit7CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygp
KSB7CisgICAgICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICBpZiAob3RoZXJQcm94eS0+cHJlZmVycmVkQnVmZmVyU2l6ZSgpIDwgcHJlZmVycmVkQnVm
ZmVyU2l6ZSkKKyAgICAgICAgICAgIHByZWZlcnJlZEJ1ZmZlclNpemUgPSBvdGhlclByb3h5LT5w
cmVmZXJyZWRCdWZmZXJTaXplKCk7CisgICAgfQorCisgICAgbV9zZXNzaW9uLT5zZXRQcmVmZXJy
ZWRCdWZmZXJTaXplKHByZWZlcnJlZEJ1ZmZlclNpemUpOworfQorCitib29sIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcjo6dHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKGNvbnN0IFByb2Nl
c3NJZGVudGlmaWVyJiBpZCwgYm9vbCBhY3RpdmUpCit7CisgICAgQVNTRVJUKG1fcHJveGllcy5j
b250YWlucyhpZCkpOworICAgIGF1dG8gcHJveHkgPSBnZXRQcm94eShpZCk7CisgICAgaWYgKCFw
cm94eSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc2l6ZV90IGFjdGl2ZVByb3h5Q291
bnQgeyAwIH07CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygp
KSB7CisgICAgICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICBpZiAob3RoZXJQcm94eS0+aXNBY3RpdmUoKSkKKyAgICAgICAgICAgICsrYWN0aXZlUHJv
eHlDb3VudDsKKyAgICB9CisKKyAgICBpZiAoIWFjdGl2ZSAmJiBhY3RpdmVQcm94eUNvdW50ID4g
MSkgeworICAgICAgICAvLyBUaGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBidXQgb3Ro
ZXIgcHJveGllcyBhcmUgc3RpbGwKKyAgICAgICAgLy8gYWN0aXZlLiBOby1vcCwgYW5kIHJldHVy
biBkZWFjdGl2YXRpb24gd2FzIHN1Y2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorCisgICAgaWYgKCFhY3RpdmUpIHsKKyAgICAgICAgLy8gVGhpcyBwcm94eSB3YW50cyB0byBk
ZS1hY3RpdmF0ZSwgYW5kIGlzIHRoZSBsYXN0IHJlbWFpbmluZyBhY3RpdmUKKyAgICAgICAgLy8g
cHJveHkuIERlYWN0aXZhdGUgdGhlIHNlc3Npb24sIGFuZCByZXR1cm4gd2hldGhlciB0aGF0IGRl
YWN0aXZhdGlvbgorICAgICAgICAvLyB3YXMgc3VjZXNzZnVsOworICAgICAgICByZXR1cm4gbV9z
ZXNzaW9uLT50cnlUb1NldEFjdGl2ZShmYWxzZSk7CisgICAgfQorCisgICAgaWYgKGFjdGl2ZSAm
JiAhYWN0aXZlUHJveHlDb3VudCkgeworICAgICAgICAvLyBUaGlzIHByb3h5IGFuZCBvbmx5IHRo
aXMgcHJveHkgd2FudHMgdG8gYmVjb21lIGFjdGl2ZS4gQWN0aXZhdGUKKyAgICAgICAgLy8gdGhl
IHNlc3Npb24sIGFuZCByZXR1cm4gd2hldGhlciB0aGF0IGFjdGl2YXRpb24gd2FzIHN1Y2Nlc3Nm
dWwuCisgICAgICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGFjdGl2ZSk7Cisg
ICAgfQorCisgICAgLy8gSWYgdGhpcyBwcm94eSBpcyBBbWJpZW50LCBhbmQgdGhlIHNlc3Npb24g
aXMgYWxyZWFkeSBhY3RpdmUsIHRoaXMKKyAgICAvLyBwcm94eSB3aWxsIG1peCB3aXRoIHRoZSBh
Y3RpdmUgcHJveGllcy4gTm8tb3AsIGFuZCByZXR1cm4gYWN0aXZhdGlvbgorICAgIC8vIHdhcyBz
dWNlc3NmdWwuCisgICAgaWYgKGNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyhwcm94eS0+Y2F0ZWdv
cnkoKSkpCisgICAgICAgIHJldHVybiB0cnVlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICAvLyBPdGhlcndpc2UsIHRoaXMgcHJveHkgd2FudHMgdG8gYmVjb21lIGFjdGl2ZSwgYnV0
IHRoZXJlIGFyZSBvdGhlcgorICAgIC8vIHByb3hpZXMgd2hvIGFyZSBhbHJlYWR5IGFjdGl2ZS4g
V2FsayBvdmVyIHRoZSBwcm94aWVzLCBhbmQgaW50ZXJydXB0CisgICAgLy8gdGhvc2UgcHJveGll
cyB3aG9zZSBjYXRlb2dyaWVzIGluZGljYXRlIHRoZXkgY2Fubm90IG1peCB3aXRoIG90aGVycy4K
KyAgICBmb3IgKGF1dG8mIG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAg
ICAgaWYgKCFvdGhlclByb3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICgh
b3RoZXJQcm94eS0+aXNBY3RpdmUoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IGlmIChjYXRlZ29yeUNhbk1peFdpdGhPdGhlcnMob3RoZXJQcm94eS0+Y2F0ZWdvcnkoKSkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBvdGhlclByb3h5LT5iZWdpbkludGVycnVw
dGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVtSW50ZXJy
dXB0aW9uKTsKKyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiB0cnVlOworCit9CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhN2Y3NjFm
NmIxZTg1YmE3MTU4ZTBiZGY0MGM1ZmMyM2JhYTE3YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
aApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTsK
KworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyCisgICAgOiBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyPiB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyKCk7CisgICAgflJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpOworCisgICAg
dm9pZCBhZGRQcm94eShXZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiYmKTsKKyAgICB2
b2lkIHJlbW92ZVByb3h5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJik7CisgICAg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkqIGdldFByb3h5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyJik7CisKKyAgICB2b2lkIHNldENhdGVnb3J5Rm9yUHJvY2Vzcyhjb25zdCBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIHZvaWQgc2V0UHJlZmVycmVk
QnVmZmVyU2l6ZUZvclByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImLCBz
aXplX3QpOworCisgICAgdXNpbmcgU2V0QWN0aXZlQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+OworICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKGNvbnN0
IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJiwgYm9vbCk7CisKKyAgICBjb25zdCBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb24mIHNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb247IH0KKwor
cHJpdmF0ZToKKyAgICBVbmlxdWVSZWY8V2ViQ29yZTo6QXVkaW9TZXNzaW9uPiBtX3Nlc3Npb247
CisgICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgV2Vha1B0cjxSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eT4+IG1fcHJveGllczsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGIz
ZGVjN2NkMzlkMDEwMmI4NWYwZjk1ZGY0ZTQzMGY5YWUxM2ZkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMjU2ZGM5OTA1YmY0NDY2ZDBjMmFk
NTc0ZDhjMzY4YTE0YmU2OTYzYS4uNGJhMTRkYmFmMjRiMjQxZTU5ZGIwYTdmMjA4MGQwMmQwMjdj
M2IwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMzQs
NiArMjM0LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToK
ICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktp
dDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3RlQ0RN
SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50aWZpZXIn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBk
MDdmMmJmNWIyMWI2MjBiOTE5ODEwMTk5NDBlMjc0NGVkMjUwMGNkLi42NzUyY2I2ZDQ1ZTVhZjAw
NWVmZjgyN2E3NjZiYTNiYjFiM2E4ZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNjEsNiArNjEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0NETUluc3RhbmNlU2Vzc2lvbi5oPgogI2VuZGlmCiAKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikK
KyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKICNpZiBQTEFURk9S
TShDT0NPQSkKIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTWFjaFNlbmRSaWdodDsKQEAgLTEwMjUs
NCArMTAyOSwxOSBAQCB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDRE1J
bnN0YW5jZTo6SERDUFN0YXR1cz4gewogCiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNTSU9O
KQordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6QW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6UGxheUFuZFJlY29yZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5nCisgICAgPjsKK307CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA2ZDBlOGM2OGEwMjM4ODczYjY4NjQyMzgzZTViN2Jj
NWFhMDYzN2RjLi5kMDA2MjNhNjI5Njc4MWNhZDdkY2E2ZWJlMDVkMTk2M2FkNjY5NjQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKQEAgLTIyLDExICsyMiwxNCBAQAogLy8gVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCitHUFVQcm9jZXNzL0dQVVBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcAogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKK0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCitHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlci5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVBy
b3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcAogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHAKQEAgLTU0Niw2
ICs1NDksNyBAQCBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCitXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVDRE0uY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5LmNwcAog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKaW5kZXggMGE3NzY5Mzk4NzllYjY5NWZmYmZlYWZiZWQ4YmMyZjljNDRjZWZhNC4uNjQ0
YmNiYzM1YjQ1OGY0M2U1M2JmYjEwYTkxZDM3YmM5ODY1NjE3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dApAQCAtNjU0LDYgKzY1NCw4IEBAIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcAogTGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNw
cAogUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUzZWRlNTY2ZDNkZThl
OTk3NTRiOTY2MjU0NjRiNjFlYjE3NDhhMzguLjVmNDhhODEzYWUyOTllZjVlYTRhZWQ3ZGMwZmE0
YzMzMWVkMzYwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTc0Myw2ICsxNzQzLDggQEAKIAkJQ0RBQzIwRjgyM0ZDNzI2QzAwMjFE
RUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQzIwRjUyM0ZDMzgzQjAw
MjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OwogCQlDREFDMjBGOTIzRkM3MjZDMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RBQzIwRUMyM0ZDMzgzODAwMjFERUUzIC8qIFJlbW90ZUNETUluc3Rh
bmNlU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0RBQzIwRkEyM0ZD
NzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEVGMjNGQzM4Mzkw
MDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNE
QkI0OUYwMjQwRDU3RDIwMDE3QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQkI0OUVFMjQwRDU3RDIw
MDE3QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsKKwkJQ0RCQjQ5RkQyNDBE
OUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQkI0OUZDMjQwRDlBNzIw
MDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi87IH07CiAJCUNE
QzI4MzFEMjAxQkQ3OUQwMEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzI4MzFCMjAxQkQ3OUQw
MEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCAqLzsgfTsKIAkJQ0RDQTg1QzkxMzJB
QkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4NUM3MTMyQUJBNEUwMEU5
NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi87IH07CiAJCUNFMTFBRDUy
MUNCQzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UxMUFENTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVT
aWduaW5nLmggKi87IH07CkBAIC01MDk0LDYgKzUwOTYsMTcgQEAKIAkJQ0RBQzIwRjQyM0ZDMzgz
QTAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDREFDMjBGNTIzRkMzODNCMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFu
Y2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBQzIwRjYyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90
ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BV
UGxhdGZvcm1TdHJhdGVnaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVBsYXRmb3JtU3RyYXRlZ2ll
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlFRjI0MEQ1N0QyMDAxN0My
OTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVBs
YXRmb3JtU3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0
OUY0MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQXVkaW9TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
QkI0OUY1MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RCQjQ5RjYyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY3MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY4MjQwRDhE
NTMwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNz
aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlm
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZDMjQwRDlBNzIwMDE3
QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RDMjgzMUIyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmll
dy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaDsgcGF0aCA9IGlvcy9m
dWxsc2NyZWVuL1dLRnVsbHNjcmVlblN0YWNrVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREMyODMxQzIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBwYXRo
ID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDREMzODJGNzE3MjExNTA2MDA4QTJGQzMgLyogQ0ZOZXR3b3JrLmZy
YW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ0ZOZXR3b3JrLmZyYW1ld29yazsgcGF0aCA9IC9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NGTmV0d29yay5mcmFtZXdvcms7IHNvdXJjZVRyZWUg
PSAiPGFic29sdXRlPiI7IH07CkBAIC01MTAxLDYgKzUxMTQsMTcgQEAKIAkJQ0RDQTg1QzYxMzJB
QkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENBODVDNzEzMkFCQTRFMDBF
OTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJz
b2x1dGU+IjsgfTsKKwkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcwMjQwREQ0RUYwMEY3QjhDNCAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDREQ1MzU3MjI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTczMjQwRERFMDYwMEY3QjhDNCAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzQyNDBEREUwNzAw
RjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhD
NCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNERDUzNTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3OTI0
MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNS
ZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTExQUQ0RjFD
QkM0N0Y4MDA2ODFFRTUgLyogQ29kZVNpZ25pbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDb2RlU2lnbmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0UxMUFENTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWduaW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvZGVTaWduaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNFMUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNl
c1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3NlcnRpb25TZXJ2aWNl
c1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTM3OCw2ICs1NDAyLDExIEBA
CiAJCQkJOUI1QkVDMjkyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5jcHAgKi8sCiAJCQkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5oICovLAogCQkJCTlCNUJFQzJFMjQwMTAxOEMwMDcwQzZFRiAvKiBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjUy
NDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAgKi8sCisJCQkJQ0RCQjQ5
RjQyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5oICovLAorCQkJCUNERDUz
NTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8s
CisJCQkJQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24uaCAqLywKKwkJCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVk
aW9TZXNzaW9uSWRlbnRpZmllci5oICovLAogCQkJCUNEQUMyMEJGMjNGQzJGNzUwMDIxREVFMyAv
KiBSZW1vdGVDRE0uY3BwICovLAogCQkJCUNEQUMyMEJBMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1v
dGVDRE0uaCAqLywKIAkJCQlDREFDMjBCODIzRkMyRjczMDAyMURFRTMgLyogUmVtb3RlQ0RNQ29u
ZmlndXJhdGlvbi5oICovLApAQCAtNTQyMCw2ICs1NDQ5LDEyIEBACiAJCQkJOUIxMjI5Q0MyM0ZG
MjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLywKIAkJ
CQk5QjEyMjlDQjIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuaCAqLywKIAkJCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjcyNDBEOEM5NTAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCAqLywKKwkJCQlDREJCNDlGNjI0MEQ4
Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCAqLywKKwkJCQlDREJCNDlG
ODI0MEQ4RDUzMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4g
Ki8sCisJCQkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlci5jcHAgKi8sCisJCQkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oICovLAorCQkJCUNERDUzNTcwMjQwREQ0RUYwMEY3
QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJ
CQkJMDcxQkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAg
Ki8sCiAJCQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94
eS5oICovLAogCQkJCUNEQUMyMDc5MjNGQjFFMjEwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5
UHJveHkuY3BwICovLApAQCAtNjcwNiw2ICs2NzQxLDggQEAKIAkJCQkyRDlGQjIwQzIzNzUyMDlE
MDA0OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCiAJCQkJMkQ5RkIy
MDAyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJ
CQkyRDlGQjIwOTIzNzUyMDlEMDA0OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlFRjI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcCAqLywKKwkJCQlDREJCNDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BV
UGxhdGZvcm1TdHJhdGVnaWVzLmggKi8sCiAJCQkJMkQ5RkIyMDEyMzc1MjA5RDAwNDlGOTM2IC8q
IEdQVVByb2Nlc3MuY3BwICovLAogCQkJCTJEOUZCMjE1MjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQ
cm9jZXNzLmggKi8sCiAJCQkJMkQ5RkIyMDIyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3Mu
bWVzc2FnZXMuaW4gKi8sCkBAIC05ODMxLDYgKzk4NjgsMTUgQEAKIAkJCQkxQTA0M0I1QzEyNEQ1
RTlEMDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQkxQThF
RkE2RTEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAogCQkJCTFBOEVGQTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VzLmgg
Ki8sCisJCQkJQ0RENTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzQyNDBEREUwNzAwRjdC
OEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCUNERDUz
NTczMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc5MjQw
RERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaCAqLywKKwkJCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTcyMjQwRERFMDYw
MEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0RE
NTM1NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNS
ZXBsaWVzLmggKi8sCiAJCQkJQ0RBQzIwRjIyM0ZDMzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETUZh
Y3RvcnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RBQzIwRjMyM0ZDMzgzQTAw
MjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBQzIw
RUUyM0ZDMzgzOTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzUmVwbGll
cy5oICovLApAQCAtMTA1MzQsNiArMTA1ODAsNyBAQAogCQkJCUJDMDZGNDRBMTJEQkQxRjUwMDJE
NzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzA2RjQzQTEyREJDQ0ZCMDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREE5NDRBNDE4ODRFNEYw
MDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREJCNDlGMDI0
MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyREEwNDlCODE4MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDMENFNzJBRDEyNDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVz
c2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDNzVBMUIxQjMzNjgyNzAwNTY3NDVCIC8qIEhh
bmdEZXRlY3Rpb25EaXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDc1Miw2ICsxMDc5OSw3
IEBACiAJCQkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjEyMjlDRDIzRkYyNUYyMDA4Q0E3
NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTlCNUJFQzJBMjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHku
aCBpbiBIZWFkZXJzICovLAorCQkJCUNEQkI0OUZEMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDNzIz
RkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBD
NTIzRkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RBQzIwQ0QyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnkuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZTVjZWM4ZWExYjY4
N2Q1YmRkNzE3ZGNkYzMzMWM0NjFhZGQ1NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKQEAgLTAsMCAr
MSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVBdWRpb1Nlc3Npb24uaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJHUFVQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCitVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPiBSZW1vdGVBdWRpb1Nlc3Np
b246OmNyZWF0ZShXZWJQcm9jZXNzJiBwcm9jZXNzKQoreworICAgIFJlbW90ZUF1ZGlvU2Vzc2lv
bkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKKyAgICBwcm9jZXNzLmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpFbnN1cmVBdWRpb1Nlc3Npb24oKSwgTWVzc2FnZXM6OkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OkVuc3VyZUF1ZGlvU2Vzc2lvbjo6UmVwbHkoY29uZmlndXJhdGlv
biksIHsgfSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPihw
cm9jZXNzLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9u
OjpSZW1vdGVBdWRpb1Nlc3Npb24oV2ViUHJvY2VzcyYgcHJvY2VzcywgUmVtb3RlQXVkaW9TZXNz
aW9uQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgOiBtX3Byb2Nlc3MocHJvY2Vz
cykKKyAgICAsIG1fY29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKQoreworfQor
CitSZW1vdGVBdWRpb1Nlc3Npb246On5SZW1vdGVBdWRpb1Nlc3Npb24oKSA9IGRlZmF1bHQ7CisK
K0lQQzo6Q29ubmVjdGlvbiYgUmVtb3RlQXVkaW9TZXNzaW9uOjpjb25uZWN0aW9uKCkKK3sKKyAg
ICByZXR1cm4gbV9wcm9jZXNzLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlU
eXBlIHR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7CisgICAgY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpTZXRDYXRlZ29yeSh0eXBl
LCBwb2xpY3kpLCB7IH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVy
cmVkQnVmZmVyU2l6ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6
ZSksIHsgfSk7Cit9CisKK2Jvb2wgUmVtb3RlQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUlu
dGVybmFsKGJvb2wgYWN0aXZlKQoreworICAgIGJvb2wgc3VjY2VlZGVkOworICAgIGNvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRyeVRvU2V0
QWN0aXZlKGFjdGl2ZSksIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6VHJ5VG9T
ZXRBY3RpdmU6OlJlcGx5KHN1Y2NlZWRlZCksIHsgfSk7CisgICAgcmV0dXJuIHN1Y2NlZWRlZDsK
K30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKFJlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQoreworICAgIGJvb2wg
bXV0ZWRTdGF0ZUNoYW5nZWQgPSBjb25maWd1cmF0aW9uLmlzTXV0ZWQgIT0gbV9jb25maWd1cmF0
aW9uLmlzTXV0ZWQ7CisKKyAgICBtX2NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOworCisg
ICAgaWYgKG11dGVkU3RhdGVDaGFuZ2VkKQorICAgICAgICBoYW5kbGVNdXRlZFN0YXRlQ2hhbmdl
KCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpiZWdpbkludGVycnVwdGlvbihQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQoreworICAgIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmJlZ2luSW50ZXJydXB0aW9uKHR5
cGUpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5kSW50ZXJydXB0aW9uKFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyBmbGFncykKK3sKKyAgICBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5lbmRJbnRlcnJ1cHRpb24o
ZmxhZ3MpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThmOGRj
ODIzZTNmMDEwN2MxOTNiZTk0OGJmN2ZiOTY4YmNlNzlmNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKQEAg
LTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZv
cm1NZWRpYVNlc3Npb24uaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247Citj
bGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb24gZmluYWwKKyAgICA6
IHB1YmxpYyBXZWJDb3JlOjpBdWRpb1Nlc3Npb24KKyAgICAsIElQQzo6TWVzc2FnZVJlY2VpdmVy
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgVW5p
cXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4gY3JlYXRlKFdlYlByb2Nlc3MmKTsKKyAgICB2aXJ0
dWFsIH5SZW1vdGVBdWRpb1Nlc3Npb24oKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgVW5pcXVl
UmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4gV1RGOjptYWtlVW5pcXVlUmVmV2l0aG91dEZhc3RNYWxs
b2NDaGVjazxSZW1vdGVBdWRpb1Nlc3Npb24+KFdlYlByb2Nlc3MmLCBSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uJiYpOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbihXZWJQcm9jZXNzJiwg
UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYmKTsKKyAgICBJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24oKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
KworICAgIC8vIE1lc3NhZ2VzCisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChSZW1vdGVB
dWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24o
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUpOworICAgIHZv
aWQgZW5kSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRl
cnJ1cHRpb25GbGFncyk7CisKKyAgICAvLyBBdWRpb1Nlc3Npb24KKyAgICB2b2lkIHNldENhdGVn
b3J5KENhdGVnb3J5VHlwZSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KSBmaW5hbDsKKyAg
ICB2b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KSBmaW5hbDsKKyAgICBib29sIHRy
eVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCkgZmluYWw7CisKKyAgICBDYXRlZ29yeVR5cGUgY2F0
ZWdvcnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uY2F0ZWdvcnk7IH0K
KyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnJvdXRlU2hhcmluZ1BvbGljeTsgfQor
ICAgIFN0cmluZyByb3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29u
ZmlndXJhdGlvbi5yb3V0aW5nQ29udGV4dFVJRDsgfQorICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uc2FtcGxlUmF0ZTsgfQorICAgIHNp
emVfdCBidWZmZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmJ1
ZmZlclNpemU7IH0KKyAgICBzaXplX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscygpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5udW1iZXJPZk91dHB1dENoYW5uZWxzOyB9Cisg
ICAgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nv
bmZpZ3VyYXRpb24ucHJlZmVycmVkQnVmZmVyU2l6ZTsgfQorICAgIGJvb2wgaXNNdXRlZCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5pc011dGVkOyB9CisgICAgYm9vbCBp
c0FjdGl2ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5pc0FjdGl2ZTsg
fQorCisgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbkNv
bmZpZ3VyYXRpb24gbV9jb25maWd1cmF0aW9uOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg5NjI4ZjY1N2VmN2NkYmNkYmE3
NzlkNDFkYjk5YmNhNWQ0NGIxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAg
KzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVE
SU9fU0VTU0lPTikKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9TZXNzaW9uIE5vdFJlZkNvdW50
ZWQgeworICAgIENvbmZpZ3VyYXRpb25DaGFuZ2VkKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKKyAgICBCZWdpbkludGVycnVwdGlv
bihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlv
blR5cGUgdHlwZSkKKyAgICBFbmRJbnRlcnJ1cHRpb24oZW51bTp1aW50OF90IFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyBmbGFncykKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJl
NmM0MzYyZWQ5NWFhNmM1MDFjZDBhNmEyMDNkMmI1ZWE3MWYwYjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbkNv
bmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitz
dHJ1Y3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiB7CisKKyAgICBXZWJDb3JlOjpB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeTsKKyAgICBXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5OworICAgIFN0cmluZyByb3V0aW5nQ29udGV4
dFVJRDsKKyAgICBmbG9hdCBzYW1wbGVSYXRlOworICAgIHVpbnQ2NF90IGJ1ZmZlclNpemU7Cisg
ICAgdWludDY0X3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKKyAgICB1aW50NjRfdCBwcmVmZXJy
ZWRCdWZmZXJTaXplOworICAgIGJvb2wgaXNNdXRlZDsKKyAgICBib29sIGlzQWN0aXZlOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjYXRlZ29yeTsKKyAgICAgICAg
ZW5jb2RlciA8PCByb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgICAgIGVuY29kZXIgPDwgcm91dGlu
Z0NvbnRleHRVSUQ7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlUmF0ZTsKKyAgICAgICAgZW5j
b2RlciA8PCBidWZmZXJTaXplOworICAgICAgICBlbmNvZGVyIDw8IG51bWJlck9mT3V0cHV0Q2hh
bm5lbHM7CisgICAgICAgIGVuY29kZXIgPDwgcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAg
ZW5jb2RlciA8PCBpc011dGVkOworICAgICAgICBlbmNvZGVyIDw8IGlzQWN0aXZlOworICAgIH0K
KworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBPcHRpb25hbDxSZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
PiBjYXRlZ29yeTsKKyAgICAgICAgZGVjb2RlciA+PiBjYXRlZ29yeTsKKyAgICAgICAgaWYgKCFj
YXRlZ29yeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0
aW9uYWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiByb3V0ZVNoYXJpbmdQb2xpY3k7Cisg
ICAgICAgIGRlY29kZXIgPj4gcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBpZiAoIXJvdXRl
U2hhcmluZ1BvbGljeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8U3RyaW5nPiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgZGVjb2RlciA+
PiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgaWYgKCFyb3V0aW5nQ29udGV4dFVJRCkKKyAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+
IHNhbXBsZVJhdGU7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxlUmF0ZTsKKyAgICAgICAgaWYg
KCFzYW1wbGVSYXRlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBPcHRpb25hbDx1aW50NjRfdD4gYnVmZmVyU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBidWZm
ZXJTaXplOworICAgICAgICBpZiAoIWJ1ZmZlclNpemUpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBudW1iZXJPZk91dHB1dENo
YW5uZWxzOworICAgICAgICBkZWNvZGVyID4+IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAg
ICAgIGlmICghbnVtYmVyT2ZPdXRwdXRDaGFubmVscykKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IHByZWZlcnJlZEJ1ZmZlclNp
emU7CisgICAgICAgIGRlY29kZXIgPj4gcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgaWYg
KCFwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgICAgICBPcHRpb25hbDxib29sPiBpc011dGVkOworICAgICAgICBkZWNvZGVyID4+IGlz
TXV0ZWQ7CisgICAgICAgIGlmICghaXNNdXRlZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNBY3RpdmU7CisgICAgICAgIGRlY29k
ZXIgPj4gaXNBY3RpdmU7CisgICAgICAgIGlmICghaXNBY3RpdmUpCisgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAgICAgICAgV1RGTW92
ZSgqY2F0ZWdvcnkpLAorICAgICAgICAgICAgV1RGTW92ZSgqcm91dGVTaGFyaW5nUG9saWN5KSwK
KyAgICAgICAgICAgIFdURk1vdmUoKnJvdXRpbmdDb250ZXh0VUlEKSwKKyAgICAgICAgICAgICpz
YW1wbGVSYXRlLAorICAgICAgICAgICAgKmJ1ZmZlclNpemUsCisgICAgICAgICAgICAqbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywKKyAgICAgICAgICAgICpwcmVmZXJyZWRCdWZmZXJTaXplLAorICAg
ICAgICAgICAgKmlzTXV0ZWQsCisgICAgICAgICAgICAqaXNBY3RpdmUsCisgICAgICAgIH19Owor
ICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25J
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTQ4MGM2OTRlMmIzZDk3YjU5NmUy
YTA3MzAzZDY3ZmIwZjk5YmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgKQEAgLTAsMCAr
MSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbW90ZUF1ZGlvU2Vzc2lvbklk
ZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIgPSBP
YmplY3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXJUeXBlPjsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKaW5kZXggNWQ3YThiOGQx
MTI0YjJhNTI4YWQ3M2JkYzk2ZDlhOTc4MGRjMjA0Yy4uMDJlNmIyOTljOTdjODJkYTdhZThlZGQ1
ZmRhMTI3ZGQ2MjU0YTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1
ZGUgIlJlbW90ZUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9uLmg+CkBAIC0zNiwyMiArMzcsMjQgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBXZWJNZWRpYVN0
cmF0ZWd5Ojp+V2ViTWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsKIAogI2lmIEVOQUJMRShXRUJf
QVVESU8pCi1zdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVk
aWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJh
Y2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCitzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5h
dGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNl
SWQsCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKICAgICBpZiAobV91c2VHUFVQcm9jZXNzKQogICAgICAgICByZXR1cm4gUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJl
ck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CiAj
ZW5kaWYKLSAgICByZXR1cm4gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxi
YWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworICAgIHJldHVybiBNZWRpYVN0cmF0ZWd5OjpjcmVhdGVB
dWRpb0Rlc3RpbmF0aW9uKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogfQogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotdm9pZCBXZWJNZWRpYVN0cmF0ZWd5OjpyZWdp
c3RlckNETUZhY3RvcmllcyhWZWN0b3I8V2ViQ29yZTo6Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMp
Cit2b2lkIFdlYk1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1G
YWN0b3J5Kj4mIGZhY3RvcmllcykKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYg
KG1fdXNlR1BVUHJvY2VzcykgewpAQCAtNTksNyArNjIsMTggQEAgdm9pZCBXZWJNZWRpYVN0cmF0
ZWd5OjpyZWdpc3RlckNETUZhY3RvcmllcyhWZWN0b3I8V2ViQ29yZTo6Q0RNRmFjdG9yeSo+JiBm
YWN0b3IKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgotICAgIFdlYkNvcmU6OkNETUZh
Y3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoZmFjdG9yaWVzKTsKKyAgICBNZWRpYVN0
cmF0ZWd5OjpyZWdpc3RlckNETUZhY3RvcmllcyhmYWN0b3JpZXMpOworfQorI2VuZGlmCisKKyNp
ZiBVU0UoQVVESU9fU0VTU0lPTikKK1VuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+IFdlYk1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
ICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpCisgICAgICAgIHJldHVybiBSZW1vdGVBdWRpb1Nlc3Np
b246OmNyZWF0ZShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKSk7CisjZW5kaWYKKyAgICByZXR1cm4g
TWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9TZXNzaW9uKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3ku
aAppbmRleCA0ZmFiMGU5NDRmYzE0ZTY4NDM3OWUzMDA4MTYzYmUxNjJkZDg5YjRkLi40YzVjZDdj
MzUwOGQ2ZGJmOWI0ZmYwYmFiMGRiNTJmNzg0ZTYzMzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApAQCAtNDYsNiAr
NDYsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxX
ZWJDb3JlOjpDRE1GYWN0b3J5Kj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgVW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbj4gY3JlYXRlQXVk
aW9TZXNzaW9uKCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
ICAgICBib29sIG1fdXNlR1BVUHJvY2VzcyB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQppbmRleCBiOTA5ZWNjNDM5YmNkM2M2ZjZkYTgwNDFjNmVmMjkzZmYz
NDY2OTZmLi42YjQ3M2NlOTNhYjhlZWM5MWQ5M2I3MDg3MDQzZWJhNzgzNWYxNmQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC02NSwyNiArNjUsOSBAQCBQYXN0ZWJvYXJkU3Ry
YXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkK
ICAgICByZXR1cm4gdGhpczsKIH0KIAotY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1
YmxpYyBNZWRpYVN0cmF0ZWd5IHsKLXByaXZhdGU6Ci0jaWYgRU5BQkxFKFdFQl9BVURJTykKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
Ci0gICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNl
SWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxl
UmF0ZSk7Ci0gICAgfQotI2VuZGlmCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2
b2lkIHJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5Kj4mIGZhY3Rvcmllcykg
b3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpDRE1GYWN0b3J5OjpwbGF0
Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKGZhY3Rvcmllcyk7Ci0gICAgfQotI2VuZGlmCi19OwotCiBN
ZWRpYVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3ko
KQogewotICAgIHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKKyAgICByZXR1cm4gbmV3IE1l
ZGlhU3RyYXRlZ3k7CiB9CiAKIGNsYXNzIFdlYkJsb2JSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBC
bG9iUmVnaXN0cnkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392461</attachid>
            <date>2020-03-04 13:16:02 -0800</date>
            <delta_ts>2020-03-04 13:38:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200304131601.patch</filename>
            <type>text/plain</type>
            <size>104356</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkODA0MjkxNDkyNWFlNWJmYTc5ZWZj
ZmUxYTMwZDc5YjU1Yjg3NjEuLjcxNWExOGJmMDQzMDAxYjE3ZjUyODUyMzQ4OGUyNmYwOGIxNWU1
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBV
bmlxdWVSZWYgdG8gdGhlIGxpc3Qgb2YgZm9yd2FyZC1kZWNsYXJlZCB0ZW1wbGF0ZSB0eXBlcy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisKIDIwMjAtMDMtMDMgIEppdGVuIE1laHRhICA8
am1laHRhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBIVFRQIEFsdGVybmF0aXZlIFNlcnZp
Y2VzIFN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTFkOTE0MmI0MWVkYzIwNDViMDFkNzE4YzYzZjE0
MTBhNmM0MjNhLi4xZGI3MGE2NmUxYmRhOThiYTJkNTU3ZGFmNGYxNDg3M2UyODY1ZGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
biBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5IHdoaWNoIHByb3ZpZGVzIGRlZmF1bHQg
aW1wbGVtZW50YXRpb25zIG9mIHRoZQorICAgICAgICBwbGF0Zm9ybSBjcmVhdGlvbiBtZXRob2Rz
LCBzbyB0aGV5IGRvbid0IG5lZWQgdG8gYmUgcmUtaW1wbGVtZW50ZWQgYnkgZWFjaCBjbGllbnQg
dW5sZXNzCisgICAgICAgIHRoYXQgY2xpZW50IG5lZWRzIHRvIG92ZXJyaWRlIHRoYXQgYmVoYXZp
b3IuCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUgZW51bWVyYXRpb25zIGlu
c2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1ZGlvU2Vzc2lvbiBtZXRo
b2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGNhc2Ugd2hlcmUg
dGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0
ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb24uaDoKKwogMjAyMC0wMi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUF0gSW1wbGVtZW50IE1vZGVybiBFTUUgQVBJIGluIHRoZSBHUFUgUHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA0NTBlN2UzNTJmM2VhYjhmMzU2MGUxNjViNzNhYmU5M2MwODQ2OTA4
Li5lMjEzNWE3ZjM1YmY0Yjg0MzQxNzVjYmU4MWQ3YTdmMTE1YTM2NjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDk1IEBACisyMDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdWJjbGFzcyBv
ZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBhdWRpbyBiZWhh
dmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAgICAgYXVkaW8g
YmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJvY2Vzcywgc2lu
Y2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFsbHkKKyAgICAg
ICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAgICAgICAgRHVl
IHRvIHRoZSB3YXkgQXVkaW9TZXNzaW9uIG5vdyByZXF1aXJlcyB0aGUgUGxhdGZvcm1TdHJhdGVn
aWVzIG9iamVjdCB0byBjcmVhdGUgYSBjb25jcmV0ZSBBdWRpb1Nlc3Npb24sIHRoZSBHUFUKKyAg
ICAgICAgcHJvY2VzcyBuZWVkcyBpdHMgb3duIFBsYXRmb3JtU3RyYXRlZ2llcyBzdWJjbGFzcywg
YnV0IHVzaW5nIHRoZSBkZWZhdWx0IE1lZGlhU3RyYXRlZ3kgZnJvbSBXZWJDb3JlLgorCisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKToKKyAg
ICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVB
dWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpsZWdhY3lDZG1GYWN0b3J5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZUxvYWRlclN0cmF0ZWd5KToKKyAgICAgICAgKFdlYktpdDo6R1BV
UGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3kpOgorICAgICAgICAo
V2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorICAg
ICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Ojppbml0aWFsaXplR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmF1
ZGlvU2Vzc2lvbk1hbmFnZXIgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Ojpwcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6ZW5kSW50ZXJydXB0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbik6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnJvdXRl
U2hhcmluZ1BvbGljeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjpwcmVmZXJyZWRCdWZmZXJTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmdldFByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRDYXRlZ29yeUZvclByb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNl
dFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2Vzc2lv
biBjb25zdCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uOjpSZW1vdGVBdWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb246OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
OjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmg6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmg6CisKIDIwMjAtMDItMjMgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIEltcGxlbWVudCBNb2Rlcm4gRU1FIEFQ
SSBpbiB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4ODZk
ZGVhNWY2ZjAzMmU5YTg4MjZlZjFkYjYwMDc0YmI2OTc3MGQyLi45OTlkYmRiNzlkNzhmZTM2YzJi
YTY0ODUwYzk1YzQyM2UwNGU4MDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUgZGVmYXVsdCBN
ZWRpYVN0cmF0ZWd5IGZyb20gV2ViQ29yZSBub3cgdGhhdCBpdCdzIGF2YWlsYWJsZS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisKIDIwMjAtMDMt
MDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEl0ZW1zIGluIHRoZSB0b29sYmFyIHRha2UgdXAgdG8gbXVjaCB2ZXJ0aWNhbCBzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYv
Rm9yd2FyZC5oCmluZGV4IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThmNzAzYThmMGQu
LjZlOTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAg
LTY4LDYgKzY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBEdW1iUHRyVHJh
aXRzPFQ+PiBjbGFzcyBSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IER1bWJQ
dHJUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJp
bmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBjbGFzcyBTdHJp
bmdUeXBlQWRhcHRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1ZVJlZjsKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBz
dHJ1Y3QgRGVmYXVsdEhhc2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEyNSw2ICsxMjYs
NyBAQCB1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3NpdGlvbjsKIHVz
aW5nIFdURjo6VGV4dFN0cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RGOjpVbmlxdWVS
ZWY7CiB1c2luZyBXVEY6OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCBhNzIxZmJiMWFkOGE1YWE2YmRhMDliNjNiM2EyYTlkOTk3YzkxMTJmLi4wMDZlMzhh
YjY5MGE1Njg1Njk4ZDc3M2QzOGViZDRlZTEyMmNhM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc0
MCw2ICsxNzQwLDcgQEAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKIHBsYXRmb3JtL0xvd1Bvd2VyTW9k
ZU5vdGlmaWVyLmNwcAogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKIHBsYXRmb3JtL01h
aW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKK3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCiBwbGF0
Zm9ybS9Ob3RJbXBsZW1lbnRlZC5jcHAKIHBsYXRmb3JtL1Bhc3RlYm9hcmQuY3BwCiBwbGF0Zm9y
bS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZjAyM2ViZDRlZGRiZjY5MzQwNTcyMzY5
N2FkZTliZjUzOTY4NTg5Li5kZGFmNzFkM2NmNGZhZmM2YjRhNzUyOTM5NDA5YzYxZDQxODZkYWU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzk4Nyw2ICsxMzk4Nyw3IEBACiAJCUNEQUU4QzA4MTc0NkI5NTcwMDUzMkQ3OCAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVh
bWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDRE1GYWlyUGxheVN0cmVhbWluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREI3MDQ1OTFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBs
YXlTdHJlYW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0My
OTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmF0ZWd5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNEMjgxRkU4NUNCODAwMTJD
NTQ1IC8qIFZpZGVvQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlk
ZW9Db25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNE
MjkxRkU4NUNCOTAwMTJDNTQ1IC8qIE1lZGlhQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RCRDNEMkExRkU4NUNCQTAwMTJDNTQ1IC8qIE1lZGlhRW5jb2RpbmdDb25maWd1
cmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUVuY29kaW5nQ29uZmlndXJh
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTk2Myw2ICsyNTk2NCw3
IEBACiAJCQkJQ0RGMkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAq
LywKIAkJCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLywKIAkJ
CQlBMTdEMjc1RDFFQUM1Nzk4MDBCRjAxRTcgLyogTWVkaWFTZWxlY3Rpb25PcHRpb24uaCAqLywK
KwkJCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0MyOTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8sCiAJ
CQkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCQlC
Qzc3MkM0QzBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJ
QkM3NzJDNEQwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdjMjRjZDA2
MDMxMzVlNGVjZjFmY2VlYTBkMTAwZjE3YmU1ZDgxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgorCisjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lv
bi5oIgorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJDRE1GYWN0b3J5
LmgiCisjaW5jbHVkZSAiTGVnYWN5Q0RNLmgiCisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKK1VuaXF1ZVJl
ZjxBdWRpb1Nlc3Npb24+IE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpCit7Cisg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJM
RShXRUJfQVVESU8pCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gTWVkaWFTdHJh
dGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KQoreworICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0
RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
c2FtcGxlUmF0ZSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCit2
b2lkIE1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5
Kj4mIGZhY3RvcmllcykKK3sKKyAgICByZXR1cm4gQ0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3RvcmllcyhmYWN0b3JpZXMpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU3RyYXRlZ3kuaAppbmRleCA2MGE1ODQ3YzhjZWMxMGI3OWI3NDlhNmZhZjg1MDNk
MTZhMTk5Yjk1Li5jZGM0ODVjZjQ0MDI3MDJjOWJhNTAxYTNiMGI0YmY2MjdkNDY4YmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCkBAIC0zMSwxNiArMzEsMjAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uOwogY2xhc3MgQXVk
aW9JT0NhbGxiYWNrOworY2xhc3MgQXVkaW9TZXNzaW9uOwogY2xhc3MgQ0RNRmFjdG9yeTsKIAog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CisjaWYgVVNFKEFV
RElPX1NFU1NJT04pCisgICAgdmlydHVhbCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBjcmVhdGVB
dWRpb1Nlc3Npb24oKTsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bigKLSAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKKyAgICAgICAgQXVkaW9JT0NhbGxiYWNr
JiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpOwogI2Vu
ZGlmCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+TWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4
IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNmMmY1N2QuLjQ2ZWM3M2RlYTgyNWNh
M2M2MjJiMTJlYmFmZTczMTNlNmZjMDM0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMjgsMTUgKzI4LDIyIEBACiAKICNpZiBVU0Uo
QVVESU9fU0VTU0lPTikKIAorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1VuaXF1
ZVJlZjxBdWRpb1Nlc3Npb24+IEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
bWFrZVVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+KCk7Cit9CisKIEF1ZGlvU2Vzc2lvbiYgQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXVk
aW9TZXNzaW9uPiBzZXNzaW9uOwotICAgIHJldHVybiBzZXNzaW9uOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPj4gc2Vzc2lvbiA9IHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkuY3JlYXRlQXVkaW9TZXNzaW9uKCk7CisgICAgcmV0
dXJuIHNlc3Npb24uZ2V0KCk7CiB9CiAKIGJvb2wgQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2
ZShib29sIGFjdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uLmgKaW5kZXggZTcwMDgyMmZmMWZlZWJkNzgyOWFlYzc1MGNjZTQwYTYwYjkyNTY2YS4uY2Zj
NDEzODYwMjVlN2E2NDhhYzJlM2I2M2I5NjVmYTQzZDU0M2QyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDQsMTMgKzQ1LDE3IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdCB7
CiAgICAgTG9uZ0Zvcm1WaWRlbwogfTsKIAotY2xhc3MgQXVkaW9TZXNzaW9uIGZpbmFsIHsKK2Ns
YXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9TZXNzaW9uKTsKKyAgICBmcmll
bmQgY2xhc3MgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj47CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxB
dWRpb1Nlc3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8QXVk
aW9TZXNzaW9uPigpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1Nl
c3Npb24mIHNoYXJlZFNlc3Npb24oKTsKKyAgICBzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lv
bj4gY3JlYXRlKCk7CisgICAgc3RhdGljIEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOwor
ICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgewor
ICAgIGVudW0gQ2F0ZWdvcnlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAg
IEFtYmllbnRTb3VuZCwKICAgICAgICAgU29sb0FtYmllbnRTb3VuZCwKQEAgLTU5LDIzICs2NCwy
MyBAQCBwdWJsaWM6CiAgICAgICAgIFBsYXlBbmRSZWNvcmQsCiAgICAgICAgIEF1ZGlvUHJvY2Vz
c2luZywKICAgICB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdv
cnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpOwotICAgIFdFQkNPUkVfRVhQT1JUIENhdGVnb3J5
VHlwZSBjYXRlZ29yeSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRl
Z29yeVR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdmlydHVhbCBDYXRlZ29yeVR5cGUg
Y2F0ZWdvcnkoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29y
eVR5cGUpOwogICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3Q7CiAKLSAg
ICBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7Ci0gICAgU3Ry
aW5nIHJvdXRpbmdDb250ZXh0VUlEKCkgY29uc3Q7CisgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQ
b2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgcm91
dGluZ0NvbnRleHRVSUQoKSBjb25zdDsKIAotICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsK
LSAgICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZk91dHB1
dENoYW5uZWxzKCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7
CisgICAgdmlydHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgc2l6
ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAogICAgIGJvb2wgdHJ5VG9TZXRB
Y3RpdmUoYm9vbCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVy
U2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwor
ICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xhc3MgTXV0
ZWRTdGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04NywxNyArOTIsMTYgQEAgcHVibGlj
OgogICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwog
ICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwog
Ci0gICAgYm9vbCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBoYW5kbGVNdXRlZFN0YXRlQ2hh
bmdlKCk7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBmcmllbmQg
Y2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRpb1Nlc3Npb24oKTsK
LSAgICB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwo
Ym9vbCk7CisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCk7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0ZT4gbV9wcml2YXRlOwogICAg
IEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAppbmRleCBh
OGQxOGJlNGVhYmFlOWVjODBmZjVkZWY0ZmI3YmNhOWRhNjU3MDdhLi4xMjhmYWRhZTBmZDk2N2Vm
YTBmZTljYzE0MTU3NDdkOTNmZWNjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb24oKTsKIAotICAgIGVudW0g
Y2xhc3MgTWVkaWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSA6IHVpbnQ4X3Qgewog
ICAgICAgICBOb25lID0gMCwKICAgICAgICAgVmlkZW8sCiAgICAgICAgIFZpZGVvQXVkaW8sCkBA
IC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5cGUgbWVkaWFUeXBlKCkgY29uc3Q7
CiAgICAgTWVkaWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBjb25zdDsKIAotICAgIGVudW0gU3Rh
dGUgeworICAgIGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAgICAgICAgSWRsZSwKICAgICAgICAg
QXV0b3BsYXlpbmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoK
ICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICB2b2lkIHNl
dFN0YXRlKFN0YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0aW9uVHlwZSB7CisgICAgZW51bSBJ
bnRlcnJ1cHRpb25UeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vSW50ZXJydXB0aW9uLAogICAg
ICAgICBTeXN0ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdCYWNrZ3JvdW5kLApAQCAtOTEsNyAr
OTEsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIGludGVycnVwdGlv
blR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlvblR5cGU7IH0KIAotICAgIGVudW0g
RW5kSW50ZXJydXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgOiB1
aW50OF90IHsKICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAgICAgIE1heVJlc3VtZVBsYXlpbmcg
PSAxIDw8IDAsCiAgICAgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGRv
dWJsZSBhc0RvdWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRBcmd1bWVudDsKIAotICAgIGVudW0g
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVtIFJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQsCiAgICAgICAgIFBsYXlDb21tYW5k
LAogICAgICAgICBQYXVzZUNvbW1hbmQsCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSwgY29uc3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBhcmd1bWVudCA9IG51bGxwdHIpOwog
ICAgIGJvb2wgc3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAKLSAgICBlbnVtIERpc3BsYXlUeXBl
IHsKKyAgICBlbnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vcm1hbCwKICAg
ICAgICAgRnVsbHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVkLApAQCAtMzExLDQgKzMxMSw2NCBA
QCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZT4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpN
ZWRpYVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlh
VHlwZTo6VmlkZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlw
ZTo6VmlkZW9BdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFU
eXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBl
OjpXZWJBdWRpbworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGUs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpJZGxlLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6QXV0b3BsYXlpbmcsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQbGF5aW5nLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2VkLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQKKyAgICA+OworfTsKKwordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Oklu
dGVycnVwdGlvblR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6Tm9JbnRlcnJ1cHRp
b24sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6
OlN5c3RlbVNsZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRpb25UeXBlOjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUludGVycnVwdGlvbiwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3VzcGVuZGVkVW5k
ZXJMb2NrLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25U
eXBlOjpJbnZpc2libGVBdXRvcGxheSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6SW50ZXJydXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZlLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQbGF5YmFja1N1c3BlbmRlZAorICAg
ID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50
ZXJydXB0aW9uRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZElu
dGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1lUGxheWluZworICAgID47Cit9Owor
Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3Rl
Q29udHJvbENvbW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGxheUNvbW1hbmQsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGF1
c2VDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250
cm9sQ29tbWFuZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRvZ2dsZVBsYXlQYXVzZUNvbW1hbmQs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZTo6QmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OkVuZFNlZWtpbmdCYWNrd2Fy
ZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6RW5kU2Vla2lu
Z0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1v
dGVDb250cm9sQ29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNrUG9zaXRpb25Db21tYW5kCisgICAg
PjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggZDZjMDA3ZjQwYjVmYjc2
MzcyMmQ1MzhhZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGExZDBhYTYzODljM2RmODkzNjcxMGEz
NTg5YTQ0NTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9p
b3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQzLDE1IEBAIHZvaWQgQXVkaW9TZXNz
aW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZmZXJTaXplKQogICAgIEFTU0VS
VCghZXJyb3IpOwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6aXNNdXRlZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6aGFuZGxlTXV0ZWRTdGF0
ZUNoYW5nZSgpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKSAmJiBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IDlmOTQ2Zjg0OTdhZjIzYjRhZmE1MWI3OTE4NDE4NTE4ODYwYWM1
YjkuLmQ3NDliMmRiMDliOTY3NDZmNGEwZjFlMzRjMjE3NDJlZGY1M2U0NmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE4LDYgKzE4LDgg
QEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldl
YktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1G
YWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAt
MTE2LDYgKzExOCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYTk2YzJjZmRkZDQ2YjM1OTIzOGU5NjIzNDNhOTkyMjEw
NGVlYTU5Yi4uOTk1MDM1MTJiYTU1OGIyYjQxMDA4ZjViMTY2NTA0NjBhOTU0MTQ1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzcs
NiArMTM3LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVBy
b3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCA0NWVlM2RiN2VkN2UxMzM3MmM4YTc1YWQ1NTVhMTY1ODdmNjdkMDhh
Li4xYzNkMWEyMGVlYTNiNzM4MDAxMDJlMWQzMTk4Mzc5MDNhYTZjZDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0xNDgsNiArMTQ4LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAgICAgUGx1Z2luUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwK
ICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAorICAgIFJlbW90ZUF1ZGlvU2Vzc2lv
biBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCmluZGV4IDZjZjFjMzBiM2UzMzAxMjc3NDY2ZDkyZWUyOTMzMjQ2MDdlNTljYzEuLjI0
OTgxZmZmNTI4ODNjNzAyMTc4NTg3OWJlMThmMWI2OTRmOWJiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTcxLDYgKzcxLDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oIgogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorI2lu
Y2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
ZXNzYWdlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xMTksNiArMTI0LDEwIEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKIAogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworICAgIGlmIChtX2F1ZGlvU2Vz
c2lvblByb3h5KSB7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2VyKCku
cmVtb3ZlUHJveHkod2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIG1fYXVkaW9TZXNz
aW9uUHJveHkgPSBudWxscHRyOworICAgIH0KIH0KIAogTG9nZ2VyJiBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpsb2dnZXIoKQpAQCAtMjE3LDYgKzIyNiwxNyBAQCBSZW1vdGVDRE1GYWN0b3J5
UHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNkbUZhY3RvcnlQcm94eSgpCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCitS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9T
ZXNzaW9uUHJveHkoKQoreworICAgIGlmICghbV9hdWRpb1Nlc3Npb25Qcm94eSkgeworICAgICAg
ICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNyZWF0ZSgq
dGhpcykubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Np
b25NYW5hZ2VyKCkuYWRkUHJveHkobWFrZVdlYWtQdHIobV9hdWRpb1Nlc3Npb25Qcm94eS5nZXQo
KSkpOworICAgIH0KKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uUHJveHk7Cit9CisjZW5kaWYK
Kwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5k
KFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQog
ewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNYXAu
ZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0yMzEsNiArMjUx
LDEzIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVsZWFzZVJlbmRlcmluZ0Jh
Y2tlbmQoUmVuZGVyaW5nQmFja2VuZElkZW50aWZpCiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwg
Zm91bmQpOwogfQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lP
TikKK3ZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlQXVkaW9TZXNzaW9uKEVu
c3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24mJiBjb21wbGV0aW9uKQoreworICAgIGNvbXBsZXRp
b24oYXVkaW9TZXNzaW9uUHJveHkoKS5jb25maWd1cmF0aW9uKCkpOworfQorI2VuZGlmCisKIGJv
b2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMzA4LDYgKzMzNSwxMiBA
QCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAj
ZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBhdWRpb1Nl
c3Npb25Qcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiBtZXNzYWdlUmVj
ZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CkBAIC0z
NTUsNiArMzg4LDEyIEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KICNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Cisg
ICAgICAgIGF1ZGlvU2Vzc2lvblByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyNlbmRpZgogCiAgICAgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoU3luY01l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4
IGEzZWNhNWM4ZmFkNjkxODM4MGZkOTMzYmY2MzBkZDRjZmY3MzBkOTYuLjMwNzkwNmZhMjA1MDY4
MzhhNTQ1M2MxNzk5Nzc1ZDdmMzJmYjViYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKKyNpbmNsdWRl
ICJSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CkBAIC00OCwxMiArNDks
MTUgQEAgY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5OwogY2xh
c3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7CiBjbGFzcyBSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eTsKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKIGNsYXNzIFJlbW90ZUNE
TUZhY3RvcnlQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xh
c3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcjsKIGNsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiBj
bGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Oworc3RydWN0IFJlbW90ZUF1ZGlvU2Vz
c2lvbkNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKICAg
ICA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+CkBAIC05MCwx
MSArOTQsMTUgQEAgcHVibGljOgogICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgY2RtRmFjdG9y
eVByb3h5KCk7CiAjZW5kaWYKIAorICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBy
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
JiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmll
ciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciYgcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIoKTsKLSAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkoKTsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykK
ICAgICBMaWJXZWJSVENDb2RlY3NQcm94eSYgbGliV2ViUlRDQ29kZWNzUHJveHkoKTsKICNlbmRp
ZgpAQCAtMTA2LDggKzExNCwxNyBAQCBwcml2YXRlOgogICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKTsKICNl
bmRpZgogI2VuZGlmCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5JiBhdWRpb1Nlc3Npb25Qcm94eSgpOwor
I2VuZGlmCisKICAgICB2b2lkIGNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVsZWFzZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgdXNpbmcgRW5zdXJlQXVkaW9TZXNzaW9uQ29tcGxldGlvbiA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYp
PjsKKyAgICB2b2lkIGVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1cmVBdWRpb1Nlc3Npb25Db21wbGV0
aW9uJiYpOworI2VuZGlmCiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZv
aWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgZmluYWw7CkBAIC0xNDcsNiArMTY0LDkgQEAg
cHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHN0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVDRE1GYWN0b3J5UHJveHk+IG1fY2RtRmFjdG9yeVByb3h5OwogI2VuZGlmCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IG1fYXVkaW9TZXNzaW9uUHJveHk7CisjZW5k
aWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgppbmRleCA5MzJjMDEyMmRlMDgxZWRlOWJiOWVmYjU2ZjliYzUyNTliYTRkNzA0Li40ZmQwZjIy
MzA3ZTgzODgzNmQ0NzRiYWIzZTAyNzVhMzVjMDc1MGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgpAQCAtMjUsNiArMjUsNyBAQAogbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyBXYW50c0Rpc3BhdGNoTWVzc2FnZSB7CiAgICAgdm9pZCBDcmVhdGVSZW5kZXJpbmdC
YWNrZW5kKFdlYktpdDo6UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIpCiAgICAgdm9pZCBSZWxlYXNlUmVuZGVyaW5nQmFja2VuZChXZWJLaXQ6OlJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQorICAg
IEVuc3VyZUF1ZGlvU2Vzc2lvbigpIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pIFN5bmNocm9ub3VzCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2NWQzZTRhNjI4YzliMzMxNWYy
ZGYzYjZhY2VkNzk2NmRhYTFkZTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMCwwICsxLDcwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVVBsYXRmb3JtU3RyYXRl
Z2llcy5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb0Rlc3RpbmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9MZWdhY3lDRE0uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyYXRl
Z3kuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
Cit2b2lkIEdQVVBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEdQVVBsYXRmb3JtU3RyYXRlZ2llcz4gcGxhdGZvcm1TdHJhdGVnaWVz
OworICAgIHNldFBsYXRmb3JtU3RyYXRlZ2llcygmcGxhdGZvcm1TdHJhdGVnaWVzLmdldCgpKTsK
K30KKworR1BVUGxhdGZvcm1TdHJhdGVnaWVzOjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMoKSA9IGRl
ZmF1bHQ7CisKK0xvYWRlclN0cmF0ZWd5KiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUxv
YWRlclN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUGFzdGVib2FyZFN0
cmF0ZWd5KiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgp
Cit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK01lZGlhU3RyYXRlZ3kqIEdQVVBsYXRmb3Jt
U3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG5ldyBNZWRp
YVN0cmF0ZWd5KCk7Cit9CisKK0Jsb2JSZWdpc3RyeSogR1BVUGxhdGZvcm1TdHJhdGVnaWVzOjpj
cmVhdGVCbG9iUmVnaXN0cnkoKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3Ry
YXRlZ2llcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2ll
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU3ZjkzOTdjZGIwY2M4YWQxMGI3YmZjOWNmMDA3MzYwOWFlNjMxYTkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUGxhdGZvcm1T
dHJhdGVnaWVzLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaD4KKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBMb2FkZXJTdHJhdGVneTsKK2NsYXNzIFBhc3RlYm9hcmRTdHJhdGVneTsKK2Ns
YXNzIE1lZGlhU3RyYXRlZ3k7CitjbGFzcyBCbG9iUmVnaXN0cnk7Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMgOiBwdWJsaWMgV2ViQ29yZTo6
UGxhdGZvcm1TdHJhdGVnaWVzIHsKKyAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8R1BVUGxhdGZv
cm1TdHJhdGVnaWVzPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CisK
K3ByaXZhdGU6CisgICAgR1BVUGxhdGZvcm1TdHJhdGVnaWVzKCk7CisKKyAgICAvLyBXZWJDb3Jl
OjpQbGF0Zm9ybVN0cmF0ZWdpZXMKKyAgICBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRl
TG9hZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRl
Z3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Ok1l
ZGlhU3RyYXRlZ3kqIGNyZWF0ZU1lZGlhU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3Jl
OjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOworfTsKKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAppbmRleCAwZTdi
ZDA5YmVhNWQxMjNhNDA3ZWNmYjlkMzlmNzI0MGY1YjNjN2I5Li42MDM3MDA1OWNkMTQ5NTUzNmVm
NDVjZjQ5NjQ1MmRkNDFlMjRlNDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc01lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNp
bmNsdWRlICJHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiR1BVUHJv
Y2Vzc1Nlc3Npb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNTEsNiAr
NTIsMTAgQEAKICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
QXRvbVN0cmluZy5oPgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VT
U0lPTikKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIKKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0x
MTAsNiArMTE1LDggQEAgdm9pZCBHUFVQcm9jZXNzOjppbml0aWFsaXplR1BVUHJvY2VzcyhHUFVQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBXVEY6OlRocmVhZDo6
c2V0Q3VycmVudFRocmVhZElzVXNlckluaXRpYXRlZCgpOwogICAgIEF0b21TdHJpbmc6OmluaXQo
KTsKIAorICAgIEdQVVBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpOworCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFNob3Vs
ZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOwogI2VuZGlmCkBAIC0yMTIsNiArMjE5
LDE1IEBAIGNvbnN0IFN0cmluZyYgR1BVUHJvY2Vzczo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9y
eShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGNvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXImIEdQVVByb2Nlc3M6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKSBjb25zdAoreworICAg
IGlmICghbV9hdWRpb1Nlc3Npb25NYW5hZ2VyKQorICAgICAgICBtX2F1ZGlvU2Vzc2lvbk1hbmFn
ZXIgPSBXVEY6Om1ha2VVbmlxdWU8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyPigpOwor
ICAgIHJldHVybiAqbV9hdWRpb1Nlc3Npb25NYW5hZ2VyOworfQorI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKaW5kZXggNmZhMDIwMTRiOTQ3ODFlYTk5ZTAzNWRiM2Fk
NzlkNjVhMjRmMjg3Yi4uNDNhYWUxYTEyYjViODg1YjI2YzU2ZGRmMTUyOTYwZjAyMjdjNTIwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCkBAIC00MCw2ICs0MCw3IEBAIGNs
YXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiBzdHJ1Y3QgR1BVUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczsKIHN0cnVjdCBHUFVQcm9jZXNzU2Vzc2lvblBhcmFtZXRlcnM7CiBjbGFzcyBM
YXllckhvc3RpbmdDb250ZXh0OworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
OwogCiBjbGFzcyBHUFVQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3MsIHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxHUFVQcm9jZXNzPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEdQ
VVByb2Nlc3M+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHUFVQcm9jZXNzKTsKQEAgLTYz
LDYgKzY0LDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG1lZGlhS2V5c1N0b3JhZ2VE
aXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpIGNvbnN0OworI2VuZGlmCisKIHByaXZh
dGU6CiAgICAgdm9pZCBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsKTsKIApAQCAtMTAzLDYgKzEw
OCw5IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9zdGluZ0NvbnRleHQ+
IG1fY29udGV4dEZvclZpc2liaWxpdHlQcm9wYWdhdGlvbjsKICAgICBib29sIG1fY2FuU2hvd1do
aWxlTG9ja2VkIHsgZmFsc2UgfTsKICNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
VVNFKEFVRElPX1NFU1NJT04pCisgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyPiBtX2F1ZGlvU2Vzc2lvbk1hbmFnZXI7CisjZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTNlNDdmMGY2N2QwMzkxYjkxODc1YTg5Y2E1NGI2ZjliOThmNjYxYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eS5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nl
c3Npb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1VuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eT4gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBncHVDb25uZWN0aW9uKQoreworICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5PihncHVDb25uZWN0aW9uKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHk6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGdwdUNvbm5lY3Rpb24pCisgICAgOiBtX2dwdUNvbm5lY3Rpb24oZ3B1Q29ubmVjdGlvbikKK3sK
K30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6On5SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSgp
ID0gZGVmYXVsdDsKKworV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk6OnByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICByZXR1cm4gbV9ncHVDb25uZWN0
aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbmZpZ3VyYXRpb24oKQoreworICAg
IGF1dG8mIHNlc3Npb24gPSBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2Vzc2lvbigpOworICAgIHJl
dHVybiB7CisgICAgICAgIHNlc3Npb24uY2F0ZWdvcnkoKSwKKyAgICAgICAgc2Vzc2lvbi5yb3V0
ZVNoYXJpbmdQb2xpY3koKSwKKyAgICAgICAgc2Vzc2lvbi5yb3V0aW5nQ29udGV4dFVJRCgpLAor
ICAgICAgICBzZXNzaW9uLnNhbXBsZVJhdGUoKSwKKyAgICAgICAgc2Vzc2lvbi5idWZmZXJTaXpl
KCksCisgICAgICAgIHNlc3Npb24ubnVtYmVyT2ZPdXRwdXRDaGFubmVscygpLAorICAgICAgICBz
ZXNzaW9uLnByZWZlcnJlZEJ1ZmZlclNpemUoKSwKKyAgICAgICAgc2Vzc2lvbi5pc011dGVkKCks
CisgICAgICAgIG1fYWN0aXZlCisgICAgfTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eTo6c2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0
ZWdvcnksIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7CisgICAgbV9jYXRl
Z29yeSA9IGNhdGVnb3J5OworICAgIG1fcm91dGVTaGFyaW5nUG9saWN5ID0gcG9saWN5OworICAg
IGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXRDYXRlZ29yeUZvclByb2Nlc3MobV9ncHVDb25uZWN0
aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIHR5cGUsIHBvbGljeSk7Cit9CisKK3ZvaWQgUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUodWludDY0X3Qgc2l6
ZSkKK3sKKyAgICBtX3ByZWZlcnJlZEJ1ZmZlclNpemUgPSBzaXplOworICAgIGF1ZGlvU2Vzc2lv
bk1hbmFnZXIoKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2VzcyhtX2dwdUNvbm5lY3Rp
b24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlLCBTZXRBY3RpdmVDb21wbGV0
aW9uJiYgY29tcGxldGlvbikKK3sKKyAgICBtX2FjdGl2ZSA9IGF1ZGlvU2Vzc2lvbk1hbmFnZXIo
KS50cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVu
dGlmaWVyKCksIGFjdGl2ZSk7CisgICAgY29tcGxldGlvbihtX2FjdGl2ZSk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCit7CisgICAgY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6QmVnaW5JbnRlcnJ1cHRpb24o
dHlwZSksIHsgfSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmVuZEludGVy
cnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxh
Z3MgZmxhZ3MpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
U2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uKGZsYWdzKSwgeyB9KTsKK30KKworUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyJiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YXVkaW9TZXNzaW9u
TWFuYWdlcigpCit7CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi5ncHVQcm9jZXNzKCkuYXVk
aW9TZXNzaW9uTWFuYWdlcigpOworfQorCitJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gbV9ncHVDb25uZWN0aW9uLmNv
bm5lY3Rpb24oKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWNkMmM2YzM3YzE3OTY0ZTBiYzhkZmE3MjEzNjQ5OTIxZDg0OTNjMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eS5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRp
Zmllci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xh
c3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkK
KyAgICA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgICwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFsIH5S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSgpOworCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIgcHJvY2Vzc0lkZW50aWZpZXIoKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb24oKTsKKworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIGNhdGVnb3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsgfTsKKyAgICBXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QgeyByZXR1
cm4gbV9yb3V0ZVNoYXJpbmdQb2xpY3k7IH0KKyAgICBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZmVycmVkQnVmZmVyU2l6ZTsgfQorICAgIGJvb2wgaXNB
Y3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZTsgfQorCisgICAgdm9pZCBiZWdpbkludGVy
cnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSk7
CisgICAgdm9pZCBlbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OkVuZEludGVycnVwdGlvbkZsYWdzKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+
IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk+KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisKKyAgICAvLyBNZXNzYWdl
cworICAgIHZvaWQgc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdm9pZCBzZXRQcmVmZXJyZWRC
dWZmZXJTaXplKHVpbnQ2NF90KTsKKyAgICB1c2luZyBTZXRBY3RpdmVDb21wbGV0aW9uID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT47CisgICAgdm9pZCB0cnlUb1NldEFjdGl2ZShib29s
LCBTZXRBY3RpdmVDb21wbGV0aW9uJiYpOworCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCk7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCk7CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rp
b247CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeTsK
KyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgbV9yb3V0ZVNoYXJpbmdQb2xpY3k7Cisg
ICAgc2l6ZV90IG1fcHJlZmVycmVkQnVmZmVyU2l6ZSB7IDAgfTsKKyAgICBib29sIG1fYWN0aXZl
IHsgZmFsc2UgfTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdmM2JhZTgyNDNmYWE1NDU1MmJiZmYwNGQ5YTZlYjg1MmI2
MDYyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisK
K21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5IE5vdFJlZkNvdW50ZWQgeworICAg
IFNldENhdGVnb3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSB0eXBlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGlj
eSkKKyAgICBTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHVpbnQ2NF90IHByZWZlcnJlZEJ1ZmZlclNp
emUpCisgICAgVHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpIC0+IChib29sIHN1Y2VlZGVkKSBT
eW5jaHJvbm91cworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjE2YjRlZjIxMWYyYTM4MzA3MDU0YzUxMjYxYjcxNjFmYzdkMDhkYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KworI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgYm9v
bCBjYXRlZ29yeUNhbk1peFdpdGhPdGhlcnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0
ZWdvcnkpCit7CisgICAgcmV0dXJuIGNhdGVnb3J5ID09IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNv
dW5kOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlcigpCisgICAgOiBtX3Nlc3Npb24oQXVkaW9TZXNzaW9uOjpjcmVhdGUo
KSkKK3sKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp+UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyKCkgPSBkZWZhdWx0OworCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlcjo6YWRkUHJveHkoV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4m
JiBwcm94eSkKK3sKKyAgICBhdXRvIGlkID0gcHJveHktPnByb2Nlc3NJZGVudGlmaWVyKCk7Cisg
ICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3Byb3hpZXMuc2V0KGlk
LCBXVEZNb3ZlKHByb3h5KSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyOjpyZW1vdmVQcm94eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7CisgICAgQVNT
RVJUKG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIG1fcHJveGllcy5yZW1vdmUoaWQpOwor
fQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyOjpnZXRQcm94eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7CisgICAgYXV0byBy
ZXN1bHRzID0gbV9wcm94aWVzLmZpbmQoaWQpOworICAgIGlmIChyZXN1bHRzICE9IG1fcHJveGll
cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdHMtPnZhbHVlLmdldCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0
Q2F0ZWdvcnlGb3JQcm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7
CisgICAgQVNTRVJUKG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIGF1dG8gcHJveHkgPSBn
ZXRQcm94eShpZCk7CisgICAgaWYgKCFwcm94eSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KHByb3h5LT5jYXRlZ29yeSgpID09IGNhdGVnb3J5ICYmIHByb3h5LT5yb3V0ZVNoYXJpbmdQb2xp
Y3koKSA9PSBwb2xpY3kpCisgICAgICAgIHJldHVybjsKKworICAgIEhhc2hDb3VudGVkU2V0PEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXVEY6OkludEhhc2g8QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGU+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlPj4gY2F0ZWdvcnlDb3VudHM7CisgICAgSGFzaENvdW50ZWRTZXQ8Um91dGVTaGFyaW5n
UG9saWN5LCBXVEY6OkludEhhc2g8Um91dGVTaGFyaW5nUG9saWN5PiwgV1RGOjpTdHJvbmdFbnVt
SGFzaFRyYWl0czxSb3V0ZVNoYXJpbmdQb2xpY3k+PiBwb2xpY3lDb3VudHM7CisgICAgZm9yIChh
dXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAgICAgIGNhdGVnb3J5
Q291bnRzLmFkZChvdGhlclByb3h5LT5jYXRlZ29yeSgpKTsKKyAgICAgICAgcG9saWN5Q291bnRz
LmFkZChvdGhlclByb3h5LT5yb3V0ZVNoYXJpbmdQb2xpY3koKSk7CisgICAgfQorCisgICAgaWYg
KGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCkpCisg
ICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOworICAgIGVsc2Ug
aWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW8pKQor
ICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW87CisgICAgZWxzZSBp
ZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrKSkK
KyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7CisgICAgZWxz
ZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpTb2xvQW1iaWVudFNv
dW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQ7
CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpBbWJp
ZW50U291bmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5k
OworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6QXVk
aW9Qcm9jZXNzaW5nKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkF1ZGlvUHJv
Y2Vzc2luZzsKKyAgICBlbHNlCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpOb25l
OworCisgICAgaWYgKHBvbGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6Okxv
bmdGb3JtVmlkZW8pKQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdG
b3JtVmlkZW87CisgICAgZWxzZSBpZiAocG9saWN5Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmlu
Z1BvbGljeTo6TG9uZ0Zvcm1BdWRpbykpCisgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1Bv
bGljeTo6TG9uZ0Zvcm1BdWRpbzsKKyAgICBlbHNlIGlmIChwb2xpY3lDb3VudHMuY29udGFpbnMo
Um91dGVTaGFyaW5nUG9saWN5OjpJbmRlcGVuZGVudCkpCisgICAgICAgIHBvbGljeSA9IFJvdXRl
U2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQ7CisgICAgZWxzZQorICAgICAgICBwb2xpY3kgPSBS
b3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQ7CisKKyAgICBtX3Nlc3Npb24tPnNldENhdGVnb3J5
KGNhdGVnb3J5LCBwb2xpY3kpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlcjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50
aWZpZXImIGlkLCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSkKK3sKKyAgICBmb3IgKGF1dG8m
IG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclBy
b3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhlclByb3h5LT5wcmVm
ZXJyZWRCdWZmZXJTaXplKCkgPCBwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcHJl
ZmVycmVkQnVmZmVyU2l6ZSA9IG90aGVyUHJveHktPnByZWZlcnJlZEJ1ZmZlclNpemUoKTsKKyAg
ICB9CisKKyAgICBtX3Nlc3Npb24tPnNldFByZWZlcnJlZEJ1ZmZlclNpemUocHJlZmVycmVkQnVm
ZmVyU2l6ZSk7Cit9CisKK2Jvb2wgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlU
b1NldEFjdGl2ZUZvclByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlkLCBib29sIGFj
dGl2ZSkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7CisgICAgYXV0byBw
cm94eSA9IGdldFByb3h5KGlkKTsKKyAgICBpZiAoIXByb3h5KQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBzaXplX3QgYWN0aXZlUHJveHlDb3VudCB7IDAgfTsKKyAgICBmb3IgKGF1dG8m
IG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclBy
b3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhlclByb3h5LT5pc0Fj
dGl2ZSgpKQorICAgICAgICAgICAgKythY3RpdmVQcm94eUNvdW50OworICAgIH0KKworICAgIGlm
ICghYWN0aXZlICYmIGFjdGl2ZVByb3h5Q291bnQgPiAxKSB7CisgICAgICAgIC8vIFRoaXMgcHJv
eHkgd2FudHMgdG8gZGUtYWN0aXZhdGUsIGJ1dCBvdGhlciBwcm94aWVzIGFyZSBzdGlsbAorICAg
ICAgICAvLyBhY3RpdmUuIE5vLW9wLCBhbmQgcmV0dXJuIGRlYWN0aXZhdGlvbiB3YXMgc3VjZXNz
ZnVsLgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIWFjdGl2ZSkgewor
ICAgICAgICAvLyBUaGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBhbmQgaXMgdGhlIGxh
c3QgcmVtYWluaW5nIGFjdGl2ZQorICAgICAgICAvLyBwcm94eS4gRGVhY3RpdmF0ZSB0aGUgc2Vz
c2lvbiwgYW5kIHJldHVybiB3aGV0aGVyIHRoYXQgZGVhY3RpdmF0aW9uCisgICAgICAgIC8vIHdh
cyBzdWNlc3NmdWw7CisgICAgICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGZh
bHNlKTsKKyAgICB9CisKKyAgICBpZiAoYWN0aXZlICYmICFhY3RpdmVQcm94eUNvdW50KSB7Cisg
ICAgICAgIC8vIFRoaXMgcHJveHkgYW5kIG9ubHkgdGhpcyBwcm94eSB3YW50cyB0byBiZWNvbWUg
YWN0aXZlLiBBY3RpdmF0ZQorICAgICAgICAvLyB0aGUgc2Vzc2lvbiwgYW5kIHJldHVybiB3aGV0
aGVyIHRoYXQgYWN0aXZhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIG1fc2Vz
c2lvbi0+dHJ5VG9TZXRBY3RpdmUoYWN0aXZlKTsKKyAgICB9CisKKyAgICAvLyBJZiB0aGlzIHBy
b3h5IGlzIEFtYmllbnQsIGFuZCB0aGUgc2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZSwgdGhpcwor
ICAgIC8vIHByb3h5IHdpbGwgbWl4IHdpdGggdGhlIGFjdGl2ZSBwcm94aWVzLiBOby1vcCwgYW5k
IHJldHVybiBhY3RpdmF0aW9uCisgICAgLy8gd2FzIHN1Y2Vzc2Z1bC4KKyAgICBpZiAoY2F0ZWdv
cnlDYW5NaXhXaXRoT3RoZXJzKHByb3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIE90aGVyd2lzZSwgdGhpcyBw
cm94eSB3YW50cyB0byBiZWNvbWUgYWN0aXZlLCBidXQgdGhlcmUgYXJlIG90aGVyCisgICAgLy8g
cHJveGllcyB3aG8gYXJlIGFscmVhZHkgYWN0aXZlLiBXYWxrIG92ZXIgdGhlIHByb3hpZXMsIGFu
ZCBpbnRlcnJ1cHQKKyAgICAvLyB0aG9zZSBwcm94aWVzIHdob3NlIGNhdGVvZ3JpZXMgaW5kaWNh
dGUgdGhleSBjYW5ub3QgbWl4IHdpdGggb3RoZXJzLgorICAgIGZvciAoYXV0byYgb3RoZXJQcm94
eSA6IG1fcHJveGllcy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoIW90aGVyUHJveHkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5LT5pc0FjdGl2ZSgpKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGNhdGVnb3J5Q2FuTWl4V2l0aE90
aGVycyhvdGhlclByb3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgIG90aGVyUHJveHktPmJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpJbnRlcnJ1cHRpb25UeXBlOjpTeXN0ZW1JbnRlcnJ1cHRpb24pOworICAgIH0KKyNlbmRpZgor
CisgICAgcmV0dXJuIHRydWU7CisKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmE3Zjc2MWY2YjFlODViYTcxNThlMGJkZjQwYzVmYzIz
YmFhMTdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFV
RElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKTsKKyAgICB+UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGFkZFByb3h5KFdlYWtQdHI8UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk+JiYpOworICAgIHZvaWQgcmVtb3ZlUHJveHkoY29uc3QgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSog
Z2V0UHJveHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKKworICAgIHZvaWQg
c2V0Q2F0ZWdvcnlGb3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJiwg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmlu
Z1BvbGljeSk7CisgICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2Vzcyhjb25z
dCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIHNpemVfdCk7CisKKyAgICB1c2luZyBTZXRB
Y3RpdmVDb21wbGV0aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT47CisgICAgYm9v
bCB0cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXImLCBib29sKTsKKworICAgIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbiYgc2Vzc2lvbigp
IGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbjsgfQorCitwcml2YXRlOgorICAgIFVuaXF1ZVJlZjxX
ZWJDb3JlOjpBdWRpb1Nlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyLCBXZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Pj4gbV9wcm94
aWVzOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YjNkZWM3Y2QzOWQwMTAyYjg1ZjBmOTVkZjRl
NDMwZjlhZTEzZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAg
KzEsMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQppbmRleCAyNTZkYzk5MDViZjQ0NjZkMGMyYWQ1NzRkOGMzNjhhMTRiZTY5NjNhLi40YmEx
NGRiYWYyNGIyNDFlNTlkYjBhN2YyMDgwZDAyZDAyN2MzYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIzNCw2ICsyMzQsNyBAQCBkZWYgdHlwZXNfdGhh
dF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFSZWNv
cmRlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
SWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZp
ZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JZGVudGlmaWVyJywKICAgICAgICAgJ1dl
YktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVt
b3RlQ0RNSW5zdGFuY2VTZXNzaW9uSWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGQwN2YyYmY1YjIxYjYyMGI5MTk4MTAxOTk0
MGUyNzQ0ZWQyNTAwY2QuLjY3NTJjYjZkNDVlNWFmMDA1ZWZmODI3YTc2NmJhM2JiMWIzYThkODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC02
MSw2ICs2MSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ0RNSW5zdGFuY2VTZXNzaW9uLmg+CiAj
ZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9T
ZXNzaW9uLmg+CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogbmFtZXNwYWNlIFdURiB7
CiBjbGFzcyBNYWNoU2VuZFJpZ2h0OwpAQCAtMTAyNSw0ICsxMDI5LDE5IEBAIHRlbXBsYXRlIDw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNETUluc3RhbmNlOjpIRENQU3RhdHVzPiB7CiAK
ICNlbmRpZgogCisjaWYgVVNFKEFVRElPX1NFU1NJT04pCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXMgPAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpOb25lLAor
ICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJpZW50U291bmQsCisg
ICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlNvbG9BbWJpZW50U291bmQs
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok1lZGlhUGxheWJhY2ss
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlJlY29yZEF1ZGlvLAor
ICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5QW5kUmVjb3JkLAor
ICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBdWRpb1Byb2Nlc3NpbmcK
KyAgICA+OworfTsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4
IDZkMGU4YzY4YTAyMzg4NzNiNjg2NDIzODNlNWI3YmM1YWEwNjM3ZGMuLmQwMDYyM2E2Mjk2Nzgx
Y2FkN2RjYTZlYmUwNWQxOTYzYWQ2Njk2NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjIsMTEgKzIyLDE0
IEBACiAvLyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIEdQVVByb2Nlc3MvR1BV
UHJvY2Vzcy5jcHAKK0dQVVByb2Nlc3MvR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAogR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFj
a1Byb3h5LmNwcAorR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAK
K0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcAogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUlu
c3RhbmNlU2Vzc2lvblByb3h5LmNwcApAQCAtNTQ2LDYgKzU0OSw3IEBAIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvbi5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETS5jcHAKIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUNETUZhY3RvcnkuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVDRE1JbnN0YW5jZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAwYTc3NjkzOTg3OWVi
Njk1ZmZiZmVhZmJlZDhiYzJmOWM0NGNlZmE0Li42NDRiY2JjMzViNDU4ZjQzZTUzYmZiMTBhOTFk
MzdiYzk4NjU2MTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02NTQsNiArNjU0LDggQEAg
TGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKK1JlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWVz
c2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNTNlZGU1NjZkM2RlOGU5OTc1NGI5NjYyNTQ2NGI2MWViMTc0OGEz
OC4uNWY0OGE4MTNhZTI5OWVmNWVhNGFlZDdkYzBmYTRjMzMxZWQzNjAwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzQzLDYgKzE3
NDMsOCBAQAogCQlDREFDMjBGODIzRkM3MjZDMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREFDMjBGNTIzRkMzODNCMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFu
Y2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNEQUMyMEY5MjNGQzcyNkMwMDIx
REVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREFDMjBFQzIz
RkMzODM4MDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OwogCQlDREFDMjBGQTIzRkM3MjZDMDAyMURFRTMgLyogUmVtb3RlQ0RN
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RBQzIwRUYyM0ZDMzgzOTAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQ0RCQjQ5RjAyNDBENTdEMjAwMTdDMjkyIC8q
IEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RCQjQ5RUUyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBsYXRmb3JtU3Ry
YXRlZ2llcy5oICovOyB9OworCQlDREJCNDlGRDI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVk
aW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbkNvbmZpZ3VyYXRpb24uaCAqLzsgfTsKIAkJQ0RDMjgzMUQyMDFCRDc5RDAwRTZFNzQ1IC8q
IFdLRnVsbHNjcmVlblN0YWNrVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RDMjgzMUIyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0
YWNrVmlldy5oICovOyB9OwogCQlDRENBODVDOTEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RDQTg1QzcxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0UxMUFENTIxQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVT
aWduaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RTExQUQ1MTFDQkM0ODJGMDA2ODFFRTUgLyogQ29kZVNpZ25pbmcuaCAqLzsgfTsKQEAgLTUwOTQs
NiArNTA5NiwxNyBAQAogCQlDREFDMjBGNDIzRkMzODNBMDAyMURFRTMgLyogUmVtb3RlQ0RNUHJv
eHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVDRE1Q
cm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQUMyMEY1MjNG
QzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNETUluc3RhbmNl
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REFDMjBGNjIzRkMzODNCMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2Vz
UmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVDRE1JbnN0
YW5jZVByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEQkI0OUVFMjQwRDU3RDIwMDE3QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEQkI0OUVGMjQwRDU3RDIwMDE3QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjQyNDBEOEFDNjAwMTdDMjkyIC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjUyNDBEOEFDNjAwMTdDMjkyIC8q
IFJlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nl
c3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGNjI0MEQ4Qzk1
MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RC
QjQ5RjcyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjgyNDBEOEQ1MzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGOTI0MEQ5NjND
MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDREJCNDlGQTI0MEQ5NjNEMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZCMjQw
RDk3NEEwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
bkNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmln
dXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREMyODMxQjIwMUJENzlE
MDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRnVs
bHNjcmVlblN0YWNrVmlldy5oOyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsc2NyZWVuU3Rh
Y2tWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzI4MzFDMjAxQkQ3OUQw
MEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcubW07IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxz
Y3JlZW5TdGFja1ZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzM4MkY3
MTcyMTE1MDYwMDhBMkZDMyAvKiBDRk5ldHdvcmsuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUg
PSBDRk5ldHdvcmsuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
Q0ZOZXR3b3JrLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKQEAgLTUx
MDEsNiArNTExNCwxNyBAQAogCQlDRENBODVDNjEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQ0E4NUM3MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RD
QTg1RDQxMzJBQzJCMzAwRTk2MURGIC8qIElPS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1l
ID0gSU9LaXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSU9L
aXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQlDREQ1MzU2RjI0
MEREMzQzMDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJl
bW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0RENTM1NzAyNDBERDRFRjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcxMjQwRERFMDYw
MEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcyMjQwRERFMDYwMEY3QjhD
NCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RENTM1NzMyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDREQ1MzU3NDI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNz
aW9uTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbk1l
c3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3NTI0
MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RENTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3
NzI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzgyNDBEREUwODAwRjdC
OEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc5MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFMTFBRDRGMUNCQzQ3RjgwMDY4MUVFNSAvKiBDb2RlU2ln
bmluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvZGVTaWdu
aW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTExQUQ1MTFDQkM0ODJGMDA2
ODFFRTUgLyogQ29kZVNpZ25pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q29kZVNpZ25pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UxQTBCQ0MxQTQ4
RTZDNjAwNTRFRjc0IC8qIEFzc2VydGlvblNlcnZpY2VzU1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFzc2VydGlvblNlcnZpY2VzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC01Mzc4LDYgKzU0MDIsMTEgQEAKIAkJCQk5QjVCRUMyOTI0MDEwMTU4MDA3
MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCAqLywKIAkJCQk5QjVCRUMy
ODI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggKi8sCiAJ
CQkJOUI1QkVDMkUyNDAxMDE4QzAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eS5tZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlGNTI0MEQ4QUM2MDAxN0MyOTIgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uLmNwcCAqLywKKwkJCQlDREJCNDlGNDI0MEQ4QUM2MDAxN0MyOTIgLyogUmVt
b3RlQXVkaW9TZXNzaW9uLmggKi8sCisJCQkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlGQzI0MEQ5QTcyMDAx
N0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovLAorCQkJCUNEQkI0
OUZCMjQwRDk3NEEwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8s
CiAJCQkJQ0RBQzIwQkYyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETS5jcHAgKi8sCiAJCQkJ
Q0RBQzIwQkEyM0ZDMkY3NDAwMjFERUUzIC8qIFJlbW90ZUNETS5oICovLAogCQkJCUNEQUMyMEI4
MjNGQzJGNzMwMDIxREVFMyAvKiBSZW1vdGVDRE1Db25maWd1cmF0aW9uLmggKi8sCkBAIC01NDIw
LDYgKzU0NDksMTIgQEAKIAkJCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwICovLAogCQkJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1
MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovLAogCQkJCTlCMTIyOUNGMjNG
RjI4MTQwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5p
biAqLywKKwkJCQlDREJCNDlGNzI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHkuY3BwICovLAorCQkJCUNEQkI0OUY2MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eS5oICovLAorCQkJCUNEQkI0OUY4MjQwRDhENTMwMDE3QzI5MiAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlGQTI0MEQ5NjNE
MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcCAqLywKKwkJCQlD
REJCNDlGOTI0MEQ5NjNDMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
LmggKi8sCisJCQkJQ0RENTM1NzAyNDBERDRFRjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBE
N0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJCQkwNzFCQzU3RjIzQ0E1REIx
MDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8sCiAJCQkJQ0RBQzIwNzkyM0ZC
MUUyMTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eS5jcHAgKi8sCkBAIC02NzA2LDYg
KzY3NDEsOCBAQAogCQkJCTJEOUZCMjBDMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCAqLywKIAkJCQkyRDlGQjIwMDIzNzUyMDlEMDA0OUY5MzYgLyogR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovLAogCQkJCTJEOUZCMjA5MjM3NTIwOUQwMDQ5Rjkz
NiAvKiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluICovLAorCQkJCUNEQkI0
OUVGMjQwRDU3RDIwMDE3QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovLAorCQkJ
CUNEQkI0OUVFMjQwRDU3RDIwMDE3QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLywK
IAkJCQkyRDlGQjIwMTIzNzUyMDlEMDA0OUY5MzYgLyogR1BVUHJvY2Vzcy5jcHAgKi8sCiAJCQkJ
MkQ5RkIyMTUyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3MuaCAqLywKIAkJCQkyRDlGQjIw
MjIzNzUyMDlEMDA0OUY5MzYgLyogR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKQEAgLTk4MzEs
NiArOTg2OCwxNSBAQAogCQkJCTFBMDQzQjVDMTI0RDVFOUQwMEZGQkZCNSAvKiBQbHVnaW5Qcm9j
ZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFBOEVGQTZFMTI1MkI4NDEwMEY3MDY3RiAvKiBQ
bHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUE4RUZBNkYxMjUyQjg0MTAw
RjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQlDREQ1MzU3NjI0MERERTA3
MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJ
CQlDREQ1MzU3NTI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMu
aCAqLywKKwkJCQlDREQ1MzU3NDI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9u
TWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJQ0RENTM1NzMyNDBEREUwNjAwRjdCOEM0IC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJ
Q0RENTM1NzgyNDBEREUwODAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ck1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzkyNDBEREUwODAwRjdCOEM0IC8qIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCUNERDUzNTcx
MjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCisJCQkJQ0RENTM1NzIyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQlDREQ1MzU3NzI0MERERTA3MDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQlDREFDMjBG
MjIzRkMzODNBMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQlDREFDMjBGMzIzRkMzODNBMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9y
eVByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDREFDMjBFRTIzRkMzODM5MDAyMURFRTMgLyogUmVt
b3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCkBAIC0xMDUzNCw2ICsxMDU4
MCw3IEBACiAJCQkJQkMwNkY0NEExMkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDZGNDNBMTJE
QkNDRkIwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEQTk0NEE0MTg4NEU0RjAwMEVEODZEQiAvKiBHZXN0dXJlVHlwZXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCUNEQkI0OUYwMjQwRDU3RDIwMDE3QzI5MiAvKiBHUFVQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQTA0OUI4MTgwQ0NEMEEwMEFB
RkE5RSAvKiBHcmFwaGljc0xheWVyQ0FSZW1vdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUMwQ0U3
MkFEMTI0N0U3OEQwMEJDMEVDNCAvKiBIYW5kbGVNZXNzYWdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUM3NUExQjFCMzM2ODI3MDA1Njc0NUIgLyogSGFuZ0RldGVjdGlvbkRpc2FibGVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTEwNzUyLDYgKzEwNzk5LDcgQEAKIAkJCQk5QjEyMjlEMjIzRkYyQkND
MDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUI1QkVDMkEyNDAxMDE1ODAwNzBDNkVG
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RC
QjQ5RkQyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUNEQUMyMEM3MjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVD
RE0uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQUMyMEM1MjNGQzJGNzUwMDIxREVFMyAvKiBSZW1v
dGVDRE1Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDRDIzRkMyRjc1
MDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lv
bi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2JlNWNlYzhlYTFiNjg3ZDViZGQ3MTdkY2RjMzMxYzQ2MWFkZDU1
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLmNwcApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkdQVVByb2Nlc3NQ
cm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1VuaXF1ZVJlZjxSZW1v
dGVBdWRpb1Nlc3Npb24+IFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKFdlYlByb2Nlc3MmIHBy
b2Nlc3MpCit7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0
aW9uOworICAgIHByb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZFN5bmMoTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkVuc3VyZUF1
ZGlvU2Vzc2lvbigpLCBNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RW5zdXJl
QXVkaW9TZXNzaW9uOjpSZXBseShjb25maWd1cmF0aW9uKSwgeyB9KTsKKyAgICByZXR1cm4gbWFr
ZVVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb24+KHByb2Nlc3MsIFdURk1vdmUoY29uZmlndXJh
dGlvbikpOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb246OlJlbW90ZUF1ZGlvU2Vzc2lvbihXZWJQ
cm9jZXNzJiBwcm9jZXNzLCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbikKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQorICAgICwgbV9jb25maWd1cmF0aW9u
KFdURk1vdmUoY29uZmlndXJhdGlvbikpCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvbjo6flJl
bW90ZUF1ZGlvU2Vzc2lvbigpID0gZGVmYXVsdDsKKworSVBDOjpDb25uZWN0aW9uJiBSZW1vdGVB
dWRpb1Nlc3Npb246OmNvbm5lY3Rpb24oKQoreworICAgIHJldHVybiBtX3Byb2Nlc3MuZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVk
aW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgdHlwZSwgUm91dGVTaGFyaW5nUG9s
aWN5IHBvbGljeSkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHk6OlNldENhdGVnb3J5KHR5cGUsIHBvbGljeSksIHsgfSk7Cit9CisKK3Zv
aWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBzaXpl
KQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eTo6U2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplKSwgeyB9KTsKK30KKworYm9vbCBSZW1v
dGVBdWRpb1Nlc3Npb246OnRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCBhY3RpdmUpCit7Cisg
ICAgYm9vbCBzdWNjZWVkZWQ7CisgICAgY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6VHJ5VG9TZXRBY3RpdmUoYWN0aXZlKSwgTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpUcnlUb1NldEFjdGl2ZTo6UmVwbHkoc3VjY2VlZGVk
KSwgeyB9KTsKKyAgICByZXR1cm4gc3VjY2VlZGVkOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vz
c2lvbjo6Y29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgYm9vbCBtdXRlZFN0YXRlQ2hhbmdlZCA9IGNvbmZp
Z3VyYXRpb24uaXNNdXRlZCAhPSBtX2NvbmZpZ3VyYXRpb24uaXNNdXRlZDsKKworICAgIG1fY29u
ZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247CisKKyAgICBpZiAobXV0ZWRTdGF0ZUNoYW5nZWQp
CisgICAgICAgIGhhbmRsZU11dGVkU3RhdGVDaGFuZ2UoKTsKK30KKwordm9pZCBSZW1vdGVBdWRp
b1Nlc3Npb246OmJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRpb25UeXBlIHR5cGUpCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFy
ZWRNYW5hZ2VyKCkuYmVnaW5JbnRlcnJ1cHRpb24odHlwZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVk
aW9TZXNzaW9uOjplbmRJbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVy
cnVwdGlvbkZsYWdzIGZsYWdzKQoreworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6
c2hhcmVkTWFuYWdlcigpLmVuZEludGVycnVwdGlvbihmbGFncyk7Cit9CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGY4ZGM4MjNlM2YwMTA3YzE5M2JlOTQ4YmY3ZmI5
NjhiY2U3OWY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19T
RVNTSU9OKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3Rl
QXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNz
aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oPgorCituYW1l
c3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlvbjsKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNz
IFJlbW90ZUF1ZGlvU2Vzc2lvbiBmaW5hbAorICAgIDogcHVibGljIFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbgorICAgICwgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9u
PiBjcmVhdGUoV2ViUHJvY2VzcyYpOworICAgIHZpcnR1YWwgflJlbW90ZUF1ZGlvU2Vzc2lvbigp
OworCitwcml2YXRlOgorICAgIGZyaWVuZCBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPiBX
VEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPFJlbW90ZUF1ZGlvU2Vzc2lv
bj4oV2ViUHJvY2VzcyYsIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJik7CisgICAg
UmVtb3RlQXVkaW9TZXNzaW9uKFdlYlByb2Nlc3MmLCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1
cmF0aW9uJiYpOworICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOworCisgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZXMKKyAgICB2
b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24m
Jik7CisgICAgdm9pZCBiZWdpbkludGVycnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6SW50ZXJydXB0aW9uVHlwZSk7CisgICAgdm9pZCBlbmRJbnRlcnJ1cHRpb24oV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzKTsKKworICAgIC8v
IEF1ZGlvU2Vzc2lvbgorICAgIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBXZWJDb3Jl
OjpSb3V0ZVNoYXJpbmdQb2xpY3kpIGZpbmFsOworICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVy
U2l6ZShzaXplX3QpIGZpbmFsOworICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29s
KSBmaW5hbDsKKworICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fY29uZmlndXJhdGlvbi5jYXRlZ29yeTsgfQorICAgIFdlYkNvcmU6OlJvdXRlU2hhcmlu
Z1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZp
Z3VyYXRpb24ucm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAgU3RyaW5nIHJvdXRpbmdDb250ZXh0
VUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnJvdXRpbmdDb250ZXh0
VUlEOyB9CisgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29u
ZmlndXJhdGlvbi5zYW1wbGVSYXRlOyB9CisgICAgc2l6ZV90IGJ1ZmZlclNpemUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYnVmZmVyU2l6ZTsgfQorICAgIHNpemVfdCBu
dW1iZXJPZk91dHB1dENoYW5uZWxzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0
aW9uLm51bWJlck9mT3V0cHV0Q2hhbm5lbHM7IH0KKyAgICBzaXplX3QgcHJlZmVycmVkQnVmZmVy
U2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5wcmVmZXJyZWRCdWZm
ZXJTaXplOyB9CisgICAgYm9vbCBpc011dGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25m
aWd1cmF0aW9uLmlzTXV0ZWQ7IH0KKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9jb25maWd1cmF0aW9uLmlzQWN0aXZlOyB9CisKKyAgICBXZWJQcm9jZXNzJiBtX3By
b2Nlc3M7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBtX2NvbmZpZ3VyYXRp
b247Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wODk2MjhmNjU3ZWY3Y2RiY2RiYTc3OWQ0MWRiOTliY2E1ZDQ0YjEyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCittZXNzYWdlcyAt
PiBSZW1vdGVBdWRpb1Nlc3Npb24gTm90UmVmQ291bnRlZCB7CisgICAgQ29uZmlndXJhdGlvbkNo
YW5nZWQoc3RydWN0IFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25m
aWd1cmF0aW9uKQorICAgIEJlZ2luSW50ZXJydXB0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQorICAgIEVuZEludGVy
cnVwdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZElu
dGVycnVwdGlvbkZsYWdzIGZsYWdzKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmU2YzQzNjJlZDk1YWE2YzUwMWNkMGE2YTIw
M2QyYjVlYTcxZjBiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCkBAIC0wLDAgKzEs
MTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Np
b24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uIHsKKworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
IGNhdGVnb3J5OworICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQ
b2xpY3k7CisgICAgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEOworICAgIGZsb2F0IHNhbXBsZVJh
dGU7CisgICAgdWludDY0X3QgYnVmZmVyU2l6ZTsKKyAgICB1aW50NjRfdCBudW1iZXJPZk91dHB1
dENoYW5uZWxzOworICAgIHVpbnQ2NF90IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgYm9vbCBp
c011dGVkOworICAgIGJvb2wgaXNBY3RpdmU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAg
ICBlbmNvZGVyIDw8IGNhdGVnb3J5OworICAgICAgICBlbmNvZGVyIDw8IHJvdXRlU2hhcmluZ1Bv
bGljeTsKKyAgICAgICAgZW5jb2RlciA8PCByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgZW5j
b2RlciA8PCBzYW1wbGVSYXRlOworICAgICAgICBlbmNvZGVyIDw8IGJ1ZmZlclNpemU7CisgICAg
ICAgIGVuY29kZXIgPDwgbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKKyAgICAgICAgZW5jb2RlciA8
PCBwcmVmZXJyZWRCdWZmZXJTaXplOworICAgICAgICBlbmNvZGVyIDw8IGlzTXV0ZWQ7CisgICAg
ICAgIGVuY29kZXIgPDwgaXNBY3RpdmU7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERl
Y29kZXI+CisgICAgc3RhdGljIE9wdGlvbmFsPFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRp
b24+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+IGNhdGVnb3J5OworICAgICAgICBkZWNv
ZGVyID4+IGNhdGVnb3J5OworICAgICAgICBpZiAoIWNhdGVnb3J5KQorICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpSb3V0ZVNoYXJp
bmdQb2xpY3k+IHJvdXRlU2hhcmluZ1BvbGljeTsKKyAgICAgICAgZGVjb2RlciA+PiByb3V0ZVNo
YXJpbmdQb2xpY3k7CisgICAgICAgIGlmICghcm91dGVTaGFyaW5nUG9saWN5KQorICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxTdHJpbmc+IHJvdXRp
bmdDb250ZXh0VUlEOworICAgICAgICBkZWNvZGVyID4+IHJvdXRpbmdDb250ZXh0VUlEOworICAg
ICAgICBpZiAoIXJvdXRpbmdDb250ZXh0VUlEKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgICAgICBPcHRpb25hbDxmbG9hdD4gc2FtcGxlUmF0ZTsKKyAgICAgICAgZGVj
b2RlciA+PiBzYW1wbGVSYXRlOworICAgICAgICBpZiAoIXNhbXBsZVJhdGUpCisgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBidWZm
ZXJTaXplOworICAgICAgICBkZWNvZGVyID4+IGJ1ZmZlclNpemU7CisgICAgICAgIGlmICghYnVm
ZmVyU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0
aW9uYWw8dWludDY0X3Q+IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAgICAgIGRlY29kZXIg
Pj4gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKKyAgICAgICAgaWYgKCFudW1iZXJPZk91dHB1dENo
YW5uZWxzKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRp
b25hbDx1aW50NjRfdD4gcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBw
cmVmZXJyZWRCdWZmZXJTaXplOworICAgICAgICBpZiAoIXByZWZlcnJlZEJ1ZmZlclNpemUpCisg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+
IGlzTXV0ZWQ7CisgICAgICAgIGRlY29kZXIgPj4gaXNNdXRlZDsKKyAgICAgICAgaWYgKCFpc011
dGVkKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25h
bDxib29sPiBpc0FjdGl2ZTsKKyAgICAgICAgZGVjb2RlciA+PiBpc0FjdGl2ZTsKKyAgICAgICAg
aWYgKCFpc0FjdGl2ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgcmV0dXJuIHt7CisgICAgICAgICAgICBXVEZNb3ZlKCpjYXRlZ29yeSksCisgICAgICAgICAg
ICBXVEZNb3ZlKCpyb3V0ZVNoYXJpbmdQb2xpY3kpLAorICAgICAgICAgICAgV1RGTW92ZSgqcm91
dGluZ0NvbnRleHRVSUQpLAorICAgICAgICAgICAgKnNhbXBsZVJhdGUsCisgICAgICAgICAgICAq
YnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICpudW1iZXJPZk91dHB1dENoYW5uZWxzLAorICAgICAg
ICAgICAgKnByZWZlcnJlZEJ1ZmZlclNpemUsCisgICAgICAgICAgICAqaXNNdXRlZCwKKyAgICAg
ICAgICAgICppc0FjdGl2ZSwKKyAgICAgICAgfX07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMxNDgwYzY5NGUyYjNkOTdiNTk2ZTJhMDczMDNkNjdmYjBmOTliZDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9O
KQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2VudW0gUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcg
UmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UmVtb3RlQXVk
aW9TZXNzaW9uSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1l
ZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJN
ZWRpYVN0cmF0ZWd5LmNwcAppbmRleCA1ZDdhOGI4ZDExMjRiMmE1MjhhZDczYmRjOTZkOWE5Nzgw
ZGMyMDRjLi4wMmU2YjI5OWM5N2M4MmRhN2FlOGVkZDVmZGExMjdkZDYyNTRhMzdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3ku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJh
dGVneS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ0RNRmFjdG9yeS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRp
b24uaD4KQEAgLTM2LDIyICszNywyNCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKIFdlYk1lZGlhU3RyYXRlZ3k6On5XZWJNZWRpYVN0cmF0ZWd5
KCkgPSBkZWZhdWx0OwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLXN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uPiBXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rl
c3RpbmF0aW9uKFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGNvbnN0IFN0cmlu
ZyYgaW5wdXREZXZpY2VJZCwKK3N0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rlc3RpbmF0aW9uPiBXZWJN
ZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2Fs
bGJhY2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKICAgICB1bnNpZ25lZCBudW1iZXJP
ZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNh
bXBsZVJhdGUpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3VzZUdQVVBy
b2Nlc3MpCiAgICAgICAgIHJldHVybiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmNyZWF0
ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKICNlbmRpZgotICAgIHJldHVybiBXZWJDb3Jl
OjpBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJl
ck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7Cisg
ICAgcmV0dXJuIE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oY2FsbGJhY2ss
IGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscywgc2FtcGxlUmF0ZSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCi12b2lkIFdlYk1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxX
ZWJDb3JlOjpDRE1GYWN0b3J5Kj4mIGZhY3RvcmllcykKK3ZvaWQgV2ViTWVkaWFTdHJhdGVneTo6
cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYgZmFjdG9yaWVzKQogewog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV91c2VHUFVQcm9jZXNzKSB7CkBAIC01
OSw3ICs2MiwxOCBAQCB2b2lkIFdlYk1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVz
KFZlY3RvcjxXZWJDb3JlOjpDRE1GYWN0b3J5Kj4mIGZhY3RvcgogICAgICAgICByZXR1cm47CiAg
ICAgfQogI2VuZGlmCi0gICAgV2ViQ29yZTo6Q0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZh
Y3RvcmllcyhmYWN0b3JpZXMpOworICAgIE1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9y
aWVzKGZhY3Rvcmllcyk7Cit9CisjZW5kaWYKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorVW5p
cXVlUmVmPEF1ZGlvU2Vzc2lvbj4gV2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9TZXNzaW9u
KCkKK3sKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgaWYgKG1fdXNlR1BVUHJvY2VzcykK
KyAgICAgICAgcmV0dXJuIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpKTsKKyNlbmRpZgorICAgIHJldHVybiBNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRp
b1Nlc3Npb24oKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oCmluZGV4IDRmYWIwZTk0NGZjMTRlNjg0
Mzc5ZTMwMDgxNjNiZTE2MmRkODliNGQuLjRjNWNkN2MzNTA4ZDZkYmY5YjRmZjBiYWIwZGI1MmY3
ODRlNjMzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
V2ViTWVkaWFTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvV2ViTWVkaWFTdHJhdGVneS5oCkBAIC00Niw2ICs0NiwxMCBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPFdlYkNvcmU6OkNETUZhY3RvcnkqPiYpIG92
ZXJyaWRlOwogI2VuZGlmCiAKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBVbmlxdWVSZWY8
V2ViQ29yZTo6QXVkaW9TZXNzaW9uPiBjcmVhdGVBdWRpb1Nlc3Npb24oKSBvdmVycmlkZTsKKyNl
bmRpZgorCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGJvb2wgbV91c2VHUFVQcm9jZXNz
IHsgZmFsc2UgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCmluZGV4IGI5
MDllY2M0MzliY2QzYzZmNmRhODA0MWM2ZWYyOTNmZjM0NjY5NmYuLjZiNDczY2U5M2FiOGVlYzkx
ZDkzYjcwODcwNDNlYmE3ODM1ZjE2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0K
QEAgLTY1LDI2ICs2NSw5IEBAIFBhc3RlYm9hcmRTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHJldHVybiB0aGlzOwogfQogCi1j
bGFzcyBXZWJNZWRpYVN0cmF0ZWd5IGZpbmFsIDogcHVibGljIE1lZGlhU3RyYXRlZ3kgewotcHJp
dmF0ZToKLSNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Rl
c3RpbmF0aW9uPiBjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJh
Y2ssIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwKLSAgICAgICAgdW5zaWduZWQgbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBz
YW1wbGVSYXRlKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgcmV0dXJuIEF1ZGlvRGVzdGluYXRp
b246OmNyZWF0ZShjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxz
LCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKLSAgICB9Ci0jZW5kaWYKLSNp
ZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAgIHZvaWQgcmVnaXN0ZXJDRE1GYWN0b3JpZXMo
VmVjdG9yPENETUZhY3RvcnkqPiYgZmFjdG9yaWVzKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OkNETUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoZmFj
dG9yaWVzKTsKLSAgICB9Ci0jZW5kaWYKLX07Ci0KIE1lZGlhU3RyYXRlZ3kqIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSgpCiB7Ci0gICAgcmV0dXJuIG5ldyBXZWJN
ZWRpYVN0cmF0ZWd5OworICAgIHJldHVybiBuZXcgTWVkaWFTdHJhdGVneTsKIH0KIAogY2xhc3Mg
V2ViQmxvYlJlZ2lzdHJ5IGZpbmFsIDogcHVibGljIEJsb2JSZWdpc3RyeSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392471</attachid>
            <date>2020-03-04 13:38:38 -0800</date>
            <delta_ts>2020-03-04 14:16:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200304133836.patch</filename>
            <type>text/plain</type>
            <size>104324</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkODA0MjkxNDkyNWFlNWJmYTc5ZWZj
ZmUxYTMwZDc5YjU1Yjg3NjEuLjcxNWExOGJmMDQzMDAxYjE3ZjUyODUyMzQ4OGUyNmYwOGIxNWU1
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBV
bmlxdWVSZWYgdG8gdGhlIGxpc3Qgb2YgZm9yd2FyZC1kZWNsYXJlZCB0ZW1wbGF0ZSB0eXBlcy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisKIDIwMjAtMDMtMDMgIEppdGVuIE1laHRhICA8
am1laHRhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBIVFRQIEFsdGVybmF0aXZlIFNlcnZp
Y2VzIFN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTFkOTE0MmI0MWVkYzIwNDViMDFkNzE4YzYzZjE0
MTBhNmM0MjNhLi4xZGI3MGE2NmUxYmRhOThiYTJkNTU3ZGFmNGYxNDg3M2UyODY1ZGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
biBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5IHdoaWNoIHByb3ZpZGVzIGRlZmF1bHQg
aW1wbGVtZW50YXRpb25zIG9mIHRoZQorICAgICAgICBwbGF0Zm9ybSBjcmVhdGlvbiBtZXRob2Rz
LCBzbyB0aGV5IGRvbid0IG5lZWQgdG8gYmUgcmUtaW1wbGVtZW50ZWQgYnkgZWFjaCBjbGllbnQg
dW5sZXNzCisgICAgICAgIHRoYXQgY2xpZW50IG5lZWRzIHRvIG92ZXJyaWRlIHRoYXQgYmVoYXZp
b3IuCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUgZW51bWVyYXRpb25zIGlu
c2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1ZGlvU2Vzc2lvbiBtZXRo
b2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGNhc2Ugd2hlcmUg
dGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0
ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb24uaDoKKwogMjAyMC0wMi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUF0gSW1wbGVtZW50IE1vZGVybiBFTUUgQVBJIGluIHRoZSBHUFUgUHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA0NTBlN2UzNTJmM2VhYjhmMzU2MGUxNjViNzNhYmU5M2MwODQ2OTA4
Li5lMjEzNWE3ZjM1YmY0Yjg0MzQxNzVjYmU4MWQ3YTdmMTE1YTM2NjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDk1IEBACisyMDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdWJjbGFzcyBv
ZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBhdWRpbyBiZWhh
dmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAgICAgYXVkaW8g
YmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJvY2Vzcywgc2lu
Y2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFsbHkKKyAgICAg
ICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAgICAgICAgRHVl
IHRvIHRoZSB3YXkgQXVkaW9TZXNzaW9uIG5vdyByZXF1aXJlcyB0aGUgUGxhdGZvcm1TdHJhdGVn
aWVzIG9iamVjdCB0byBjcmVhdGUgYSBjb25jcmV0ZSBBdWRpb1Nlc3Npb24sIHRoZSBHUFUKKyAg
ICAgICAgcHJvY2VzcyBuZWVkcyBpdHMgb3duIFBsYXRmb3JtU3RyYXRlZ2llcyBzdWJjbGFzcywg
YnV0IHVzaW5nIHRoZSBkZWZhdWx0IE1lZGlhU3RyYXRlZ3kgZnJvbSBXZWJDb3JlLgorCisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKToKKyAg
ICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVB
dWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpsZWdhY3lDZG1GYWN0b3J5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZUxvYWRlclN0cmF0ZWd5KToKKyAgICAgICAgKFdlYktpdDo6R1BV
UGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3kpOgorICAgICAgICAo
V2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorICAg
ICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Ojppbml0aWFsaXplR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmF1
ZGlvU2Vzc2lvbk1hbmFnZXIgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Ojpwcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6ZW5kSW50ZXJydXB0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbik6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnJvdXRl
U2hhcmluZ1BvbGljeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjpwcmVmZXJyZWRCdWZmZXJTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmdldFByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRDYXRlZ29yeUZvclByb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNl
dFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2Vzc2lv
biBjb25zdCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uOjpSZW1vdGVBdWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb246OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
OjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmg6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmg6CisKIDIwMjAtMDItMjMgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIEltcGxlbWVudCBNb2Rlcm4gRU1FIEFQ
SSBpbiB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4ODZk
ZGVhNWY2ZjAzMmU5YTg4MjZlZjFkYjYwMDc0YmI2OTc3MGQyLi45OTlkYmRiNzlkNzhmZTM2YzJi
YTY0ODUwYzk1YzQyM2UwNGU4MDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUgZGVmYXVsdCBN
ZWRpYVN0cmF0ZWd5IGZyb20gV2ViQ29yZSBub3cgdGhhdCBpdCdzIGF2YWlsYWJsZS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisKIDIwMjAtMDMt
MDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEl0ZW1zIGluIHRoZSB0b29sYmFyIHRha2UgdXAgdG8gbXVjaCB2ZXJ0aWNhbCBzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYv
Rm9yd2FyZC5oCmluZGV4IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThmNzAzYThmMGQu
LjZlOTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAg
LTY4LDYgKzY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBEdW1iUHRyVHJh
aXRzPFQ+PiBjbGFzcyBSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IER1bWJQ
dHJUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJp
bmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBjbGFzcyBTdHJp
bmdUeXBlQWRhcHRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1ZVJlZjsKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBz
dHJ1Y3QgRGVmYXVsdEhhc2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEyNSw2ICsxMjYs
NyBAQCB1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3NpdGlvbjsKIHVz
aW5nIFdURjo6VGV4dFN0cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RGOjpVbmlxdWVS
ZWY7CiB1c2luZyBXVEY6OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCBhNzIxZmJiMWFkOGE1YWE2YmRhMDliNjNiM2EyYTlkOTk3YzkxMTJmLi4wMDZlMzhh
YjY5MGE1Njg1Njk4ZDc3M2QzOGViZDRlZTEyMmNhM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc0
MCw2ICsxNzQwLDcgQEAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKIHBsYXRmb3JtL0xvd1Bvd2VyTW9k
ZU5vdGlmaWVyLmNwcAogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKIHBsYXRmb3JtL01h
aW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKK3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCiBwbGF0
Zm9ybS9Ob3RJbXBsZW1lbnRlZC5jcHAKIHBsYXRmb3JtL1Bhc3RlYm9hcmQuY3BwCiBwbGF0Zm9y
bS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZjAyM2ViZDRlZGRiZjY5MzQwNTcyMzY5
N2FkZTliZjUzOTY4NTg5Li5kZGFmNzFkM2NmNGZhZmM2YjRhNzUyOTM5NDA5YzYxZDQxODZkYWU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzk4Nyw2ICsxMzk4Nyw3IEBACiAJCUNEQUU4QzA4MTc0NkI5NTcwMDUzMkQ3OCAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVh
bWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDRE1GYWlyUGxheVN0cmVhbWluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREI3MDQ1OTFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBs
YXlTdHJlYW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0My
OTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmF0ZWd5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNEMjgxRkU4NUNCODAwMTJD
NTQ1IC8qIFZpZGVvQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlk
ZW9Db25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNE
MjkxRkU4NUNCOTAwMTJDNTQ1IC8qIE1lZGlhQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RCRDNEMkExRkU4NUNCQTAwMTJDNTQ1IC8qIE1lZGlhRW5jb2RpbmdDb25maWd1
cmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUVuY29kaW5nQ29uZmlndXJh
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTk2Myw2ICsyNTk2NCw3
IEBACiAJCQkJQ0RGMkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAq
LywKIAkJCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLywKIAkJ
CQlBMTdEMjc1RDFFQUM1Nzk4MDBCRjAxRTcgLyogTWVkaWFTZWxlY3Rpb25PcHRpb24uaCAqLywK
KwkJCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0MyOTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8sCiAJ
CQkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCQlC
Qzc3MkM0QzBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJ
QkM3NzJDNEQwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdjMjRjZDA2
MDMxMzVlNGVjZjFmY2VlYTBkMTAwZjE3YmU1ZDgxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgorCisjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lv
bi5oIgorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJDRE1GYWN0b3J5
LmgiCisjaW5jbHVkZSAiTGVnYWN5Q0RNLmgiCisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKK1VuaXF1ZVJl
ZjxBdWRpb1Nlc3Npb24+IE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpCit7Cisg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJM
RShXRUJfQVVESU8pCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gTWVkaWFTdHJh
dGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KQoreworICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0
RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
c2FtcGxlUmF0ZSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCit2
b2lkIE1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5
Kj4mIGZhY3RvcmllcykKK3sKKyAgICByZXR1cm4gQ0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3RvcmllcyhmYWN0b3JpZXMpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU3RyYXRlZ3kuaAppbmRleCA2MGE1ODQ3YzhjZWMxMGI3OWI3NDlhNmZhZjg1MDNk
MTZhMTk5Yjk1Li5jZGM0ODVjZjQ0MDI3MDJjOWJhNTAxYTNiMGI0YmY2MjdkNDY4YmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCkBAIC0zMSwxNiArMzEsMjAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uOwogY2xhc3MgQXVk
aW9JT0NhbGxiYWNrOworY2xhc3MgQXVkaW9TZXNzaW9uOwogY2xhc3MgQ0RNRmFjdG9yeTsKIAog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CisjaWYgVVNFKEFV
RElPX1NFU1NJT04pCisgICAgdmlydHVhbCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBjcmVhdGVB
dWRpb1Nlc3Npb24oKTsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bigKLSAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKKyAgICAgICAgQXVkaW9JT0NhbGxiYWNr
JiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpOwogI2Vu
ZGlmCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+TWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4
IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNmMmY1N2QuLjQ2ZWM3M2RlYTgyNWNh
M2M2MjJiMTJlYmFmZTczMTNlNmZjMDM0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMjgsMTUgKzI4LDIyIEBACiAKICNpZiBVU0Uo
QVVESU9fU0VTU0lPTikKIAorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1VuaXF1
ZVJlZjxBdWRpb1Nlc3Npb24+IEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
bWFrZVVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+KCk7Cit9CisKIEF1ZGlvU2Vzc2lvbiYgQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXVk
aW9TZXNzaW9uPiBzZXNzaW9uOwotICAgIHJldHVybiBzZXNzaW9uOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPj4gc2Vzc2lvbiA9IHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkuY3JlYXRlQXVkaW9TZXNzaW9uKCk7CisgICAgcmV0
dXJuIHNlc3Npb24uZ2V0KCk7CiB9CiAKIGJvb2wgQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2
ZShib29sIGFjdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uLmgKaW5kZXggZTcwMDgyMmZmMWZlZWJkNzgyOWFlYzc1MGNjZTQwYTYwYjkyNTY2YS4uY2Zj
NDEzODYwMjVlN2E2NDhhYzJlM2I2M2I5NjVmYTQzZDU0M2QyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDQsMTMgKzQ1LDE3IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdCB7
CiAgICAgTG9uZ0Zvcm1WaWRlbwogfTsKIAotY2xhc3MgQXVkaW9TZXNzaW9uIGZpbmFsIHsKK2Ns
YXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9TZXNzaW9uKTsKKyAgICBmcmll
bmQgY2xhc3MgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj47CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxB
dWRpb1Nlc3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8QXVk
aW9TZXNzaW9uPigpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1Nl
c3Npb24mIHNoYXJlZFNlc3Npb24oKTsKKyAgICBzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lv
bj4gY3JlYXRlKCk7CisgICAgc3RhdGljIEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOwor
ICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgewor
ICAgIGVudW0gQ2F0ZWdvcnlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAg
IEFtYmllbnRTb3VuZCwKICAgICAgICAgU29sb0FtYmllbnRTb3VuZCwKQEAgLTU5LDIzICs2NCwy
MyBAQCBwdWJsaWM6CiAgICAgICAgIFBsYXlBbmRSZWNvcmQsCiAgICAgICAgIEF1ZGlvUHJvY2Vz
c2luZywKICAgICB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdv
cnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpOwotICAgIFdFQkNPUkVfRVhQT1JUIENhdGVnb3J5
VHlwZSBjYXRlZ29yeSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRl
Z29yeVR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdmlydHVhbCBDYXRlZ29yeVR5cGUg
Y2F0ZWdvcnkoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29y
eVR5cGUpOwogICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3Q7CiAKLSAg
ICBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7Ci0gICAgU3Ry
aW5nIHJvdXRpbmdDb250ZXh0VUlEKCkgY29uc3Q7CisgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQ
b2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgcm91
dGluZ0NvbnRleHRVSUQoKSBjb25zdDsKIAotICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsK
LSAgICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZk91dHB1
dENoYW5uZWxzKCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7
CisgICAgdmlydHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgc2l6
ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAogICAgIGJvb2wgdHJ5VG9TZXRB
Y3RpdmUoYm9vbCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVy
U2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwor
ICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xhc3MgTXV0
ZWRTdGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04NywxNyArOTIsMTYgQEAgcHVibGlj
OgogICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwog
ICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwog
Ci0gICAgYm9vbCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBoYW5kbGVNdXRlZFN0YXRlQ2hh
bmdlKCk7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBmcmllbmQg
Y2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRpb1Nlc3Npb24oKTsK
LSAgICB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwo
Ym9vbCk7CisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCk7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0ZT4gbV9wcml2YXRlOwogICAg
IEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAppbmRleCBh
OGQxOGJlNGVhYmFlOWVjODBmZjVkZWY0ZmI3YmNhOWRhNjU3MDdhLi4xMjhmYWRhZTBmZDk2N2Vm
YTBmZTljYzE0MTU3NDdkOTNmZWNjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb24oKTsKIAotICAgIGVudW0g
Y2xhc3MgTWVkaWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSA6IHVpbnQ4X3Qgewog
ICAgICAgICBOb25lID0gMCwKICAgICAgICAgVmlkZW8sCiAgICAgICAgIFZpZGVvQXVkaW8sCkBA
IC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5cGUgbWVkaWFUeXBlKCkgY29uc3Q7
CiAgICAgTWVkaWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBjb25zdDsKIAotICAgIGVudW0gU3Rh
dGUgeworICAgIGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAgICAgICAgSWRsZSwKICAgICAgICAg
QXV0b3BsYXlpbmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoK
ICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICB2b2lkIHNl
dFN0YXRlKFN0YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0aW9uVHlwZSB7CisgICAgZW51bSBJ
bnRlcnJ1cHRpb25UeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vSW50ZXJydXB0aW9uLAogICAg
ICAgICBTeXN0ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdCYWNrZ3JvdW5kLApAQCAtOTEsNyAr
OTEsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIGludGVycnVwdGlv
blR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlvblR5cGU7IH0KIAotICAgIGVudW0g
RW5kSW50ZXJydXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgOiB1
aW50OF90IHsKICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAgICAgIE1heVJlc3VtZVBsYXlpbmcg
PSAxIDw8IDAsCiAgICAgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGRv
dWJsZSBhc0RvdWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRBcmd1bWVudDsKIAotICAgIGVudW0g
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVtIFJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQsCiAgICAgICAgIFBsYXlDb21tYW5k
LAogICAgICAgICBQYXVzZUNvbW1hbmQsCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSwgY29uc3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBhcmd1bWVudCA9IG51bGxwdHIpOwog
ICAgIGJvb2wgc3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAKLSAgICBlbnVtIERpc3BsYXlUeXBl
IHsKKyAgICBlbnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vcm1hbCwKICAg
ICAgICAgRnVsbHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVkLApAQCAtMzExLDQgKzMxMSw2NCBA
QCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZT4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpN
ZWRpYVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlh
VHlwZTo6VmlkZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlw
ZTo6VmlkZW9BdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFU
eXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBl
OjpXZWJBdWRpbworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGUs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpJZGxlLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6QXV0b3BsYXlpbmcsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQbGF5aW5nLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2VkLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQKKyAgICA+OworfTsKKwordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Oklu
dGVycnVwdGlvblR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6Tm9JbnRlcnJ1cHRp
b24sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6
OlN5c3RlbVNsZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRpb25UeXBlOjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUludGVycnVwdGlvbiwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3VzcGVuZGVkVW5k
ZXJMb2NrLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25U
eXBlOjpJbnZpc2libGVBdXRvcGxheSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6SW50ZXJydXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZlLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQbGF5YmFja1N1c3BlbmRlZAorICAg
ID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50
ZXJydXB0aW9uRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZElu
dGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1lUGxheWluZworICAgID47Cit9Owor
Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3Rl
Q29udHJvbENvbW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGxheUNvbW1hbmQsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGF1
c2VDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250
cm9sQ29tbWFuZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRvZ2dsZVBsYXlQYXVzZUNvbW1hbmQs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZTo6QmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OkVuZFNlZWtpbmdCYWNrd2Fy
ZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6RW5kU2Vla2lu
Z0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1v
dGVDb250cm9sQ29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNrUG9zaXRpb25Db21tYW5kCisgICAg
PjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggZDZjMDA3ZjQwYjVmYjc2
MzcyMmQ1MzhhZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGExZDBhYTYzODljM2RmODkzNjcxMGEz
NTg5YTQ0NTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9p
b3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQzLDE1IEBAIHZvaWQgQXVkaW9TZXNz
aW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZmZXJTaXplKQogICAgIEFTU0VS
VCghZXJyb3IpOwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6aXNNdXRlZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6aGFuZGxlTXV0ZWRTdGF0
ZUNoYW5nZSgpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKSAmJiBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IDlmOTQ2Zjg0OTdhZjIzYjRhZmE1MWI3OTE4NDE4NTE4ODYwYWM1
YjkuLmQ3NDliMmRiMDliOTY3NDZmNGEwZjFlMzRjMjE3NDJlZGY1M2U0NmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE4LDYgKzE4LDgg
QEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldl
YktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1G
YWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAt
MTE2LDYgKzExOCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYTk2YzJjZmRkZDQ2YjM1OTIzOGU5NjIzNDNhOTkyMjEw
NGVlYTU5Yi4uOTk1MDM1MTJiYTU1OGIyYjQxMDA4ZjViMTY2NTA0NjBhOTU0MTQ1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzcs
NiArMTM3LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVBy
b3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCA0NWVlM2RiN2VkN2UxMzM3MmM4YTc1YWQ1NTVhMTY1ODdmNjdkMDhh
Li4xYzNkMWEyMGVlYTNiNzM4MDAxMDJlMWQzMTk4Mzc5MDNhYTZjZDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0xNDgsNiArMTQ4LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAgICAgUGx1Z2luUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwK
ICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAorICAgIFJlbW90ZUF1ZGlvU2Vzc2lv
biBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCmluZGV4IDZjZjFjMzBiM2UzMzAxMjc3NDY2ZDkyZWUyOTMzMjQ2MDdlNTljYzEuLjI0
OTgxZmZmNTI4ODNjNzAyMTc4NTg3OWJlMThmMWI2OTRmOWJiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTcxLDYgKzcxLDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oIgogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorI2lu
Y2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
ZXNzYWdlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xMTksNiArMTI0LDEwIEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKIAogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworICAgIGlmIChtX2F1ZGlvU2Vz
c2lvblByb3h5KSB7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2VyKCku
cmVtb3ZlUHJveHkod2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIG1fYXVkaW9TZXNz
aW9uUHJveHkgPSBudWxscHRyOworICAgIH0KIH0KIAogTG9nZ2VyJiBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpsb2dnZXIoKQpAQCAtMjE3LDYgKzIyNiwxNyBAQCBSZW1vdGVDRE1GYWN0b3J5
UHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNkbUZhY3RvcnlQcm94eSgpCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCitS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9T
ZXNzaW9uUHJveHkoKQoreworICAgIGlmICghbV9hdWRpb1Nlc3Npb25Qcm94eSkgeworICAgICAg
ICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNyZWF0ZSgq
dGhpcykubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Np
b25NYW5hZ2VyKCkuYWRkUHJveHkobWFrZVdlYWtQdHIobV9hdWRpb1Nlc3Npb25Qcm94eS5nZXQo
KSkpOworICAgIH0KKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uUHJveHk7Cit9CisjZW5kaWYK
Kwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5k
KFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQog
ewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNYXAu
ZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0yMzEsNiArMjUx
LDEzIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVsZWFzZVJlbmRlcmluZ0Jh
Y2tlbmQoUmVuZGVyaW5nQmFja2VuZElkZW50aWZpCiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwg
Zm91bmQpOwogfQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lP
TikKK3ZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlQXVkaW9TZXNzaW9uKEVu
c3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24mJiBjb21wbGV0aW9uKQoreworICAgIGNvbXBsZXRp
b24oYXVkaW9TZXNzaW9uUHJveHkoKS5jb25maWd1cmF0aW9uKCkpOworfQorI2VuZGlmCisKIGJv
b2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMzA4LDYgKzMzNSwxMiBA
QCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAj
ZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBhdWRpb1Nl
c3Npb25Qcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiBtZXNzYWdlUmVj
ZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CkBAIC0z
NTUsNiArMzg4LDEyIEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KICNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Cisg
ICAgICAgIGF1ZGlvU2Vzc2lvblByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyNlbmRpZgogCiAgICAgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoU3luY01l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4
IGEzZWNhNWM4ZmFkNjkxODM4MGZkOTMzYmY2MzBkZDRjZmY3MzBkOTYuLjMwNzkwNmZhMjA1MDY4
MzhhNTQ1M2MxNzk5Nzc1ZDdmMzJmYjViYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKKyNpbmNsdWRl
ICJSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CkBAIC00OCwxMiArNDks
MTUgQEAgY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5OwogY2xh
c3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7CiBjbGFzcyBSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eTsKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKIGNsYXNzIFJlbW90ZUNE
TUZhY3RvcnlQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xh
c3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcjsKIGNsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiBj
bGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Oworc3RydWN0IFJlbW90ZUF1ZGlvU2Vz
c2lvbkNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKICAg
ICA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+CkBAIC05MCwx
MSArOTQsMTUgQEAgcHVibGljOgogICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgY2RtRmFjdG9y
eVByb3h5KCk7CiAjZW5kaWYKIAorICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBy
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
JiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmll
ciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciYgcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIoKTsKLSAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkoKTsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykK
ICAgICBMaWJXZWJSVENDb2RlY3NQcm94eSYgbGliV2ViUlRDQ29kZWNzUHJveHkoKTsKICNlbmRp
ZgpAQCAtMTA2LDggKzExNCwxNyBAQCBwcml2YXRlOgogICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKTsKICNl
bmRpZgogI2VuZGlmCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5JiBhdWRpb1Nlc3Npb25Qcm94eSgpOwor
I2VuZGlmCisKICAgICB2b2lkIGNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVsZWFzZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgdXNpbmcgRW5zdXJlQXVkaW9TZXNzaW9uQ29tcGxldGlvbiA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYp
PjsKKyAgICB2b2lkIGVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1cmVBdWRpb1Nlc3Npb25Db21wbGV0
aW9uJiYpOworI2VuZGlmCiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZv
aWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgZmluYWw7CkBAIC0xNDcsNiArMTY0LDkgQEAg
cHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHN0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVDRE1GYWN0b3J5UHJveHk+IG1fY2RtRmFjdG9yeVByb3h5OwogI2VuZGlmCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IG1fYXVkaW9TZXNzaW9uUHJveHk7CisjZW5k
aWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgppbmRleCA5MzJjMDEyMmRlMDgxZWRlOWJiOWVmYjU2ZjliYzUyNTliYTRkNzA0Li40ZmQwZjIy
MzA3ZTgzODgzNmQ0NzRiYWIzZTAyNzVhMzVjMDc1MGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgpAQCAtMjUsNiArMjUsNyBAQAogbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyBXYW50c0Rpc3BhdGNoTWVzc2FnZSB7CiAgICAgdm9pZCBDcmVhdGVSZW5kZXJpbmdC
YWNrZW5kKFdlYktpdDo6UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIpCiAgICAgdm9pZCBSZWxlYXNlUmVuZGVyaW5nQmFja2VuZChXZWJLaXQ6OlJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQorICAg
IEVuc3VyZUF1ZGlvU2Vzc2lvbigpIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pIFN5bmNocm9ub3VzCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMWE3MDNhYTI5NjkwYmM0ZDA4
MjA2MjViMzhhMjU5MGE2ZGJhMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVVBsYXRmb3JtU3RyYXRl
Z2llcy5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb0Rlc3RpbmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVN0cmF0ZWd5Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6Omlu
aXRpYWxpemUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxHUFVQbGF0Zm9ybVN0cmF0
ZWdpZXM+IHBsYXRmb3JtU3RyYXRlZ2llczsKKyAgICBzZXRQbGF0Zm9ybVN0cmF0ZWdpZXMoJnBs
YXRmb3JtU3RyYXRlZ2llcy5nZXQoKSk7Cit9CisKK0dQVVBsYXRmb3JtU3RyYXRlZ2llczo6R1BV
UGxhdGZvcm1TdHJhdGVnaWVzKCkgPSBkZWZhdWx0OworCitMb2FkZXJTdHJhdGVneSogR1BVUGxh
dGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVMb2FkZXJTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK1Bhc3RlYm9hcmRTdHJhdGVneSogR1BVUGxhdGZvcm1TdHJhdGVnaWVzOjpj
cmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitN
ZWRpYVN0cmF0ZWd5KiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3ko
KQoreworICAgIHJldHVybiBuZXcgTWVkaWFTdHJhdGVneSgpOworfQorCitCbG9iUmVnaXN0cnkq
IEdQVVBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKK3sKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2Y5Mzk3Y2RiMGNjOGFk
MTBiN2JmYzljZjAwNzM2MDlhZTYzMWE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0wLDAgKzEsNTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJh
dGVnaWVzLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTG9hZGVyU3RyYXRlZ3k7CitjbGFz
cyBQYXN0ZWJvYXJkU3RyYXRlZ3k7CitjbGFzcyBNZWRpYVN0cmF0ZWd5OworY2xhc3MgQmxvYlJl
Z2lzdHJ5OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVUGxhdGZvcm1TdHJh
dGVnaWVzIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcyB7CisgICAgZnJpZW5k
IE5ldmVyRGVzdHJveWVkPEdQVVBsYXRmb3JtU3RyYXRlZ2llcz47CitwdWJsaWM6CisgICAgc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIEdQVVBsYXRmb3JtU3RyYXRl
Z2llcygpOworCisgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCisgICAgV2ViQ29y
ZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAg
V2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBv
dmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5
KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0
cnkoKSBvdmVycmlkZTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUHJvY2Vzcy5jcHAKaW5kZXggMGU3YmQwOWJlYTVkMTIzYTQwN2VjZmI5ZDM5ZjcyNDBmNWIz
YzdiOS4uNjAzNzAwNTljZDE0OTU1MzZlZjQ1Y2Y0OTY0NTJkZDQxZTI0ZTQ3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkF1eGlsaWFyeVByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiR1BV
UGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NTZXNzaW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKQEAgLTUxLDYgKzUyLDEwIEBACiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJl
Zi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTEwLDYgKzExNSw4IEBAIHZvaWQgR1BVUHJvY2Vzczo6
aW5pdGlhbGl6ZUdQVVByb2Nlc3MoR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgV1RGOjpUaHJlYWQ6OnNldEN1cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQo
KTsKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAKKyAgICBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmluaXRpYWxpemUoKTsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVl
KTsKICNlbmRpZgpAQCAtMjEyLDYgKzIxOSwxNSBAQCBjb25zdCBTdHJpbmcmIEdQVVByb2Nlc3M6
Om1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjbwog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9O
KQorUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyJiBHUFVQcm9jZXNzOjphdWRpb1Nlc3Np
b25NYW5hZ2VyKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYXVkaW9TZXNzaW9uTWFuYWdlcikKKyAg
ICAgICAgbV9hdWRpb1Nlc3Npb25NYW5hZ2VyID0gV1RGOjptYWtlVW5pcXVlPFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcj4oKTsKKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uTWFuYWdl
cjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCmluZGV4IDZm
YTAyMDE0Yjk0NzgxZWE5OWUwMzVkYjNhZDc5ZDY1YTI0ZjI4N2IuLjQzYWFlMWExMmI1Yjg4NWIy
NmM1NmRkZjE1Mjk2MGYwMjI3YzUyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MuaApAQCAtNDAsNiArNDAsNyBAQCBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwog
c3RydWN0IEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgR1BVUHJvY2Vzc1Nl
c3Npb25QYXJhbWV0ZXJzOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKK2NsYXNzIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKIAogY2xhc3MgR1BVUHJvY2VzcyA6IHB1YmxpYyBB
dXhpbGlhcnlQcm9jZXNzLCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8R1BVUHJvY2Vzcz4s
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxHUFVQcm9jZXNzPiB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoR1BVUHJvY2Vzcyk7CkBAIC02Myw2ICs2NCwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
U3RyaW5nJiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KFBBTDo6U2Vzc2lvbklEKSBjb25zdDsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXImIGF1ZGlvU2Vzc2lvbk1hbmFnZXIo
KSBjb25zdDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgbG93TWVtb3J5SGFuZGxlcihD
cml0aWNhbCk7CiAKQEAgLTEwMyw2ICsxMDgsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxMYXllckhvc3RpbmdDb250ZXh0PiBtX2NvbnRleHRGb3JWaXNpYmlsaXR5UHJvcGFnYXRp
b247CiAgICAgYm9vbCBtX2NhblNob3dXaGlsZUxvY2tlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIG11dGFibGUg
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcj4gbV9hdWRpb1Nl
c3Npb25NYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZTQ3ZjBmNjdkMDM5MWI5MTg3NWE4OWNhNTRiNmY5
Yjk4ZjY2MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQor
CisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitVbmlxdWVS
ZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpjcmVh
dGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvbikKK3sKKyAgICByZXR1
cm4gbWFrZVVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4oZ3B1Q29ubmVjdGlvbik7
Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eShH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uKQorICAgIDogbV9ncHVDb25u
ZWN0aW9uKGdwdUNvbm5lY3Rpb24pCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp+
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoKSA9IGRlZmF1bHQ7CisKK1dlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpwcm9jZXNzSWRlbnRpZmllcigpCit7
CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpOworfQor
CitSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
Ojpjb25maWd1cmF0aW9uKCkKK3sKKyAgICBhdXRvJiBzZXNzaW9uID0gYXVkaW9TZXNzaW9uTWFu
YWdlcigpLnNlc3Npb24oKTsKKyAgICByZXR1cm4geworICAgICAgICBzZXNzaW9uLmNhdGVnb3J5
KCksCisgICAgICAgIHNlc3Npb24ucm91dGVTaGFyaW5nUG9saWN5KCksCisgICAgICAgIHNlc3Np
b24ucm91dGluZ0NvbnRleHRVSUQoKSwKKyAgICAgICAgc2Vzc2lvbi5zYW1wbGVSYXRlKCksCisg
ICAgICAgIHNlc3Npb24uYnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNzaW9uLm51bWJlck9mT3V0
cHV0Q2hhbm5lbHMoKSwKKyAgICAgICAgc2Vzc2lvbi5wcmVmZXJyZWRCdWZmZXJTaXplKCksCisg
ICAgICAgIHNlc3Npb24uaXNNdXRlZCgpLAorICAgICAgICBtX2FjdGl2ZQorICAgIH07Cit9CisK
K3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xp
Y3kgcG9saWN5KQoreworICAgIG1fY2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyAgICBtX3JvdXRlU2hh
cmluZ1BvbGljeSA9IHBvbGljeTsKKyAgICBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2V0Q2F0ZWdv
cnlGb3JQcm9jZXNzKG1fZ3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCB0eXBl
LCBwb2xpY3kpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpzZXRQcmVmZXJy
ZWRCdWZmZXJTaXplKHVpbnQ2NF90IHNpemUpCit7CisgICAgbV9wcmVmZXJyZWRCdWZmZXJTaXpl
ID0gc2l6ZTsKKyAgICBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6
ZUZvclByb2Nlc3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIHNpemUp
OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1NldEFjdGl2ZShib29s
IGFjdGl2ZSwgU2V0QWN0aXZlQ29tcGxldGlvbiYmIGNvbXBsZXRpb24pCit7CisgICAgbV9hY3Rp
dmUgPSBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkudHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKG1fZ3B1
Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCBhY3RpdmUpOworICAgIGNvbXBsZXRp
b24obV9hY3RpdmUpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbklu
dGVycnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlw
ZSB0eXBlKQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nl
c3Npb246OkJlZ2luSW50ZXJydXB0aW9uKHR5cGUpLCB7IH0pOworfQorCit2b2lkIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5OjplbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNl
c3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzIGZsYWdzKQoreworICAgIGNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246OkVuZEludGVycnVwdGlvbihmbGFncyks
IHsgfSk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKQoreworICAgIHJldHVybiBtX2dwdUNv
bm5lY3Rpb24uZ3B1UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKTsKK30KKworSVBDOjpD
b25uZWN0aW9uJiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbigpCit7CisgICAg
cmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCk7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjZDJjNmMzN2MxNzk2NGUwYmM4ZGZhNzIxMzY0OTky
MWQ4NDkzYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19T
RVNTSU9OKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3Rl
QXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNz
aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CisKK2NsYXNz
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5CisgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2
ZXIKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4g
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlx
dWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJik7CisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoKTsKKworICAg
IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKCk7CisgICAgUmVt
b3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKCk7CisKKyAgICBXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0IHsgcmV0dXJu
IG1fY2F0ZWdvcnk7IH07CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hh
cmluZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAg
c2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcnJlZEJ1
ZmZlclNpemU7IH0KKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7
IH0KKworICAgIHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNl
c3Npb246OkludGVycnVwdGlvblR5cGUpOworICAgIHZvaWQgZW5kSW50ZXJydXB0aW9uKFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyk7CisKKyAgICAv
LyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRy
PElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgVW5pcXVlUmVm
PFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1h
bGxvY0NoZWNrPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PihHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJik7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYpOworCisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIHNldENhdGVnb3J5KFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kp
OworICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCk7CisgICAgdXNpbmcg
U2V0QWN0aXZlQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+OworICAg
IHZvaWQgdHJ5VG9TZXRBY3RpdmUoYm9vbCwgU2V0QWN0aXZlQ29tcGxldGlvbiYmKTsKKworICAg
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpOwor
ICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOworCisgICAgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9uOworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnk7CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5
IG1fcm91dGVTaGFyaW5nUG9saWN5OworICAgIHNpemVfdCBtX3ByZWZlcnJlZEJ1ZmZlclNpemUg
eyAwIH07CisgICAgYm9vbCBtX2FjdGl2ZSB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZjNiYWU4MjQz
ZmFhNTQ1NTJiYmZmMDRkOWE2ZWI4NTJiNjA2MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIFVTRShBVURJT19TRVNTSU9OKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eSBOb3RSZWZDb3VudGVkIHsKKyAgICBTZXRDYXRlZ29yeShlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgdHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6
OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCisgICAgU2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1
aW50NjRfdCBwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgIFRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0
aXZlKSAtPiAoYm9vbCBzdWNlZWRlZCkgU3luY2hyb25vdXMKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNmI0ZWYyMTFmMmEzODMwNzA1
NGM1MTI2MWI3MTYxZmM3ZDA4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcApAQCAtMCww
ICsxLDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hDb3VudGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworc3RhdGljIGJvb2wgY2F0ZWdvcnlDYW5NaXhXaXRoT3RoZXJzKEF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQoreworICAgIHJldHVybiBjYXRlZ29yeSA9
PSBBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZDsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKQorICAgIDogbV9zZXNz
aW9uKEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkpCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcjo6flJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpID0gZGVmYXVsdDsK
Kwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmFkZFByb3h5KFdlYWtQdHI8
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+JiYgcHJveHkpCit7CisgICAgYXV0byBpZCA9IHByb3h5
LT5wcm9jZXNzSWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlk
KSk7CisgICAgbV9wcm94aWVzLnNldChpZCwgV1RGTW92ZShwcm94eSkpOworfQorCit2b2lkIFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkoY29uc3QgUHJvY2Vzc0lk
ZW50aWZpZXImIGlkKQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAg
ICBtX3Byb3hpZXMucmVtb3ZlKGlkKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkqIFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6Z2V0UHJveHkoY29uc3QgUHJvY2Vzc0lkZW50
aWZpZXImIGlkKQoreworICAgIGF1dG8gcmVzdWx0cyA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAg
ICBpZiAocmVzdWx0cyAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIHJldHVybiByZXN1bHRz
LT52YWx1ZS5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyhjb25zdCBQcm9jZXNz
SWRlbnRpZmllciYgaWQsIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBSb3V0
ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMo
aWQpKTsKKyAgICBhdXRvIHByb3h5ID0gZ2V0UHJveHkoaWQpOworICAgIGlmICghcHJveHkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChwcm94eS0+Y2F0ZWdvcnkoKSA9PSBjYXRlZ29yeSAm
JiBwcm94eS0+cm91dGVTaGFyaW5nUG9saWN5KCkgPT0gcG9saWN5KQorICAgICAgICByZXR1cm47
CisKKyAgICBIYXNoQ291bnRlZFNldDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgV1RGOjpJ
bnRIYXNoPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRy
YWl0czxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4+IGNhdGVnb3J5Q291bnRzOworICAgIEhh
c2hDb3VudGVkU2V0PFJvdXRlU2hhcmluZ1BvbGljeSwgV1RGOjpJbnRIYXNoPFJvdXRlU2hhcmlu
Z1BvbGljeT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8Um91dGVTaGFyaW5nUG9saWN5Pj4g
cG9saWN5Q291bnRzOworICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1
ZXMoKSkgeworICAgICAgICBjYXRlZ29yeUNvdW50cy5hZGQob3RoZXJQcm94eS0+Y2F0ZWdvcnko
KSk7CisgICAgICAgIHBvbGljeUNvdW50cy5hZGQob3RoZXJQcm94eS0+cm91dGVTaGFyaW5nUG9s
aWN5KCkpOworICAgIH0KKworICAgIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nl
c3Npb246OlBsYXlBbmRSZWNvcmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6
UGxheUFuZFJlY29yZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRp
b1Nlc3Npb246OlJlY29yZEF1ZGlvKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246
OlJlY29yZEF1ZGlvOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlv
U2Vzc2lvbjo6TWVkaWFQbGF5YmFjaykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9u
OjpNZWRpYVBsYXliYWNrOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1
ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRTb3VuZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9T
ZXNzaW9uOjpTb2xvQW1iaWVudFNvdW5kOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNv
bnRhaW5zKEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBB
dWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5j
b250YWlucyhBdWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZykpCisgICAgICAgIGNhdGVnb3J5
ID0gQXVkaW9TZXNzaW9uOjpBdWRpb1Byb2Nlc3Npbmc7CisgICAgZWxzZQorICAgICAgICBjYXRl
Z29yeSA9IEF1ZGlvU2Vzc2lvbjo6Tm9uZTsKKworICAgIGlmIChwb2xpY3lDb3VudHMuY29udGFp
bnMoUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybVZpZGVvKSkKKyAgICAgICAgcG9saWN5ID0g
Um91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybVZpZGVvOworICAgIGVsc2UgaWYgKHBvbGljeUNv
dW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW8pKQorICAgICAg
ICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW87CisgICAgZWxzZSBp
ZiAocG9saWN5Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQp
KQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkluZGVwZW5kZW50OworICAg
IGVsc2UKKyAgICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0OworCisg
ICAgbV9zZXNzaW9uLT5zZXRDYXRlZ29yeShjYXRlZ29yeSwgcG9saWN5KTsKK30KKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQ
cm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZl
clNpemUpCit7CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygp
KSB7CisgICAgICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICBpZiAob3RoZXJQcm94eS0+cHJlZmVycmVkQnVmZmVyU2l6ZSgpIDwgcHJlZmVycmVkQnVm
ZmVyU2l6ZSkKKyAgICAgICAgICAgIHByZWZlcnJlZEJ1ZmZlclNpemUgPSBvdGhlclByb3h5LT5w
cmVmZXJyZWRCdWZmZXJTaXplKCk7CisgICAgfQorCisgICAgbV9zZXNzaW9uLT5zZXRQcmVmZXJy
ZWRCdWZmZXJTaXplKHByZWZlcnJlZEJ1ZmZlclNpemUpOworfQorCitib29sIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcjo6dHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKGNvbnN0IFByb2Nl
c3NJZGVudGlmaWVyJiBpZCwgYm9vbCBhY3RpdmUpCit7CisgICAgQVNTRVJUKG1fcHJveGllcy5j
b250YWlucyhpZCkpOworICAgIGF1dG8gcHJveHkgPSBnZXRQcm94eShpZCk7CisgICAgaWYgKCFw
cm94eSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc2l6ZV90IGFjdGl2ZVByb3h5Q291
bnQgeyAwIH07CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygp
KSB7CisgICAgICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICBpZiAob3RoZXJQcm94eS0+aXNBY3RpdmUoKSkKKyAgICAgICAgICAgICsrYWN0aXZlUHJv
eHlDb3VudDsKKyAgICB9CisKKyAgICBpZiAoIWFjdGl2ZSAmJiBhY3RpdmVQcm94eUNvdW50ID4g
MSkgeworICAgICAgICAvLyBUaGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBidXQgb3Ro
ZXIgcHJveGllcyBhcmUgc3RpbGwKKyAgICAgICAgLy8gYWN0aXZlLiBOby1vcCwgYW5kIHJldHVy
biBkZWFjdGl2YXRpb24gd2FzIHN1Y2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorCisgICAgaWYgKCFhY3RpdmUpIHsKKyAgICAgICAgLy8gVGhpcyBwcm94eSB3YW50cyB0byBk
ZS1hY3RpdmF0ZSwgYW5kIGlzIHRoZSBsYXN0IHJlbWFpbmluZyBhY3RpdmUKKyAgICAgICAgLy8g
cHJveHkuIERlYWN0aXZhdGUgdGhlIHNlc3Npb24sIGFuZCByZXR1cm4gd2hldGhlciB0aGF0IGRl
YWN0aXZhdGlvbgorICAgICAgICAvLyB3YXMgc3VjZXNzZnVsOworICAgICAgICByZXR1cm4gbV9z
ZXNzaW9uLT50cnlUb1NldEFjdGl2ZShmYWxzZSk7CisgICAgfQorCisgICAgaWYgKGFjdGl2ZSAm
JiAhYWN0aXZlUHJveHlDb3VudCkgeworICAgICAgICAvLyBUaGlzIHByb3h5IGFuZCBvbmx5IHRo
aXMgcHJveHkgd2FudHMgdG8gYmVjb21lIGFjdGl2ZS4gQWN0aXZhdGUKKyAgICAgICAgLy8gdGhl
IHNlc3Npb24sIGFuZCByZXR1cm4gd2hldGhlciB0aGF0IGFjdGl2YXRpb24gd2FzIHN1Y2Nlc3Nm
dWwuCisgICAgICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGFjdGl2ZSk7Cisg
ICAgfQorCisgICAgLy8gSWYgdGhpcyBwcm94eSBpcyBBbWJpZW50LCBhbmQgdGhlIHNlc3Npb24g
aXMgYWxyZWFkeSBhY3RpdmUsIHRoaXMKKyAgICAvLyBwcm94eSB3aWxsIG1peCB3aXRoIHRoZSBh
Y3RpdmUgcHJveGllcy4gTm8tb3AsIGFuZCByZXR1cm4gYWN0aXZhdGlvbgorICAgIC8vIHdhcyBz
dWNlc3NmdWwuCisgICAgaWYgKGNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyhwcm94eS0+Y2F0ZWdv
cnkoKSkpCisgICAgICAgIHJldHVybiB0cnVlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICAvLyBPdGhlcndpc2UsIHRoaXMgcHJveHkgd2FudHMgdG8gYmVjb21lIGFjdGl2ZSwgYnV0
IHRoZXJlIGFyZSBvdGhlcgorICAgIC8vIHByb3hpZXMgd2hvIGFyZSBhbHJlYWR5IGFjdGl2ZS4g
V2FsayBvdmVyIHRoZSBwcm94aWVzLCBhbmQgaW50ZXJydXB0CisgICAgLy8gdGhvc2UgcHJveGll
cyB3aG9zZSBjYXRlb2dyaWVzIGluZGljYXRlIHRoZXkgY2Fubm90IG1peCB3aXRoIG90aGVycy4K
KyAgICBmb3IgKGF1dG8mIG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAg
ICAgaWYgKCFvdGhlclByb3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICgh
b3RoZXJQcm94eS0+aXNBY3RpdmUoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IGlmIChjYXRlZ29yeUNhbk1peFdpdGhPdGhlcnMob3RoZXJQcm94eS0+Y2F0ZWdvcnkoKSkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBvdGhlclByb3h5LT5iZWdpbkludGVycnVw
dGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVtSW50ZXJy
dXB0aW9uKTsKKyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiB0cnVlOworCit9CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhN2Y3NjFm
NmIxZTg1YmE3MTU4ZTBiZGY0MGM1ZmMyM2JhYTE3YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
aApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTsK
KworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyCisgICAgOiBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyPiB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyKCk7CisgICAgflJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpOworCisgICAg
dm9pZCBhZGRQcm94eShXZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiYmKTsKKyAgICB2
b2lkIHJlbW92ZVByb3h5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJik7CisgICAg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkqIGdldFByb3h5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyJik7CisKKyAgICB2b2lkIHNldENhdGVnb3J5Rm9yUHJvY2Vzcyhjb25zdCBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIHZvaWQgc2V0UHJlZmVycmVk
QnVmZmVyU2l6ZUZvclByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImLCBz
aXplX3QpOworCisgICAgdXNpbmcgU2V0QWN0aXZlQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+OworICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKGNvbnN0
IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJiwgYm9vbCk7CisKKyAgICBjb25zdCBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb24mIHNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb247IH0KKwor
cHJpdmF0ZToKKyAgICBVbmlxdWVSZWY8V2ViQ29yZTo6QXVkaW9TZXNzaW9uPiBtX3Nlc3Npb247
CisgICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgV2Vha1B0cjxSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eT4+IG1fcHJveGllczsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGIz
ZGVjN2NkMzlkMDEwMmI4NWYwZjk1ZGY0ZTQzMGY5YWUxM2ZkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMjU2ZGM5OTA1YmY0NDY2ZDBjMmFk
NTc0ZDhjMzY4YTE0YmU2OTYzYS4uNGJhMTRkYmFmMjRiMjQxZTU5ZGIwYTdmMjA4MGQwMmQwMjdj
M2IwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMzQs
NiArMjM0LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToK
ICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktp
dDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3RlQ0RN
SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50aWZpZXIn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBk
MDdmMmJmNWIyMWI2MjBiOTE5ODEwMTk5NDBlMjc0NGVkMjUwMGNkLi42NzUyY2I2ZDQ1ZTVhZjAw
NWVmZjgyN2E3NjZiYTNiYjFiM2E4ZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNjEsNiArNjEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0NETUluc3RhbmNlU2Vzc2lvbi5oPgogI2VuZGlmCiAKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikK
KyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKICNpZiBQTEFURk9S
TShDT0NPQSkKIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTWFjaFNlbmRSaWdodDsKQEAgLTEwMjUs
NCArMTAyOSwxOSBAQCB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDRE1J
bnN0YW5jZTo6SERDUFN0YXR1cz4gewogCiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNTSU9O
KQordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6QW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlOjpTb2xvQW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpNZWRpYVBsYXliYWNrLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlOjpSZWNvcmRBdWRpbywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6UGxheUFuZFJlY29yZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6QXVkaW9Qcm9jZXNzaW5nCisgICAgPjsKK307CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA2ZDBlOGM2OGEwMjM4ODczYjY4NjQyMzgzZTViN2Jj
NWFhMDYzN2RjLi5kMDA2MjNhNjI5Njc4MWNhZDdkY2E2ZWJlMDVkMTk2M2FkNjY5NjQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKQEAgLTIyLDExICsyMiwxNCBAQAogLy8gVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCitHUFVQcm9jZXNzL0dQVVBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcAogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKK0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCitHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlci5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVBy
b3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcAogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHAKQEAgLTU0Niw2
ICs1NDksNyBAQCBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCitXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVDRE0uY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5LmNwcAog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKaW5kZXggMGE3NzY5Mzk4NzllYjY5NWZmYmZlYWZiZWQ4YmMyZjljNDRjZWZhNC4uNjQ0
YmNiYzM1YjQ1OGY0M2U1M2JmYjEwYTkxZDM3YmM5ODY1NjE3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dApAQCAtNjU0LDYgKzY1NCw4IEBAIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcAogTGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNw
cAogUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUzZWRlNTY2ZDNkZThl
OTk3NTRiOTY2MjU0NjRiNjFlYjE3NDhhMzguLjVmNDhhODEzYWUyOTllZjVlYTRhZWQ3ZGMwZmE0
YzMzMWVkMzYwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTc0Myw2ICsxNzQzLDggQEAKIAkJQ0RBQzIwRjgyM0ZDNzI2QzAwMjFE
RUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQzIwRjUyM0ZDMzgzQjAw
MjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OwogCQlDREFDMjBGOTIzRkM3MjZDMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RBQzIwRUMyM0ZDMzgzODAwMjFERUUzIC8qIFJlbW90ZUNETUluc3Rh
bmNlU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0RBQzIwRkEyM0ZD
NzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEVGMjNGQzM4Mzkw
MDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNE
QkI0OUYwMjQwRDU3RDIwMDE3QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQkI0OUVFMjQwRDU3RDIw
MDE3QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsKKwkJQ0RCQjQ5RkQyNDBE
OUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQkI0OUZDMjQwRDlBNzIw
MDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi87IH07CiAJCUNE
QzI4MzFEMjAxQkQ3OUQwMEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzI4MzFCMjAxQkQ3OUQw
MEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCAqLzsgfTsKIAkJQ0RDQTg1QzkxMzJB
QkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4NUM3MTMyQUJBNEUwMEU5
NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi87IH07CiAJCUNFMTFBRDUy
MUNCQzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UxMUFENTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVT
aWduaW5nLmggKi87IH07CkBAIC01MDk0LDYgKzUwOTYsMTcgQEAKIAkJQ0RBQzIwRjQyM0ZDMzgz
QTAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDREFDMjBGNTIzRkMzODNCMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFu
Y2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBQzIwRjYyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90
ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BV
UGxhdGZvcm1TdHJhdGVnaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVBsYXRmb3JtU3RyYXRlZ2ll
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlFRjI0MEQ1N0QyMDAxN0My
OTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVBs
YXRmb3JtU3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0
OUY0MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQXVkaW9TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
QkI0OUY1MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RCQjQ5RjYyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY3MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY4MjQwRDhE
NTMwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNz
aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlm
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZDMjQwRDlBNzIwMDE3
QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RDMjgzMUIyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmll
dy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaDsgcGF0aCA9IGlvcy9m
dWxsc2NyZWVuL1dLRnVsbHNjcmVlblN0YWNrVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREMyODMxQzIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBwYXRo
ID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDREMzODJGNzE3MjExNTA2MDA4QTJGQzMgLyogQ0ZOZXR3b3JrLmZy
YW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ0ZOZXR3b3JrLmZyYW1ld29yazsgcGF0aCA9IC9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NGTmV0d29yay5mcmFtZXdvcms7IHNvdXJjZVRyZWUg
PSAiPGFic29sdXRlPiI7IH07CkBAIC01MTAxLDYgKzUxMTQsMTcgQEAKIAkJQ0RDQTg1QzYxMzJB
QkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENBODVDNzEzMkFCQTRFMDBF
OTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJz
b2x1dGU+IjsgfTsKKwkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcwMjQwREQ0RUYwMEY3QjhDNCAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDREQ1MzU3MjI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTczMjQwRERFMDYwMEY3QjhDNCAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzQyNDBEREUwNzAw
RjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhD
NCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNERDUzNTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3OTI0
MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNS
ZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTExQUQ0RjFD
QkM0N0Y4MDA2ODFFRTUgLyogQ29kZVNpZ25pbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDb2RlU2lnbmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0UxMUFENTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWduaW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvZGVTaWduaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNFMUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNl
c1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3NlcnRpb25TZXJ2aWNl
c1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTM3OCw2ICs1NDAyLDExIEBA
CiAJCQkJOUI1QkVDMjkyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5jcHAgKi8sCiAJCQkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5oICovLAogCQkJCTlCNUJFQzJFMjQwMTAxOEMwMDcwQzZFRiAvKiBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjUy
NDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAgKi8sCisJCQkJQ0RCQjQ5
RjQyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5oICovLAorCQkJCUNERDUz
NTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8s
CisJCQkJQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24uaCAqLywKKwkJCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVk
aW9TZXNzaW9uSWRlbnRpZmllci5oICovLAogCQkJCUNEQUMyMEJGMjNGQzJGNzUwMDIxREVFMyAv
KiBSZW1vdGVDRE0uY3BwICovLAogCQkJCUNEQUMyMEJBMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1v
dGVDRE0uaCAqLywKIAkJCQlDREFDMjBCODIzRkMyRjczMDAyMURFRTMgLyogUmVtb3RlQ0RNQ29u
ZmlndXJhdGlvbi5oICovLApAQCAtNTQyMCw2ICs1NDQ5LDEyIEBACiAJCQkJOUIxMjI5Q0MyM0ZG
MjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLywKIAkJ
CQk5QjEyMjlDQjIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuaCAqLywKIAkJCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjcyNDBEOEM5NTAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCAqLywKKwkJCQlDREJCNDlGNjI0MEQ4
Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCAqLywKKwkJCQlDREJCNDlG
ODI0MEQ4RDUzMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4g
Ki8sCisJCQkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlci5jcHAgKi8sCisJCQkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oICovLAorCQkJCUNERDUzNTcwMjQwREQ0RUYwMEY3
QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJ
CQkJMDcxQkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAg
Ki8sCiAJCQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94
eS5oICovLAogCQkJCUNEQUMyMDc5MjNGQjFFMjEwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5
UHJveHkuY3BwICovLApAQCAtNjcwNiw2ICs2NzQxLDggQEAKIAkJCQkyRDlGQjIwQzIzNzUyMDlE
MDA0OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCiAJCQkJMkQ5RkIy
MDAyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJ
CQkyRDlGQjIwOTIzNzUyMDlEMDA0OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlFRjI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcCAqLywKKwkJCQlDREJCNDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BV
UGxhdGZvcm1TdHJhdGVnaWVzLmggKi8sCiAJCQkJMkQ5RkIyMDEyMzc1MjA5RDAwNDlGOTM2IC8q
IEdQVVByb2Nlc3MuY3BwICovLAogCQkJCTJEOUZCMjE1MjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQ
cm9jZXNzLmggKi8sCiAJCQkJMkQ5RkIyMDIyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3Mu
bWVzc2FnZXMuaW4gKi8sCkBAIC05ODMxLDYgKzk4NjgsMTUgQEAKIAkJCQkxQTA0M0I1QzEyNEQ1
RTlEMDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQkxQThF
RkE2RTEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAogCQkJCTFBOEVGQTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VzLmgg
Ki8sCisJCQkJQ0RENTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzQyNDBEREUwNzAwRjdC
OEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCUNERDUz
NTczMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc5MjQw
RERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaCAqLywKKwkJCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTcyMjQwRERFMDYw
MEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0RE
NTM1NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNS
ZXBsaWVzLmggKi8sCiAJCQkJQ0RBQzIwRjIyM0ZDMzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETUZh
Y3RvcnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RBQzIwRjMyM0ZDMzgzQTAw
MjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBQzIw
RUUyM0ZDMzgzOTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzUmVwbGll
cy5oICovLApAQCAtMTA1MzQsNiArMTA1ODAsNyBAQAogCQkJCUJDMDZGNDRBMTJEQkQxRjUwMDJE
NzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzA2RjQzQTEyREJDQ0ZCMDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREE5NDRBNDE4ODRFNEYw
MDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREJCNDlGMDI0
MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyREEwNDlCODE4MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDMENFNzJBRDEyNDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVz
c2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDNzVBMUIxQjMzNjgyNzAwNTY3NDVCIC8qIEhh
bmdEZXRlY3Rpb25EaXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDc1Miw2ICsxMDc5OSw3
IEBACiAJCQkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjEyMjlDRDIzRkYyNUYyMDA4Q0E3
NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTlCNUJFQzJBMjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHku
aCBpbiBIZWFkZXJzICovLAorCQkJCUNEQkI0OUZEMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDNzIz
RkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBD
NTIzRkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RBQzIwQ0QyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnkuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZTVjZWM4ZWExYjY4
N2Q1YmRkNzE3ZGNkYzMzMWM0NjFhZGQ1NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKQEAgLTAsMCAr
MSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVBdWRpb1Nlc3Npb24uaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJHUFVQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCitVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPiBSZW1vdGVBdWRpb1Nlc3Np
b246OmNyZWF0ZShXZWJQcm9jZXNzJiBwcm9jZXNzKQoreworICAgIFJlbW90ZUF1ZGlvU2Vzc2lv
bkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKKyAgICBwcm9jZXNzLmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpFbnN1cmVBdWRpb1Nlc3Npb24oKSwgTWVzc2FnZXM6OkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OkVuc3VyZUF1ZGlvU2Vzc2lvbjo6UmVwbHkoY29uZmlndXJhdGlv
biksIHsgfSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPihw
cm9jZXNzLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9u
OjpSZW1vdGVBdWRpb1Nlc3Npb24oV2ViUHJvY2VzcyYgcHJvY2VzcywgUmVtb3RlQXVkaW9TZXNz
aW9uQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgOiBtX3Byb2Nlc3MocHJvY2Vz
cykKKyAgICAsIG1fY29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKQoreworfQor
CitSZW1vdGVBdWRpb1Nlc3Npb246On5SZW1vdGVBdWRpb1Nlc3Npb24oKSA9IGRlZmF1bHQ7CisK
K0lQQzo6Q29ubmVjdGlvbiYgUmVtb3RlQXVkaW9TZXNzaW9uOjpjb25uZWN0aW9uKCkKK3sKKyAg
ICByZXR1cm4gbV9wcm9jZXNzLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlU
eXBlIHR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7CisgICAgY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpTZXRDYXRlZ29yeSh0eXBl
LCBwb2xpY3kpLCB7IH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVy
cmVkQnVmZmVyU2l6ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6
ZSksIHsgfSk7Cit9CisKK2Jvb2wgUmVtb3RlQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUlu
dGVybmFsKGJvb2wgYWN0aXZlKQoreworICAgIGJvb2wgc3VjY2VlZGVkOworICAgIGNvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRyeVRvU2V0
QWN0aXZlKGFjdGl2ZSksIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6VHJ5VG9T
ZXRBY3RpdmU6OlJlcGx5KHN1Y2NlZWRlZCksIHsgfSk7CisgICAgcmV0dXJuIHN1Y2NlZWRlZDsK
K30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKFJlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQoreworICAgIGJvb2wg
bXV0ZWRTdGF0ZUNoYW5nZWQgPSBjb25maWd1cmF0aW9uLmlzTXV0ZWQgIT0gbV9jb25maWd1cmF0
aW9uLmlzTXV0ZWQ7CisKKyAgICBtX2NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOworCisg
ICAgaWYgKG11dGVkU3RhdGVDaGFuZ2VkKQorICAgICAgICBoYW5kbGVNdXRlZFN0YXRlQ2hhbmdl
KCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpiZWdpbkludGVycnVwdGlvbihQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQoreworICAgIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmJlZ2luSW50ZXJydXB0aW9uKHR5
cGUpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5kSW50ZXJydXB0aW9uKFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyBmbGFncykKK3sKKyAgICBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5lbmRJbnRlcnJ1cHRpb24o
ZmxhZ3MpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThmOGRj
ODIzZTNmMDEwN2MxOTNiZTk0OGJmN2ZiOTY4YmNlNzlmNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKQEAg
LTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZv
cm1NZWRpYVNlc3Npb24uaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247Citj
bGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb24gZmluYWwKKyAgICA6
IHB1YmxpYyBXZWJDb3JlOjpBdWRpb1Nlc3Npb24KKyAgICAsIElQQzo6TWVzc2FnZVJlY2VpdmVy
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgVW5p
cXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4gY3JlYXRlKFdlYlByb2Nlc3MmKTsKKyAgICB2aXJ0
dWFsIH5SZW1vdGVBdWRpb1Nlc3Npb24oKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgVW5pcXVl
UmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4gV1RGOjptYWtlVW5pcXVlUmVmV2l0aG91dEZhc3RNYWxs
b2NDaGVjazxSZW1vdGVBdWRpb1Nlc3Npb24+KFdlYlByb2Nlc3MmLCBSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uJiYpOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbihXZWJQcm9jZXNzJiwg
UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYmKTsKKyAgICBJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24oKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
KworICAgIC8vIE1lc3NhZ2VzCisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChSZW1vdGVB
dWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24o
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUpOworICAgIHZv
aWQgZW5kSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRl
cnJ1cHRpb25GbGFncyk7CisKKyAgICAvLyBBdWRpb1Nlc3Npb24KKyAgICB2b2lkIHNldENhdGVn
b3J5KENhdGVnb3J5VHlwZSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KSBmaW5hbDsKKyAg
ICB2b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KSBmaW5hbDsKKyAgICBib29sIHRy
eVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCkgZmluYWw7CisKKyAgICBDYXRlZ29yeVR5cGUgY2F0
ZWdvcnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uY2F0ZWdvcnk7IH0K
KyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnJvdXRlU2hhcmluZ1BvbGljeTsgfQor
ICAgIFN0cmluZyByb3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29u
ZmlndXJhdGlvbi5yb3V0aW5nQ29udGV4dFVJRDsgfQorICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uc2FtcGxlUmF0ZTsgfQorICAgIHNp
emVfdCBidWZmZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmJ1
ZmZlclNpemU7IH0KKyAgICBzaXplX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscygpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5udW1iZXJPZk91dHB1dENoYW5uZWxzOyB9Cisg
ICAgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nv
bmZpZ3VyYXRpb24ucHJlZmVycmVkQnVmZmVyU2l6ZTsgfQorICAgIGJvb2wgaXNNdXRlZCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5pc011dGVkOyB9CisgICAgYm9vbCBp
c0FjdGl2ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5pc0FjdGl2ZTsg
fQorCisgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbkNv
bmZpZ3VyYXRpb24gbV9jb25maWd1cmF0aW9uOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg5NjI4ZjY1N2VmN2NkYmNkYmE3
NzlkNDFkYjk5YmNhNWQ0NGIxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAg
KzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVE
SU9fU0VTU0lPTikKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9TZXNzaW9uIE5vdFJlZkNvdW50
ZWQgeworICAgIENvbmZpZ3VyYXRpb25DaGFuZ2VkKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKKyAgICBCZWdpbkludGVycnVwdGlv
bihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlv
blR5cGUgdHlwZSkKKyAgICBFbmRJbnRlcnJ1cHRpb24oZW51bTp1aW50OF90IFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyBmbGFncykKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJl
NmM0MzYyZWQ5NWFhNmM1MDFjZDBhNmEyMDNkMmI1ZWE3MWYwYjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbkNv
bmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitz
dHJ1Y3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiB7CisKKyAgICBXZWJDb3JlOjpB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeTsKKyAgICBXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5OworICAgIFN0cmluZyByb3V0aW5nQ29udGV4
dFVJRDsKKyAgICBmbG9hdCBzYW1wbGVSYXRlOworICAgIHVpbnQ2NF90IGJ1ZmZlclNpemU7Cisg
ICAgdWludDY0X3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKKyAgICB1aW50NjRfdCBwcmVmZXJy
ZWRCdWZmZXJTaXplOworICAgIGJvb2wgaXNNdXRlZDsKKyAgICBib29sIGlzQWN0aXZlOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjYXRlZ29yeTsKKyAgICAgICAg
ZW5jb2RlciA8PCByb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgICAgIGVuY29kZXIgPDwgcm91dGlu
Z0NvbnRleHRVSUQ7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlUmF0ZTsKKyAgICAgICAgZW5j
b2RlciA8PCBidWZmZXJTaXplOworICAgICAgICBlbmNvZGVyIDw8IG51bWJlck9mT3V0cHV0Q2hh
bm5lbHM7CisgICAgICAgIGVuY29kZXIgPDwgcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAg
ZW5jb2RlciA8PCBpc011dGVkOworICAgICAgICBlbmNvZGVyIDw8IGlzQWN0aXZlOworICAgIH0K
KworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBPcHRpb25hbDxSZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
PiBjYXRlZ29yeTsKKyAgICAgICAgZGVjb2RlciA+PiBjYXRlZ29yeTsKKyAgICAgICAgaWYgKCFj
YXRlZ29yeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0
aW9uYWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiByb3V0ZVNoYXJpbmdQb2xpY3k7Cisg
ICAgICAgIGRlY29kZXIgPj4gcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBpZiAoIXJvdXRl
U2hhcmluZ1BvbGljeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8U3RyaW5nPiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgZGVjb2RlciA+
PiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgaWYgKCFyb3V0aW5nQ29udGV4dFVJRCkKKyAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+
IHNhbXBsZVJhdGU7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxlUmF0ZTsKKyAgICAgICAgaWYg
KCFzYW1wbGVSYXRlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBPcHRpb25hbDx1aW50NjRfdD4gYnVmZmVyU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBidWZm
ZXJTaXplOworICAgICAgICBpZiAoIWJ1ZmZlclNpemUpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBudW1iZXJPZk91dHB1dENo
YW5uZWxzOworICAgICAgICBkZWNvZGVyID4+IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAg
ICAgIGlmICghbnVtYmVyT2ZPdXRwdXRDaGFubmVscykKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IHByZWZlcnJlZEJ1ZmZlclNp
emU7CisgICAgICAgIGRlY29kZXIgPj4gcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgaWYg
KCFwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgICAgICBPcHRpb25hbDxib29sPiBpc011dGVkOworICAgICAgICBkZWNvZGVyID4+IGlz
TXV0ZWQ7CisgICAgICAgIGlmICghaXNNdXRlZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNBY3RpdmU7CisgICAgICAgIGRlY29k
ZXIgPj4gaXNBY3RpdmU7CisgICAgICAgIGlmICghaXNBY3RpdmUpCisgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAgICAgICAgV1RGTW92
ZSgqY2F0ZWdvcnkpLAorICAgICAgICAgICAgV1RGTW92ZSgqcm91dGVTaGFyaW5nUG9saWN5KSwK
KyAgICAgICAgICAgIFdURk1vdmUoKnJvdXRpbmdDb250ZXh0VUlEKSwKKyAgICAgICAgICAgICpz
YW1wbGVSYXRlLAorICAgICAgICAgICAgKmJ1ZmZlclNpemUsCisgICAgICAgICAgICAqbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywKKyAgICAgICAgICAgICpwcmVmZXJyZWRCdWZmZXJTaXplLAorICAg
ICAgICAgICAgKmlzTXV0ZWQsCisgICAgICAgICAgICAqaXNBY3RpdmUsCisgICAgICAgIH19Owor
ICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25J
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTQ4MGM2OTRlMmIzZDk3YjU5NmUy
YTA3MzAzZDY3ZmIwZjk5YmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgKQEAgLTAsMCAr
MSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbW90ZUF1ZGlvU2Vzc2lvbklk
ZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIgPSBP
YmplY3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXJUeXBlPjsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKaW5kZXggNWQ3YThiOGQx
MTI0YjJhNTI4YWQ3M2JkYzk2ZDlhOTc4MGRjMjA0Yy4uMDJlNmIyOTljOTdjODJkYTdhZThlZGQ1
ZmRhMTI3ZGQ2MjU0YTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1
ZGUgIlJlbW90ZUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb0Rlc3RpbmF0aW9uLmg+CkBAIC0zNiwyMiArMzcsMjQgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBXZWJNZWRpYVN0
cmF0ZWd5Ojp+V2ViTWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsKIAogI2lmIEVOQUJMRShXRUJf
QVVESU8pCi1zdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVk
aWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJh
Y2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCitzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5h
dGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNl
SWQsCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKICAgICBpZiAobV91c2VHUFVQcm9jZXNzKQogICAgICAgICByZXR1cm4gUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5OjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJl
ck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CiAj
ZW5kaWYKLSAgICByZXR1cm4gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxi
YWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworICAgIHJldHVybiBNZWRpYVN0cmF0ZWd5OjpjcmVhdGVB
dWRpb0Rlc3RpbmF0aW9uKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogfQogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotdm9pZCBXZWJNZWRpYVN0cmF0ZWd5OjpyZWdp
c3RlckNETUZhY3RvcmllcyhWZWN0b3I8V2ViQ29yZTo6Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMp
Cit2b2lkIFdlYk1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1G
YWN0b3J5Kj4mIGZhY3RvcmllcykKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYg
KG1fdXNlR1BVUHJvY2VzcykgewpAQCAtNTksNyArNjIsMTggQEAgdm9pZCBXZWJNZWRpYVN0cmF0
ZWd5OjpyZWdpc3RlckNETUZhY3RvcmllcyhWZWN0b3I8V2ViQ29yZTo6Q0RNRmFjdG9yeSo+JiBm
YWN0b3IKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgotICAgIFdlYkNvcmU6OkNETUZh
Y3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoZmFjdG9yaWVzKTsKKyAgICBNZWRpYVN0
cmF0ZWd5OjpyZWdpc3RlckNETUZhY3RvcmllcyhmYWN0b3JpZXMpOworfQorI2VuZGlmCisKKyNp
ZiBVU0UoQVVESU9fU0VTU0lPTikKK1VuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+IFdlYk1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
ICAgIGlmIChtX3VzZUdQVVByb2Nlc3MpCisgICAgICAgIHJldHVybiBSZW1vdGVBdWRpb1Nlc3Np
b246OmNyZWF0ZShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKSk7CisjZW5kaWYKKyAgICByZXR1cm4g
TWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9TZXNzaW9uKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3ku
aAppbmRleCA0ZmFiMGU5NDRmYzE0ZTY4NDM3OWUzMDA4MTYzYmUxNjJkZDg5YjRkLi40YzVjZDdj
MzUwOGQ2ZGJmOWI0ZmYwYmFiMGRiNTJmNzg0ZTYzMzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApAQCAtNDYsNiAr
NDYsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxX
ZWJDb3JlOjpDRE1GYWN0b3J5Kj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgVW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbj4gY3JlYXRlQXVk
aW9TZXNzaW9uKCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
ICAgICBib29sIG1fdXNlR1BVUHJvY2VzcyB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQppbmRleCBiOTA5ZWNjNDM5YmNkM2M2ZjZkYTgwNDFjNmVmMjkzZmYz
NDY2OTZmLi42YjQ3M2NlOTNhYjhlZWM5MWQ5M2I3MDg3MDQzZWJhNzgzNWYxNmQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC02NSwyNiArNjUsOSBAQCBQYXN0ZWJvYXJkU3Ry
YXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkK
ICAgICByZXR1cm4gdGhpczsKIH0KIAotY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1
YmxpYyBNZWRpYVN0cmF0ZWd5IHsKLXByaXZhdGU6Ci0jaWYgRU5BQkxFKFdFQl9BVURJTykKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
Ci0gICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNl
SWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxl
UmF0ZSk7Ci0gICAgfQotI2VuZGlmCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2
b2lkIHJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5Kj4mIGZhY3Rvcmllcykg
b3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpDRE1GYWN0b3J5OjpwbGF0
Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKGZhY3Rvcmllcyk7Ci0gICAgfQotI2VuZGlmCi19OwotCiBN
ZWRpYVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3ko
KQogewotICAgIHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKKyAgICByZXR1cm4gbmV3IE1l
ZGlhU3RyYXRlZ3k7CiB9CiAKIGNsYXNzIFdlYkJsb2JSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBC
bG9iUmVnaXN0cnkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392482</attachid>
            <date>2020-03-04 14:16:49 -0800</date>
            <delta_ts>2020-03-04 17:29:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200304141648.patch</filename>
            <type>text/plain</type>
            <size>104328</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkODA0MjkxNDkyNWFlNWJmYTc5ZWZj
ZmUxYTMwZDc5YjU1Yjg3NjEuLjcxNWExOGJmMDQzMDAxYjE3ZjUyODUyMzQ4OGUyNmYwOGIxNWU1
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBV
bmlxdWVSZWYgdG8gdGhlIGxpc3Qgb2YgZm9yd2FyZC1kZWNsYXJlZCB0ZW1wbGF0ZSB0eXBlcy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisKIDIwMjAtMDMtMDMgIEppdGVuIE1laHRhICA8
am1laHRhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBIVFRQIEFsdGVybmF0aXZlIFNlcnZp
Y2VzIFN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTFkOTE0MmI0MWVkYzIwNDViMDFkNzE4YzYzZjE0
MTBhNmM0MjNhLi4xZGI3MGE2NmUxYmRhOThiYTJkNTU3ZGFmNGYxNDg3M2UyODY1ZGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
biBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5IHdoaWNoIHByb3ZpZGVzIGRlZmF1bHQg
aW1wbGVtZW50YXRpb25zIG9mIHRoZQorICAgICAgICBwbGF0Zm9ybSBjcmVhdGlvbiBtZXRob2Rz
LCBzbyB0aGV5IGRvbid0IG5lZWQgdG8gYmUgcmUtaW1wbGVtZW50ZWQgYnkgZWFjaCBjbGllbnQg
dW5sZXNzCisgICAgICAgIHRoYXQgY2xpZW50IG5lZWRzIHRvIG92ZXJyaWRlIHRoYXQgYmVoYXZp
b3IuCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUgZW51bWVyYXRpb25zIGlu
c2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1ZGlvU2Vzc2lvbiBtZXRo
b2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGNhc2Ugd2hlcmUg
dGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0
ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb24uaDoKKwogMjAyMC0wMi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUF0gSW1wbGVtZW50IE1vZGVybiBFTUUgQVBJIGluIHRoZSBHUFUgUHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA0NTBlN2UzNTJmM2VhYjhmMzU2MGUxNjViNzNhYmU5M2MwODQ2OTA4
Li5lMjEzNWE3ZjM1YmY0Yjg0MzQxNzVjYmU4MWQ3YTdmMTE1YTM2NjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDk1IEBACisyMDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdWJjbGFzcyBv
ZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBhdWRpbyBiZWhh
dmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAgICAgYXVkaW8g
YmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJvY2Vzcywgc2lu
Y2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFsbHkKKyAgICAg
ICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAgICAgICAgRHVl
IHRvIHRoZSB3YXkgQXVkaW9TZXNzaW9uIG5vdyByZXF1aXJlcyB0aGUgUGxhdGZvcm1TdHJhdGVn
aWVzIG9iamVjdCB0byBjcmVhdGUgYSBjb25jcmV0ZSBBdWRpb1Nlc3Npb24sIHRoZSBHUFUKKyAg
ICAgICAgcHJvY2VzcyBuZWVkcyBpdHMgb3duIFBsYXRmb3JtU3RyYXRlZ2llcyBzdWJjbGFzcywg
YnV0IHVzaW5nIHRoZSBkZWZhdWx0IE1lZGlhU3RyYXRlZ3kgZnJvbSBXZWJDb3JlLgorCisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKToKKyAg
ICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVB
dWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpsZWdhY3lDZG1GYWN0b3J5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZUxvYWRlclN0cmF0ZWd5KToKKyAgICAgICAgKFdlYktpdDo6R1BV
UGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3kpOgorICAgICAgICAo
V2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorICAg
ICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Ojppbml0aWFsaXplR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmF1
ZGlvU2Vzc2lvbk1hbmFnZXIgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Ojpwcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6ZW5kSW50ZXJydXB0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbik6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnJvdXRl
U2hhcmluZ1BvbGljeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjpwcmVmZXJyZWRCdWZmZXJTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmdldFByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRDYXRlZ29yeUZvclByb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNl
dFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2Vzc2lv
biBjb25zdCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uOjpSZW1vdGVBdWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb246OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
OjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmg6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmg6CisKIDIwMjAtMDItMjMgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIEltcGxlbWVudCBNb2Rlcm4gRU1FIEFQ
SSBpbiB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4ODZk
ZGVhNWY2ZjAzMmU5YTg4MjZlZjFkYjYwMDc0YmI2OTc3MGQyLi45OTlkYmRiNzlkNzhmZTM2YzJi
YTY0ODUwYzk1YzQyM2UwNGU4MDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUgZGVmYXVsdCBN
ZWRpYVN0cmF0ZWd5IGZyb20gV2ViQ29yZSBub3cgdGhhdCBpdCdzIGF2YWlsYWJsZS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisKIDIwMjAtMDMt
MDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEl0ZW1zIGluIHRoZSB0b29sYmFyIHRha2UgdXAgdG8gbXVjaCB2ZXJ0aWNhbCBzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYv
Rm9yd2FyZC5oCmluZGV4IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThmNzAzYThmMGQu
LjZlOTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAg
LTY4LDYgKzY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBEdW1iUHRyVHJh
aXRzPFQ+PiBjbGFzcyBSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IER1bWJQ
dHJUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJp
bmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBjbGFzcyBTdHJp
bmdUeXBlQWRhcHRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1ZVJlZjsKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBz
dHJ1Y3QgRGVmYXVsdEhhc2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEyNSw2ICsxMjYs
NyBAQCB1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3NpdGlvbjsKIHVz
aW5nIFdURjo6VGV4dFN0cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RGOjpVbmlxdWVS
ZWY7CiB1c2luZyBXVEY6OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCBhNzIxZmJiMWFkOGE1YWE2YmRhMDliNjNiM2EyYTlkOTk3YzkxMTJmLi4wMDZlMzhh
YjY5MGE1Njg1Njk4ZDc3M2QzOGViZDRlZTEyMmNhM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc0
MCw2ICsxNzQwLDcgQEAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKIHBsYXRmb3JtL0xvd1Bvd2VyTW9k
ZU5vdGlmaWVyLmNwcAogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKIHBsYXRmb3JtL01h
aW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKK3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCiBwbGF0
Zm9ybS9Ob3RJbXBsZW1lbnRlZC5jcHAKIHBsYXRmb3JtL1Bhc3RlYm9hcmQuY3BwCiBwbGF0Zm9y
bS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZjAyM2ViZDRlZGRiZjY5MzQwNTcyMzY5
N2FkZTliZjUzOTY4NTg5Li5kZGFmNzFkM2NmNGZhZmM2YjRhNzUyOTM5NDA5YzYxZDQxODZkYWU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzk4Nyw2ICsxMzk4Nyw3IEBACiAJCUNEQUU4QzA4MTc0NkI5NTcwMDUzMkQ3OCAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVh
bWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDRE1GYWlyUGxheVN0cmVhbWluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREI3MDQ1OTFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBs
YXlTdHJlYW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0My
OTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmF0ZWd5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNEMjgxRkU4NUNCODAwMTJD
NTQ1IC8qIFZpZGVvQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlk
ZW9Db25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNE
MjkxRkU4NUNCOTAwMTJDNTQ1IC8qIE1lZGlhQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RCRDNEMkExRkU4NUNCQTAwMTJDNTQ1IC8qIE1lZGlhRW5jb2RpbmdDb25maWd1
cmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUVuY29kaW5nQ29uZmlndXJh
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTk2Myw2ICsyNTk2NCw3
IEBACiAJCQkJQ0RGMkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAq
LywKIAkJCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLywKIAkJ
CQlBMTdEMjc1RDFFQUM1Nzk4MDBCRjAxRTcgLyogTWVkaWFTZWxlY3Rpb25PcHRpb24uaCAqLywK
KwkJCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0MyOTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8sCiAJ
CQkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCQlC
Qzc3MkM0QzBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJ
QkM3NzJDNEQwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdjMjRjZDA2
MDMxMzVlNGVjZjFmY2VlYTBkMTAwZjE3YmU1ZDgxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgorCisjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lv
bi5oIgorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJDRE1GYWN0b3J5
LmgiCisjaW5jbHVkZSAiTGVnYWN5Q0RNLmgiCisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKK1VuaXF1ZVJl
ZjxBdWRpb1Nlc3Npb24+IE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpCit7Cisg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJM
RShXRUJfQVVESU8pCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gTWVkaWFTdHJh
dGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KQoreworICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0
RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
c2FtcGxlUmF0ZSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCit2
b2lkIE1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5
Kj4mIGZhY3RvcmllcykKK3sKKyAgICByZXR1cm4gQ0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3RvcmllcyhmYWN0b3JpZXMpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU3RyYXRlZ3kuaAppbmRleCA2MGE1ODQ3YzhjZWMxMGI3OWI3NDlhNmZhZjg1MDNk
MTZhMTk5Yjk1Li5jZGM0ODVjZjQ0MDI3MDJjOWJhNTAxYTNiMGI0YmY2MjdkNDY4YmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCkBAIC0zMSwxNiArMzEsMjAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uOwogY2xhc3MgQXVk
aW9JT0NhbGxiYWNrOworY2xhc3MgQXVkaW9TZXNzaW9uOwogY2xhc3MgQ0RNRmFjdG9yeTsKIAog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CisjaWYgVVNFKEFV
RElPX1NFU1NJT04pCisgICAgdmlydHVhbCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBjcmVhdGVB
dWRpb1Nlc3Npb24oKTsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bigKLSAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKKyAgICAgICAgQXVkaW9JT0NhbGxiYWNr
JiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpOwogI2Vu
ZGlmCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+TWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4
IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNmMmY1N2QuLjQ2ZWM3M2RlYTgyNWNh
M2M2MjJiMTJlYmFmZTczMTNlNmZjMDM0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMjgsMTUgKzI4LDIyIEBACiAKICNpZiBVU0Uo
QVVESU9fU0VTU0lPTikKIAorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1VuaXF1
ZVJlZjxBdWRpb1Nlc3Npb24+IEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
bWFrZVVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+KCk7Cit9CisKIEF1ZGlvU2Vzc2lvbiYgQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXVk
aW9TZXNzaW9uPiBzZXNzaW9uOwotICAgIHJldHVybiBzZXNzaW9uOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPj4gc2Vzc2lvbiA9IHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkuY3JlYXRlQXVkaW9TZXNzaW9uKCk7CisgICAgcmV0
dXJuIHNlc3Npb24uZ2V0KCk7CiB9CiAKIGJvb2wgQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2
ZShib29sIGFjdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uLmgKaW5kZXggZTcwMDgyMmZmMWZlZWJkNzgyOWFlYzc1MGNjZTQwYTYwYjkyNTY2YS4uY2Zj
NDEzODYwMjVlN2E2NDhhYzJlM2I2M2I5NjVmYTQzZDU0M2QyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDQsMTMgKzQ1LDE3IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdCB7
CiAgICAgTG9uZ0Zvcm1WaWRlbwogfTsKIAotY2xhc3MgQXVkaW9TZXNzaW9uIGZpbmFsIHsKK2Ns
YXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9TZXNzaW9uKTsKKyAgICBmcmll
bmQgY2xhc3MgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj47CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxB
dWRpb1Nlc3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8QXVk
aW9TZXNzaW9uPigpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1Nl
c3Npb24mIHNoYXJlZFNlc3Npb24oKTsKKyAgICBzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lv
bj4gY3JlYXRlKCk7CisgICAgc3RhdGljIEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOwor
ICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgewor
ICAgIGVudW0gQ2F0ZWdvcnlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAg
IEFtYmllbnRTb3VuZCwKICAgICAgICAgU29sb0FtYmllbnRTb3VuZCwKQEAgLTU5LDIzICs2NCwy
MyBAQCBwdWJsaWM6CiAgICAgICAgIFBsYXlBbmRSZWNvcmQsCiAgICAgICAgIEF1ZGlvUHJvY2Vz
c2luZywKICAgICB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdv
cnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpOwotICAgIFdFQkNPUkVfRVhQT1JUIENhdGVnb3J5
VHlwZSBjYXRlZ29yeSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRl
Z29yeVR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdmlydHVhbCBDYXRlZ29yeVR5cGUg
Y2F0ZWdvcnkoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29y
eVR5cGUpOwogICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3Q7CiAKLSAg
ICBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7Ci0gICAgU3Ry
aW5nIHJvdXRpbmdDb250ZXh0VUlEKCkgY29uc3Q7CisgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQ
b2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgcm91
dGluZ0NvbnRleHRVSUQoKSBjb25zdDsKIAotICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsK
LSAgICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZk91dHB1
dENoYW5uZWxzKCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7
CisgICAgdmlydHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgc2l6
ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAogICAgIGJvb2wgdHJ5VG9TZXRB
Y3RpdmUoYm9vbCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVy
U2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwor
ICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xhc3MgTXV0
ZWRTdGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04NywxNyArOTIsMTYgQEAgcHVibGlj
OgogICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwog
ICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwog
Ci0gICAgYm9vbCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBoYW5kbGVNdXRlZFN0YXRlQ2hh
bmdlKCk7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBmcmllbmQg
Y2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRpb1Nlc3Npb24oKTsK
LSAgICB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwo
Ym9vbCk7CisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCk7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0ZT4gbV9wcml2YXRlOwogICAg
IEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAppbmRleCBh
OGQxOGJlNGVhYmFlOWVjODBmZjVkZWY0ZmI3YmNhOWRhNjU3MDdhLi4xMjhmYWRhZTBmZDk2N2Vm
YTBmZTljYzE0MTU3NDdkOTNmZWNjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb24oKTsKIAotICAgIGVudW0g
Y2xhc3MgTWVkaWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSA6IHVpbnQ4X3Qgewog
ICAgICAgICBOb25lID0gMCwKICAgICAgICAgVmlkZW8sCiAgICAgICAgIFZpZGVvQXVkaW8sCkBA
IC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5cGUgbWVkaWFUeXBlKCkgY29uc3Q7
CiAgICAgTWVkaWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBjb25zdDsKIAotICAgIGVudW0gU3Rh
dGUgeworICAgIGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAgICAgICAgSWRsZSwKICAgICAgICAg
QXV0b3BsYXlpbmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoK
ICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICB2b2lkIHNl
dFN0YXRlKFN0YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0aW9uVHlwZSB7CisgICAgZW51bSBJ
bnRlcnJ1cHRpb25UeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vSW50ZXJydXB0aW9uLAogICAg
ICAgICBTeXN0ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdCYWNrZ3JvdW5kLApAQCAtOTEsNyAr
OTEsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIGludGVycnVwdGlv
blR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlvblR5cGU7IH0KIAotICAgIGVudW0g
RW5kSW50ZXJydXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgOiB1
aW50OF90IHsKICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAgICAgIE1heVJlc3VtZVBsYXlpbmcg
PSAxIDw8IDAsCiAgICAgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGRv
dWJsZSBhc0RvdWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRBcmd1bWVudDsKIAotICAgIGVudW0g
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVtIFJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQsCiAgICAgICAgIFBsYXlDb21tYW5k
LAogICAgICAgICBQYXVzZUNvbW1hbmQsCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSwgY29uc3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBhcmd1bWVudCA9IG51bGxwdHIpOwog
ICAgIGJvb2wgc3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAKLSAgICBlbnVtIERpc3BsYXlUeXBl
IHsKKyAgICBlbnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vcm1hbCwKICAg
ICAgICAgRnVsbHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVkLApAQCAtMzExLDQgKzMxMSw2NCBA
QCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZT4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpN
ZWRpYVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlh
VHlwZTo6VmlkZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlw
ZTo6VmlkZW9BdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFU
eXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBl
OjpXZWJBdWRpbworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGUs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpJZGxlLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6QXV0b3BsYXlpbmcsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQbGF5aW5nLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2VkLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQKKyAgICA+OworfTsKKwordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Oklu
dGVycnVwdGlvblR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6Tm9JbnRlcnJ1cHRp
b24sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6
OlN5c3RlbVNsZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRpb25UeXBlOjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUludGVycnVwdGlvbiwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3VzcGVuZGVkVW5k
ZXJMb2NrLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25U
eXBlOjpJbnZpc2libGVBdXRvcGxheSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6SW50ZXJydXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZlLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQbGF5YmFja1N1c3BlbmRlZAorICAg
ID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50
ZXJydXB0aW9uRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZElu
dGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1lUGxheWluZworICAgID47Cit9Owor
Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3Rl
Q29udHJvbENvbW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGxheUNvbW1hbmQsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGF1
c2VDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250
cm9sQ29tbWFuZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRvZ2dsZVBsYXlQYXVzZUNvbW1hbmQs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZTo6QmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OkVuZFNlZWtpbmdCYWNrd2Fy
ZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6RW5kU2Vla2lu
Z0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1v
dGVDb250cm9sQ29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNrUG9zaXRpb25Db21tYW5kCisgICAg
PjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggZDZjMDA3ZjQwYjVmYjc2
MzcyMmQ1MzhhZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGExZDBhYTYzODljM2RmODkzNjcxMGEz
NTg5YTQ0NTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9p
b3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQzLDE1IEBAIHZvaWQgQXVkaW9TZXNz
aW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZmZXJTaXplKQogICAgIEFTU0VS
VCghZXJyb3IpOwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6aXNNdXRlZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6aGFuZGxlTXV0ZWRTdGF0
ZUNoYW5nZSgpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKSAmJiBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IDlmOTQ2Zjg0OTdhZjIzYjRhZmE1MWI3OTE4NDE4NTE4ODYwYWM1
YjkuLmQ3NDliMmRiMDliOTY3NDZmNGEwZjFlMzRjMjE3NDJlZGY1M2U0NmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE4LDYgKzE4LDgg
QEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldl
YktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1G
YWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAt
MTE2LDYgKzExOCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYTk2YzJjZmRkZDQ2YjM1OTIzOGU5NjIzNDNhOTkyMjEw
NGVlYTU5Yi4uOTk1MDM1MTJiYTU1OGIyYjQxMDA4ZjViMTY2NTA0NjBhOTU0MTQ1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzcs
NiArMTM3LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVBy
b3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCA0NWVlM2RiN2VkN2UxMzM3MmM4YTc1YWQ1NTVhMTY1ODdmNjdkMDhh
Li4xYzNkMWEyMGVlYTNiNzM4MDAxMDJlMWQzMTk4Mzc5MDNhYTZjZDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0xNDgsNiArMTQ4LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAgICAgUGx1Z2luUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwK
ICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAorICAgIFJlbW90ZUF1ZGlvU2Vzc2lv
biBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCmluZGV4IDZjZjFjMzBiM2UzMzAxMjc3NDY2ZDkyZWUyOTMzMjQ2MDdlNTljYzEuLjI0
OTgxZmZmNTI4ODNjNzAyMTc4NTg3OWJlMThmMWI2OTRmOWJiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTcxLDYgKzcxLDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oIgogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorI2lu
Y2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
ZXNzYWdlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xMTksNiArMTI0LDEwIEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKIAogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworICAgIGlmIChtX2F1ZGlvU2Vz
c2lvblByb3h5KSB7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2VyKCku
cmVtb3ZlUHJveHkod2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIG1fYXVkaW9TZXNz
aW9uUHJveHkgPSBudWxscHRyOworICAgIH0KIH0KIAogTG9nZ2VyJiBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpsb2dnZXIoKQpAQCAtMjE3LDYgKzIyNiwxNyBAQCBSZW1vdGVDRE1GYWN0b3J5
UHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNkbUZhY3RvcnlQcm94eSgpCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCitS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9T
ZXNzaW9uUHJveHkoKQoreworICAgIGlmICghbV9hdWRpb1Nlc3Npb25Qcm94eSkgeworICAgICAg
ICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNyZWF0ZSgq
dGhpcykubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Np
b25NYW5hZ2VyKCkuYWRkUHJveHkobWFrZVdlYWtQdHIobV9hdWRpb1Nlc3Npb25Qcm94eS5nZXQo
KSkpOworICAgIH0KKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uUHJveHk7Cit9CisjZW5kaWYK
Kwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5k
KFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQog
ewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNYXAu
ZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0yMzEsNiArMjUx
LDEzIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVsZWFzZVJlbmRlcmluZ0Jh
Y2tlbmQoUmVuZGVyaW5nQmFja2VuZElkZW50aWZpCiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwg
Zm91bmQpOwogfQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lP
TikKK3ZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlQXVkaW9TZXNzaW9uKEVu
c3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24mJiBjb21wbGV0aW9uKQoreworICAgIGNvbXBsZXRp
b24oYXVkaW9TZXNzaW9uUHJveHkoKS5jb25maWd1cmF0aW9uKCkpOworfQorI2VuZGlmCisKIGJv
b2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMzA4LDYgKzMzNSwxMiBA
QCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAj
ZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBhdWRpb1Nl
c3Npb25Qcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiBtZXNzYWdlUmVj
ZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CkBAIC0z
NTUsNiArMzg4LDEyIEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KICNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Cisg
ICAgICAgIGF1ZGlvU2Vzc2lvblByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyNlbmRpZgogCiAgICAgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoU3luY01l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4
IGEzZWNhNWM4ZmFkNjkxODM4MGZkOTMzYmY2MzBkZDRjZmY3MzBkOTYuLjMwNzkwNmZhMjA1MDY4
MzhhNTQ1M2MxNzk5Nzc1ZDdmMzJmYjViYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKKyNpbmNsdWRl
ICJSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CkBAIC00OCwxMiArNDks
MTUgQEAgY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5OwogY2xh
c3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7CiBjbGFzcyBSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eTsKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKIGNsYXNzIFJlbW90ZUNE
TUZhY3RvcnlQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xh
c3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcjsKIGNsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiBj
bGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Oworc3RydWN0IFJlbW90ZUF1ZGlvU2Vz
c2lvbkNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKICAg
ICA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+CkBAIC05MCwx
MSArOTQsMTUgQEAgcHVibGljOgogICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgY2RtRmFjdG9y
eVByb3h5KCk7CiAjZW5kaWYKIAorICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBy
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
JiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmll
ciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciYgcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIoKTsKLSAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkoKTsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykK
ICAgICBMaWJXZWJSVENDb2RlY3NQcm94eSYgbGliV2ViUlRDQ29kZWNzUHJveHkoKTsKICNlbmRp
ZgpAQCAtMTA2LDggKzExNCwxNyBAQCBwcml2YXRlOgogICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKTsKICNl
bmRpZgogI2VuZGlmCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5JiBhdWRpb1Nlc3Npb25Qcm94eSgpOwor
I2VuZGlmCisKICAgICB2b2lkIGNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVsZWFzZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisgICAgdXNpbmcgRW5zdXJlQXVkaW9TZXNzaW9uQ29tcGxldGlvbiA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYp
PjsKKyAgICB2b2lkIGVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1cmVBdWRpb1Nlc3Npb25Db21wbGV0
aW9uJiYpOworI2VuZGlmCiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZv
aWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgZmluYWw7CkBAIC0xNDcsNiArMTY0LDkgQEAg
cHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHN0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVDRE1GYWN0b3J5UHJveHk+IG1fY2RtRmFjdG9yeVByb3h5OwogI2VuZGlmCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IG1fYXVkaW9TZXNzaW9uUHJveHk7CisjZW5k
aWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgppbmRleCA5MzJjMDEyMmRlMDgxZWRlOWJiOWVmYjU2ZjliYzUyNTliYTRkNzA0Li40ZmQwZjIy
MzA3ZTgzODgzNmQ0NzRiYWIzZTAyNzVhMzVjMDc1MGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgpAQCAtMjUsNiArMjUsNyBAQAogbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyBXYW50c0Rpc3BhdGNoTWVzc2FnZSB7CiAgICAgdm9pZCBDcmVhdGVSZW5kZXJpbmdC
YWNrZW5kKFdlYktpdDo6UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIpCiAgICAgdm9pZCBSZWxlYXNlUmVuZGVyaW5nQmFja2VuZChXZWJLaXQ6OlJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQorICAg
IEVuc3VyZUF1ZGlvU2Vzc2lvbigpIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pIFN5bmNocm9ub3VzCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMWE3MDNhYTI5NjkwYmM0ZDA4
MjA2MjViMzhhMjU5MGE2ZGJhMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVVBsYXRmb3JtU3RyYXRl
Z2llcy5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb0Rlc3RpbmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVN0cmF0ZWd5Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6Omlu
aXRpYWxpemUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxHUFVQbGF0Zm9ybVN0cmF0
ZWdpZXM+IHBsYXRmb3JtU3RyYXRlZ2llczsKKyAgICBzZXRQbGF0Zm9ybVN0cmF0ZWdpZXMoJnBs
YXRmb3JtU3RyYXRlZ2llcy5nZXQoKSk7Cit9CisKK0dQVVBsYXRmb3JtU3RyYXRlZ2llczo6R1BV
UGxhdGZvcm1TdHJhdGVnaWVzKCkgPSBkZWZhdWx0OworCitMb2FkZXJTdHJhdGVneSogR1BVUGxh
dGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVMb2FkZXJTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK1Bhc3RlYm9hcmRTdHJhdGVneSogR1BVUGxhdGZvcm1TdHJhdGVnaWVzOjpj
cmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitN
ZWRpYVN0cmF0ZWd5KiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3ko
KQoreworICAgIHJldHVybiBuZXcgTWVkaWFTdHJhdGVneSgpOworfQorCitCbG9iUmVnaXN0cnkq
IEdQVVBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKK3sKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2Y5Mzk3Y2RiMGNjOGFk
MTBiN2JmYzljZjAwNzM2MDlhZTYzMWE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0wLDAgKzEsNTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJh
dGVnaWVzLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTG9hZGVyU3RyYXRlZ3k7CitjbGFz
cyBQYXN0ZWJvYXJkU3RyYXRlZ3k7CitjbGFzcyBNZWRpYVN0cmF0ZWd5OworY2xhc3MgQmxvYlJl
Z2lzdHJ5OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVUGxhdGZvcm1TdHJh
dGVnaWVzIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcyB7CisgICAgZnJpZW5k
IE5ldmVyRGVzdHJveWVkPEdQVVBsYXRmb3JtU3RyYXRlZ2llcz47CitwdWJsaWM6CisgICAgc3Rh
dGljIHZvaWQgaW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIEdQVVBsYXRmb3JtU3RyYXRl
Z2llcygpOworCisgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCisgICAgV2ViQ29y
ZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAg
V2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBv
dmVycmlkZTsKKyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5
KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0
cnkoKSBvdmVycmlkZTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUHJvY2Vzcy5jcHAKaW5kZXggMGU3YmQwOWJlYTVkMTIzYTQwN2VjZmI5ZDM5ZjcyNDBmNWIz
YzdiOS4uNjAzNzAwNTljZDE0OTU1MzZlZjQ1Y2Y0OTY0NTJkZDQxZTI0ZTQ3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkF1eGlsaWFyeVByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiR1BV
UGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NTZXNzaW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKQEAgLTUxLDYgKzUyLDEwIEBACiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJl
Zi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTEwLDYgKzExNSw4IEBAIHZvaWQgR1BVUHJvY2Vzczo6
aW5pdGlhbGl6ZUdQVVByb2Nlc3MoR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgV1RGOjpUaHJlYWQ6OnNldEN1cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQo
KTsKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAKKyAgICBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmluaXRpYWxpemUoKTsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVl
KTsKICNlbmRpZgpAQCAtMjEyLDYgKzIxOSwxNSBAQCBjb25zdCBTdHJpbmcmIEdQVVByb2Nlc3M6
Om1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjbwog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9O
KQorUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyJiBHUFVQcm9jZXNzOjphdWRpb1Nlc3Np
b25NYW5hZ2VyKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYXVkaW9TZXNzaW9uTWFuYWdlcikKKyAg
ICAgICAgbV9hdWRpb1Nlc3Npb25NYW5hZ2VyID0gV1RGOjptYWtlVW5pcXVlPFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcj4oKTsKKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uTWFuYWdl
cjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJM
RShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCmluZGV4IDZm
YTAyMDE0Yjk0NzgxZWE5OWUwMzVkYjNhZDc5ZDY1YTI0ZjI4N2IuLjQzYWFlMWExMmI1Yjg4NWIy
NmM1NmRkZjE1Mjk2MGYwMjI3YzUyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MuaApAQCAtNDAsNiArNDAsNyBAQCBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwog
c3RydWN0IEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgR1BVUHJvY2Vzc1Nl
c3Npb25QYXJhbWV0ZXJzOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKK2NsYXNzIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKIAogY2xhc3MgR1BVUHJvY2VzcyA6IHB1YmxpYyBB
dXhpbGlhcnlQcm9jZXNzLCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8R1BVUHJvY2Vzcz4s
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxHUFVQcm9jZXNzPiB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoR1BVUHJvY2Vzcyk7CkBAIC02Myw2ICs2NCwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
U3RyaW5nJiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KFBBTDo6U2Vzc2lvbklEKSBjb25zdDsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXImIGF1ZGlvU2Vzc2lvbk1hbmFnZXIo
KSBjb25zdDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgbG93TWVtb3J5SGFuZGxlcihD
cml0aWNhbCk7CiAKQEAgLTEwMyw2ICsxMDgsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxMYXllckhvc3RpbmdDb250ZXh0PiBtX2NvbnRleHRGb3JWaXNpYmlsaXR5UHJvcGFnYXRp
b247CiAgICAgYm9vbCBtX2NhblNob3dXaGlsZUxvY2tlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIG11dGFibGUg
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcj4gbV9hdWRpb1Nl
c3Npb25NYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhZmM0OWRlODlkZTFhY2U0NmFjMTY3Zjg1ODQ2ODAz
MzY1MmRjOTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQor
CisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitVbmlxdWVS
ZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpjcmVh
dGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvbikKK3sKKyAgICByZXR1
cm4gbWFrZVVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4oZ3B1Q29ubmVjdGlvbik7
Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eShH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uKQorICAgIDogbV9ncHVDb25u
ZWN0aW9uKGdwdUNvbm5lY3Rpb24pCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp+
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoKSA9IGRlZmF1bHQ7CisKK1dlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpwcm9jZXNzSWRlbnRpZmllcigpCit7
CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpOworfQor
CitSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
Ojpjb25maWd1cmF0aW9uKCkKK3sKKyAgICBhdXRvJiBzZXNzaW9uID0gYXVkaW9TZXNzaW9uTWFu
YWdlcigpLnNlc3Npb24oKTsKKyAgICByZXR1cm4geworICAgICAgICBzZXNzaW9uLmNhdGVnb3J5
KCksCisgICAgICAgIHNlc3Npb24ucm91dGVTaGFyaW5nUG9saWN5KCksCisgICAgICAgIHNlc3Np
b24ucm91dGluZ0NvbnRleHRVSUQoKSwKKyAgICAgICAgc2Vzc2lvbi5zYW1wbGVSYXRlKCksCisg
ICAgICAgIHNlc3Npb24uYnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNzaW9uLm51bWJlck9mT3V0
cHV0Q2hhbm5lbHMoKSwKKyAgICAgICAgc2Vzc2lvbi5wcmVmZXJyZWRCdWZmZXJTaXplKCksCisg
ICAgICAgIHNlc3Npb24uaXNNdXRlZCgpLAorICAgICAgICBtX2FjdGl2ZQorICAgIH07Cit9CisK
K3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xp
Y3kgcG9saWN5KQoreworICAgIG1fY2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyAgICBtX3JvdXRlU2hh
cmluZ1BvbGljeSA9IHBvbGljeTsKKyAgICBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2V0Q2F0ZWdv
cnlGb3JQcm9jZXNzKG1fZ3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCBjYXRl
Z29yeSwgcG9saWN5KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCBzaXplKQoreworICAgIG1fcHJlZmVycmVkQnVmZmVy
U2l6ZSA9IHNpemU7CisgICAgYXVkaW9TZXNzaW9uTWFuYWdlcigpLnNldFByZWZlcnJlZEJ1ZmZl
clNpemVGb3JQcm9jZXNzKG1fZ3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCBz
aXplKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUo
Ym9vbCBhY3RpdmUsIFNldEFjdGl2ZUNvbXBsZXRpb24mJiBjb21wbGV0aW9uKQoreworICAgIG1f
YWN0aXZlID0gYXVkaW9TZXNzaW9uTWFuYWdlcigpLnRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyht
X2dwdUNvbm5lY3Rpb24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgYWN0aXZlKTsKKyAgICBjb21w
bGV0aW9uKG1fYWN0aXZlKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVn
aW5JbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlv
blR5cGUgdHlwZSkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVk
aW9TZXNzaW9uOjpCZWdpbkludGVycnVwdGlvbih0eXBlKSwgeyB9KTsKK30KKwordm9pZCBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eTo6ZW5kSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyBmbGFncykKK3sKKyAgICBjb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb24oZmxh
Z3MpLCB7IH0pOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXImIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5OjphdWRpb1Nlc3Npb25NYW5hZ2VyKCkKK3sKKyAgICByZXR1cm4gbV9n
cHVDb25uZWN0aW9uLmdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2VyKCk7Cit9CisKK0lQ
Qzo6Q29ubmVjdGlvbiYgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbm5lY3Rpb24oKQorewor
ICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb24uY29ubmVjdGlvbigpOworfQorCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lY2QyYzZjMzdjMTc5NjRlMGJjOGRmYTcyMTM2
NDk5MjFkODQ5M2MxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVE
SU9fU0VTU0lPTikKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlJl
bW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlv
U2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb24uaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOworCitj
bGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eQorICAgIDogcHVibGljIElQQzo6TWVzc2FnZVJl
Y2VpdmVyCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHk+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
VW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYpOworICAgIHZpcnR1YWwgflJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KCk7CisK
KyAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcigpOworICAg
IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbigpOworCisgICAg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdCB7IHJl
dHVybiBtX2NhdGVnb3J5OyB9OworICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0
ZVNoYXJpbmdQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3JvdXRlU2hhcmluZ1BvbGljeTsgfQor
ICAgIHNpemVfdCBwcmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3QgeyByZXR1cm4gbV9wcmVmZXJy
ZWRCdWZmZXJTaXplOyB9CisgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0
aXZlOyB9CisKKyAgICB2b2lkIGJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlKTsKKyAgICB2b2lkIGVuZEludGVycnVwdGlvbihX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MpOworCisg
ICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIFVuaXF1
ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4gV1RGOjptYWtlVW5pcXVlUmVmV2l0aG91dEZh
c3RNYWxsb2NDaGVjazxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4oR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYpOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmKTsKKworICAgIC8vIE1lc3NhZ2VzCisgICAgdm9pZCBzZXRDYXRlZ29yeShXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9s
aWN5KTsKKyAgICB2b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUodWludDY0X3QpOworICAgIHVz
aW5nIFNldEFjdGl2ZUNvbXBsZXRpb24gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPjsK
KyAgICB2b2lkIHRyeVRvU2V0QWN0aXZlKGJvb2wsIFNldEFjdGl2ZUNvbXBsZXRpb24mJik7CisK
KyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXImIGF1ZGlvU2Vzc2lvbk1hbmFnZXIo
KTsKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKTsKKworICAgIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvbjsKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5OworICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1Bv
bGljeSBtX3JvdXRlU2hhcmluZ1BvbGljeTsKKyAgICBzaXplX3QgbV9wcmVmZXJyZWRCdWZmZXJT
aXplIHsgMCB9OworICAgIGJvb2wgbV9hY3RpdmUgeyBmYWxzZSB9OworfTsKKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2YzYmFl
ODI0M2ZhYTU0NTUyYmJmZjA0ZDlhNmViODUyYjYwNjIxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgU2V0Q2F0ZWdvcnkoZW51bTp1aW50OF90IFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIHR5cGUsIGVudW06dWludDhfdCBXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQorICAgIFNldFByZWZlcnJlZEJ1ZmZlclNp
emUodWludDY0X3QgcHJlZmVycmVkQnVmZmVyU2l6ZSkKKyAgICBUcnlUb1NldEFjdGl2ZShib29s
IGFjdGl2ZSkgLT4gKGJvb2wgc3VjZWVkZWQpIFN5bmNocm9ub3VzCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTZiNGVmMjExZjJhMzgz
MDcwNTRjNTEyNjFiNzE2MWZjN2QwOGRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKQEAg
LTAsMCArMSwxOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1ZGUg
PHd0Zi9IYXNoQ291bnRlZFNldC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyBib29sIGNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyhB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSkKK3sKKyAgICByZXR1cm4gY2F0ZWdv
cnkgPT0gQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlcjo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCkKKyAgICA6IG1f
c2Vzc2lvbihBdWRpb1Nlc3Npb246OmNyZWF0ZSgpKQoreworfQorCitSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXI6On5SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKSA9IGRlZmF1
bHQ7CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eShXZWFr
UHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiYmIHByb3h5KQoreworICAgIGF1dG8gaWQgPSBw
cm94eS0+cHJvY2Vzc0lkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlu
cyhpZCkpOworICAgIG1fcHJveGllcy5zZXQoaWQsIFdURk1vdmUocHJveHkpKTsKK30KKwordm9p
ZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnJlbW92ZVByb3h5KGNvbnN0IFByb2Nl
c3NJZGVudGlmaWVyJiBpZCkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7
CisgICAgbV9wcm94aWVzLnJlbW92ZShpZCk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
KiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmdldFByb3h5KGNvbnN0IFByb2Nlc3NJ
ZGVudGlmaWVyJiBpZCkKK3sKKyAgICBhdXRvIHJlc3VsdHMgPSBtX3Byb3hpZXMuZmluZChpZCk7
CisgICAgaWYgKHJlc3VsdHMgIT0gbV9wcm94aWVzLmVuZCgpKQorICAgICAgICByZXR1cm4gcmVz
dWx0cy0+dmFsdWUuZ2V0KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRDYXRlZ29yeUZvclByb2Nlc3MoY29uc3QgUHJv
Y2Vzc0lkZW50aWZpZXImIGlkLCBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSwg
Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRh
aW5zKGlkKSk7CisgICAgYXV0byBwcm94eSA9IGdldFByb3h5KGlkKTsKKyAgICBpZiAoIXByb3h5
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAocHJveHktPmNhdGVnb3J5KCkgPT0gY2F0ZWdv
cnkgJiYgcHJveHktPnJvdXRlU2hhcmluZ1BvbGljeSgpID09IHBvbGljeSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgSGFzaENvdW50ZWRTZXQ8QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdU
Rjo6SW50SGFzaDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4sIFdURjo6U3Ryb25nRW51bUhh
c2hUcmFpdHM8QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+PiBjYXRlZ29yeUNvdW50czsKKyAg
ICBIYXNoQ291bnRlZFNldDxSb3V0ZVNoYXJpbmdQb2xpY3ksIFdURjo6SW50SGFzaDxSb3V0ZVNo
YXJpbmdQb2xpY3k+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPFJvdXRlU2hhcmluZ1BvbGlj
eT4+IHBvbGljeUNvdW50czsKKyAgICBmb3IgKGF1dG8mIG90aGVyUHJveHkgOiBtX3Byb3hpZXMu
dmFsdWVzKCkpIHsKKyAgICAgICAgY2F0ZWdvcnlDb3VudHMuYWRkKG90aGVyUHJveHktPmNhdGVn
b3J5KCkpOworICAgICAgICBwb2xpY3lDb3VudHMuYWRkKG90aGVyUHJveHktPnJvdXRlU2hhcmlu
Z1BvbGljeSgpKTsKKyAgICB9CisKKyAgICBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVk
aW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Np
b246OlBsYXlBbmRSZWNvcmQ7CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMo
QXVkaW9TZXNzaW9uOjpSZWNvcmRBdWRpbykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNz
aW9uOjpSZWNvcmRBdWRpbzsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhB
dWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2spKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vz
c2lvbjo6TWVkaWFQbGF5YmFjazsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlu
cyhBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1
ZGlvU2Vzc2lvbjo6U29sb0FtYmllbnRTb3VuZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50
cy5jb250YWlucyhBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZCkpCisgICAgICAgIGNhdGVnb3J5
ID0gQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQ7CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3Vu
dHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpBdWRpb1Byb2Nlc3NpbmcpKQorICAgICAgICBjYXRl
Z29yeSA9IEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nOworICAgIGVsc2UKKyAgICAgICAg
Y2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok5vbmU7CisKKyAgICBpZiAocG9saWN5Q291bnRzLmNv
bnRhaW5zKFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1WaWRlbykpCisgICAgICAgIHBvbGlj
eSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1WaWRlbzsKKyAgICBlbHNlIGlmIChwb2xp
Y3lDb3VudHMuY29udGFpbnMoUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvKSkKKyAg
ICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvOworICAgIGVs
c2UgaWYgKHBvbGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6OkluZGVwZW5k
ZW50KSkKKyAgICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpJbmRlcGVuZGVudDsK
KyAgICBlbHNlCisgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdDsK
KworICAgIG1fc2Vzc2lvbi0+c2V0Q2F0ZWdvcnkoY2F0ZWdvcnksIHBvbGljeSk7Cit9CisKK3Zv
aWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXpl
Rm9yUHJvY2Vzcyhjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQsIHNpemVfdCBwcmVmZXJyZWRC
dWZmZXJTaXplKQoreworICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1
ZXMoKSkgeworICAgICAgICBpZiAoIW90aGVyUHJveHkpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgaWYgKG90aGVyUHJveHktPnByZWZlcnJlZEJ1ZmZlclNpemUoKSA8IHByZWZlcnJl
ZEJ1ZmZlclNpemUpCisgICAgICAgICAgICBwcmVmZXJyZWRCdWZmZXJTaXplID0gb3RoZXJQcm94
eS0+cHJlZmVycmVkQnVmZmVyU2l6ZSgpOworICAgIH0KKworICAgIG1fc2Vzc2lvbi0+c2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZShwcmVmZXJyZWRCdWZmZXJTaXplKTsKK30KKworYm9vbCBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyhjb25zdCBQ
cm9jZXNzSWRlbnRpZmllciYgaWQsIGJvb2wgYWN0aXZlKQoreworICAgIEFTU0VSVChtX3Byb3hp
ZXMuY29udGFpbnMoaWQpKTsKKyAgICBhdXRvIHByb3h5ID0gZ2V0UHJveHkoaWQpOworICAgIGlm
ICghcHJveHkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHNpemVfdCBhY3RpdmVQcm94
eUNvdW50IHsgMCB9OworICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1
ZXMoKSkgeworICAgICAgICBpZiAoIW90aGVyUHJveHkpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgaWYgKG90aGVyUHJveHktPmlzQWN0aXZlKCkpCisgICAgICAgICAgICArK2FjdGl2
ZVByb3h5Q291bnQ7CisgICAgfQorCisgICAgaWYgKCFhY3RpdmUgJiYgYWN0aXZlUHJveHlDb3Vu
dCA+IDEpIHsKKyAgICAgICAgLy8gVGhpcyBwcm94eSB3YW50cyB0byBkZS1hY3RpdmF0ZSwgYnV0
IG90aGVyIHByb3hpZXMgYXJlIHN0aWxsCisgICAgICAgIC8vIGFjdGl2ZS4gTm8tb3AsIGFuZCBy
ZXR1cm4gZGVhY3RpdmF0aW9uIHdhcyBzdWNlc3NmdWwuCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIGlmICghYWN0aXZlKSB7CisgICAgICAgIC8vIFRoaXMgcHJveHkgd2FudHMg
dG8gZGUtYWN0aXZhdGUsIGFuZCBpcyB0aGUgbGFzdCByZW1haW5pbmcgYWN0aXZlCisgICAgICAg
IC8vIHByb3h5LiBEZWFjdGl2YXRlIHRoZSBzZXNzaW9uLCBhbmQgcmV0dXJuIHdoZXRoZXIgdGhh
dCBkZWFjdGl2YXRpb24KKyAgICAgICAgLy8gd2FzIHN1Y2Vzc2Z1bDsKKyAgICAgICAgcmV0dXJu
IG1fc2Vzc2lvbi0+dHJ5VG9TZXRBY3RpdmUoZmFsc2UpOworICAgIH0KKworICAgIGlmIChhY3Rp
dmUgJiYgIWFjdGl2ZVByb3h5Q291bnQpIHsKKyAgICAgICAgLy8gVGhpcyBwcm94eSBhbmQgb25s
eSB0aGlzIHByb3h5IHdhbnRzIHRvIGJlY29tZSBhY3RpdmUuIEFjdGl2YXRlCisgICAgICAgIC8v
IHRoZSBzZXNzaW9uLCBhbmQgcmV0dXJuIHdoZXRoZXIgdGhhdCBhY3RpdmF0aW9uIHdhcyBzdWNj
ZXNzZnVsLgorICAgICAgICByZXR1cm4gbV9zZXNzaW9uLT50cnlUb1NldEFjdGl2ZShhY3RpdmUp
OworICAgIH0KKworICAgIC8vIElmIHRoaXMgcHJveHkgaXMgQW1iaWVudCwgYW5kIHRoZSBzZXNz
aW9uIGlzIGFscmVhZHkgYWN0aXZlLCB0aGlzCisgICAgLy8gcHJveHkgd2lsbCBtaXggd2l0aCB0
aGUgYWN0aXZlIHByb3hpZXMuIE5vLW9wLCBhbmQgcmV0dXJuIGFjdGl2YXRpb24KKyAgICAvLyB3
YXMgc3VjZXNzZnVsLgorICAgIGlmIChjYXRlZ29yeUNhbk1peFdpdGhPdGhlcnMocHJveHktPmNh
dGVnb3J5KCkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgLy8gT3RoZXJ3aXNlLCB0aGlzIHByb3h5IHdhbnRzIHRvIGJlY29tZSBhY3RpdmUs
IGJ1dCB0aGVyZSBhcmUgb3RoZXIKKyAgICAvLyBwcm94aWVzIHdobyBhcmUgYWxyZWFkeSBhY3Rp
dmUuIFdhbGsgb3ZlciB0aGUgcHJveGllcywgYW5kIGludGVycnVwdAorICAgIC8vIHRob3NlIHBy
b3hpZXMgd2hvc2UgY2F0ZW9ncmllcyBpbmRpY2F0ZSB0aGV5IGNhbm5vdCBtaXggd2l0aCBvdGhl
cnMuCisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7Cisg
ICAgICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBp
ZiAoIW90aGVyUHJveHktPmlzQWN0aXZlKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICBpZiAoY2F0ZWdvcnlDYW5NaXhXaXRoT3RoZXJzKG90aGVyUHJveHktPmNhdGVnb3J5KCkp
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgb3RoZXJQcm94eS0+YmVnaW5JbnRl
cnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUlu
dGVycnVwdGlvbik7CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gdHJ1ZTsKKworfQorCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2YTdm
NzYxZjZiMWU4NWJhNzE1OGUwYmRmNDBjNWZjMjNiYWExN2IKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPFdl
YkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmll
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHk7CisKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcgorICAgIDogcHVibGlj
IENhbk1ha2VXZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcj4geworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcigpOworICAgIH5SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKTsKKwor
ICAgIHZvaWQgYWRkUHJveHkoV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4mJik7Cisg
ICAgdm9pZCByZW1vdmVQcm94eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYpOwor
ICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KiBnZXRQcm94eShjb25zdCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciYpOworCisgICAgdm9pZCBzZXRDYXRlZ29yeUZvclByb2Nlc3MoY29uc3Qg
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImLCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KTsKKyAgICB2b2lkIHNldFByZWZl
cnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
Jiwgc2l6ZV90KTsKKworICAgIHVzaW5nIFNldEFjdGl2ZUNvbXBsZXRpb24gPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPjsKKyAgICBib29sIHRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyhj
b25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIGJvb2wpOworCisgICAgY29uc3QgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uJiBzZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uOyB9
CisKK3ByaXZhdGU6CisgICAgVW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbj4gbV9zZXNz
aW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFdlYWtQdHI8UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk+PiBtX3Byb3hpZXM7Cit9OworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDRiM2RlYzdjZDM5ZDAxMDJiODVmMGY5NWRmNGU0MzBmOWFlMTNmZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDI1NmRjOTkwNWJmNDQ2NmQw
YzJhZDU3NGQ4YzM2OGExNGJlNjk2M2EuLjRiYTE0ZGJhZjI0YjI0MWU1OWRiMGE3ZjIwODBkMDJk
MDI3YzNiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAt
MjM0LDYgKzIzNCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVk
KCk6CiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIn
LAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktp
dDo6UmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90
ZUNETUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZUlkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25JZGVudGlm
aWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5k
ZXggZDA3ZjJiZjViMjFiNjIwYjkxOTgxMDE5OTQwZTI3NDRlZDI1MDBjZC4uNjc1MmNiNmQ0NWU1
YWYwMDVlZmY4MjdhNzY2YmEzYmIxYjNhOGQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTYxLDYgKzYxLDEwIEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9DRE1JbnN0YW5jZVNlc3Npb24uaD4KICNlbmRpZgogCisjaWYgVVNFKEFVRElPX1NFU1NJ
T04pCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNlbmRpZgorCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1hY2hTZW5kUmlnaHQ7CkBAIC0x
MDI1LDQgKzEwMjksMTkgQEAgdGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
Q0RNSW5zdGFuY2U6OkhEQ1BTdGF0dXM+IHsKIAogI2VuZGlmCiAKKyNpZiBVU0UoQVVESU9fU0VT
U0lPTikKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bjo6Q2F0ZWdvcnlUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsCisgICAgV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3VuZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFjaywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8sCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2luZworICAgID47Cit9OworI2VuZGlmCisKIH0gLy8g
bmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNmQwZThjNjhhMDIzODg3M2I2ODY0MjM4M2U1
YjdiYzVhYTA2MzdkYy4uZDAwNjIzYTYyOTY3ODFjYWQ3ZGNhNmViZTA1ZDE5NjNhZDY2OTY0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC0yMiwxMSArMjIsMTQgQEAKIC8vIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAorR1BVUHJvY2Vzcy9HUFVQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCiBHUFVQcm9jZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAK
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCitHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcAorR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3Rv
cnlQcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5jcHAK
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkuY3BwCkBAIC01
NDYsNiArNTQ5LDcgQEAgV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNw
cAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAorV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQ0RNLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeS5j
cHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IDBhNzc2OTM5ODc5ZWI2OTVmZmJmZWFmYmVkOGJjMmY5YzQ0Y2VmYTQu
LjY0NGJjYmMzNWI0NThmNDNlNTNiZmIxMGE5MWQzN2JjOTg2NTYxN2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKQEAgLTY1NCw2ICs2NTQsOCBAQCBMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1M2VkZTU2NmQz
ZGU4ZTk5NzU0Yjk2NjI1NDY0YjYxZWIxNzQ4YTM4Li41ZjQ4YTgxM2FlMjk5ZWY1ZWE0YWVkN2Rj
MGZhNGMzMzFlZDM2MDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE3NDMsNiArMTc0Myw4IEBACiAJCUNEQUMyMEY4MjNGQzcyNkMw
MDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEY1MjNGQzM4
M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKIAkJQ0RBQzIwRjkyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vz
c2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEVDMjNGQzM4MzgwMDIxREVFMyAvKiBSZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNEQUMyMEZB
MjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREFDMjBFRjIzRkMz
ODM5MDAyMURFRTMgLyogUmVtb3RlQ0RNUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9Owor
CQlDREJCNDlGMDI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREJCNDlFRTI0MEQ1
N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87IH07CisJCUNEQkI0OUZE
MjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREJCNDlGQzI0MEQ5
QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovOyB9Owog
CQlDREMyODMxRDIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMyODMxQjIwMUJE
NzlEMDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggKi87IH07CiAJCUNEQ0E4NUM5
MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODVDNzEzMkFCQTRF
MDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICovOyB9OwogCQlDRTEx
QUQ1MjFDQkM0ODJGMDA2ODFFRTUgLyogQ29kZVNpZ25pbmcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMTFBRDUxMUNCQzQ4MkYwMDY4MUVFNSAvKiBD
b2RlU2lnbmluZy5oICovOyB9OwpAQCAtNTA5NCw2ICs1MDk2LDE3IEBACiAJCUNEQUMyMEY0MjNG
QzM4M0EwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNETVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBQzIwRjUyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUlu
c3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQUMyMEY2MjNGQzM4M0IwMDIxREVFMyAvKiBS
ZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RUUyNDBENTdEMjAwMTdDMjkyIC8q
IEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVQbGF0Zm9ybVN0cmF0
ZWdpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RUYyNDBENTdEMjAw
MTdDMjkyIC8qIEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
UFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
REJCNDlGNDI0MEQ4QUM2MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDREJCNDlGNTI0MEQ4QUM2MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEQkI0OUY2MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGNzI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGODI0
MEQ4RDUzMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEQkI0OUY5MjQwRDk2M0MwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZBMjQwRDk2M0Qw
MDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RkIyNDBEOTc0QTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlv
U2Vzc2lvbklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uSWRl
bnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGQzI0MEQ5QTcy
MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQzI4MzFCMjAxQkQ3OUQwMEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFj
a1ZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lmg7IHBhdGggPSBp
b3MvZnVsbHNjcmVlbi9XS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RDMjgzMUMyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNr
Vmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLRnVsbHNjcmVlblN0YWNrVmlldy5tbTsg
cGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbHNjcmVlblN0YWNrVmlldy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDMzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29y
ay5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENGTmV0d29yay5mcmFtZXdvcms7IHBhdGgg
PSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DRk5ldHdvcmsuZnJhbWV3b3JrOyBzb3VyY2VU
cmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtNTEwMSw2ICs1MTE0LDE3IEBACiAJCUNEQ0E4NUM2
MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1QzcxMzJBQkE0
RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENBODVENDEzMkFDMkIzMDBFOTYxREYgLyogSU9L
aXQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBJT0tpdC5mcmFtZXdvcms7IHBhdGggPSAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9JT0tpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAi
PGFic29sdXRlPiI7IH07CisJCUNERDUzNTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRp
b1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3MDI0MERENEVGMDBGN0I4QzQg
LyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0RENTM1NzEyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RENTM1NzIyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3MzI0MERERTA2MDBGN0I4
QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc0MjQwRERF
MDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc1MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRp
b1Nlc3Npb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3NjI0MERERTA3MDBG
N0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc3MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREQ1MzU3ODI0MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1
NzkyNDBEREUwODAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UxMUFE
NEYxQ0JDNDdGODAwNjgxRUU1IC8qIENvZGVTaWduaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQ29kZVNpZ25pbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNFMTFBRDUxMUNCQzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2RlU2lnbmluZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRTFBMEJDQzFBNDhFNkM2MDA1NEVGNzQgLyogQXNzZXJ0aW9uU2Vy
dmljZXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXNzZXJ0aW9uU2Vy
dmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzNzgsNiArNTQwMiwx
MSBAQAogCQkJCTlCNUJFQzI5MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkuY3BwICovLAogCQkJCTlCNUJFQzI4MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkuaCAqLywKIAkJCQk5QjVCRUMyRTI0MDEwMThDMDA3MEM2RUYg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCUNEQkI0
OUY1MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uY3BwICovLAorCQkJCUNE
QkI0OUY0MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uaCAqLywKKwkJCQlD
REQ1MzU2RjI0MEREMzQzMDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmlu
ICovLAorCQkJCUNEQkI0OUZDMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uLmggKi8sCisJCQkJQ0RCQjQ5RkIyNDBEOTc0QTAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaCAqLywKIAkJCQlDREFDMjBCRjIzRkMyRjc1MDAyMURF
RTMgLyogUmVtb3RlQ0RNLmNwcCAqLywKIAkJCQlDREFDMjBCQTIzRkMyRjc0MDAyMURFRTMgLyog
UmVtb3RlQ0RNLmggKi8sCiAJCQkJQ0RBQzIwQjgyM0ZDMkY3MzAwMjFERUUzIC8qIFJlbW90ZUNE
TUNvbmZpZ3VyYXRpb24uaCAqLywKQEAgLTU0MjAsNiArNTQ0OSwxMiBAQAogCQkJCTlCMTIyOUND
MjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi8s
CiAJCQkJOUIxMjI5Q0IyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyLmggKi8sCiAJCQkJOUIxMjI5Q0YyM0ZGMjgxNDAwOENBNzUxIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJCUNEQkI0OUY3MjQwRDhDOTUw
MDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAgKi8sCisJCQkJQ0RCQjQ5RjYy
NDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmggKi8sCisJCQkJQ0RC
QjQ5RjgyNDBEOEQ1MzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2Vz
LmluICovLAorCQkJCUNEQkI0OUZBMjQwRDk2M0QwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIuY3BwICovLAorCQkJCUNEQkI0OUY5MjQwRDk2M0MwMDE3QzI5MiAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCAqLywKKwkJCQlDREQ1MzU3MDI0MERENEVG
MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluICov
LAogCQkJCTA3MUJDNTdFMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHku
Y3BwICovLAogCQkJCTA3MUJDNTdGMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNr
UHJveHkuaCAqLywKIAkJCQlDREFDMjA3OTIzRkIxRTIxMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFj
dG9yeVByb3h5LmNwcCAqLywKQEAgLTY3MDYsNiArNjc0MSw4IEBACiAJCQkJMkQ5RkIyMEMyMzc1
MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovLAogCQkJCTJE
OUZCMjAwMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggKi8s
CiAJCQkJMkQ5RkIyMDkyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RUYyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8sCisJCQkJQ0RCQjQ5RUUyNDBENTdEMjAwMTdDMjkyIC8q
IEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oICovLAogCQkJCTJEOUZCMjAxMjM3NTIwOUQwMDQ5Rjkz
NiAvKiBHUFVQcm9jZXNzLmNwcCAqLywKIAkJCQkyRDlGQjIxNTIzNzUyMDlEMDA0OUY5MzYgLyog
R1BVUHJvY2Vzcy5oICovLAogCQkJCTJEOUZCMjAyMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9j
ZXNzLm1lc3NhZ2VzLmluICovLApAQCAtOTgzMSw2ICs5ODY4LDE1IEBACiAJCQkJMUEwNDNCNUMx
MjRENUU5RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJ
MUE4RUZBNkUxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLywKIAkJCQkxQThFRkE2RjEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdl
cy5oICovLAorCQkJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTc1MjQwRERFMDcwMEY3QjhDNCAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc0MjQwRERFMDcw
MEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQlD
REQ1MzU3MzI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDREQ1MzU3ODI0MERERTA4MDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQlDREQ1MzU3
OTI0MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2Fn
ZXNSZXBsaWVzLmggKi8sCisJCQkJQ0RENTM1NzEyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDREQ1MzU3MjI0MERE
RTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oICovLAorCQkJ
CUNERDUzNTc3MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3Nh
Z2VzUmVwbGllcy5oICovLAogCQkJCUNEQUMyMEYyMjNGQzM4M0EwMDIxREVFMyAvKiBSZW1vdGVD
RE1GYWN0b3J5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQUMyMEYzMjNGQzM4
M0EwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNE
QUMyMEVFMjNGQzM4MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlc1Jl
cGxpZXMuaCAqLywKQEAgLTEwNTM0LDYgKzEwNTgwLDcgQEAKIAkJCQlCQzA2RjQ0QTEyREJEMUY1
MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkMwNkY0M0ExMkRCQ0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBOTQ0QTQxODg0
RTRGMDAwRUQ4NkRCIC8qIEdlc3R1cmVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RCQjQ5
RjAyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkRBMDQ5QjgxODBDQ0QwQTAwQUFGQTlFIC8qIEdyYXBoaWNzTGF5ZXJDQVJlbW90
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzBDRTcyQUQxMjQ3RTc4RDAwQkMwRUM0IC8qIEhhbmRs
ZU1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzc1QTFCMUIzMzY4MjcwMDU2NzQ1QiAv
KiBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTA3NTIsNiArMTA3
OTksNyBAQAogCQkJCTlCMTIyOUQyMjNGRjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUIxMjI5Q0QyM0ZGMjVGMjAw
OENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5QjVCRUMyQTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQlDREJCNDlGRDI0MEQ5QTcyMDAxN0MyOTIgLyogUmVt
b3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIw
QzcyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RB
QzIwQzUyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNEQUMyMENEMjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmU1Y2VjOGVh
MWI2ODdkNWJkZDcxN2RjZGMzMzFjNDYxYWRkNTUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCkBAIC0w
LDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UmVtb3RlQXVkaW9TZXNzaW9uLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShB
VURJT19TRVNTSU9OKQorCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiR1BVUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4gUmVtb3RlQXVkaW9T
ZXNzaW9uOjpjcmVhdGUoV2ViUHJvY2VzcyYgcHJvY2VzcykKK3sKKyAgICBSZW1vdGVBdWRpb1Nl
c3Npb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CisgICAgcHJvY2Vzcy5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6R1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6RW5zdXJlQXVkaW9TZXNzaW9uKCksIE1lc3NhZ2VzOjpHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpFbnN1cmVBdWRpb1Nlc3Npb246OlJlcGx5KGNvbmZpZ3Vy
YXRpb24pLCB7IH0pOworICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lv
bj4ocHJvY2VzcywgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vz
c2lvbjo6UmVtb3RlQXVkaW9TZXNzaW9uKFdlYlByb2Nlc3MmIHByb2Nlc3MsIFJlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAgIDogbV9wcm9jZXNzKHBy
b2Nlc3MpCisgICAgLCBtX2NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKK3sK
K30KKworUmVtb3RlQXVkaW9TZXNzaW9uOjp+UmVtb3RlQXVkaW9TZXNzaW9uKCkgPSBkZWZhdWx0
OworCitJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29ubmVjdGlvbigpCit7
CisgICAgcmV0dXJuIG1fcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVn
b3J5VHlwZSB0eXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQoreworICAgIGNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6U2V0Q2F0ZWdvcnko
dHlwZSwgcG9saWN5KSwgeyB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFBy
ZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90IHNpemUpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpTZXRQcmVmZXJyZWRCdWZmZXJTaXpl
KHNpemUpLCB7IH0pOworfQorCitib29sIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3Rp
dmVJbnRlcm5hbChib29sIGFjdGl2ZSkKK3sKKyAgICBib29sIHN1Y2NlZWRlZDsKKyAgICBjb25u
ZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpUcnlU
b1NldEFjdGl2ZShhY3RpdmUpLCBNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRy
eVRvU2V0QWN0aXZlOjpSZXBseShzdWNjZWVkZWQpLCB7IH0pOworICAgIHJldHVybiBzdWNjZWVk
ZWQ7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZChS
ZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBi
b29sIG11dGVkU3RhdGVDaGFuZ2VkID0gY29uZmlndXJhdGlvbi5pc011dGVkICE9IG1fY29uZmln
dXJhdGlvbi5pc011dGVkOworCisgICAgbV9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsK
KworICAgIGlmIChtdXRlZFN0YXRlQ2hhbmdlZCkKKyAgICAgICAgaGFuZGxlTXV0ZWRTdGF0ZUNo
YW5nZSgpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24o
UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkKK3sKKyAgICBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5iZWdpbkludGVycnVwdGlv
bih0eXBlKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbihQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit7CisgICAg
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZW5kSW50ZXJydXB0
aW9uKGZsYWdzKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4
ZjhkYzgyM2UzZjAxMDdjMTkzYmU5NDhiZjdmYjk2OGJjZTc5ZjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5o
CkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlv
bjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9u
OworY2xhc3MgV2ViUHJvY2VzczsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uIGZpbmFsCisg
ICAgOiBwdWJsaWMgV2ViQ29yZTo6QXVkaW9TZXNzaW9uCisgICAgLCBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGlj
IFVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb24+IGNyZWF0ZShXZWJQcm9jZXNzJik7CisgICAg
dmlydHVhbCB+UmVtb3RlQXVkaW9TZXNzaW9uKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIFVu
aXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0
TWFsbG9jQ2hlY2s8UmVtb3RlQXVkaW9TZXNzaW9uPihXZWJQcm9jZXNzJiwgUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbiYmKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb24oV2ViUHJvY2Vz
cyYsIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJik7CisgICAgSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uKCk7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CisKKyAgICAvLyBNZXNzYWdlcworICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoUmVt
b3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIGJlZ2luSW50ZXJydXB0
aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlKTsKKyAg
ICB2b2lkIGVuZEludGVycnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5k
SW50ZXJydXB0aW9uRmxhZ3MpOworCisgICAgLy8gQXVkaW9TZXNzaW9uCisgICAgdm9pZCBzZXRD
YXRlZ29yeShDYXRlZ29yeVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSkgZmluYWw7
CisgICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCkgZmluYWw7CisgICAgYm9v
bCB0cnlUb1NldEFjdGl2ZUludGVybmFsKGJvb2wpIGZpbmFsOworCisgICAgQ2F0ZWdvcnlUeXBl
IGNhdGVnb3J5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmNhdGVnb3J5
OyB9CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5yb3V0ZVNoYXJpbmdQb2xpY3k7
IH0KKyAgICBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2NvbmZpZ3VyYXRpb24ucm91dGluZ0NvbnRleHRVSUQ7IH0KKyAgICBmbG9hdCBzYW1wbGVSYXRl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnNhbXBsZVJhdGU7IH0KKyAg
ICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlv
bi5idWZmZXJTaXplOyB9CisgICAgc2l6ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24ubnVtYmVyT2ZPdXRwdXRDaGFubmVsczsg
fQorICAgIHNpemVfdCBwcmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9jb25maWd1cmF0aW9uLnByZWZlcnJlZEJ1ZmZlclNpemU7IH0KKyAgICBib29sIGlzTXV0ZWQo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uaXNNdXRlZDsgfQorICAgIGJv
b2wgaXNBY3RpdmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uaXNBY3Rp
dmU7IH0KKworICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKKyAgICBSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uIG1fY29uZmlndXJhdGlvbjsKK307CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4OTYyOGY2NTdlZjdjZGJj
ZGJhNzc5ZDQxZGI5OWJjYTVkNDRiMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgpAQCAt
MCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNF
KEFVRElPX1NFU1NJT04pCisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvbiBOb3RSZWZD
b3VudGVkIHsKKyAgICBDb25maWd1cmF0aW9uQ2hhbmdlZChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgQmVnaW5JbnRlcnJ1
cHRpb24oZW51bTp1aW50OF90IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRpb25UeXBlIHR5cGUpCisgICAgRW5kSW50ZXJydXB0aW9uKGVudW06dWludDhfdCBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZTZjNDM2MmVkOTVhYTZjNTAxY2QwYTZhMjAzZDJiNWVhNzFmMGI4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisK
KyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kworc3RydWN0IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24geworCisgICAgV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnk7CisgICAgV2ViQ29yZTo6Um91
dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeTsKKyAgICBTdHJpbmcgcm91dGluZ0Nv
bnRleHRVSUQ7CisgICAgZmxvYXQgc2FtcGxlUmF0ZTsKKyAgICB1aW50NjRfdCBidWZmZXJTaXpl
OworICAgIHVpbnQ2NF90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAgdWludDY0X3QgcHJl
ZmVycmVkQnVmZmVyU2l6ZTsKKyAgICBib29sIGlzTXV0ZWQ7CisgICAgYm9vbCBpc0FjdGl2ZTsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgY2F0ZWdvcnk7CisgICAg
ICAgIGVuY29kZXIgPDwgcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBlbmNvZGVyIDw8IHJv
dXRpbmdDb250ZXh0VUlEOworICAgICAgICBlbmNvZGVyIDw8IHNhbXBsZVJhdGU7CisgICAgICAg
IGVuY29kZXIgPDwgYnVmZmVyU2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBudW1iZXJPZk91dHB1
dENoYW5uZWxzOworICAgICAgICBlbmNvZGVyIDw8IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAg
ICAgIGVuY29kZXIgPDwgaXNNdXRlZDsKKyAgICAgICAgZW5jb2RlciA8PCBpc0FjdGl2ZTsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9uYWw8
UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZT4gY2F0ZWdvcnk7CisgICAgICAgIGRlY29kZXIgPj4gY2F0ZWdvcnk7CisgICAgICAgIGlm
ICghY2F0ZWdvcnkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAg
IE9wdGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gcm91dGVTaGFyaW5nUG9saWN5
OworICAgICAgICBkZWNvZGVyID4+IHJvdXRlU2hhcmluZ1BvbGljeTsKKyAgICAgICAgaWYgKCFy
b3V0ZVNoYXJpbmdQb2xpY3kpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgICAgIE9wdGlvbmFsPFN0cmluZz4gcm91dGluZ0NvbnRleHRVSUQ7CisgICAgICAgIGRlY29k
ZXIgPj4gcm91dGluZ0NvbnRleHRVSUQ7CisgICAgICAgIGlmICghcm91dGluZ0NvbnRleHRVSUQp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGZs
b2F0PiBzYW1wbGVSYXRlOworICAgICAgICBkZWNvZGVyID4+IHNhbXBsZVJhdGU7CisgICAgICAg
IGlmICghc2FtcGxlUmF0ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IGJ1ZmZlclNpemU7CisgICAgICAgIGRlY29kZXIgPj4g
YnVmZmVyU2l6ZTsKKyAgICAgICAgaWYgKCFidWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDx1aW50NjRfdD4gbnVtYmVyT2ZPdXRw
dXRDaGFubmVsczsKKyAgICAgICAgZGVjb2RlciA+PiBudW1iZXJPZk91dHB1dENoYW5uZWxzOwor
ICAgICAgICBpZiAoIW51bWJlck9mT3V0cHV0Q2hhbm5lbHMpCisgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBwcmVmZXJyZWRCdWZm
ZXJTaXplOworICAgICAgICBkZWNvZGVyID4+IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgICAg
IGlmICghcHJlZmVycmVkQnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNNdXRlZDsKKyAgICAgICAgZGVjb2RlciA+
PiBpc011dGVkOworICAgICAgICBpZiAoIWlzTXV0ZWQpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGlzQWN0aXZlOworICAgICAgICBk
ZWNvZGVyID4+IGlzQWN0aXZlOworICAgICAgICBpZiAoIWlzQWN0aXZlKQorICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4ge3sKKyAgICAgICAgICAgIFdU
Rk1vdmUoKmNhdGVnb3J5KSwKKyAgICAgICAgICAgIFdURk1vdmUoKnJvdXRlU2hhcmluZ1BvbGlj
eSksCisgICAgICAgICAgICBXVEZNb3ZlKCpyb3V0aW5nQ29udGV4dFVJRCksCisgICAgICAgICAg
ICAqc2FtcGxlUmF0ZSwKKyAgICAgICAgICAgICpidWZmZXJTaXplLAorICAgICAgICAgICAgKm51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsCisgICAgICAgICAgICAqcHJlZmVycmVkQnVmZmVyU2l6ZSwK
KyAgICAgICAgICAgICppc011dGVkLAorICAgICAgICAgICAgKmlzQWN0aXZlLAorICAgICAgICB9
fTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uSWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzE0ODBjNjk0ZTJiM2Q5N2I1
OTZlMmEwNzMwM2Q2N2ZiMGY5OWJkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oCkBAIC0w
LDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRl
bnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBSZW1vdGVBdWRpb1Nlc3Np
b25JZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVy
ID0gT2JqZWN0SWRlbnRpZmllcjxSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyVHlwZT47CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCmluZGV4IDVkN2E4
YjhkMTEyNGIyYTUyOGFkNzNiZGM5NmQ5YTk3ODBkYzIwNGMuLjAyZTZiMjk5Yzk3YzgyZGE3YWU4
ZWRkNWZkYTEyN2RkNjI1NGEzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcApAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb24uaCIKICNp
bmNsdWRlICJSZW1vdGVDRE1GYWN0b3J5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgpAQCAtMzYsMjIgKzM3LDI0IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogV2ViTWVk
aWFTdHJhdGVneTo6fldlYk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7CiAKICNpZiBFTkFCTEUo
V0VCX0FVRElPKQotc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdl
Yk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0Nh
bGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorc3RkOjp1bmlx
dWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVz
dGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERl
dmljZUlkLAogICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVt
YmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCiAgICAgaWYgKG1fdXNlR1BVUHJvY2VzcykKICAgICAgICAgcmV0dXJuIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUp
OwogI2VuZGlmCi0gICAgcmV0dXJuIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShj
YWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91
dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKKyAgICByZXR1cm4gTWVkaWFTdHJhdGVneTo6Y3Jl
YXRlQXVkaW9EZXN0aW5hdGlvbihjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKIH0KICNlbmRp
ZgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLXZvaWQgV2ViTWVkaWFTdHJhdGVneTo6
cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPFdlYkNvcmU6OkNETUZhY3RvcnkqPiYgZmFjdG9y
aWVzKQordm9pZCBXZWJNZWRpYVN0cmF0ZWd5OjpyZWdpc3RlckNETUZhY3RvcmllcyhWZWN0b3I8
Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAg
IGlmIChtX3VzZUdQVVByb2Nlc3MpIHsKQEAgLTU5LDcgKzYyLDE4IEBAIHZvaWQgV2ViTWVkaWFT
dHJhdGVneTo6cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPFdlYkNvcmU6OkNETUZhY3Rvcnkq
PiYgZmFjdG9yCiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKLSAgICBXZWJDb3JlOjpD
RE1GYWN0b3J5OjpwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKGZhY3Rvcmllcyk7CisgICAgTWVk
aWFTdHJhdGVneTo6cmVnaXN0ZXJDRE1GYWN0b3JpZXMoZmFjdG9yaWVzKTsKK30KKyNlbmRpZgor
CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCitVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBXZWJNZWRp
YVN0cmF0ZWd5OjpjcmVhdGVBdWRpb1Nlc3Npb24oKQoreworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKyAgICBpZiAobV91c2VHUFVQcm9jZXNzKQorICAgICAgICByZXR1cm4gUmVtb3RlQXVkaW9T
ZXNzaW9uOjpjcmVhdGUoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkpOworI2VuZGlmCisgICAgcmV0
dXJuIE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJh
dGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0
ZWd5LmgKaW5kZXggNGZhYjBlOTQ0ZmMxNGU2ODQzNzllMzAwODE2M2JlMTYyZGQ4OWI0ZC4uNGM1
Y2Q3YzM1MDhkNmRiZjliNGZmMGJhYjBkYjUyZjc4NGU2MzMxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKQEAgLTQ2
LDYgKzQ2LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckNETUZhY3RvcmllcyhWZWN0
b3I8V2ViQ29yZTo6Q0RNRmFjdG9yeSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorI2lmIFVTRShB
VURJT19TRVNTSU9OKQorICAgIFVuaXF1ZVJlZjxXZWJDb3JlOjpBdWRpb1Nlc3Npb24+IGNyZWF0
ZUF1ZGlvU2Vzc2lvbigpIG92ZXJyaWRlOworI2VuZGlmCisKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCiAgICAgYm9vbCBtX3VzZUdQVVByb2Nlc3MgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggYjkwOWVjYzQzOWJjZDNjNmY2ZGE4MDQxYzZlZjI5
M2ZmMzQ2Njk2Zi4uNmI0NzNjZTkzYWI4ZWVjOTFkOTNiNzA4NzA0M2ViYTc4MzVmMTZkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtNjUsMjYgKzY1LDkgQEAgUGFzdGVib2Fy
ZFN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVn
eSgpCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLWNsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwg
OiBwdWJsaWMgTWVkaWFTdHJhdGVneSB7Ci1wcml2YXRlOgotI2lmIEVOQUJMRShXRUJfQVVESU8p
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGlu
YXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmlj
ZUlkLAotICAgICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlCi0gICAgewot
ICAgICAgICByZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERl
dmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNh
bXBsZVJhdGUpOwotICAgIH0KLSNlbmRpZgotI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0g
ICAgdm9pZCByZWdpc3RlckNETUZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+JiBmYWN0b3Jp
ZXMpIG92ZXJyaWRlCi0gICAgewotICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q0RNRmFjdG9yeTo6
cGxhdGZvcm1SZWdpc3RlckZhY3RvcmllcyhmYWN0b3JpZXMpOwotICAgIH0KLSNlbmRpZgotfTsK
LQogTWVkaWFTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0
ZWd5KCkKIHsKLSAgICByZXR1cm4gbmV3IFdlYk1lZGlhU3RyYXRlZ3k7CisgICAgcmV0dXJuIG5l
dyBNZWRpYVN0cmF0ZWd5OwogfQogCiBjbGFzcyBXZWJCbG9iUmVnaXN0cnkgZmluYWwgOiBwdWJs
aWMgQmxvYlJlZ2lzdHJ5IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392518</attachid>
            <date>2020-03-04 17:30:00 -0800</date>
            <delta_ts>2020-03-04 17:38:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200304172957.patch</filename>
            <type>text/plain</type>
            <size>17594</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDExZDkxNDJiNDFlZGMy
MDQ1YjAxZDcxOGM2M2YxNDEwYTZjNDIzYS4uMWRiNzBhNjZlMWJkYTk4YmEyZDU1N2RhZjRmMTQ4
NzNlMjg2NWRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTAzLTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQg
UmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYW4gaW1wbGVtZW50YXRpb24gb2YgTWVkaWFTdHJhdGVneSB3aGljaCBw
cm92aWRlcyBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBvZiB0aGUKKyAgICAgICAgcGxhdGZvcm0g
Y3JlYXRpb24gbWV0aG9kcywgc28gdGhleSBkb24ndCBuZWVkIHRvIGJlIHJlLWltcGxlbWVudGVk
IGJ5IGVhY2ggY2xpZW50IHVubGVzcworICAgICAgICB0aGF0IGNsaWVudCBuZWVkcyB0byBvdmVy
cmlkZSB0aGF0IGJlaGF2aW9yLgorCisgICAgICAgIEFkZCBFbnVtVHJhaXRzIGZvciBhbGwgdGhl
IGVudW1lcmF0aW9ucyBpbnNpZGUgQXVkaW9TZXNzaW9uLgorCisgICAgICAgIE1ha2UgbWFueSBB
dWRpb1Nlc3Npb24gbWV0aG9kcyB2aXJ0dWFsLCBzbyB0aGV5IGNhbiBiZSBvdmVycmlkZGVuIGlu
IHRoZSBjYXNlIHdoZXJlIHRoZQorICAgICAgICBHUFUgcHJvY2VzcyBpcyBlbmFibGVkLgorCisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmguCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb1Nlc3Npb24pOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmF0ZWd5OjpyZWdpc3RlckNETUZhY3Rvcmllcyk6CisgICAgICAgICog
cGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlv
U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24pOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisKIDIwMjAtMDItMjggIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIEltcGxlbWVudCBNb2Rlcm4gRU1FIEFQ
SSBpbiB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYTcyMWZiYjFhZDhhNWFhNmJk
YTA5YjYzYjNhMmE5ZDk5N2M5MTEyZi4uMDA2ZTM4YWI2OTBhNTY4NTY5OGQ3NzNkMzhlYmQ0ZWUx
MjJjYTNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NDAsNiArMTc0MCw3IEBAIHBsYXRmb3JtL0xv
Z2dpbmcuY3BwCiBwbGF0Zm9ybS9Mb3dQb3dlck1vZGVOb3RpZmllci5jcHAKIHBsYXRmb3JtL01J
TUVUeXBlUmVnaXN0cnkuY3BwCiBwbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwCitw
bGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmNwcAogcGxhdGZvcm0vTm90SW1wbGVtZW50ZWQuY3BwCiBw
bGF0Zm9ybS9QYXN0ZWJvYXJkLmNwcAogcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZGYwMjNlYmQ0ZWRkYmY2OTM0MDU3MjM2OTdhZGU5YmY1Mzk2ODU4OS4uZGRhZjcxZDNj
ZjRmYWZjNmI0YTc1MjkzOTQwOWM2MWQ0MTg2ZGFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM5ODcsNiArMTM5ODcsNyBA
QAogCQlDREFFOEMwODE3NDZCOTU3MDA1MzJENzggLyogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREI3MDQ1ODFGNzQ2
NUExMDAzOTIzREYgLyogQ0RNRmFpclBsYXlTdHJlYW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0RN
RmFpclBsYXlTdHJlYW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCNzA0
NTkxRjc0NjVBMTAwMzkyM0RGIC8qIENETUZhaXJQbGF5U3RyZWFtaW5nLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENETUZhaXJQbGF5U3RyZWFtaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RCQjQ5RjIyNDBEODY1MjAwMTdDMjkyIC8qIE1lZGlhU3RyYXRlZ3kuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTdHJhdGVneS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEQkQzRDI4MUZFODVDQjgwMDEyQzU0NSAvKiBWaWRlb0NvbmZpZ3VyYXRpb24u
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpZGVvQ29uZmlndXJhdGlvbi5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQkQzRDI5MUZFODVDQjkwMDEyQzU0NSAvKiBNZWRp
YUNvbmZpZ3VyYXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhQ29uZmlndXJh
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQkQzRDJBMUZFODVDQkEw
MDEyQzU0NSAvKiBNZWRpYUVuY29kaW5nQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTWVkaWFFbmNvZGluZ0NvbmZpZ3VyYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjU5NjMsNiArMjU5NjQsNyBAQAogCQkJCUNERjJCMDAzMTgxRjA1OUMw
MEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8sCiAJCQkJQ0Q2NDFFQzcxODFFRDYwMTAw
RUU0QzQxIC8qIE1lZGlhU2FtcGxlLmggKi8sCiAJCQkJQTE3RDI3NUQxRUFDNTc5ODAwQkYwMUU3
IC8qIE1lZGlhU2VsZWN0aW9uT3B0aW9uLmggKi8sCisJCQkJQ0RCQjQ5RjIyNDBEODY1MjAwMTdD
MjkyIC8qIE1lZGlhU3RyYXRlZ3kuY3BwICovLAogCQkJCTlCMTIyOUM2MjNGRTRENUYwMDhDQTc1
MSAvKiBNZWRpYVN0cmF0ZWd5LmggKi8sCiAJCQkJQkM3NzJDNEMwQzRFQjMwNDAwODMyODVGIC8q
IE1JTUVUeXBlUmVnaXN0cnkuY3BwICovLAogCQkJCUJDNzcyQzREMEM0RUIzMDQwMDgzMjg1RiAv
KiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9NZWRpYVN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3Ry
YXRlZ3kuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3YzI0Y2QwNjAzMTM1ZTRlY2YxZmNlZWEwZDEwMGYxN2Jl
NWQ4MTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5LmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKKworI2luY2x1ZGUgIkF1ZGlvRGVzdGlu
YXRpb24uaCIKKyNpbmNsdWRlICJBdWRpb1Nlc3Npb24uaCIKKyNpbmNsdWRlICJCbG9iUmVnaXN0
cnlJbXBsLmgiCisjaW5jbHVkZSAiQ0RNRmFjdG9yeS5oIgorI2luY2x1ZGUgIkxlZ2FjeUNETS5o
IgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisj
aWYgVVNFKEFVRElPX1NFU1NJT04pCitVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBNZWRpYVN0cmF0
ZWd5OjpjcmVhdGVBdWRpb1Nlc3Npb24oKQoreworICAgIHJldHVybiBBdWRpb1Nlc3Npb246OmNy
ZWF0ZSgpOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorc3RkOjp1bmlxdWVf
cHRyPEF1ZGlvRGVzdGluYXRpb24+IE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRp
b24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LAorICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKK3sKKyAgICByZXR1cm4gQXVkaW9EZXN0
aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOworfQorI2VuZGlmCisK
KyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQordm9pZCBNZWRpYVN0cmF0ZWd5OjpyZWdpc3Rl
ckNETUZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMpCit7CisgICAgcmV0
dXJuIENETUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoZmFjdG9yaWVzKTsKK30K
KyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKaW5kZXgg
NjBhNTg0N2M4Y2VjMTBiNzliNzQ5YTZmYWY4NTAzZDE2YTE5OWI5NS4uY2RjNDg1Y2Y0NDAyNzAy
YzliYTUwMWEzYjBiNGJmNjI3ZDQ2OGJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVkaWFTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlh
U3RyYXRlZ3kuaApAQCAtMzEsMTYgKzMxLDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQXVkaW9EZXN0aW5hdGlvbjsKIGNsYXNzIEF1ZGlvSU9DYWxsYmFjazsKK2NsYXNzIEF1ZGlv
U2Vzc2lvbjsKIGNsYXNzIENETUZhY3Rvcnk7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIE1lZGlh
U3RyYXRlZ3kgewogcHVibGljOgorI2lmIFVTRShBVURJT19TRVNTSU9OKQorICAgIHZpcnR1YWwg
VW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4gY3JlYXRlQXVkaW9TZXNzaW9uKCk7CisjZW5kaWYKICNp
ZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRGVz
dGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oCi0gICAgICAgIEF1ZGlvSU9DYWxsYmFj
ayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KSA9IDA7CisgICAgICAgIEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZp
Y2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91
dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKICNlbmRpZgogI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3Rv
cjxDRE1GYWN0b3J5Kj4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQ0RNRmFjdG9y
aWVzKFZlY3RvcjxDRE1GYWN0b3J5Kj4mKTsKICNlbmRpZgogcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgfk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcAppbmRleCBiNWZiNTgwNjQ4ZjljZjhlYzRmMTg2ZmFm
YTQ4ZTEzZmRjZjJmNTdkLi4xZDI5OWRlNGVmYzg2ZGUzYWVjNDlhM2Y3ZTFiZThiM2I4ZmVmYzE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAK
QEAgLTI4LDE1ICsyOCwzMSBAQAogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAKKyNpbmNsdWRl
ICJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBBdWRpb1Nl
c3Npb246OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8QXVkaW9TZXNzaW9u
PigpOworfQorCiBBdWRpb1Nlc3Npb24mIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF1ZGlvU2Vzc2lvbj4gc2Vzc2lvbjsKLSAgICBy
ZXR1cm4gc2Vzc2lvbjsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAg
c3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPj4gc2Vzc2lv
bjsKKworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisgICAgICAgIGlmIChhdXRv
IHN0cmF0ZWdpZXMgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKSkKKyAgICAgICAgICAgIHNlc3Npb24g
PSBzdHJhdGVnaWVzLT5tZWRpYVN0cmF0ZWd5KCkuY3JlYXRlQXVkaW9TZXNzaW9uKCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHNlc3Npb24gPSBBdWRpb1Nlc3Npb246OmNyZWF0ZSgpOwor
ICAgIH0pOworCisgICAgcmV0dXJuIHNlc3Npb24uZ2V0KCk7CiB9CiAKIGJvb2wgQXVkaW9TZXNz
aW9uOjp0cnlUb1NldEFjdGl2ZShib29sIGFjdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKaW5kZXggZTcwMDgyMmZmMWZlZWJkNzgyOWFlYzc1MGNj
ZTQwYTYwYjkyNTY2YS4uY2ZjNDEzODYwMjVlN2E2NDhhYzJlM2I2M2I5NjVmYTQzZDU0M2QyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0
Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNDQsMTMgKzQ1LDE3IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5n
UG9saWN5IDogdWludDhfdCB7CiAgICAgTG9uZ0Zvcm1WaWRlbwogfTsKIAotY2xhc3MgQXVkaW9T
ZXNzaW9uIGZpbmFsIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbiB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9T
ZXNzaW9uKTsKKyAgICBmcmllbmQgY2xhc3MgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj47CisgICAg
ZnJpZW5kIFVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRG
YXN0TWFsbG9jQ2hlY2s8QXVkaW9TZXNzaW9uPigpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBBdWRpb1Nlc3Npb24mIHNoYXJlZFNlc3Npb24oKTsKKyAgICBzdGF0aWMgVW5p
cXVlUmVmPEF1ZGlvU2Vzc2lvbj4gY3JlYXRlKCk7CisgICAgc3RhdGljIEF1ZGlvU2Vzc2lvbiYg
c2hhcmVkU2Vzc2lvbigpOworICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvbigpOwogCi0gICAgZW51
bSBDYXRlZ29yeVR5cGUgeworICAgIGVudW0gQ2F0ZWdvcnlUeXBlIDogdWludDhfdCB7CiAgICAg
ICAgIE5vbmUsCiAgICAgICAgIEFtYmllbnRTb3VuZCwKICAgICAgICAgU29sb0FtYmllbnRTb3Vu
ZCwKQEAgLTU5LDIzICs2NCwyMyBAQCBwdWJsaWM6CiAgICAgICAgIFBsYXlBbmRSZWNvcmQsCiAg
ICAgICAgIEF1ZGlvUHJvY2Vzc2luZywKICAgICB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpOwotICAgIFdFQkNP
UkVfRVhQT1JUIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9p
ZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUsIFJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdmly
dHVhbCBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Q2F0ZWdv
cnlPdmVycmlkZShDYXRlZ29yeVR5cGUpOwogICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeU92ZXJy
aWRlKCkgY29uc3Q7CiAKLSAgICBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5
KCkgY29uc3Q7Ci0gICAgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEKCkgY29uc3Q7CisgICAgdmly
dHVhbCBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7CisgICAg
dmlydHVhbCBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQoKSBjb25zdDsKIAotICAgIGZsb2F0IHNh
bXBsZVJhdGUoKSBjb25zdDsKLSAgICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNp
emVfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzKCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBz
YW1wbGVSYXRlKCkgY29uc3Q7CisgICAgdmlydHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0
OworICAgIHZpcnR1YWwgc2l6ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAog
ICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmUoYm9vbCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXpl
X3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0UHJlZmVycmVkQnVm
ZmVyU2l6ZShzaXplX3QpOworICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3Qp
OwogCiAgICAgY2xhc3MgTXV0ZWRTdGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04Nywx
NyArOTIsMTYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVk
U3RhdGVPYnNlcnZlciopOwogICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVk
U3RhdGVPYnNlcnZlciopOwogCi0gICAgYm9vbCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBo
YW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCk7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9v
bCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29s
IGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3Rl
Y3RlZDoKICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAg
ICBBdWRpb1Nlc3Npb24oKTsKLSAgICB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRv
U2V0QWN0aXZlSW50ZXJuYWwoYm9vbCk7CisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZl
SW50ZXJuYWwoYm9vbCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0
ZT4gbV9wcml2YXRlOwogICAgIEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1l
ZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRp
YVNlc3Npb24uaAppbmRleCBhOGQxOGJlNGVhYmFlOWVjODBmZjVkZWY0ZmI3YmNhOWRhNjU3MDdh
Li4xMjhmYWRhZTBmZDk2N2VmYTBmZTljYzE0MTU3NDdkOTNmZWNjZDM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAg
LTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Np
b24oKTsKIAotICAgIGVudW0gY2xhc3MgTWVkaWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1lZGlh
VHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb25lID0gMCwKICAgICAgICAgVmlkZW8sCiAgICAg
ICAgIFZpZGVvQXVkaW8sCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5cGUg
bWVkaWFUeXBlKCkgY29uc3Q7CiAgICAgTWVkaWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBjb25z
dDsKIAotICAgIGVudW0gU3RhdGUgeworICAgIGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAgICAg
ICAgSWRsZSwKICAgICAgICAgQXV0b3BsYXlpbmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC03OSw3
ICs3OSw3IEBAIHB1YmxpYzoKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGU7IH0KICAgICB2b2lkIHNldFN0YXRlKFN0YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0aW9u
VHlwZSB7CisgICAgZW51bSBJbnRlcnJ1cHRpb25UeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5v
SW50ZXJydXB0aW9uLAogICAgICAgICBTeXN0ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdCYWNr
Z3JvdW5kLApAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1cHRp
b25UeXBlIGludGVycnVwdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlvblR5
cGU7IH0KIAotICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5kSW50
ZXJydXB0aW9uRmxhZ3MgOiB1aW50OF90IHsKICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAgICAg
IE1heVJlc3VtZVBsYXlpbmcgPSAxIDw8IDAsCiAgICAgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGRvdWJsZSBhc0RvdWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRBcmd1
bWVudDsKIAotICAgIGVudW0gUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVtIFJl
bW90ZUNvbnRyb2xDb21tYW5kVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQsCiAg
ICAgICAgIFBsYXlDb21tYW5kLAogICAgICAgICBQYXVzZUNvbW1hbmQsCkBAIC0xNDAsNyArMTQw
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJl
bW90ZUNvbnRyb2xDb21tYW5kVHlwZSwgY29uc3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBhcmd1
bWVudCA9IG51bGxwdHIpOwogICAgIGJvb2wgc3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAKLSAg
ICBlbnVtIERpc3BsYXlUeXBlIHsKKyAgICBlbnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7CiAg
ICAgICAgIE5vcm1hbCwKICAgICAgICAgRnVsbHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVkLApA
QCAtMzExLDQgKzMxMSw2NCBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZT4gewogICAgIH0KIH07CiAKK3Rl
bXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpNZWRpYVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6VmlkZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246Ok1lZGlhVHlwZTo6VmlkZW9BdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6TWVkaWFUeXBlOjpXZWJBdWRpbworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6U3RhdGUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0
YXRlOjpJZGxlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6QXV0
b3BsYXlpbmcsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQbGF5
aW5nLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2VkLAor
ICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQKKyAg
ICA+OworfTsKKwordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0
aW9uVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9u
VHlwZTo6Tm9JbnRlcnJ1cHRpb24sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OkludGVycnVwdGlvblR5cGU6OlN5c3RlbVNsZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUludGVy
cnVwdGlvbiwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9u
VHlwZTo6U3VzcGVuZGVkVW5kZXJMb2NrLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpJbnZpc2libGVBdXRvcGxheSwKKyAgICBXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZlLAor
ICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQbGF5
YmFja1N1c3BlbmRlZAorICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1lUGxh
eWluZworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNl
c3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGxh
eUNvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZTo6UGF1c2VDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRvZ2ds
ZVBsYXlQYXVzZUNvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJl
bW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAorICAg
IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6
OkVuZFNlZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNl
c3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENvbW1h
bmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21t
YW5kVHlwZTo6RW5kU2Vla2luZ0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNrUG9z
aXRpb25Db21tYW5kCisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5k
ZXggZDZjMDA3ZjQwYjVmYjc2MzcyMmQ1MzhhZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGExZDBh
YTYzODljM2RmODkzNjcxMGEzNTg5YTQ0NTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQzLDE1
IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZm
ZXJTaXplKQogICAgIEFTU0VSVCghZXJyb3IpOwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6aXNN
dXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vzc2lv
bjo6aGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShB
VURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392520</attachid>
            <date>2020-03-04 17:38:49 -0800</date>
            <delta_ts>2020-03-04 18:10:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200304173844.patch</filename>
            <type>text/plain</type>
            <size>104543</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkODA0MjkxNDkyNWFlNWJmYTc5ZWZj
ZmUxYTMwZDc5YjU1Yjg3NjEuLjcxNWExOGJmMDQzMDAxYjE3ZjUyODUyMzQ4OGUyNmYwOGIxNWU1
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBV
bmlxdWVSZWYgdG8gdGhlIGxpc3Qgb2YgZm9yd2FyZC1kZWNsYXJlZCB0ZW1wbGF0ZSB0eXBlcy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisKIDIwMjAtMDMtMDMgIEppdGVuIE1laHRhICA8
am1laHRhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBIVFRQIEFsdGVybmF0aXZlIFNlcnZp
Y2VzIFN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTFkOTE0MmI0MWVkYzIwNDViMDFkNzE4YzYzZjE0
MTBhNmM0MjNhLi4xZGI3MGE2NmUxYmRhOThiYTJkNTU3ZGFmNGYxNDg3M2UyODY1ZGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
biBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5IHdoaWNoIHByb3ZpZGVzIGRlZmF1bHQg
aW1wbGVtZW50YXRpb25zIG9mIHRoZQorICAgICAgICBwbGF0Zm9ybSBjcmVhdGlvbiBtZXRob2Rz
LCBzbyB0aGV5IGRvbid0IG5lZWQgdG8gYmUgcmUtaW1wbGVtZW50ZWQgYnkgZWFjaCBjbGllbnQg
dW5sZXNzCisgICAgICAgIHRoYXQgY2xpZW50IG5lZWRzIHRvIG92ZXJyaWRlIHRoYXQgYmVoYXZp
b3IuCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUgZW51bWVyYXRpb25zIGlu
c2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1ZGlvU2Vzc2lvbiBtZXRo
b2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGNhc2Ugd2hlcmUg
dGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0
ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb24uaDoKKwogMjAyMC0wMi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUF0gSW1wbGVtZW50IE1vZGVybiBFTUUgQVBJIGluIHRoZSBHUFUgUHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA0NTBlN2UzNTJmM2VhYjhmMzU2MGUxNjViNzNhYmU5M2MwODQ2OTA4
Li5lMjEzNWE3ZjM1YmY0Yjg0MzQxNzVjYmU4MWQ3YTdmMTE1YTM2NjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDk1IEBACisyMDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdWJjbGFzcyBv
ZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBhdWRpbyBiZWhh
dmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAgICAgYXVkaW8g
YmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJvY2Vzcywgc2lu
Y2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFsbHkKKyAgICAg
ICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAgICAgICAgRHVl
IHRvIHRoZSB3YXkgQXVkaW9TZXNzaW9uIG5vdyByZXF1aXJlcyB0aGUgUGxhdGZvcm1TdHJhdGVn
aWVzIG9iamVjdCB0byBjcmVhdGUgYSBjb25jcmV0ZSBBdWRpb1Nlc3Npb24sIHRoZSBHUFUKKyAg
ICAgICAgcHJvY2VzcyBuZWVkcyBpdHMgb3duIFBsYXRmb3JtU3RyYXRlZ2llcyBzdWJjbGFzcywg
YnV0IHVzaW5nIHRoZSBkZWZhdWx0IE1lZGlhU3RyYXRlZ3kgZnJvbSBXZWJDb3JlLgorCisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKToKKyAg
ICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVB
dWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpsZWdhY3lDZG1GYWN0b3J5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZUxvYWRlclN0cmF0ZWd5KToKKyAgICAgICAgKFdlYktpdDo6R1BV
UGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3kpOgorICAgICAgICAo
V2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorICAg
ICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Ojppbml0aWFsaXplR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmF1
ZGlvU2Vzc2lvbk1hbmFnZXIgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Ojpwcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6ZW5kSW50ZXJydXB0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbik6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnJvdXRl
U2hhcmluZ1BvbGljeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjpwcmVmZXJyZWRCdWZmZXJTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmdldFByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRDYXRlZ29yeUZvclByb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNl
dFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2Vzc2lv
biBjb25zdCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uOjpSZW1vdGVBdWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb246OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
OjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmg6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmg6CisKIDIwMjAtMDItMjMgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIEltcGxlbWVudCBNb2Rlcm4gRU1FIEFQ
SSBpbiB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4ODZk
ZGVhNWY2ZjAzMmU5YTg4MjZlZjFkYjYwMDc0YmI2OTc3MGQyLi45OTlkYmRiNzlkNzhmZTM2YzJi
YTY0ODUwYzk1YzQyM2UwNGU4MDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUgZGVmYXVsdCBN
ZWRpYVN0cmF0ZWd5IGZyb20gV2ViQ29yZSBub3cgdGhhdCBpdCdzIGF2YWlsYWJsZS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisKIDIwMjAtMDMt
MDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEl0ZW1zIGluIHRoZSB0b29sYmFyIHRha2UgdXAgdG8gbXVjaCB2ZXJ0aWNhbCBzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYv
Rm9yd2FyZC5oCmluZGV4IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThmNzAzYThmMGQu
LjZlOTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAg
LTY4LDYgKzY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBEdW1iUHRyVHJh
aXRzPFQ+PiBjbGFzcyBSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IER1bWJQ
dHJUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJp
bmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBjbGFzcyBTdHJp
bmdUeXBlQWRhcHRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1ZVJlZjsKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBz
dHJ1Y3QgRGVmYXVsdEhhc2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEyNSw2ICsxMjYs
NyBAQCB1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3NpdGlvbjsKIHVz
aW5nIFdURjo6VGV4dFN0cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RGOjpVbmlxdWVS
ZWY7CiB1c2luZyBXVEY6OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCBhNzIxZmJiMWFkOGE1YWE2YmRhMDliNjNiM2EyYTlkOTk3YzkxMTJmLi4wMDZlMzhh
YjY5MGE1Njg1Njk4ZDc3M2QzOGViZDRlZTEyMmNhM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc0
MCw2ICsxNzQwLDcgQEAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKIHBsYXRmb3JtL0xvd1Bvd2VyTW9k
ZU5vdGlmaWVyLmNwcAogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKIHBsYXRmb3JtL01h
aW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKK3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCiBwbGF0
Zm9ybS9Ob3RJbXBsZW1lbnRlZC5jcHAKIHBsYXRmb3JtL1Bhc3RlYm9hcmQuY3BwCiBwbGF0Zm9y
bS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZjAyM2ViZDRlZGRiZjY5MzQwNTcyMzY5
N2FkZTliZjUzOTY4NTg5Li5kZGFmNzFkM2NmNGZhZmM2YjRhNzUyOTM5NDA5YzYxZDQxODZkYWU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzk4Nyw2ICsxMzk4Nyw3IEBACiAJCUNEQUU4QzA4MTc0NkI5NTcwMDUzMkQ3OCAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVh
bWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDRE1GYWlyUGxheVN0cmVhbWluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREI3MDQ1OTFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBs
YXlTdHJlYW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0My
OTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmF0ZWd5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNEMjgxRkU4NUNCODAwMTJD
NTQ1IC8qIFZpZGVvQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlk
ZW9Db25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNE
MjkxRkU4NUNCOTAwMTJDNTQ1IC8qIE1lZGlhQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RCRDNEMkExRkU4NUNCQTAwMTJDNTQ1IC8qIE1lZGlhRW5jb2RpbmdDb25maWd1
cmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUVuY29kaW5nQ29uZmlndXJh
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTk2Myw2ICsyNTk2NCw3
IEBACiAJCQkJQ0RGMkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAq
LywKIAkJCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLywKIAkJ
CQlBMTdEMjc1RDFFQUM1Nzk4MDBCRjAxRTcgLyogTWVkaWFTZWxlY3Rpb25PcHRpb24uaCAqLywK
KwkJCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0MyOTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8sCiAJ
CQkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCQlC
Qzc3MkM0QzBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJ
QkM3NzJDNEQwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdjMjRjZDA2
MDMxMzVlNGVjZjFmY2VlYTBkMTAwZjE3YmU1ZDgxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgorCisjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lv
bi5oIgorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJDRE1GYWN0b3J5
LmgiCisjaW5jbHVkZSAiTGVnYWN5Q0RNLmgiCisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKK1VuaXF1ZVJl
ZjxBdWRpb1Nlc3Npb24+IE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpCit7Cisg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJM
RShXRUJfQVVESU8pCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gTWVkaWFTdHJh
dGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KQoreworICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0
RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
c2FtcGxlUmF0ZSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCit2
b2lkIE1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5
Kj4mIGZhY3RvcmllcykKK3sKKyAgICByZXR1cm4gQ0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3RvcmllcyhmYWN0b3JpZXMpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU3RyYXRlZ3kuaAppbmRleCA2MGE1ODQ3YzhjZWMxMGI3OWI3NDlhNmZhZjg1MDNk
MTZhMTk5Yjk1Li5jZGM0ODVjZjQ0MDI3MDJjOWJhNTAxYTNiMGI0YmY2MjdkNDY4YmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCkBAIC0zMSwxNiArMzEsMjAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uOwogY2xhc3MgQXVk
aW9JT0NhbGxiYWNrOworY2xhc3MgQXVkaW9TZXNzaW9uOwogY2xhc3MgQ0RNRmFjdG9yeTsKIAog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CisjaWYgVVNFKEFV
RElPX1NFU1NJT04pCisgICAgdmlydHVhbCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBjcmVhdGVB
dWRpb1Nlc3Npb24oKTsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bigKLSAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKKyAgICAgICAgQXVkaW9JT0NhbGxiYWNr
JiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpOwogI2Vu
ZGlmCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+TWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4
IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNmMmY1N2QuLjFkMjk5ZGU0ZWZjODZk
ZTNhZWM0OWEzZjdlMWJlOGIzYjhmZWZjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMjgsMTUgKzI4LDMxIEBACiAKICNpZiBVU0Uo
QVVESU9fU0VTU0lPTikKIAorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1VuaXF1
ZVJlZjxBdWRpb1Nlc3Npb24+IEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
bWFrZVVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+KCk7Cit9CisKIEF1ZGlvU2Vzc2lvbiYgQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXVk
aW9TZXNzaW9uPiBzZXNzaW9uOwotICAgIHJldHVybiBzZXNzaW9uOworICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFVuaXF1
ZVJlZjxBdWRpb1Nlc3Npb24+PiBzZXNzaW9uOworCisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZs
YWcsIFtdIHsKKyAgICAgICAgaWYgKGF1dG8gc3RyYXRlZ2llcyA9IHBsYXRmb3JtU3RyYXRlZ2ll
cygpKQorICAgICAgICAgICAgc2Vzc2lvbiA9IHN0cmF0ZWdpZXMtPm1lZGlhU3RyYXRlZ3koKS5j
cmVhdGVBdWRpb1Nlc3Npb24oKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2Vzc2lvbiA9
IEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCk7CisgICAgfSk7CisKKyAgICByZXR1cm4gc2Vzc2lvbi5n
ZXQoKTsKIH0KIAogYm9vbCBBdWRpb1Nlc3Npb246OnRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAppbmRleCBl
NzAwODIyZmYxZmVlYmQ3ODI5YWVjNzUwY2NlNDBhNjBiOTI1NjZhLi5jZmM0MTM4NjAyNWU3YTY0
OGFjMmUzYjYzYjk2NWZhNDNkNTQzZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb1Nlc3Npb24uaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCwxMyArNDUsMTcg
QEAgZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90IHsKICAgICBMb25nRm9y
bVZpZGVvCiB9OwogCi1jbGFzcyBBdWRpb1Nlc3Npb24gZmluYWwgeworY2xhc3MgV0VCQ09SRV9F
WFBPUlQgQXVkaW9TZXNzaW9uIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1Nlc3Npb24pOworICAgIGZyaWVuZCBjbGFzcyBVbmlx
dWVSZWY8QXVkaW9TZXNzaW9uPjsKKyAgICBmcmllbmQgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4g
V1RGOjptYWtlVW5pcXVlUmVmV2l0aG91dEZhc3RNYWxsb2NDaGVjazxBdWRpb1Nlc3Npb24+KCk7
CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvU2Vzc2lvbiYgc2hhcmVk
U2Vzc2lvbigpOworICAgIHN0YXRpYyBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBjcmVhdGUoKTsK
KyAgICBzdGF0aWMgQXVkaW9TZXNzaW9uJiBzaGFyZWRTZXNzaW9uKCk7CisgICAgdmlydHVhbCB+
QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBlbnVtIENhdGVnb3J5VHlwZSB7CisgICAgZW51bSBDYXRl
Z29yeVR5cGUgOiB1aW50OF90IHsKICAgICAgICAgTm9uZSwKICAgICAgICAgQW1iaWVudFNvdW5k
LAogICAgICAgICBTb2xvQW1iaWVudFNvdW5kLApAQCAtNTksMjMgKzY0LDIzIEBAIHB1YmxpYzoK
ICAgICAgICAgUGxheUFuZFJlY29yZCwKICAgICAgICAgQXVkaW9Qcm9jZXNzaW5nLAogICAgIH07
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUsIFJvdXRl
U2hhcmluZ1BvbGljeSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5
KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5VHlwZSwgUm91
dGVTaGFyaW5nUG9saWN5KTsKKyAgICB2aXJ0dWFsIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNv
bnN0OwogCiAgICAgdm9pZCBzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSk7CiAgICAg
Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdDsKIAotICAgIFJvdXRlU2hhcmlu
Z1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdDsKLSAgICBTdHJpbmcgcm91dGluZ0Nv
bnRleHRVSUQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNo
YXJpbmdQb2xpY3koKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyByb3V0aW5nQ29udGV4dFVJ
RCgpIGNvbnN0OwogCi0gICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0OwotICAgIHNpemVfdCBi
dWZmZXJTaXplKCkgY29uc3Q7Ci0gICAgc2l6ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBj
b25zdDsKKyAgICB2aXJ0dWFsIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IHNpemVfdCBidWZmZXJTaXplKCkgY29uc3Q7CisgICAgdmlydHVhbCBzaXplX3QgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscygpIGNvbnN0OwogCiAgICAgYm9vbCB0cnlUb1NldEFjdGl2ZShib29sKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIHNpemVfdCBwcmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCk7CisgICAgdmlydHVhbCBz
aXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRQ
cmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCk7CiAKICAgICBjbGFzcyBNdXRlZFN0YXRlT2JzZXJ2
ZXIgewogICAgIHB1YmxpYzoKQEAgLTg3LDE3ICs5MiwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBh
ZGRNdXRlZFN0YXRlT2JzZXJ2ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKik7CiAgICAgdm9pZCByZW1v
dmVNdXRlZFN0YXRlT2JzZXJ2ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKik7CiAKLSAgICBib29sIGlz
TXV0ZWQoKSBjb25zdDsKLSAgICB2b2lkIGhhbmRsZU11dGVkU3RhdGVDaGFuZ2UoKTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNNdXRlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVNdXRl
ZFN0YXRlQ2hhbmdlKCk7CiAKLSAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9h
Y3RpdmU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2Fj
dGl2ZTsgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBOZXZlckRl
c3Ryb3llZDxBdWRpb1Nlc3Npb24+OwogICAgIEF1ZGlvU2Vzc2lvbigpOwotICAgIH5BdWRpb1Nl
c3Npb24oKTsKIAotICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sKTsKKyAgICB2
aXJ0dWFsIGJvb2wgdHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sKTsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxBdWRpb1Nlc3Npb25Qcml2YXRlPiBtX3ByaXZhdGU7CiAgICAgSGFzaFNldDxNdXRl
ZFN0YXRlT2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCmluZGV4IGE4ZDE4YmU0ZWFiYWU5
ZWM4MGZmNWRlZjRmYjdiY2E5ZGE2NTcwN2EuLjEyOGZhZGFlMGZkOTY3ZWZhMGZlOWNjMTQxNTc0
N2Q5M2ZlY2NkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
UGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhU2Vzc2lvbigpOwogCi0gICAgZW51bSBjbGFzcyBNZWRpYVR5
cGUgeworICAgIGVudW0gY2xhc3MgTWVkaWFUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUg
PSAwLAogICAgICAgICBWaWRlbywKICAgICAgICAgVmlkZW9BdWRpbywKQEAgLTY5LDcgKzY5LDcg
QEAgcHVibGljOgogICAgIE1lZGlhVHlwZSBtZWRpYVR5cGUoKSBjb25zdDsKICAgICBNZWRpYVR5
cGUgcHJlc2VudGF0aW9uVHlwZSgpIGNvbnN0OwogCi0gICAgZW51bSBTdGF0ZSB7CisgICAgZW51
bSBTdGF0ZSA6IHVpbnQ4X3QgewogICAgICAgICBJZGxlLAogICAgICAgICBBdXRvcGxheWluZywK
ICAgICAgICAgUGxheWluZywKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIFN0YXRlIHN0
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogICAgIHZvaWQgc2V0U3RhdGUoU3RhdGUp
OwogCi0gICAgZW51bSBJbnRlcnJ1cHRpb25UeXBlIHsKKyAgICBlbnVtIEludGVycnVwdGlvblR5
cGUgOiB1aW50OF90IHsKICAgICAgICAgTm9JbnRlcnJ1cHRpb24sCiAgICAgICAgIFN5c3RlbVNs
ZWVwLAogICAgICAgICBFbnRlcmluZ0JhY2tncm91bmQsCkBAIC05MSw3ICs5MSw3IEBAIHB1Ymxp
YzoKICAgICB9OwogICAgIEludGVycnVwdGlvblR5cGUgaW50ZXJydXB0aW9uVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1faW50ZXJydXB0aW9uVHlwZTsgfQogCi0gICAgZW51bSBFbmRJbnRlcnJ1cHRp
b25GbGFncyB7CisgICAgZW51bSBFbmRJbnRlcnJ1cHRpb25GbGFncyA6IHVpbnQ4X3QgewogICAg
ICAgICBOb0ZsYWdzID0gMCwKICAgICAgICAgTWF5UmVzdW1lUGxheWluZyA9IDEgPDwgMCwKICAg
ICB9OwpAQCAtMTI0LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICAgICAgZG91YmxlIGFzRG91Ymxl
OwogICAgIH0gUmVtb3RlQ29tbWFuZEFyZ3VtZW50OwogCi0gICAgZW51bSBSZW1vdGVDb250cm9s
Q29tbWFuZFR5cGUgeworICAgIGVudW0gUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIDogdWludDhf
dCB7CiAgICAgICAgIE5vQ29tbWFuZCwKICAgICAgICAgUGxheUNvbW1hbmQsCiAgICAgICAgIFBh
dXNlQ29tbWFuZCwKQEAgLTE0MCw3ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNl
aXZlUmVtb3RlQ29udHJvbENvbW1hbmQoUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlLCBjb25zdCBS
ZW1vdGVDb21tYW5kQXJndW1lbnQqIGFyZ3VtZW50ID0gbnVsbHB0cik7CiAgICAgYm9vbCBzdXBw
b3J0c1NlZWtpbmcoKSBjb25zdDsKIAotICAgIGVudW0gRGlzcGxheVR5cGUgeworICAgIGVudW0g
RGlzcGxheVR5cGUgOiB1aW50OF90IHsKICAgICAgICAgTm9ybWFsLAogICAgICAgICBGdWxsc2Ny
ZWVuLAogICAgICAgICBPcHRpbWl6ZWQsCkBAIC0zMTEsNCArMzExLDY0IEBAIHN0cnVjdCBMb2dB
cmd1bWVudDxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1h
bmRUeXBlPiB7CiAgICAgfQogfTsKIAordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZT4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXMgPAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRp
YVR5cGUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6Tm9u
ZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpWaWRlbywK
KyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpWaWRlb0F1ZGlv
LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6OkF1ZGlvLAor
ICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6OldlYkF1ZGlvCisg
ICAgPjsKK307CisKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpTdGF0ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMg
PAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZSwKKyAgICBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU6OklkbGUsCisgICAgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OlN0YXRlOjpBdXRvcGxheWluZywKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6U3RhdGU6OlBsYXlpbmcsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlN0YXRlOjpQYXVzZWQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Np
b246OlN0YXRlOjpJbnRlcnJ1cHRlZAorICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlw
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMgPAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpOb0ludGVycnVwdGlvbiwKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVtU2xlZXAs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OkVu
dGVyaW5nQmFja2dyb3VuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50
ZXJydXB0aW9uVHlwZTo6U3lzdGVtSW50ZXJydXB0aW9uLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpTdXNwZW5kZWRVbmRlckxvY2ssCisgICAg
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OkludmlzaWJs
ZUF1dG9wbGF5LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRp
b25UeXBlOjpQcm9jZXNzSW5hY3RpdmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Np
b246OkludGVycnVwdGlvblR5cGU6OlBsYXliYWNrU3VzcGVuZGVkCisgICAgPjsKK307CisKK3Rl
bXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpFbmRJbnRlcnJ1cHRpb25GbGFncz4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMg
PAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFn
cywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxh
Z3M6Ok5vRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVy
cnVwdGlvbkZsYWdzOjpNYXlSZXN1bWVQbGF5aW5nCisgICAgPjsKK307CisKK3RlbXBsYXRlIDw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVD
b250cm9sQ29tbWFuZFR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAg
ICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBl
LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFu
ZFR5cGU6Ok5vQ29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVt
b3RlQ29udHJvbENvbW1hbmRUeXBlOjpQbGF5Q29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpQYXVzZUNvbW1hbmQsCisg
ICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlw
ZTo6U3RvcENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZTo6VG9nZ2xlUGxheVBhdXNlQ29tbWFuZCwKKyAgICBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpCZWdpblNl
ZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6RW5kU2Vla2luZ0JhY2t3YXJkQ29tbWFuZCwKKyAg
ICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBl
OjpCZWdpblNlZWtpbmdGb3J3YXJkQ29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpFbmRTZWVraW5nRm9yd2FyZENvbW1h
bmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21t
YW5kVHlwZTo6U2Vla1RvUGxheWJhY2tQb3NpdGlvbkNvbW1hbmQKKyAgICA+OworfTsKKwogfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
aW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQppbmRleCBkNmMwMDdmNDBiNWZiNzYzNzIyZDUzOGFkZWQw
MmQxYjgxYTE4ODU0Li44M2QyNDAwYTFkMGFhNjM4OWMzZGY4OTM2NzEwYTM1ODlhNDQ1ODg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9u
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Np
b25JT1MubW0KQEAgLTI0Myw2ICsyNDMsMTUgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldFByZWZl
cnJlZEJ1ZmZlclNpemUoc2l6ZV90IGJ1ZmZlclNpemUpCiAgICAgQVNTRVJUKCFlcnJvcik7CiB9
CiAKK2Jvb2wgQXVkaW9TZXNzaW9uOjppc011dGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgQXVkaW9TZXNzaW9uOjpoYW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCkKK3sK
K30KKwogfQogCiAjZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKElPU19G
QU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
aW5kZXggOWY5NDZmODQ5N2FmMjNiNGFmYTUxYjc5MTg0MTg1MTg4NjBhYzViOS4uZDc0OWIyZGIw
OWI5Njc0NmY0YTBmMWUzNGMyMTc0MmVkZjUzZTQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTgsNiArMTgsOCBAQCAkKFBST0pFQ1Rf
RElSKS9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nl
c3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0
YW5jZVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMTYsNiArMTE4LDcg
QEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3Nh
Z2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUNETUluc3RhbmNlU2Vzc2lvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1l
c3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCBhOTZjMmNmZGRkNDZiMzU5MjM4ZTk2MjM0M2E5OTIyMTA0ZWVhNTliLi45OTUw
MzUxMmJhNTU4YjJiNDEwMDhmNWIxNjY1MDQ2MGE5NTQxNDU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEzNyw2ICsxMzcsMTUgQEAg
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRp
b1Nlc3Npb25NZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzUmVw
bGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1G
YWN0b3J5UHJveHlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IDQ1ZWUzZGI3ZWQ3ZTEzMzcyYzhhNzVhZDU1NWExNjU4N2Y2N2QwOGEuLjFjM2QxYTIwZWVh
M2I3MzgwMDEwMmUxZDMxOTgzNzkwM2FhNmNkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTE0OCw2ICsxNDgsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Q
cm94eSBcCiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgXAogICAgIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eSBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uIFwKKyAgICBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eSBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBc
CiAgICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
NmNmMWMzMGIzZTMzMDEyNzc0NjZkOTJlZTI5MzMyNDYwN2U1OWNjMS4uMjQ5ODFmZmY1Mjg4M2M3
MDIxNzg1ODc5YmUxOGYxYjY5NGY5YmI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNzEsNiArNzEsMTEg
QEAKICNpbmNsdWRlICJSZW1vdGVDRE1Qcm94eU1lc3NhZ2VzLmgiCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisjaW5jbHVkZSAiUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmgiCisj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAg
LTExOSw2ICsxMjQsMTAgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKQogCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYpCiB7CisgICAgaWYgKG1fYXVkaW9TZXNzaW9uUHJveHkpIHsK
KyAgICAgICAgZ3B1UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5yZW1vdmVQcm94eSh3
ZWJQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICAgICAgbV9hdWRpb1Nlc3Npb25Qcm94eSA9IG51
bGxwdHI7CisgICAgfQogfQogCiBMb2dnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omxv
Z2dlcigpCkBAIC0yMTcsNiArMjI2LDE3IEBAIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Y2RtRmFjdG9yeVByb3h5KCkKIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKK1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphdWRpb1Nlc3Npb25Qcm94eSgp
Cit7CisgICAgaWYgKCFtX2F1ZGlvU2Vzc2lvblByb3h5KSB7CisgICAgICAgIG1fYXVkaW9TZXNz
aW9uUHJveHkgPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKCp0aGlzKS5tb3ZlVG9V
bmlxdWVQdHIoKTsKKyAgICAgICAgZ3B1UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5h
ZGRQcm94eShtYWtlV2Vha1B0cihtX2F1ZGlvU2Vzc2lvblByb3h5LmdldCgpKSk7CisgICAgfQor
ICAgIHJldHVybiAqbV9hdWRpb1Nlc3Npb25Qcm94eTsKK30KKyNlbmRpZgorCiB2b2lkIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpCiB7CiAgICAgYXV0byBh
ZGRSZXN1bHQgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1hcC5lbnN1cmUocmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIsIFsmXSgpIHsKQEAgLTIzMSw2ICsyNTEsMTMgQEAgdm9pZCBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWxlYXNlUmVuZGVyaW5nQmFja2VuZChSZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmkKICAgICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBmb3VuZCk7CiB9CiAK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQordm9pZCBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVBdWRpb1Nlc3Npb24oRW5zdXJlQXVkaW9TZXNz
aW9uQ29tcGxldGlvbiYmIGNvbXBsZXRpb24pCit7CisgICAgY29tcGxldGlvbihhdWRpb1Nlc3Np
b25Qcm94eSgpLmNvbmZpZ3VyYXRpb24oKSk7Cit9CisjZW5kaWYKKwogYm9vbCBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CkBAIC0zMDgsNiArMzM1LDEyIEBAIGJvb2wgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICNlbmRpZgorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGF1ZGlvU2Vzc2lvblByb3h5KCku
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyNlbmRpZgogCiAgICAgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRp
c3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKIH0KQEAgLTM1NSw2ICszODgsMTIg
QEAgYm9vbCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
I2VuZGlmCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgYXVkaW9T
ZXNzaW9uUHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlciwg
cmVwbHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCiAKICAg
ICByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggYTNlY2E1YzhmYWQ2
OTE4MzgwZmQ5MzNiZjYzMGRkNGNmZjczMGQ5Ni4uMzA3OTA2ZmEyMDUwNjgzOGE1NDUzYzE3OTk3
NzVkN2YzMmZiNWJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
U2Vzc2lvbklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuaCIKICNpbmNsdWRlICJSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KQEAgLTQ4LDEyICs0OSwxNSBAQCBjbGFzcyBH
UFVQcm9jZXNzOwogY2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHk7CiBjbGFzcyBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlcjsKIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlcjsKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OworY2xhc3MgUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOwogY2xhc3MgUmVtb3RlQ0RNRmFjdG9yeVByb3h5
OwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRp
YVJlY29yZGVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOwogY2xh
c3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKIGNsYXNzIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk7CitzdHJ1Y3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbjsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcwogICAgIDogcHVibGljIFJl
ZkNvdW50ZWQ8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4KQEAgLTkwLDExICs5NCwxNSBAQCBw
dWJsaWM6CiAgICAgUmVtb3RlQ0RNRmFjdG9yeVByb3h5JiBjZG1GYWN0b3J5UHJveHkoKTsKICNl
bmRpZgogCisgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5KCk7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9f
U0VTU0lPTikKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXImIGF1ZGlvU2Vzc2lv
bk1hbmFnZXIoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoR1BVUHJvY2VzcyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyJiByZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcigpOwotICAgIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eSgpOwogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQogICAgIExpYldlYlJU
Q0NvZGVjc1Byb3h5JiBsaWJXZWJSVENDb2RlY3NQcm94eSgpOwogI2VuZGlmCkBAIC0xMDYsOCAr
MTE0LDE3IEBAIHByaXZhdGU6CiAgICAgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlciYgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpOwogI2VuZGlmCiAjZW5kaWYK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHkmIGF1ZGlvU2Vzc2lvblByb3h5KCk7CisjZW5kaWYKKwogICAg
IHZvaWQgY3JlYXRlUmVuZGVyaW5nQmFja2VuZChSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7
CiAgICAgdm9pZCByZWxlYXNlUmVuZGVyaW5nQmFja2VuZChSZW5kZXJpbmdCYWNrZW5kSWRlbnRp
Zmllcik7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAg
ICB1c2luZyBFbnN1cmVBdWRpb1Nlc3Npb25Db21wbGV0aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJik+OworICAgIHZvaWQg
ZW5zdXJlQXVkaW9TZXNzaW9uKEVuc3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24mJik7CisjZW5k
aWYKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBkaWRDbG9zZShJ
UEM6OkNvbm5lY3Rpb24mKSBmaW5hbDsKQEAgLTE0Nyw2ICsxNjQsOSBAQCBwcml2YXRlOgogI2lm
IEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNETUZh
Y3RvcnlQcm94eT4gbV9jZG1GYWN0b3J5UHJveHk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eT4gbV9hdWRpb1Nlc3Npb25Qcm94eTsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDkzMmMw
MTIyZGUwODFlZGU5YmI5ZWZiNTZmOWJjNTI1OWJhNGQ3MDQuLjRmZDBmMjIzMDdlODM4ODM2ZDQ3
NGJhYjNlMDI3NWEzNWMwNzUwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0y
NSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFdhbnRz
RGlzcGF0Y2hNZXNzYWdlIHsKICAgICB2b2lkIENyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoV2ViS2l0
OjpSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcikK
ICAgICB2b2lkIFJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFdlYktpdDo6UmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpCisgICAgRW5zdXJlQXVkaW9T
ZXNzaW9uKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRp
b24gY29uZmlndXJhdGlvbikgU3luY2hyb25vdXMKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTMxYTcwM2FhMjk2OTBiYzRkMDgyMDYyNWIzOGEyNTkw
YTZkYmExMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRp
b24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NETUZhY3RvcnkuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhU3RyYXRlZ3kuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCit2b2lkIEdQVVBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEdQVVBsYXRmb3JtU3RyYXRlZ2llcz4gcGxhdGZv
cm1TdHJhdGVnaWVzOworICAgIHNldFBsYXRmb3JtU3RyYXRlZ2llcygmcGxhdGZvcm1TdHJhdGVn
aWVzLmdldCgpKTsKK30KKworR1BVUGxhdGZvcm1TdHJhdGVnaWVzOjpHUFVQbGF0Zm9ybVN0cmF0
ZWdpZXMoKSA9IGRlZmF1bHQ7CisKK0xvYWRlclN0cmF0ZWd5KiBHUFVQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
UGFzdGVib2FyZFN0cmF0ZWd5KiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9h
cmRTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK01lZGlhU3RyYXRlZ3kq
IEdQVVBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSgpCit7CisgICAgcmV0
dXJuIG5ldyBNZWRpYVN0cmF0ZWd5KCk7Cit9CisKK0Jsb2JSZWdpc3RyeSogR1BVUGxhdGZvcm1T
dHJhdGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0cnkoKQoreworICAgIHJldHVybiBudWxscHRyOwor
fQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VVBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBsYXRm
b3JtU3RyYXRlZ2llcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZjkzOTdjZGIwY2M4YWQxMGI3YmZjOWNmMDA3
MzYwOWFlNjMxYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaD4KKyNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBMb2FkZXJTdHJhdGVneTsKK2NsYXNzIFBhc3RlYm9hcmRT
dHJhdGVneTsKK2NsYXNzIE1lZGlhU3RyYXRlZ3k7CitjbGFzcyBCbG9iUmVnaXN0cnk7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMgOiBwdWJs
aWMgV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzIHsKKyAgICBmcmllbmQgTmV2ZXJEZXN0cm95
ZWQ8R1BVUGxhdGZvcm1TdHJhdGVnaWVzPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBpbml0
aWFsaXplKCk7CisKK3ByaXZhdGU6CisgICAgR1BVUGxhdGZvcm1TdHJhdGVnaWVzKCk7CisKKyAg
ICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKKyAgICBXZWJDb3JlOjpMb2FkZXJTdHJh
dGVneSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpQYXN0
ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpIG92ZXJyaWRlOworICAg
IFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3kqIGNyZWF0ZU1lZGlhU3RyYXRlZ3koKSBvdmVycmlkZTsK
KyAgICBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRl
OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNw
cAppbmRleCAwZTdiZDA5YmVhNWQxMjNhNDA3ZWNmYjlkMzlmNzI0MGY1YjNjN2I5Li42MDM3MDA1
OWNkMTQ5NTUzNmVmNDVjZjQ5NjQ1MmRkNDFlMjRlNDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQXV4aWxpYXJ5
UHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJHUFVQbGF0Zm9ybVN0cmF0
ZWdpZXMuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5j
bHVkZSAiR1BVUHJvY2Vzc1Nlc3Npb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgpAQCAtNTEsNiArNTIsMTAgQEAKICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBV
U0UoQVVESU9fU0VTU0lPTikKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCkBAIC0xMTAsNiArMTE1LDggQEAgdm9pZCBHUFVQcm9jZXNzOjppbml0aWFsaXplR1BV
UHJvY2VzcyhHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBX
VEY6OlRocmVhZDo6c2V0Q3VycmVudFRocmVhZElzVXNlckluaXRpYXRlZCgpOwogICAgIEF0b21T
dHJpbmc6OmluaXQoKTsKIAorICAgIEdQVVBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgp
OworCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOwogI2VuZGlmCkBA
IC0yMTIsNiArMjE5LDE1IEBAIGNvbnN0IFN0cmluZyYgR1BVUHJvY2Vzczo6bWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGNvCiB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCitSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXImIEdQVVByb2Nlc3M6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKSBj
b25zdAoreworICAgIGlmICghbV9hdWRpb1Nlc3Npb25NYW5hZ2VyKQorICAgICAgICBtX2F1ZGlv
U2Vzc2lvbk1hbmFnZXIgPSBXVEY6Om1ha2VVbmlxdWU8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyPigpOworICAgIHJldHVybiAqbV9hdWRpb1Nlc3Npb25NYW5hZ2VyOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKaW5kZXggNmZhMDIwMTRiOTQ3ODFl
YTk5ZTAzNWRiM2FkNzlkNjVhMjRmMjg3Yi4uNDNhYWUxYTEyYjViODg1YjI2YzU2ZGRmMTUyOTYw
ZjAyMjdjNTIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCkBAIC00MCw2
ICs0MCw3IEBAIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiBzdHJ1Y3QgR1BVUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBHUFVQcm9jZXNzU2Vzc2lvblBhcmFtZXRl
cnM7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyOwogCiBjbGFzcyBHUFVQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nl
c3MsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxHUFVQcm9jZXNzPiwgcHVibGljIENhbk1h
a2VXZWFrUHRyPEdQVVByb2Nlc3M+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHUFVQcm9j
ZXNzKTsKQEAgLTYzLDYgKzY0LDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG1lZGlh
S2V5c1N0b3JhZ2VEaXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpIGNvbnN0OworI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsKTsKIApA
QCAtMTAzLDYgKzEwOCw5IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9z
dGluZ0NvbnRleHQ+IG1fY29udGV4dEZvclZpc2liaWxpdHlQcm9wYWdhdGlvbjsKICAgICBib29s
IG1fY2FuU2hvd1doaWxlTG9ja2VkIHsgZmFsc2UgfTsKICNlbmRpZgorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyPiBtX2F1ZGlvU2Vzc2lvbk1hbmFnZXI7
CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWFmYzQ5ZGU4OWRlMWFjZTQ2YWMxNjdmODU4NDY4MDMzNjUyZGM5MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eS5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJS
ZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1VuaXF1ZVJlZjxSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eT4gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNyZWF0ZShHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uKQoreworICAgIHJldHVybiBtYWtlVW5pcXVl
UmVmPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PihncHVDb25uZWN0aW9uKTsKK30KKworUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHk6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb24pCisgICAgOiBtX2dwdUNvbm5lY3Rpb24oZ3B1Q29u
bmVjdGlvbikKK3sKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6On5SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eSgpID0gZGVmYXVsdDsKKworV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OnByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICByZXR1cm4g
bV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisKK1JlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbmZpZ3VyYXRp
b24oKQoreworICAgIGF1dG8mIHNlc3Npb24gPSBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2Vzc2lv
bigpOworICAgIHJldHVybiB7CisgICAgICAgIHNlc3Npb24uY2F0ZWdvcnkoKSwKKyAgICAgICAg
c2Vzc2lvbi5yb3V0ZVNoYXJpbmdQb2xpY3koKSwKKyAgICAgICAgc2Vzc2lvbi5yb3V0aW5nQ29u
dGV4dFVJRCgpLAorICAgICAgICBzZXNzaW9uLnNhbXBsZVJhdGUoKSwKKyAgICAgICAgc2Vzc2lv
bi5idWZmZXJTaXplKCksCisgICAgICAgIHNlc3Npb24ubnVtYmVyT2ZPdXRwdXRDaGFubmVscygp
LAorICAgICAgICBzZXNzaW9uLnByZWZlcnJlZEJ1ZmZlclNpemUoKSwKKyAgICAgICAgc2Vzc2lv
bi5pc011dGVkKCksCisgICAgICAgIG1fYWN0aXZlCisgICAgfTsKK30KKwordm9pZCBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6c2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGUgY2F0ZWdvcnksIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7
CisgICAgbV9jYXRlZ29yeSA9IGNhdGVnb3J5OworICAgIG1fcm91dGVTaGFyaW5nUG9saWN5ID0g
cG9saWN5OworICAgIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXRDYXRlZ29yeUZvclByb2Nlc3Mo
bV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIGNhdGVnb3J5LCBwb2xpY3kp
OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpzZXRQcmVmZXJyZWRCdWZmZXJT
aXplKHVpbnQ2NF90IHNpemUpCit7CisgICAgbV9wcmVmZXJyZWRCdWZmZXJTaXplID0gc2l6ZTsK
KyAgICBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nl
c3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIHNpemUpOworfQorCit2
b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1NldEFjdGl2ZShib29sIGFjdGl2ZSwg
U2V0QWN0aXZlQ29tcGxldGlvbiYmIGNvbXBsZXRpb24pCit7CisgICAgbV9hY3RpdmUgPSBhdWRp
b1Nlc3Npb25NYW5hZ2VyKCkudHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKG1fZ3B1Q29ubmVjdGlv
bi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCBhY3RpdmUpOworICAgIGNvbXBsZXRpb24obV9hY3Rp
dmUpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbkludGVycnVwdGlv
bihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQor
eworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246OkJl
Z2luSW50ZXJydXB0aW9uKHR5cGUpLCB7IH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjplbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVu
ZEludGVycnVwdGlvbkZsYWdzIGZsYWdzKQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246OkVuZEludGVycnVwdGlvbihmbGFncyksIHsgfSk7Cit9
CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKQoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb24u
Z3B1UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKTsKK30KKworSVBDOjpDb25uZWN0aW9u
JiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1f
Z3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVjZDJjNmMzN2MxNzk2NGUwYmM4ZGZhNzIxMzY0OTkyMWQ4NDkzYzEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQor
CisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNz
aW9uQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1l
c3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CisKK2NsYXNzIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5CisgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICAs
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4geworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7
CisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoKTsKKworICAgIFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKCk7CisgICAgUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKCk7CisKKyAgICBXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0IHsgcmV0dXJuIG1fY2F0ZWdv
cnk7IH07CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGlj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAgc2l6ZV90IHBy
ZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcnJlZEJ1ZmZlclNpemU7
IH0KKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KKworICAg
IHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Oklu
dGVycnVwdGlvblR5cGUpOworICAgIHZvaWQgZW5kSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyk7CisKKyAgICAvLyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4mKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgVW5pcXVlUmVmPFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5PiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNr
PFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7Cisg
ICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwor
CisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIHNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIHZv
aWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCk7CisgICAgdXNpbmcgU2V0QWN0aXZl
Q29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+OworICAgIHZvaWQgdHJ5
VG9TZXRBY3RpdmUoYm9vbCwgU2V0QWN0aXZlQ29tcGxldGlvbiYmKTsKKworICAgIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpOworICAgIElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOworCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgbV9ncHVDb25uZWN0aW9uOworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlIG1fY2F0ZWdvcnk7CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IG1fcm91dGVT
aGFyaW5nUG9saWN5OworICAgIHNpemVfdCBtX3ByZWZlcnJlZEJ1ZmZlclNpemUgeyAwIH07Cisg
ICAgYm9vbCBtX2FjdGl2ZSB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZjNiYWU4MjQzZmFhNTQ1NTJi
YmZmMDRkOWE2ZWI4NTJiNjA2MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShB
VURJT19TRVNTSU9OKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSBOb3RS
ZWZDb3VudGVkIHsKKyAgICBTZXRDYXRlZ29yeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGUgdHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlJvdXRlU2hh
cmluZ1BvbGljeSBwb2xpY3kpCisgICAgU2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCBw
cmVmZXJyZWRCdWZmZXJTaXplKQorICAgIFRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlKSAtPiAo
Ym9vbCBzdWNlZWRlZCkgU3luY2hyb25vdXMKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNmI0ZWYyMTFmMmEzODMwNzA1NGM1MTI2MWI3
MTYxZmM3ZDA4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDE5MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNF
KEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hDb3Vu
dGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworc3RhdGljIGJvb2wgY2F0ZWdvcnlDYW5NaXhXaXRoT3RoZXJzKEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQoreworICAgIHJldHVybiBjYXRlZ29yeSA9PSBBdWRpb1Nl
c3Npb246OkFtYmllbnRTb3VuZDsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKQorICAgIDogbV9zZXNzaW9uKEF1ZGlv
U2Vzc2lvbjo6Y3JlYXRlKCkpCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
cjo6flJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpID0gZGVmYXVsdDsKKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmFkZFByb3h5KFdlYWtQdHI8UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHk+JiYgcHJveHkpCit7CisgICAgYXV0byBpZCA9IHByb3h5LT5wcm9jZXNz
SWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7CisgICAg
bV9wcm94aWVzLnNldChpZCwgV1RGTW92ZShwcm94eSkpOworfQorCit2b2lkIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXIm
IGlkKQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3Byb3hp
ZXMucmVtb3ZlKGlkKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkqIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcjo6Z2V0UHJveHkoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlk
KQoreworICAgIGF1dG8gcmVzdWx0cyA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAgICBpZiAocmVz
dWx0cyAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIHJldHVybiByZXN1bHRzLT52YWx1ZS5n
ZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyhjb25zdCBQcm9jZXNzSWRlbnRpZmll
ciYgaWQsIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQ
b2xpY3kgcG9saWN5KQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAg
ICBhdXRvIHByb3h5ID0gZ2V0UHJveHkoaWQpOworICAgIGlmICghcHJveHkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChwcm94eS0+Y2F0ZWdvcnkoKSA9PSBjYXRlZ29yeSAmJiBwcm94eS0+
cm91dGVTaGFyaW5nUG9saWN5KCkgPT0gcG9saWN5KQorICAgICAgICByZXR1cm47CisKKyAgICBI
YXNoQ291bnRlZFNldDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgV1RGOjpJbnRIYXNoPEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZT4+IGNhdGVnb3J5Q291bnRzOworICAgIEhhc2hDb3VudGVk
U2V0PFJvdXRlU2hhcmluZ1BvbGljeSwgV1RGOjpJbnRIYXNoPFJvdXRlU2hhcmluZ1BvbGljeT4s
IFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8Um91dGVTaGFyaW5nUG9saWN5Pj4gcG9saWN5Q291
bnRzOworICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1ZXMoKSkgewor
ICAgICAgICBjYXRlZ29yeUNvdW50cy5hZGQob3RoZXJQcm94eS0+Y2F0ZWdvcnkoKSk7CisgICAg
ICAgIHBvbGljeUNvdW50cy5hZGQob3RoZXJQcm94eS0+cm91dGVTaGFyaW5nUG9saWN5KCkpOwor
ICAgIH0KKworICAgIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OlBs
YXlBbmRSZWNvcmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJl
Y29yZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246
OlJlY29yZEF1ZGlvKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlJlY29yZEF1
ZGlvOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6
TWVkaWFQbGF5YmFjaykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpNZWRpYVBs
YXliYWNrOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lv
bjo6U29sb0FtYmllbnRTb3VuZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpT
b2xvQW1iaWVudFNvdW5kOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1
ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Np
b246OkFtYmllbnRTb3VuZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhB
dWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9T
ZXNzaW9uOjpBdWRpb1Byb2Nlc3Npbmc7CisgICAgZWxzZQorICAgICAgICBjYXRlZ29yeSA9IEF1
ZGlvU2Vzc2lvbjo6Tm9uZTsKKworICAgIGlmIChwb2xpY3lDb3VudHMuY29udGFpbnMoUm91dGVT
aGFyaW5nUG9saWN5OjpMb25nRm9ybVZpZGVvKSkKKyAgICAgICAgcG9saWN5ID0gUm91dGVTaGFy
aW5nUG9saWN5OjpMb25nRm9ybVZpZGVvOworICAgIGVsc2UgaWYgKHBvbGljeUNvdW50cy5jb250
YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW8pKQorICAgICAgICBwb2xpY3kg
PSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW87CisgICAgZWxzZSBpZiAocG9saWN5
Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQpKQorICAgICAg
ICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkluZGVwZW5kZW50OworICAgIGVsc2UKKyAg
ICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0OworCisgICAgbV9zZXNz
aW9uLT5zZXRDYXRlZ29yeShjYXRlZ29yeSwgcG9saWN5KTsKK30KKwordm9pZCBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKGNv
bnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUpCit7
CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAg
ICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAo
b3RoZXJQcm94eS0+cHJlZmVycmVkQnVmZmVyU2l6ZSgpIDwgcHJlZmVycmVkQnVmZmVyU2l6ZSkK
KyAgICAgICAgICAgIHByZWZlcnJlZEJ1ZmZlclNpemUgPSBvdGhlclByb3h5LT5wcmVmZXJyZWRC
dWZmZXJTaXplKCk7CisgICAgfQorCisgICAgbV9zZXNzaW9uLT5zZXRQcmVmZXJyZWRCdWZmZXJT
aXplKHByZWZlcnJlZEJ1ZmZlclNpemUpOworfQorCitib29sIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcjo6dHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlm
aWVyJiBpZCwgYm9vbCBhY3RpdmUpCit7CisgICAgQVNTRVJUKG1fcHJveGllcy5jb250YWlucyhp
ZCkpOworICAgIGF1dG8gcHJveHkgPSBnZXRQcm94eShpZCk7CisgICAgaWYgKCFwcm94eSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc2l6ZV90IGFjdGl2ZVByb3h5Q291bnQgeyAwIH07
CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAg
ICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAo
b3RoZXJQcm94eS0+aXNBY3RpdmUoKSkKKyAgICAgICAgICAgICsrYWN0aXZlUHJveHlDb3VudDsK
KyAgICB9CisKKyAgICBpZiAoIWFjdGl2ZSAmJiBhY3RpdmVQcm94eUNvdW50ID4gMSkgeworICAg
ICAgICAvLyBUaGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBidXQgb3RoZXIgcHJveGll
cyBhcmUgc3RpbGwKKyAgICAgICAgLy8gYWN0aXZlLiBOby1vcCwgYW5kIHJldHVybiBkZWFjdGl2
YXRpb24gd2FzIHN1Y2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
aWYgKCFhY3RpdmUpIHsKKyAgICAgICAgLy8gVGhpcyBwcm94eSB3YW50cyB0byBkZS1hY3RpdmF0
ZSwgYW5kIGlzIHRoZSBsYXN0IHJlbWFpbmluZyBhY3RpdmUKKyAgICAgICAgLy8gcHJveHkuIERl
YWN0aXZhdGUgdGhlIHNlc3Npb24sIGFuZCByZXR1cm4gd2hldGhlciB0aGF0IGRlYWN0aXZhdGlv
bgorICAgICAgICAvLyB3YXMgc3VjZXNzZnVsOworICAgICAgICByZXR1cm4gbV9zZXNzaW9uLT50
cnlUb1NldEFjdGl2ZShmYWxzZSk7CisgICAgfQorCisgICAgaWYgKGFjdGl2ZSAmJiAhYWN0aXZl
UHJveHlDb3VudCkgeworICAgICAgICAvLyBUaGlzIHByb3h5IGFuZCBvbmx5IHRoaXMgcHJveHkg
d2FudHMgdG8gYmVjb21lIGFjdGl2ZS4gQWN0aXZhdGUKKyAgICAgICAgLy8gdGhlIHNlc3Npb24s
IGFuZCByZXR1cm4gd2hldGhlciB0aGF0IGFjdGl2YXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAg
ICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGFjdGl2ZSk7CisgICAgfQorCisg
ICAgLy8gSWYgdGhpcyBwcm94eSBpcyBBbWJpZW50LCBhbmQgdGhlIHNlc3Npb24gaXMgYWxyZWFk
eSBhY3RpdmUsIHRoaXMKKyAgICAvLyBwcm94eSB3aWxsIG1peCB3aXRoIHRoZSBhY3RpdmUgcHJv
eGllcy4gTm8tb3AsIGFuZCByZXR1cm4gYWN0aXZhdGlvbgorICAgIC8vIHdhcyBzdWNlc3NmdWwu
CisgICAgaWYgKGNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyhwcm94eS0+Y2F0ZWdvcnkoKSkpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBP
dGhlcndpc2UsIHRoaXMgcHJveHkgd2FudHMgdG8gYmVjb21lIGFjdGl2ZSwgYnV0IHRoZXJlIGFy
ZSBvdGhlcgorICAgIC8vIHByb3hpZXMgd2hvIGFyZSBhbHJlYWR5IGFjdGl2ZS4gV2FsayBvdmVy
IHRoZSBwcm94aWVzLCBhbmQgaW50ZXJydXB0CisgICAgLy8gdGhvc2UgcHJveGllcyB3aG9zZSBj
YXRlb2dyaWVzIGluZGljYXRlIHRoZXkgY2Fubm90IG1peCB3aXRoIG90aGVycy4KKyAgICBmb3Ig
KGF1dG8mIG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFv
dGhlclByb3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghb3RoZXJQcm94
eS0+aXNBY3RpdmUoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChjYXRl
Z29yeUNhbk1peFdpdGhPdGhlcnMob3RoZXJQcm94eS0+Y2F0ZWdvcnkoKSkpCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBvdGhlclByb3h5LT5iZWdpbkludGVycnVwdGlvbihQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVtSW50ZXJydXB0aW9uKTsK
KyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiB0cnVlOworCit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhN2Y3NjFmNmIxZTg1YmE3
MTU4ZTBiZGY0MGM1ZmMyM2JhYTE3YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaApAQCAtMCww
ICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nl
c3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTsKKworY2xhc3Mg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyCisgICAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyPiB7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCk7
CisgICAgflJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpOworCisgICAgdm9pZCBhZGRQ
cm94eShXZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiYmKTsKKyAgICB2b2lkIHJlbW92
ZVByb3h5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJik7CisgICAgUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkqIGdldFByb3h5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
Jik7CisKKyAgICB2b2lkIHNldENhdGVnb3J5Rm9yUHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciYsIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6
ZUZvclByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImLCBzaXplX3QpOwor
CisgICAgdXNpbmcgU2V0QWN0aXZlQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+OworICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyJiwgYm9vbCk7CisKKyAgICBjb25zdCBXZWJDb3JlOjpBdWRpb1Nl
c3Npb24mIHNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb247IH0KKworcHJpdmF0ZToK
KyAgICBVbmlxdWVSZWY8V2ViQ29yZTo6QXVkaW9TZXNzaW9uPiBtX3Nlc3Npb247CisgICAgSGFz
aE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eT4+IG1fcHJveGllczsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGIzZGVjN2NkMzlk
MDEwMmI4NWYwZjk1ZGY0ZTQzMGY5YWUxM2ZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNz
YWdlcy5pbgpAQCAtMCwwICsxLDI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMjU2ZGM5OTA1YmY0NDY2ZDBjMmFkNTc0ZDhjMzY4
YTE0YmU2OTYzYS4uNGJhMTRkYmFmMjRiMjQxZTU5ZGIwYTdmMjA4MGQwMmQwMjdjM2IwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMzQsNiArMjM0LDcg
QEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAg
J1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpSZW1vdGVBdWRp
b1Nlc3Npb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3RlQ0RNSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlSWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50aWZpZXInLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBkMDdmMmJmNWIy
MWI2MjBiOTE5ODEwMTk5NDBlMjc0NGVkMjUwMGNkLi42NzUyY2I2ZDQ1ZTVhZjAwNWVmZjgyN2E3
NjZiYTNiYjFiM2E4ZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaApAQCAtNjEsNiArNjEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NETUluc3Rh
bmNlU2Vzc2lvbi5oPgogI2VuZGlmCiAKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyNpbmNsdWRl
IDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkK
IG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTWFjaFNlbmRSaWdodDsKQEAgLTEwMjUsNCArMTAyOSwx
OSBAQCB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDRE1JbnN0YW5jZTo6
SERDUFN0YXR1cz4gewogCiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKQordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpT
b2xvQW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpNZWRpYVBsYXliYWNrLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpSZWNvcmRBdWRpbywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
UGxheUFuZFJlY29yZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QXVkaW9Qcm9jZXNzaW5nCisgICAgPjsKK307CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAppbmRleCA2ZDBlOGM2OGEwMjM4ODczYjY4NjQyMzgzZTViN2JjNWFhMDYzN2Rj
Li5kMDA2MjNhNjI5Njc4MWNhZDdkY2E2ZWJlMDVkMTk2M2FkNjY5NjQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
QEAgLTIyLDExICsyMiwxNCBAQAogLy8gVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCitHUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVBy
b2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKK0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHkuY3BwCitHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcAog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcAogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHAKQEAgLTU0Niw2ICs1NDksNyBA
QCBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0u
Y3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5LmNwcAogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5k
ZXggMGE3NzY5Mzk4NzllYjY5NWZmYmZlYWZiZWQ4YmMyZjljNDRjZWZhNC4uNjQ0YmNiYzM1YjQ1
OGY0M2U1M2JmYjEwYTkxZDM3YmM5ODY1NjE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAt
NjU0LDYgKzY1NCw4IEBAIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
TGliV2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
CitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3Rl
TWVkaWFSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUzZWRlNTY2ZDNkZThlOTk3NTRiOTY2
MjU0NjRiNjFlYjE3NDhhMzguLjVmNDhhODEzYWUyOTllZjVlYTRhZWQ3ZGMwZmE0YzMzMWVkMzYw
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTc0Myw2ICsxNzQzLDggQEAKIAkJQ0RBQzIwRjgyM0ZDNzI2QzAwMjFERUUzIC8qIFJl
bW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQzIwRjUyM0ZDMzgzQjAwMjFERUUzIC8q
IFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDREFD
MjBGOTIzRkM3MjZDMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RBQzIwRUMyM0ZDMzgzODAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lv
blByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0RBQzIwRkEyM0ZDNzI2QzAwMjFE
RUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEVGMjNGQzM4MzkwMDIxREVFMyAv
KiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNEQkI0OUYwMjQw
RDU3RDIwMDE3QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQkI0OUVFMjQwRDU3RDIwMDE3QzI5MiAv
KiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsKKwkJQ0RCQjQ5RkQyNDBEOUE3MjAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQkI0OUZDMjQwRDlBNzIwMDE3QzI5MiAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi87IH07CiAJCUNEQzI4MzFEMjAx
QkQ3OUQwMEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzI4MzFCMjAxQkQ3OUQwMEU2RTc0NSAv
KiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCAqLzsgfTsKIAkJQ0RDQTg1QzkxMzJBQkE0RTAwRTk2
MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4NUM3MTMyQUJBNEUwMEU5NjFERiAvKiBX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi87IH07CiAJCUNFMTFBRDUyMUNCQzQ4MkYw
MDY4MUVFNSAvKiBDb2RlU2lnbmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0UxMUFENTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWduaW5nLmgg
Ki87IH07CkBAIC01MDk0LDYgKzUwOTYsMTcgQEAKIAkJQ0RBQzIwRjQyM0ZDMzgzQTAwMjFERUUz
IC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDREFDMjBGNTIzRkMzODNCMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RBQzIwRjYyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUluc3Rh
bmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDREJCNDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1T
dHJhdGVnaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlFRjI0MEQ1N0QyMDAxN0MyOTIgLyogR1BV
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY0MjQwRDhB
QzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
QXVkaW9TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY1MjQw
RDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0RCQjQ5RjYyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEQkI0OUY3MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY4MjQwRDhENTMwMDE3QzI5
MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZDMjQwRDlBNzIwMDE3QzI5MiAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RDMjgzMUIyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmlldy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaDsgcGF0aCA9IGlvcy9mdWxsc2NyZWVu
L1dLRnVsbHNjcmVlblN0YWNrVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REMyODMxQzIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBwYXRoID0gaW9zL2Z1
bGxzY3JlZW4vV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREMzODJGNzE3MjExNTA2MDA4QTJGQzMgLyogQ0ZOZXR3b3JrLmZyYW1ld29yayAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIu
ZnJhbWV3b3JrOyBuYW1lID0gQ0ZOZXR3b3JrLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0NGTmV0d29yay5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29s
dXRlPiI7IH07CkBAIC01MTAxLDYgKzUxMTQsMTcgQEAKIAkJQ0RDQTg1QzYxMzJBQkE0RTAwRTk2
MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyog
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVy
LmZyYW1ld29yazsgbmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+Ijsg
fTsKKwkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcwMjQwREQ0RUYwMEY3QjhDNCAvKiBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
REQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3
MjI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTczMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzQyNDBEREUwNzAwRjdCOEM0IC8q
IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3Nh
Z2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RENTM1NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUz
NTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3OTI0MERERTA4MDBG
N0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTExQUQ0RjFDQkM0N0Y4MDA2
ODFFRTUgLyogQ29kZVNpZ25pbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBDb2RlU2lnbmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Ux
MUFENTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWduaW5nLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvZGVTaWduaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNFMUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTM3OCw2ICs1NDAyLDExIEBACiAJCQkJOUI1
QkVDMjkyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAg
Ki8sCiAJCQkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5oICovLAogCQkJCTlCNUJFQzJFMjQwMTAxOEMwMDcwQzZFRiAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjUyNDBEOEFDNjAw
MTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAgKi8sCisJCQkJQ0RCQjQ5RjQyNDBEOEFD
NjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5oICovLAorCQkJCUNERDUzNTZGMjQwREQz
NDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RC
QjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24u
aCAqLywKKwkJCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9u
SWRlbnRpZmllci5oICovLAogCQkJCUNEQUMyMEJGMjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVD
RE0uY3BwICovLAogCQkJCUNEQUMyMEJBMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1vdGVDRE0uaCAq
LywKIAkJCQlDREFDMjBCODIzRkMyRjczMDAyMURFRTMgLyogUmVtb3RlQ0RNQ29uZmlndXJhdGlv
bi5oICovLApAQCAtNTQyMCw2ICs1NDQ5LDEyIEBACiAJCQkJOUIxMjI5Q0MyM0ZGMjVGMjAwOENB
NzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5QjEyMjlD
QjIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCAqLywK
IAkJCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjcyNDBEOEM5NTAwMTdDMjkyIC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCAqLywKKwkJCQlDREJCNDlGNjI0MEQ4Qzk1MDAxN0My
OTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCAqLywKKwkJCQlDREJCNDlGODI0MEQ4RDUz
MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJ
Q0RCQjQ5RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ci5jcHAgKi8sCisJCQkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlci5oICovLAorCQkJCUNERDUzNTcwMjQwREQ0RUYwMEY3QjhDNCAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDcxQkM1
N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJ
MDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oICovLAog
CQkJCUNEQUMyMDc5MjNGQjFFMjEwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHkuY3Bw
ICovLApAQCAtNjcwNiw2ICs2NzQxLDggQEAKIAkJCQkyRDlGQjIwQzIzNzUyMDlEMDA0OUY5MzYg
LyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCiAJCQkJMkQ5RkIyMDAyMzc1MjA5
RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQkyRDlGQjIw
OTIzNzUyMDlEMDA0OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
biAqLywKKwkJCQlDREJCNDlFRjI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcCAqLywKKwkJCQlDREJCNDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1T
dHJhdGVnaWVzLmggKi8sCiAJCQkJMkQ5RkIyMDEyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nl
c3MuY3BwICovLAogCQkJCTJEOUZCMjE1MjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9jZXNzLmgg
Ki8sCiAJCQkJMkQ5RkIyMDIyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3MubWVzc2FnZXMu
aW4gKi8sCkBAIC05ODMxLDYgKzk4NjgsMTUgQEAKIAkJCQkxQTA0M0I1QzEyNEQ1RTlEMDBGRkJG
QjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQkxQThFRkE2RTEyNTJC
ODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFB
OEVGQTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJ
Q0RENTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCisJCQkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlv
U2Vzc2lvbk1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzQyNDBEREUwNzAwRjdCOEM0IC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCUNERDUzNTczMjQwRERF
MDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAorCQkJCUNERDUzNTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc5MjQwRERFMDgwMEY3
QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAq
LywKKwkJCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTcyMjQwRERFMDYwMEY3QjhDNCAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzcyNDBE
REUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmgg
Ki8sCiAJCQkJQ0RBQzIwRjIyM0ZDMzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RBQzIwRjMyM0ZDMzgzQTAwMjFERUUzIC8q
IFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBQzIwRUUyM0ZDMzgz
OTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovLApA
QCAtMTA1MzQsNiArMTA1ODAsNyBAQAogCQkJCUJDMDZGNDRBMTJEQkQxRjUwMDJENzhERSAvKiBH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzA2RjQzQTEyREJDQ0ZCMDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIg
LyogR2VzdHVyZVR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREJCNDlGMDI0MEQ1N0QyMDAx
N0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREEw
NDlCODE4MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDMENFNzJBRDEyNDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVzc2FnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUFDNzVBMUIxQjMzNjgyNzAwNTY3NDVCIC8qIEhhbmdEZXRlY3Rp
b25EaXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDc1Miw2ICsxMDc5OSw3IEBACiAJCQkJ
OUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjEyMjlDRDIzRkYyNUYyMDA4Q0E3NTEgLyogUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCNUJFQzJB
MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNEQkI0OUZEMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDNzIzRkMyRjc1MDAy
MURFRTMgLyogUmVtb3RlQ0RNLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDNTIzRkMyRjc1
MDAyMURFRTMgLyogUmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0RBQzIwQ0QyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnkuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZTVjZWM4ZWExYjY4N2Q1YmRkNzE3
ZGNkYzMzMWM0NjFhZGQ1NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw5OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nl
c3Npb24uaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04p
CisKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJHUFVQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CitVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPiBSZW1vdGVBdWRpb1Nlc3Npb246OmNyZWF0
ZShXZWJQcm9jZXNzJiBwcm9jZXNzKQoreworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3Vy
YXRpb24gY29uZmlndXJhdGlvbjsKKyAgICBwcm9jZXNzLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpFbnN1cmVBdWRpb1Nlc3Npb24oKSwgTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OkVuc3VyZUF1ZGlvU2Vzc2lvbjo6UmVwbHkoY29uZmlndXJhdGlvbiksIHsgfSk7
CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPihwcm9jZXNzLCBX
VEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uOjpSZW1vdGVB
dWRpb1Nlc3Npb24oV2ViUHJvY2VzcyYgcHJvY2VzcywgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmln
dXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKKyAgICAs
IG1fY29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKQoreworfQorCitSZW1vdGVB
dWRpb1Nlc3Npb246On5SZW1vdGVBdWRpb1Nlc3Npb24oKSA9IGRlZmF1bHQ7CisKK0lQQzo6Q29u
bmVjdGlvbiYgUmVtb3RlQXVkaW9TZXNzaW9uOjpjb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4g
bV9wcm9jZXNzLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOworfQor
Cit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIHR5cGUs
IFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpTZXRDYXRlZ29yeSh0eXBlLCBwb2xpY3kp
LCB7IH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVy
U2l6ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OlNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZSksIHsgfSk7
Cit9CisKK2Jvb2wgUmVtb3RlQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKGJv
b2wgYWN0aXZlKQoreworICAgIGJvb2wgc3VjY2VlZGVkOworICAgIGNvbm5lY3Rpb24oKS5zZW5k
U3luYyhNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRyeVRvU2V0QWN0aXZlKGFj
dGl2ZSksIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6VHJ5VG9TZXRBY3RpdmU6
OlJlcGx5KHN1Y2NlZWRlZCksIHsgfSk7CisgICAgcmV0dXJuIHN1Y2NlZWRlZDsKK30KKwordm9p
ZCBSZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKFJlbW90ZUF1ZGlvU2Vz
c2lvbkNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQoreworICAgIGJvb2wgbXV0ZWRTdGF0
ZUNoYW5nZWQgPSBjb25maWd1cmF0aW9uLmlzTXV0ZWQgIT0gbV9jb25maWd1cmF0aW9uLmlzTXV0
ZWQ7CisKKyAgICBtX2NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOworCisgICAgaWYgKG11
dGVkU3RhdGVDaGFuZ2VkKQorICAgICAgICBoYW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCk7Cit9CisK
K3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpiZWdpbkludGVycnVwdGlvbihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQoreworICAgIFBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmJlZ2luSW50ZXJydXB0aW9uKHR5cGUpOworfQor
Cit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5kSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyBmbGFncykKK3sKKyAgICBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5lbmRJbnRlcnJ1cHRpb24oZmxhZ3MpOwor
fQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThmOGRjODIzZTNmMDEw
N2MxOTNiZTk0OGJmN2ZiOTY4YmNlNzlmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKQEAgLTAsMCArMSw4
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNl
c3Npb24uaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CitjbGFzcyBXZWJQ
cm9jZXNzOworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb24gZmluYWwKKyAgICA6IHB1YmxpYyBX
ZWJDb3JlOjpBdWRpb1Nlc3Npb24KKyAgICAsIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgVW5pcXVlUmVmPFJl
bW90ZUF1ZGlvU2Vzc2lvbj4gY3JlYXRlKFdlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFsIH5SZW1v
dGVBdWRpb1Nlc3Npb24oKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgVW5pcXVlUmVmPFJlbW90
ZUF1ZGlvU2Vzc2lvbj4gV1RGOjptYWtlVW5pcXVlUmVmV2l0aG91dEZhc3RNYWxsb2NDaGVjazxS
ZW1vdGVBdWRpb1Nlc3Npb24+KFdlYlByb2Nlc3MmLCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1
cmF0aW9uJiYpOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbihXZWJQcm9jZXNzJiwgUmVtb3RlQXVk
aW9TZXNzaW9uQ29uZmlndXJhdGlvbiYmKTsKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24oKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIC8v
IE1lc3NhZ2VzCisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24oV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUpOworICAgIHZvaWQgZW5kSW50
ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25G
bGFncyk7CisKKyAgICAvLyBBdWRpb1Nlc3Npb24KKyAgICB2b2lkIHNldENhdGVnb3J5KENhdGVn
b3J5VHlwZSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KSBmaW5hbDsKKyAgICB2b2lkIHNl
dFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KSBmaW5hbDsKKyAgICBib29sIHRyeVRvU2V0QWN0
aXZlSW50ZXJuYWwoYm9vbCkgZmluYWw7CisKKyAgICBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uY2F0ZWdvcnk7IH0KKyAgICBXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnJvdXRlU2hhcmluZ1BvbGljeTsgfQorICAgIFN0cmlu
ZyByb3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlv
bi5yb3V0aW5nQ29udGV4dFVJRDsgfQorICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uc2FtcGxlUmF0ZTsgfQorICAgIHNpemVfdCBidWZm
ZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmJ1ZmZlclNpemU7
IH0KKyAgICBzaXplX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fY29uZmlndXJhdGlvbi5udW1iZXJPZk91dHB1dENoYW5uZWxzOyB9CisgICAgc2l6ZV90
IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRp
b24ucHJlZmVycmVkQnVmZmVyU2l6ZTsgfQorICAgIGJvb2wgaXNNdXRlZCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5pc011dGVkOyB9CisgICAgYm9vbCBpc0FjdGl2ZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5pc0FjdGl2ZTsgfQorCisgICAg
V2ViUHJvY2VzcyYgbV9wcm9jZXNzOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRp
b24gbV9jb25maWd1cmF0aW9uOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg5NjI4ZjY1N2VmN2NkYmNkYmE3NzlkNDFkYjk5
YmNhNWQ0NGIxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lP
TikKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9TZXNzaW9uIE5vdFJlZkNvdW50ZWQgeworICAg
IENvbmZpZ3VyYXRpb25DaGFuZ2VkKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbkNv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKKyAgICBCZWdpbkludGVycnVwdGlvbihlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlw
ZSkKKyAgICBFbmRJbnRlcnJ1cHRpb24oZW51bTp1aW50OF90IFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyBmbGFncykKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlNmM0MzYyZWQ5
NWFhNmM1MDFjZDBhNmEyMDNkMmI1ZWE3MWYwYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRp
b24uaApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPFdl
YkNvcmUvQXVkaW9TZXNzaW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUmVt
b3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiB7CisKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeTsKKyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xp
Y3kgcm91dGVTaGFyaW5nUG9saWN5OworICAgIFN0cmluZyByb3V0aW5nQ29udGV4dFVJRDsKKyAg
ICBmbG9hdCBzYW1wbGVSYXRlOworICAgIHVpbnQ2NF90IGJ1ZmZlclNpemU7CisgICAgdWludDY0
X3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKKyAgICB1aW50NjRfdCBwcmVmZXJyZWRCdWZmZXJT
aXplOworICAgIGJvb2wgaXNNdXRlZDsKKyAgICBib29sIGlzQWN0aXZlOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjYXRlZ29yeTsKKyAgICAgICAgZW5jb2RlciA8
PCByb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgICAgIGVuY29kZXIgPDwgcm91dGluZ0NvbnRleHRV
SUQ7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlUmF0ZTsKKyAgICAgICAgZW5jb2RlciA8PCBi
dWZmZXJTaXplOworICAgICAgICBlbmNvZGVyIDw8IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7Cisg
ICAgICAgIGVuY29kZXIgPDwgcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgZW5jb2RlciA8
PCBpc011dGVkOworICAgICAgICBlbmNvZGVyIDw8IGlzQWN0aXZlOworICAgIH0KKworICAgIHRl
bXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBPcHRpb25hbDxSZW1vdGVBdWRpb1Nl
c3Npb25Db25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAg
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiBjYXRlZ29y
eTsKKyAgICAgICAgZGVjb2RlciA+PiBjYXRlZ29yeTsKKyAgICAgICAgaWYgKCFjYXRlZ29yeSkK
KyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiByb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgICAgIGRl
Y29kZXIgPj4gcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBpZiAoIXJvdXRlU2hhcmluZ1Bv
bGljeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9u
YWw8U3RyaW5nPiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgZGVjb2RlciA+PiByb3V0aW5n
Q29udGV4dFVJRDsKKyAgICAgICAgaWYgKCFyb3V0aW5nQ29udGV4dFVJRCkKKyAgICAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+IHNhbXBsZVJh
dGU7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxlUmF0ZTsKKyAgICAgICAgaWYgKCFzYW1wbGVS
YXRlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25h
bDx1aW50NjRfdD4gYnVmZmVyU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBidWZmZXJTaXplOwor
ICAgICAgICBpZiAoIWJ1ZmZlclNpemUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBudW1iZXJPZk91dHB1dENoYW5uZWxzOwor
ICAgICAgICBkZWNvZGVyID4+IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAgICAgIGlmICgh
bnVtYmVyT2ZPdXRwdXRDaGFubmVscykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAg
ICAgIGRlY29kZXIgPj4gcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgaWYgKCFwcmVmZXJy
ZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBPcHRpb25hbDxib29sPiBpc011dGVkOworICAgICAgICBkZWNvZGVyID4+IGlzTXV0ZWQ7Cisg
ICAgICAgIGlmICghaXNNdXRlZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNBY3RpdmU7CisgICAgICAgIGRlY29kZXIgPj4gaXNB
Y3RpdmU7CisgICAgICAgIGlmICghaXNBY3RpdmUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAgICAgICAgV1RGTW92ZSgqY2F0ZWdv
cnkpLAorICAgICAgICAgICAgV1RGTW92ZSgqcm91dGVTaGFyaW5nUG9saWN5KSwKKyAgICAgICAg
ICAgIFdURk1vdmUoKnJvdXRpbmdDb250ZXh0VUlEKSwKKyAgICAgICAgICAgICpzYW1wbGVSYXRl
LAorICAgICAgICAgICAgKmJ1ZmZlclNpemUsCisgICAgICAgICAgICAqbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywKKyAgICAgICAgICAgICpwcmVmZXJyZWRCdWZmZXJTaXplLAorICAgICAgICAgICAg
KmlzTXV0ZWQsCisgICAgICAgICAgICAqaXNBY3RpdmUsCisgICAgICAgIH19OworICAgIH0KK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lv
bklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTQ4MGM2OTRlMmIzZDk3YjU5NmUyYTA3MzAzZDY3
ZmIwZjk5YmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBV
U0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXJU
eXBlIHsgfTsKK3VzaW5nIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIgPSBPYmplY3RJZGVu
dGlmaWVyPFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKaW5kZXggNWQ3YThiOGQxMTI0YjJhNTI4
YWQ3M2JkYzk2ZDlhOTc4MGRjMjA0Yy4uMDJlNmIyOTljOTdjODJkYTdhZThlZGQ1ZmRhMTI3ZGQ2
MjU0YTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9X
ZWJNZWRpYVN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJH
UFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlbW90
ZUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb0Rlc3RpbmF0aW9uLmg+CkBAIC0zNiwyMiArMzcsMjQgQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBXZWJNZWRpYVN0cmF0ZWd5Ojp+
V2ViTWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCi1z
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbj4gV2ViTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2smIGNhbGxi
YWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9E
ZXN0aW5hdGlvbj4gV2ViTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRp
b0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCiAgICAg
dW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENo
YW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAg
ICBpZiAobV91c2VHUFVQcm9jZXNzKQogICAgICAgICByZXR1cm4gUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5OjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRD
aGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7CiAjZW5kaWYKLSAg
ICByZXR1cm4gV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1
dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMs
IHNhbXBsZVJhdGUpOworICAgIHJldHVybiBNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3Rp
bmF0aW9uKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQotdm9pZCBXZWJNZWRpYVN0cmF0ZWd5OjpyZWdpc3RlckNETUZh
Y3RvcmllcyhWZWN0b3I8V2ViQ29yZTo6Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMpCit2b2lkIFdl
Yk1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5Kj4m
IGZhY3RvcmllcykKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgaWYgKG1fdXNlR1BV
UHJvY2VzcykgewpAQCAtNTksNyArNjIsMTggQEAgdm9pZCBXZWJNZWRpYVN0cmF0ZWd5OjpyZWdp
c3RlckNETUZhY3RvcmllcyhWZWN0b3I8V2ViQ29yZTo6Q0RNRmFjdG9yeSo+JiBmYWN0b3IKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgotICAgIFdlYkNvcmU6OkNETUZhY3Rvcnk6OnBs
YXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoZmFjdG9yaWVzKTsKKyAgICBNZWRpYVN0cmF0ZWd5Ojpy
ZWdpc3RlckNETUZhY3RvcmllcyhmYWN0b3JpZXMpOworfQorI2VuZGlmCisKKyNpZiBVU0UoQVVE
SU9fU0VTU0lPTikKK1VuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNy
ZWF0ZUF1ZGlvU2Vzc2lvbigpCit7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGlmICht
X3VzZUdQVVByb2Nlc3MpCisgICAgICAgIHJldHVybiBSZW1vdGVBdWRpb1Nlc3Npb246OmNyZWF0
ZShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKSk7CisjZW5kaWYKKyAgICByZXR1cm4gTWVkaWFTdHJh
dGVneTo6Y3JlYXRlQXVkaW9TZXNzaW9uKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAppbmRleCA0
ZmFiMGU5NDRmYzE0ZTY4NDM3OWUzMDA4MTYzYmUxNjJkZDg5YjRkLi40YzVjZDdjMzUwOGQ2ZGJm
OWI0ZmYwYmFiMGRiNTJmNzg0ZTYzMzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaApAQCAtNDYsNiArNDYsMTAgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxXZWJDb3JlOjpD
RE1GYWN0b3J5Kj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgVVNFKEFVRElPX1NFU1NJT04p
CisgICAgVW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbj4gY3JlYXRlQXVkaW9TZXNzaW9u
KCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBib29s
IG1fdXNlR1BVUHJvY2VzcyB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbQppbmRleCBiOTA5ZWNjNDM5YmNkM2M2ZjZkYTgwNDFjNmVmMjkzZmYzNDY2OTZmLi42
YjQ3M2NlOTNhYjhlZWM5MWQ5M2I3MDg3MDQzZWJhNzgzNWYxNmQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLm1tCkBAIC02NSwyNiArNjUsOSBAQCBQYXN0ZWJvYXJkU3RyYXRlZ3kqIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkKICAgICByZXR1
cm4gdGhpczsKIH0KIAotY2xhc3MgV2ViTWVkaWFTdHJhdGVneSBmaW5hbCA6IHB1YmxpYyBNZWRp
YVN0cmF0ZWd5IHsKLXByaXZhdGU6Ci0jaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lP
Q2FsbGJhY2smIGNhbGxiYWNrLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCi0gICAgICAg
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIHJldHVy
biBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0RGV2aWNlSWQsIG51bWJl
ck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSk7Ci0g
ICAgfQotI2VuZGlmCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2b2lkIHJlZ2lz
dGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5Kj4mIGZhY3Rvcmllcykgb3ZlcnJpZGUK
LSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpDRE1GYWN0b3J5OjpwbGF0Zm9ybVJlZ2lz
dGVyRmFjdG9yaWVzKGZhY3Rvcmllcyk7Ci0gICAgfQotI2VuZGlmCi19OwotCiBNZWRpYVN0cmF0
ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQogewotICAg
IHJldHVybiBuZXcgV2ViTWVkaWFTdHJhdGVneTsKKyAgICByZXR1cm4gbmV3IE1lZGlhU3RyYXRl
Z3k7CiB9CiAKIGNsYXNzIFdlYkJsb2JSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBCbG9iUmVnaXN0
cnkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392524</attachid>
            <date>2020-03-04 18:10:18 -0800</date>
            <delta_ts>2020-03-05 08:12:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200304181014.patch</filename>
            <type>text/plain</type>
            <size>104376</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkODA0MjkxNDkyNWFlNWJmYTc5ZWZj
ZmUxYTMwZDc5YjU1Yjg3NjEuLjcxNWExOGJmMDQzMDAxYjE3ZjUyODUyMzQ4OGUyNmYwOGIxNWU1
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBV
bmlxdWVSZWYgdG8gdGhlIGxpc3Qgb2YgZm9yd2FyZC1kZWNsYXJlZCB0ZW1wbGF0ZSB0eXBlcy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisKIDIwMjAtMDMtMDMgIEppdGVuIE1laHRhICA8
am1laHRhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBIVFRQIEFsdGVybmF0aXZlIFNlcnZp
Y2VzIFN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTFkOTE0MmI0MWVkYzIwNDViMDFkNzE4YzYzZjE0
MTBhNmM0MjNhLi4xZGI3MGE2NmUxYmRhOThiYTJkNTU3ZGFmNGYxNDg3M2UyODY1ZGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
biBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5IHdoaWNoIHByb3ZpZGVzIGRlZmF1bHQg
aW1wbGVtZW50YXRpb25zIG9mIHRoZQorICAgICAgICBwbGF0Zm9ybSBjcmVhdGlvbiBtZXRob2Rz
LCBzbyB0aGV5IGRvbid0IG5lZWQgdG8gYmUgcmUtaW1wbGVtZW50ZWQgYnkgZWFjaCBjbGllbnQg
dW5sZXNzCisgICAgICAgIHRoYXQgY2xpZW50IG5lZWRzIHRvIG92ZXJyaWRlIHRoYXQgYmVoYXZp
b3IuCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUgZW51bWVyYXRpb25zIGlu
c2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1ZGlvU2Vzc2lvbiBtZXRo
b2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGNhc2Ugd2hlcmUg
dGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0
ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb24uaDoKKwogMjAyMC0wMi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUF0gSW1wbGVtZW50IE1vZGVybiBFTUUgQVBJIGluIHRoZSBHUFUgUHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA0NTBlN2UzNTJmM2VhYjhmMzU2MGUxNjViNzNhYmU5M2MwODQ2OTA4
Li5lMjEzNWE3ZjM1YmY0Yjg0MzQxNzVjYmU4MWQ3YTdmMTE1YTM2NjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDk1IEBACisyMDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdWJjbGFzcyBv
ZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBhdWRpbyBiZWhh
dmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAgICAgYXVkaW8g
YmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJvY2Vzcywgc2lu
Y2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFsbHkKKyAgICAg
ICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAgICAgICAgRHVl
IHRvIHRoZSB3YXkgQXVkaW9TZXNzaW9uIG5vdyByZXF1aXJlcyB0aGUgUGxhdGZvcm1TdHJhdGVn
aWVzIG9iamVjdCB0byBjcmVhdGUgYSBjb25jcmV0ZSBBdWRpb1Nlc3Npb24sIHRoZSBHUFUKKyAg
ICAgICAgcHJvY2VzcyBuZWVkcyBpdHMgb3duIFBsYXRmb3JtU3RyYXRlZ2llcyBzdWJjbGFzcywg
YnV0IHVzaW5nIHRoZSBkZWZhdWx0IE1lZGlhU3RyYXRlZ3kgZnJvbSBXZWJDb3JlLgorCisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKToKKyAg
ICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVB
dWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpsZWdhY3lDZG1GYWN0b3J5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZUxvYWRlclN0cmF0ZWd5KToKKyAgICAgICAgKFdlYktpdDo6R1BV
UGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3kpOgorICAgICAgICAo
V2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3kpOgorICAg
ICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Ojppbml0aWFsaXplR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmF1
ZGlvU2Vzc2lvbk1hbmFnZXIgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Ojpwcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6ZW5kSW50ZXJydXB0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbik6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNhdGVnb3J5
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnJvdXRl
U2hhcmluZ1BvbGljeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjpwcmVmZXJyZWRCdWZmZXJTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OmlzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmdldFByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRDYXRlZ29yeUZvclByb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNl
dFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2Vzc2lv
biBjb25zdCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uOjpSZW1vdGVBdWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb246OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
OjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmg6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9XZWJNZWRpYVN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVn
eTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9XZWJNZWRpYVN0cmF0ZWd5Lmg6CisKIDIwMjAtMDItMjMgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIEltcGxlbWVudCBNb2Rlcm4gRU1FIEFQ
SSBpbiB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4ODZk
ZGVhNWY2ZjAzMmU5YTg4MjZlZjFkYjYwMDc0YmI2OTc3MGQyLi45OTlkYmRiNzlkNzhmZTM2YzJi
YTY0ODUwYzk1YzQyM2UwNGU4MDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUgZGVmYXVsdCBN
ZWRpYVN0cmF0ZWd5IGZyb20gV2ViQ29yZSBub3cgdGhhdCBpdCdzIGF2YWlsYWJsZS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisKIDIwMjAtMDMt
MDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEl0ZW1zIGluIHRoZSB0b29sYmFyIHRha2UgdXAgdG8gbXVjaCB2ZXJ0aWNhbCBzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYv
Rm9yd2FyZC5oCmluZGV4IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThmNzAzYThmMGQu
LjZlOTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAg
LTY4LDYgKzY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBEdW1iUHRyVHJh
aXRzPFQ+PiBjbGFzcyBSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IER1bWJQ
dHJUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJp
bmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBjbGFzcyBTdHJp
bmdUeXBlQWRhcHRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1ZVJlZjsKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBz
dHJ1Y3QgRGVmYXVsdEhhc2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEyNSw2ICsxMjYs
NyBAQCB1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3NpdGlvbjsKIHVz
aW5nIFdURjo6VGV4dFN0cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RGOjpVbmlxdWVS
ZWY7CiB1c2luZyBXVEY6OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCBhNzIxZmJiMWFkOGE1YWE2YmRhMDliNjNiM2EyYTlkOTk3YzkxMTJmLi4wMDZlMzhh
YjY5MGE1Njg1Njk4ZDc3M2QzOGViZDRlZTEyMmNhM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc0
MCw2ICsxNzQwLDcgQEAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKIHBsYXRmb3JtL0xvd1Bvd2VyTW9k
ZU5vdGlmaWVyLmNwcAogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKIHBsYXRmb3JtL01h
aW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKK3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCiBwbGF0
Zm9ybS9Ob3RJbXBsZW1lbnRlZC5jcHAKIHBsYXRmb3JtL1Bhc3RlYm9hcmQuY3BwCiBwbGF0Zm9y
bS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZjAyM2ViZDRlZGRiZjY5MzQwNTcyMzY5
N2FkZTliZjUzOTY4NTg5Li5kZGFmNzFkM2NmNGZhZmM2YjRhNzUyOTM5NDA5YzYxZDQxODZkYWU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzk4Nyw2ICsxMzk4Nyw3IEBACiAJCUNEQUU4QzA4MTc0NkI5NTcwMDUzMkQ3OCAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVh
bWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDRE1GYWlyUGxheVN0cmVhbWluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREI3MDQ1OTFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBs
YXlTdHJlYW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0My
OTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmF0ZWd5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNEMjgxRkU4NUNCODAwMTJD
NTQ1IC8qIFZpZGVvQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlk
ZW9Db25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RCRDNE
MjkxRkU4NUNCOTAwMTJDNTQ1IC8qIE1lZGlhQ29uZmlndXJhdGlvbi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RCRDNEMkExRkU4NUNCQTAwMTJDNTQ1IC8qIE1lZGlhRW5jb2RpbmdDb25maWd1
cmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUVuY29kaW5nQ29uZmlndXJh
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTk2Myw2ICsyNTk2NCw3
IEBACiAJCQkJQ0RGMkIwMDMxODFGMDU5QzAwRjJCNDI0IC8qIE1lZGlhRGVzY3JpcHRpb24uaCAq
LywKIAkJCQlDRDY0MUVDNzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLywKIAkJ
CQlBMTdEMjc1RDFFQUM1Nzk4MDBCRjAxRTcgLyogTWVkaWFTZWxlY3Rpb25PcHRpb24uaCAqLywK
KwkJCQlDREJCNDlGMjI0MEQ4NjUyMDAxN0MyOTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8sCiAJ
CQkJOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCAqLywKIAkJCQlC
Qzc3MkM0QzBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJ
QkM3NzJDNEQwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdjMjRjZDA2
MDMxMzVlNGVjZjFmY2VlYTBkMTAwZjE3YmU1ZDgxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5o
IgorCisjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lv
bi5oIgorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJDRE1GYWN0b3J5
LmgiCisjaW5jbHVkZSAiTGVnYWN5Q0RNLmgiCisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKK1VuaXF1ZVJl
ZjxBdWRpb1Nlc3Npb24+IE1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpCit7Cisg
ICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJM
RShXRUJfQVVESU8pCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gTWVkaWFTdHJh
dGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQsCisgICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENo
YW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRl
KQoreworICAgIHJldHVybiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoY2FsbGJhY2ssIGlucHV0
RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywg
c2FtcGxlUmF0ZSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCit2
b2lkIE1lZGlhU3RyYXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5
Kj4mIGZhY3RvcmllcykKK3sKKyAgICByZXR1cm4gQ0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3RvcmllcyhmYWN0b3JpZXMpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU3RyYXRlZ3kuaAppbmRleCA2MGE1ODQ3YzhjZWMxMGI3OWI3NDlhNmZhZjg1MDNk
MTZhMTk5Yjk1Li5jZGM0ODVjZjQ0MDI3MDJjOWJhNTAxYTNiMGI0YmY2MjdkNDY4YmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oCkBAIC0zMSwxNiArMzEsMjAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb0Rlc3RpbmF0aW9uOwogY2xhc3MgQXVk
aW9JT0NhbGxiYWNrOworY2xhc3MgQXVkaW9TZXNzaW9uOwogY2xhc3MgQ0RNRmFjdG9yeTsKIAog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFTdHJhdGVneSB7CiBwdWJsaWM6CisjaWYgVVNFKEFV
RElPX1NFU1NJT04pCisgICAgdmlydHVhbCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBjcmVhdGVB
dWRpb1Nlc3Npb24oKTsKKyNlbmRpZgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlQXVkaW9EZXN0aW5hdGlv
bigKLSAgICAgICAgQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlk
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKKyAgICAgICAgQXVkaW9JT0NhbGxiYWNr
JiwgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hh
bm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYpOwogI2Vu
ZGlmCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+TWVkaWFTdHJhdGVneSgpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4
IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZmYWZhNDhlMTNmZGNmMmY1N2QuLjM3MTMyZmEyMGJlOWE4
YzE1YTIyMjBkZjYwMWM3NTM0NDVhMzNhMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMjgsMTUgKzI4LDIyIEBACiAKICNpZiBVU0Uo
QVVESU9fU0VTU0lPTikKIAorI2luY2x1ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1VuaXF1
ZVJlZjxBdWRpb1Nlc3Npb24+IEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
bWFrZVVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+KCk7Cit9CisKIEF1ZGlvU2Vzc2lvbiYgQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXVk
aW9TZXNzaW9uPiBzZXNzaW9uOwotICAgIHJldHVybiBzZXNzaW9uOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPj4gc2Vzc2lvbiA9IHBsYXRmb3JtU3Ry
YXRlZ2llcygpID8gcGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3koKS5jcmVhdGVB
dWRpb1Nlc3Npb24oKSA6IEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIHNlc3Np
b24uZ2V0KCk7CiB9CiAKIGJvb2wgQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZShib29sIGFj
dGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vz
c2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKaW5k
ZXggZTcwMDgyMmZmMWZlZWJkNzgyOWFlYzc1MGNjZTQwYTYwYjkyNTY2YS4uY2ZjNDEzODYwMjVl
N2E2NDhhYzJlM2I2M2I5NjVmYTQzZDU0M2QyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQsMTMgKzQ1
LDE3IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdCB7CiAgICAgTG9u
Z0Zvcm1WaWRlbwogfTsKIAotY2xhc3MgQXVkaW9TZXNzaW9uIGZpbmFsIHsKK2NsYXNzIFdFQkNP
UkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9TZXNzaW9uKTsKKyAgICBmcmllbmQgY2xhc3Mg
VW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj47CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxBdWRpb1Nlc3Np
b24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8QXVkaW9TZXNzaW9u
PigpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1Nlc3Npb24mIHNo
YXJlZFNlc3Npb24oKTsKKyAgICBzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4gY3JlYXRl
KCk7CisgICAgc3RhdGljIEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOworICAgIHZpcnR1
YWwgfkF1ZGlvU2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgeworICAgIGVudW0g
Q2F0ZWdvcnlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAgIEFtYmllbnRT
b3VuZCwKICAgICAgICAgU29sb0FtYmllbnRTb3VuZCwKQEAgLTU5LDIzICs2NCwyMyBAQCBwdWJs
aWM6CiAgICAgICAgIFBsYXlBbmRSZWNvcmQsCiAgICAgICAgIEF1ZGlvUHJvY2Vzc2luZywKICAg
ICB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBS
b3V0ZVNoYXJpbmdQb2xpY3kpOwotICAgIFdFQkNPUkVfRVhQT1JUIENhdGVnb3J5VHlwZSBjYXRl
Z29yeSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUs
IFJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdmlydHVhbCBDYXRlZ29yeVR5cGUgY2F0ZWdvcnko
KSBjb25zdDsKIAogICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUpOwog
ICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3Q7CiAKLSAgICBSb3V0ZVNo
YXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7Ci0gICAgU3RyaW5nIHJvdXRp
bmdDb250ZXh0VUlEKCkgY29uc3Q7CisgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91
dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgcm91dGluZ0NvbnRl
eHRVSUQoKSBjb25zdDsKIAotICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsKLSAgICBzaXpl
X3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZk91dHB1dENoYW5uZWxz
KCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7CisgICAgdmly
dHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgc2l6ZV90IG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAogICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmUoYm9v
bCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNv
bnN0OwotICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOworICAgIHZpcnR1
YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xhc3MgTXV0ZWRTdGF0ZU9i
c2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04NywxNyArOTIsMTYgQEAgcHVibGljOgogICAgIHZv
aWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwogICAgIHZvaWQg
cmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciopOwogCi0gICAgYm9v
bCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBoYW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCk7Cisg
ICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
TXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4g
bV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3MgTmV2
ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRpb1Nlc3Npb24oKTsKLSAgICB+QXVk
aW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCk7Cisg
ICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCk7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIEhhc2hTZXQ8
TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAppbmRleCBhOGQxOGJlNGVh
YmFlOWVjODBmZjVkZWY0ZmI3YmNhOWRhNjU3MDdhLi4xMjhmYWRhZTBmZDk2N2VmYTBmZTljYzE0
MTU3NDdkOTNmZWNjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb24oKTsKIAotICAgIGVudW0gY2xhc3MgTWVk
aWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBO
b25lID0gMCwKICAgICAgICAgVmlkZW8sCiAgICAgICAgIFZpZGVvQXVkaW8sCkBAIC02OSw3ICs2
OSw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5cGUgbWVkaWFUeXBlKCkgY29uc3Q7CiAgICAgTWVk
aWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBjb25zdDsKIAotICAgIGVudW0gU3RhdGUgeworICAg
IGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAgICAgICAgSWRsZSwKICAgICAgICAgQXV0b3BsYXlp
bmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICBTdGF0
ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICB2b2lkIHNldFN0YXRlKFN0
YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0aW9uVHlwZSB7CisgICAgZW51bSBJbnRlcnJ1cHRp
b25UeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vSW50ZXJydXB0aW9uLAogICAgICAgICBTeXN0
ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdCYWNrZ3JvdW5kLApAQCAtOTEsNyArOTEsNyBAQCBw
dWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIGludGVycnVwdGlvblR5cGUoKSBj
b25zdCB7IHJldHVybiBtX2ludGVycnVwdGlvblR5cGU7IH0KIAotICAgIGVudW0gRW5kSW50ZXJy
dXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgOiB1aW50OF90IHsK
ICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAgICAgIE1heVJlc3VtZVBsYXlpbmcgPSAxIDw8IDAs
CiAgICAgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGRvdWJsZSBhc0Rv
dWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRBcmd1bWVudDsKIAotICAgIGVudW0gUmVtb3RlQ29u
dHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVtIFJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSA6IHVp
bnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQsCiAgICAgICAgIFBsYXlDb21tYW5kLAogICAgICAg
ICBQYXVzZUNvbW1hbmQsCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlk
UmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSwgY29u
c3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBhcmd1bWVudCA9IG51bGxwdHIpOwogICAgIGJvb2wg
c3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAKLSAgICBlbnVtIERpc3BsYXlUeXBlIHsKKyAgICBl
bnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vcm1hbCwKICAgICAgICAgRnVs
bHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVkLApAQCAtMzExLDQgKzMxMSw2NCBAQCBzdHJ1Y3Qg
TG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZT4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6
Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6Vmlk
ZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6VmlkZW9B
dWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpBdWRp
bywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpXZWJBdWRp
bworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGUsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpJZGxlLAorICAgIFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6QXV0b3BsYXlpbmcsCisgICAgV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQbGF5aW5nLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2VkLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQKKyAgICA+OworfTsKKwordGVtcGxhdGUgPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlv
blR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6Tm9JbnRlcnJ1cHRpb24sCisgICAg
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbVNs
ZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBl
OjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUludGVycnVwdGlvbiwKKyAgICBXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3VzcGVuZGVkVW5kZXJMb2NrLAor
ICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpJbnZp
c2libGVBdXRvcGxheSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJy
dXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQbGF5YmFja1N1c3BlbmRlZAorICAgID47Cit9Owor
Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9u
RmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlv
bkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJ
bnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1lUGxheWluZworICAgID47Cit9OworCit0ZW1wbGF0
ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVt
b3RlQ29udHJvbENvbW1hbmRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENv
bW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGxheUNvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGF1c2VDb21tYW5k
LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFu
ZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpS
ZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRvZ2dsZVBsYXlQYXVzZUNvbW1hbmQsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6QmVn
aW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OkVuZFNlZWtpbmdCYWNrd2FyZENvbW1hbmQs
CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6RW5kU2Vla2luZ0ZvcndhcmRD
b21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9s
Q29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNrUG9zaXRpb25Db21tYW5kCisgICAgPjsKK307CisK
IH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggZDZjMDA3ZjQwYjVmYjc2MzcyMmQ1Mzhh
ZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGExZDBhYTYzODljM2RmODkzNjcxMGEzNTg5YTQ0NTg4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vz
c2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9T
ZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQzLDE1IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRQ
cmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZmZXJTaXplKQogICAgIEFTU0VSVCghZXJyb3Ip
OwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6aXNNdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6aGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgp
Cit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CmluZGV4IDlmOTQ2Zjg0OTdhZjIzYjRhZmE1MWI3OTE4NDE4NTE4ODYwYWM1YjkuLmQ3NDli
MmRiMDliOTY3NDZmNGEwZjFlMzRjMjE3NDJlZGY1M2U0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE4LDYgKzE4LDggQEAgJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQ
cm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJv
eHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RN
SW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMTE2LDYgKzEx
OCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5t
ZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVk
aW9TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKaW5kZXggYTk2YzJjZmRkZDQ2YjM1OTIzOGU5NjIzNDNhOTkyMjEwNGVlYTU5Yi4u
OTk1MDM1MTJiYTU1OGIyYjQxMDA4ZjViMTY2NTA0NjBhOTU0MTQ1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzcsNiArMTM3LDE1
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
QXVkaW9TZXNzaW9uTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2Vz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdl
c1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
Q0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA0NWVlM2RiN2VkN2UxMzM3MmM4YTc1YWQ1NTVhMTY1ODdmNjdkMDhhLi4xYzNkMWEy
MGVlYTNiNzM4MDAxMDJlMWQzMTk4Mzc5MDNhYTZjZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0xNDgsNiArMTQ4LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUGx1
Z2luUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIFwKICAgICBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbiBcCisgICAg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDZjZjFjMzBiM2UzMzAxMjc3NDY2ZDkyZWUyOTMzMjQ2MDdlNTljYzEuLjI0OTgxZmZmNTI4
ODNjNzAyMTc4NTg3OWJlMThmMWI2OTRmOWJiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTcxLDYgKzcx
LDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgIlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5o
IgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CkBAIC0xMTksNiArMTI0LDEwIEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKCkKIAogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpk
aWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworICAgIGlmIChtX2F1ZGlvU2Vzc2lvblByb3h5
KSB7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2VyKCkucmVtb3ZlUHJv
eHkod2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIG1fYXVkaW9TZXNzaW9uUHJveHkg
PSBudWxscHRyOworICAgIH0KIH0KIAogTG9nZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojpsb2dnZXIoKQpAQCAtMjE3LDYgKzIyNiwxNyBAQCBSZW1vdGVDRE1GYWN0b3J5UHJveHkmIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNkbUZhY3RvcnlQcm94eSgpCiB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCitSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJv
eHkoKQoreworICAgIGlmICghbV9hdWRpb1Nlc3Npb25Qcm94eSkgeworICAgICAgICBtX2F1ZGlv
U2Vzc2lvblByb3h5ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNyZWF0ZSgqdGhpcykubW92
ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2Vy
KCkuYWRkUHJveHkobWFrZVdlYWtQdHIobV9hdWRpb1Nlc3Npb25Qcm94eS5nZXQoKSkpOworICAg
IH0KKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uUHJveHk7Cit9CisjZW5kaWYKKwogdm9pZCBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQogewogICAgIGF1
dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNYXAuZW5zdXJlKHJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0yMzEsNiArMjUxLDEzIEBAIHZv
aWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVsZWFzZVJlbmRlcmluZ0JhY2tlbmQoUmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpCiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwgZm91bmQpOwog
fQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKK3ZvaWQg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlQXVkaW9TZXNzaW9uKEVuc3VyZUF1ZGlv
U2Vzc2lvbkNvbXBsZXRpb24mJiBjb21wbGV0aW9uKQoreworICAgIGNvbXBsZXRpb24oYXVkaW9T
ZXNzaW9uUHJveHkoKS5jb25maWd1cmF0aW9uKCkpOworfQorI2VuZGlmCisKIGJvb2wgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMzA4LDYgKzMzNSwxMiBAQCBib29sIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIGlmIChkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9u
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBhdWRpb1Nlc3Npb25Qcm94
eSgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiBtZXNzYWdlUmVjZWl2ZXJNYXAo
KS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CkBAIC0zNTUsNiArMzg4
LDEyIEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04p
CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGF1
ZGlvU2Vzc2lvblByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgog
CiAgICAgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoU3luY01lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGEzZWNhNWM4
ZmFkNjkxODM4MGZkOTMzYmY2MzBkZDRjZmY3MzBkOTYuLjMwNzkwNmZhMjA1MDY4MzhhNTQ1M2Mx
Nzk5Nzc1ZDdmMzJmYjViYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKKyNpbmNsdWRlICJSZW1vdGVB
dWRpb1Nlc3Npb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CkBAIC00OCwxMiArNDksMTUgQEAgY2xh
c3MgR1BVUHJvY2VzczsKIGNsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5OwogY2xhc3MgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7CiBjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXI7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTsKK2NsYXNz
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKIGNsYXNzIFJlbW90ZUNETUZhY3RvcnlQ
cm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3MgUmVtb3Rl
TWVkaWFSZWNvcmRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsK
IGNsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiBjbGFzcyBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Oworc3RydWN0IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb247CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKICAgICA6IHB1Ymxp
YyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+CkBAIC05MCwxMSArOTQsMTUg
QEAgcHVibGljOgogICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgY2RtRmFjdG9yeVByb3h5KCk7
CiAjZW5kaWYKIAorICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiByZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eSgpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFV
RElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyJiBhdWRpb1Nl
c3Npb25NYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlciYgcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIoKTsKLSAg
ICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkoKTsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKICAgICBMaWJX
ZWJSVENDb2RlY3NQcm94eSYgbGliV2ViUlRDQ29kZWNzUHJveHkoKTsKICNlbmRpZgpAQCAtMTA2
LDggKzExNCwxNyBAQCBwcml2YXRlOgogICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKTsKICNlbmRpZgogI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAg
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5JiBhdWRpb1Nlc3Npb25Qcm94eSgpOworI2VuZGlmCisK
ICAgICB2b2lkIGNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIpOwogICAgIHZvaWQgcmVsZWFzZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04p
CisgICAgdXNpbmcgRW5zdXJlQXVkaW9TZXNzaW9uQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYpPjsKKyAgICB2
b2lkIGVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1cmVBdWRpb1Nlc3Npb25Db21wbGV0aW9uJiYpOwor
I2VuZGlmCiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJikgZmluYWw7CkBAIC0xNDcsNiArMTY0LDkgQEAgcHJpdmF0ZToK
ICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVD
RE1GYWN0b3J5UHJveHk+IG1fY2RtRmFjdG9yeVByb3h5OwogI2VuZGlmCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk+IG1fYXVkaW9TZXNzaW9uUHJveHk7CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA5
MzJjMDEyMmRlMDgxZWRlOWJiOWVmYjU2ZjliYzUyNTliYTRkNzA0Li40ZmQwZjIyMzA3ZTgzODgz
NmQ0NzRiYWIzZTAyNzVhMzVjMDc1MGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtMjUsNiArMjUsNyBAQAogbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBX
YW50c0Rpc3BhdGNoTWVzc2FnZSB7CiAgICAgdm9pZCBDcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFdl
YktpdDo6UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIpCiAgICAgdm9pZCBSZWxlYXNlUmVuZGVyaW5nQmFja2VuZChXZWJLaXQ6OlJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKQorICAgIEVuc3VyZUF1
ZGlvU2Vzc2lvbigpIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1
cmF0aW9uIGNvbmZpZ3VyYXRpb24pIFN5bmNocm9ub3VzCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMWE3MDNhYTI5NjkwYmM0ZDA4MjA2MjViMzhh
MjU5MGE2ZGJhMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oIgor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0Rlc3Rp
bmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DRE1GYWN0b3J5Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVN0cmF0ZWd5Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKwordm9pZCBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUo
KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM+IHBs
YXRmb3JtU3RyYXRlZ2llczsKKyAgICBzZXRQbGF0Zm9ybVN0cmF0ZWdpZXMoJnBsYXRmb3JtU3Ry
YXRlZ2llcy5nZXQoKSk7Cit9CisKK0dQVVBsYXRmb3JtU3RyYXRlZ2llczo6R1BVUGxhdGZvcm1T
dHJhdGVnaWVzKCkgPSBkZWZhdWx0OworCitMb2FkZXJTdHJhdGVneSogR1BVUGxhdGZvcm1TdHJh
dGVnaWVzOjpjcmVhdGVMb2FkZXJTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK1Bhc3RlYm9hcmRTdHJhdGVneSogR1BVUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQYXN0
ZWJvYXJkU3RyYXRlZ3koKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitNZWRpYVN0cmF0
ZWd5KiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQoreworICAg
IHJldHVybiBuZXcgTWVkaWFTdHJhdGVneSgpOworfQorCitCbG9iUmVnaXN0cnkqIEdQVVBsYXRm
b3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2Y5Mzk3Y2RiMGNjOGFkMTBiN2JmYzlj
ZjAwNzM2MDlhZTYzMWE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJhdGVnaWVzLmg+
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTG9hZGVyU3RyYXRlZ3k7CitjbGFzcyBQYXN0ZWJv
YXJkU3RyYXRlZ3k7CitjbGFzcyBNZWRpYVN0cmF0ZWd5OworY2xhc3MgQmxvYlJlZ2lzdHJ5Owor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVUGxhdGZvcm1TdHJhdGVnaWVzIDog
cHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcyB7CisgICAgZnJpZW5kIE5ldmVyRGVz
dHJveWVkPEdQVVBsYXRmb3JtU3RyYXRlZ2llcz47CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIEdQVVBsYXRmb3JtU3RyYXRlZ2llcygpOwor
CisgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzCisgICAgV2ViQ29yZTo6TG9hZGVy
U3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6
UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsK
KyAgICBXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5KiBjcmVhdGVNZWRpYVN0cmF0ZWd5KCkgb3ZlcnJp
ZGU7CisgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVy
cmlkZTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5jcHAKaW5kZXggMGU3YmQwOWJlYTVkMTIzYTQwN2VjZmI5ZDM5ZjcyNDBmNWIzYzdiOS4uNjAz
NzAwNTljZDE0OTU1MzZlZjQ1Y2Y0OTY0NTJkZDQxZTI0ZTQ3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkF1eGls
aWFyeVByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNs
dWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiR1BVUGxhdGZvcm1T
dHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgIkdQVVByb2Nlc3NTZXNzaW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKQEAgLTUxLDYgKzUyLDEwIEBACiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgVVNFKEFVRElPX1NFU1NJT04pCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIApAQCAtMTEwLDYgKzExNSw4IEBAIHZvaWQgR1BVUHJvY2Vzczo6aW5pdGlhbGl6
ZUdQVVByb2Nlc3MoR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAg
ICAgV1RGOjpUaHJlYWQ6OnNldEN1cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQoKTsKICAgICBB
dG9tU3RyaW5nOjppbml0KCk7CiAKKyAgICBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxp
emUoKTsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKICNlbmRp
ZgpAQCAtMjEyLDYgKzIxOSwxNSBAQCBjb25zdCBTdHJpbmcmIEdQVVByb2Nlc3M6Om1lZGlhS2V5
c1N0b3JhZ2VEaXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjbwogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyJiBHUFVQcm9jZXNzOjphdWRpb1Nlc3Npb25NYW5hZ2Vy
KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYXVkaW9TZXNzaW9uTWFuYWdlcikKKyAgICAgICAgbV9h
dWRpb1Nlc3Npb25NYW5hZ2VyID0gV1RGOjptYWtlVW5pcXVlPFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcj4oKTsKKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uTWFuYWdlcjsKK30KKyNl
bmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCmluZGV4IDZmYTAyMDE0Yjk0
NzgxZWE5OWUwMzVkYjNhZDc5ZDY1YTI0ZjI4N2IuLjQzYWFlMWExMmI1Yjg4NWIyNmM1NmRkZjE1
Mjk2MGYwMjI3YzUyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaApAQCAt
NDAsNiArNDAsNyBAQCBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogc3RydWN0IEdQ
VVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgR1BVUHJvY2Vzc1Nlc3Npb25QYXJh
bWV0ZXJzOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlcjsKIAogY2xhc3MgR1BVUHJvY2VzcyA6IHB1YmxpYyBBdXhpbGlhcnlQ
cm9jZXNzLCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8R1BVUHJvY2Vzcz4sIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxHUFVQcm9jZXNzPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR1BV
UHJvY2Vzcyk7CkBAIC02Myw2ICs2NCwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBt
ZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KFBBTDo6U2Vzc2lvbklEKSBjb25zdDsKICNlbmRpZgog
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXImIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKSBjb25zdDsK
KyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbCk7
CiAKQEAgLTEwMyw2ICsxMDgsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXll
ckhvc3RpbmdDb250ZXh0PiBtX2NvbnRleHRGb3JWaXNpYmlsaXR5UHJvcGFnYXRpb247CiAgICAg
Ym9vbCBtX2NhblNob3dXaGlsZUxvY2tlZCB7IGZhbHNlIH07CiAjZW5kaWYKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIG11dGFibGUgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcj4gbV9hdWRpb1Nlc3Npb25NYW5h
Z2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVhZmM0OWRlODlkZTFhY2U0NmFjMTY3Zjg1ODQ2ODAzMzY1MmRjOTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkuY3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitVbmlxdWVSZWY8UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHk+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpjcmVhdGUoR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvbikKK3sKKyAgICByZXR1cm4gbWFrZVVu
aXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4oZ3B1Q29ubmVjdGlvbik7Cit9CisKK1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eShHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uKQorICAgIDogbV9ncHVDb25uZWN0aW9uKGdw
dUNvbm5lY3Rpb24pCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp+UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkoKSA9IGRlZmF1bHQ7CisKK1dlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpwcm9jZXNzSWRlbnRpZmllcigpCit7CisgICAgcmV0
dXJuIG1fZ3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpOworfQorCitSZW1vdGVB
dWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25maWd1
cmF0aW9uKCkKK3sKKyAgICBhdXRvJiBzZXNzaW9uID0gYXVkaW9TZXNzaW9uTWFuYWdlcigpLnNl
c3Npb24oKTsKKyAgICByZXR1cm4geworICAgICAgICBzZXNzaW9uLmNhdGVnb3J5KCksCisgICAg
ICAgIHNlc3Npb24ucm91dGVTaGFyaW5nUG9saWN5KCksCisgICAgICAgIHNlc3Npb24ucm91dGlu
Z0NvbnRleHRVSUQoKSwKKyAgICAgICAgc2Vzc2lvbi5zYW1wbGVSYXRlKCksCisgICAgICAgIHNl
c3Npb24uYnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNzaW9uLm51bWJlck9mT3V0cHV0Q2hhbm5l
bHMoKSwKKyAgICAgICAgc2Vzc2lvbi5wcmVmZXJyZWRCdWZmZXJTaXplKCksCisgICAgICAgIHNl
c3Npb24uaXNNdXRlZCgpLAorICAgICAgICBtX2FjdGl2ZQorICAgIH07Cit9CisKK3ZvaWQgUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5
KQoreworICAgIG1fY2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyAgICBtX3JvdXRlU2hhcmluZ1BvbGlj
eSA9IHBvbGljeTsKKyAgICBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2V0Q2F0ZWdvcnlGb3JQcm9j
ZXNzKG1fZ3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCBjYXRlZ29yeSwgcG9s
aWN5KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0UHJlZmVycmVkQnVm
ZmVyU2l6ZSh1aW50NjRfdCBzaXplKQoreworICAgIG1fcHJlZmVycmVkQnVmZmVyU2l6ZSA9IHNp
emU7CisgICAgYXVkaW9TZXNzaW9uTWFuYWdlcigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQ
cm9jZXNzKG1fZ3B1Q29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCBzaXplKTsKK30K
Kwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6dHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3Rp
dmUsIFNldEFjdGl2ZUNvbXBsZXRpb24mJiBjb21wbGV0aW9uKQoreworICAgIG1fYWN0aXZlID0g
YXVkaW9TZXNzaW9uTWFuYWdlcigpLnRyeVRvU2V0QWN0aXZlRm9yUHJvY2VzcyhtX2dwdUNvbm5l
Y3Rpb24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgYWN0aXZlKTsKKyAgICBjb21wbGV0aW9uKG1f
YWN0aXZlKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YmVnaW5JbnRlcnJ1
cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlw
ZSkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9u
OjpCZWdpbkludGVycnVwdGlvbih0eXBlKSwgeyB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eTo6ZW5kSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpFbmRJbnRlcnJ1cHRpb25GbGFncyBmbGFncykKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb24oZmxhZ3MpLCB7IH0p
OworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXImIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjphdWRpb1Nlc3Npb25NYW5hZ2VyKCkKK3sKKyAgICByZXR1cm4gbV9ncHVDb25uZWN0
aW9uLmdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2VyKCk7Cit9CisKK0lQQzo6Q29ubmVj
dGlvbiYgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbm5lY3Rpb24oKQoreworICAgIHJldHVy
biBtX2dwdUNvbm5lY3Rpb24uY29ubmVjdGlvbigpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lY2QyYzZjMzdjMTc5NjRlMGJjOGRmYTcyMTM2NDk5MjFkODQ5
M2MxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lP
TikKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb24uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKwor
bmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOworCitjbGFzcyBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eQorICAgIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyCisg
ICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgVW5pcXVlUmVm
PFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYpOworICAgIHZpcnR1YWwgflJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KCk7CisKKyAgICBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcigpOworICAgIFJlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbigpOworCisgICAgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdCB7IHJldHVybiBtX2Nh
dGVnb3J5OyB9OworICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQ
b2xpY3koKSBjb25zdCB7IHJldHVybiBtX3JvdXRlU2hhcmluZ1BvbGljeTsgfQorICAgIHNpemVf
dCBwcmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3QgeyByZXR1cm4gbV9wcmVmZXJyZWRCdWZmZXJT
aXplOyB9CisgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisK
KyAgICB2b2lkIGJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpJbnRlcnJ1cHRpb25UeXBlKTsKKyAgICB2b2lkIGVuZEludGVycnVwdGlvbihXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MpOworCisgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6
OkVuY29kZXI+JikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eT4gV1RGOjptYWtlVW5pcXVlUmVmV2l0aG91dEZhc3RNYWxsb2ND
aGVjazxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4oR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYp
OworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
KTsKKworICAgIC8vIE1lc3NhZ2VzCisgICAgdm9pZCBzZXRDYXRlZ29yeShXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KTsKKyAg
ICB2b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUodWludDY0X3QpOworICAgIHVzaW5nIFNldEFj
dGl2ZUNvbXBsZXRpb24gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPjsKKyAgICB2b2lk
IHRyeVRvU2V0QWN0aXZlKGJvb2wsIFNldEFjdGl2ZUNvbXBsZXRpb24mJik7CisKKyAgICBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXImIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKTsKKyAgICBJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIG1fZ3B1Q29ubmVjdGlvbjsKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZSBtX2NhdGVnb3J5OworICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBtX3Jv
dXRlU2hhcmluZ1BvbGljeTsKKyAgICBzaXplX3QgbV9wcmVmZXJyZWRCdWZmZXJTaXplIHsgMCB9
OworICAgIGJvb2wgbV9hY3RpdmUgeyBmYWxzZSB9OworfTsKKworfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2YzYmFlODI0M2ZhYTU0
NTUyYmJmZjA0ZDlhNmViODUyYjYwNjIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBA
IC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBV
U0UoQVVESU9fU0VTU0lPTikKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkg
Tm90UmVmQ291bnRlZCB7CisgICAgU2V0Q2F0ZWdvcnkoZW51bTp1aW50OF90IFdlYkNvcmU6OkF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIHR5cGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpSb3V0
ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQorICAgIFNldFByZWZlcnJlZEJ1ZmZlclNpemUodWludDY0
X3QgcHJlZmVycmVkQnVmZmVyU2l6ZSkKKyAgICBUcnlUb1NldEFjdGl2ZShib29sIGFjdGl2ZSkg
LT4gKGJvb2wgc3VjZWVkZWQpIFN5bmNocm9ub3VzCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTZiNGVmMjExZjJhMzgzMDcwNTRjNTEy
NjFiNzE2MWZjN2QwOGRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKQEAgLTAsMCArMSwx
OTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
Q291bnRlZFNldC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK3N0YXRpYyBib29sIGNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyhBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSkKK3sKKyAgICByZXR1cm4gY2F0ZWdvcnkgPT0gQXVk
aW9TZXNzaW9uOjpBbWJpZW50U291bmQ7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlcjo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCkKKyAgICA6IG1fc2Vzc2lvbihB
dWRpb1Nlc3Npb246OmNyZWF0ZSgpKQoreworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXI6On5SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKSA9IGRlZmF1bHQ7CisKK3Zv
aWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjphZGRQcm94eShXZWFrUHRyPFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5PiYmIHByb3h5KQoreworICAgIGF1dG8gaWQgPSBwcm94eS0+cHJv
Y2Vzc0lkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlucyhpZCkpOwor
ICAgIG1fcHJveGllcy5zZXQoaWQsIFdURk1vdmUocHJveHkpKTsKK30KKwordm9pZCBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnJlbW92ZVByb3h5KGNvbnN0IFByb2Nlc3NJZGVudGlm
aWVyJiBpZCkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7CisgICAgbV9w
cm94aWVzLnJlbW92ZShpZCk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmdldFByb3h5KGNvbnN0IFByb2Nlc3NJZGVudGlmaWVy
JiBpZCkKK3sKKyAgICBhdXRvIHJlc3VsdHMgPSBtX3Byb3hpZXMuZmluZChpZCk7CisgICAgaWYg
KHJlc3VsdHMgIT0gbV9wcm94aWVzLmVuZCgpKQorICAgICAgICByZXR1cm4gcmVzdWx0cy0+dmFs
dWUuZ2V0KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyOjpzZXRDYXRlZ29yeUZvclByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50
aWZpZXImIGlkLCBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSwgUm91dGVTaGFy
aW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7
CisgICAgYXV0byBwcm94eSA9IGdldFByb3h5KGlkKTsKKyAgICBpZiAoIXByb3h5KQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAocHJveHktPmNhdGVnb3J5KCkgPT0gY2F0ZWdvcnkgJiYgcHJv
eHktPnJvdXRlU2hhcmluZ1BvbGljeSgpID09IHBvbGljeSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgSGFzaENvdW50ZWRTZXQ8QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdURjo6SW50SGFz
aDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+PiBjYXRlZ29yeUNvdW50czsKKyAgICBIYXNoQ291
bnRlZFNldDxSb3V0ZVNoYXJpbmdQb2xpY3ksIFdURjo6SW50SGFzaDxSb3V0ZVNoYXJpbmdQb2xp
Y3k+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPFJvdXRlU2hhcmluZ1BvbGljeT4+IHBvbGlj
eUNvdW50czsKKyAgICBmb3IgKGF1dG8mIG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkp
IHsKKyAgICAgICAgY2F0ZWdvcnlDb3VudHMuYWRkKG90aGVyUHJveHktPmNhdGVnb3J5KCkpOwor
ICAgICAgICBwb2xpY3lDb3VudHMuYWRkKG90aGVyUHJveHktPnJvdXRlU2hhcmluZ1BvbGljeSgp
KTsKKyAgICB9CisKKyAgICBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9u
OjpQbGF5QW5kUmVjb3JkKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlBsYXlB
bmRSZWNvcmQ7CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNz
aW9uOjpSZWNvcmRBdWRpbykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpSZWNv
cmRBdWRpbzsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Np
b246Ok1lZGlhUGxheWJhY2spKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6TWVk
aWFQbGF5YmFjazsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nl
c3Npb246OlNvbG9BbWJpZW50U291bmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lv
bjo6U29sb0FtYmllbnRTb3VuZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlu
cyhBdWRpb1Nlc3Npb246OkFtYmllbnRTb3VuZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9T
ZXNzaW9uOjpBbWJpZW50U291bmQ7CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFp
bnMoQXVkaW9TZXNzaW9uOjpBdWRpb1Byb2Nlc3NpbmcpKQorICAgICAgICBjYXRlZ29yeSA9IEF1
ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nOworICAgIGVsc2UKKyAgICAgICAgY2F0ZWdvcnkg
PSBBdWRpb1Nlc3Npb246Ok5vbmU7CisKKyAgICBpZiAocG9saWN5Q291bnRzLmNvbnRhaW5zKFJv
dXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1WaWRlbykpCisgICAgICAgIHBvbGljeSA9IFJvdXRl
U2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1WaWRlbzsKKyAgICBlbHNlIGlmIChwb2xpY3lDb3VudHMu
Y29udGFpbnMoUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvKSkKKyAgICAgICAgcG9s
aWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvOworICAgIGVsc2UgaWYgKHBv
bGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6OkluZGVwZW5kZW50KSkKKyAg
ICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpJbmRlcGVuZGVudDsKKyAgICBlbHNl
CisgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdDsKKworICAgIG1f
c2Vzc2lvbi0+c2V0Q2F0ZWdvcnkoY2F0ZWdvcnksIHBvbGljeSk7Cit9CisKK3ZvaWQgUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2Vz
cyhjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQsIHNpemVfdCBwcmVmZXJyZWRCdWZmZXJTaXpl
KQoreworICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1ZXMoKSkgewor
ICAgICAgICBpZiAoIW90aGVyUHJveHkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
aWYgKG90aGVyUHJveHktPnByZWZlcnJlZEJ1ZmZlclNpemUoKSA8IHByZWZlcnJlZEJ1ZmZlclNp
emUpCisgICAgICAgICAgICBwcmVmZXJyZWRCdWZmZXJTaXplID0gb3RoZXJQcm94eS0+cHJlZmVy
cmVkQnVmZmVyU2l6ZSgpOworICAgIH0KKworICAgIG1fc2Vzc2lvbi0+c2V0UHJlZmVycmVkQnVm
ZmVyU2l6ZShwcmVmZXJyZWRCdWZmZXJTaXplKTsKK30KKworYm9vbCBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXI6OnRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyhjb25zdCBQcm9jZXNzSWRl
bnRpZmllciYgaWQsIGJvb2wgYWN0aXZlKQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFp
bnMoaWQpKTsKKyAgICBhdXRvIHByb3h5ID0gZ2V0UHJveHkoaWQpOworICAgIGlmICghcHJveHkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHNpemVfdCBhY3RpdmVQcm94eUNvdW50IHsg
MCB9OworICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1ZXMoKSkgewor
ICAgICAgICBpZiAoIW90aGVyUHJveHkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
aWYgKG90aGVyUHJveHktPmlzQWN0aXZlKCkpCisgICAgICAgICAgICArK2FjdGl2ZVByb3h5Q291
bnQ7CisgICAgfQorCisgICAgaWYgKCFhY3RpdmUgJiYgYWN0aXZlUHJveHlDb3VudCA+IDEpIHsK
KyAgICAgICAgLy8gVGhpcyBwcm94eSB3YW50cyB0byBkZS1hY3RpdmF0ZSwgYnV0IG90aGVyIHBy
b3hpZXMgYXJlIHN0aWxsCisgICAgICAgIC8vIGFjdGl2ZS4gTm8tb3AsIGFuZCByZXR1cm4gZGVh
Y3RpdmF0aW9uIHdhcyBzdWNlc3NmdWwuCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
ICAgIGlmICghYWN0aXZlKSB7CisgICAgICAgIC8vIFRoaXMgcHJveHkgd2FudHMgdG8gZGUtYWN0
aXZhdGUsIGFuZCBpcyB0aGUgbGFzdCByZW1haW5pbmcgYWN0aXZlCisgICAgICAgIC8vIHByb3h5
LiBEZWFjdGl2YXRlIHRoZSBzZXNzaW9uLCBhbmQgcmV0dXJuIHdoZXRoZXIgdGhhdCBkZWFjdGl2
YXRpb24KKyAgICAgICAgLy8gd2FzIHN1Y2Vzc2Z1bDsKKyAgICAgICAgcmV0dXJuIG1fc2Vzc2lv
bi0+dHJ5VG9TZXRBY3RpdmUoZmFsc2UpOworICAgIH0KKworICAgIGlmIChhY3RpdmUgJiYgIWFj
dGl2ZVByb3h5Q291bnQpIHsKKyAgICAgICAgLy8gVGhpcyBwcm94eSBhbmQgb25seSB0aGlzIHBy
b3h5IHdhbnRzIHRvIGJlY29tZSBhY3RpdmUuIEFjdGl2YXRlCisgICAgICAgIC8vIHRoZSBzZXNz
aW9uLCBhbmQgcmV0dXJuIHdoZXRoZXIgdGhhdCBhY3RpdmF0aW9uIHdhcyBzdWNjZXNzZnVsLgor
ICAgICAgICByZXR1cm4gbV9zZXNzaW9uLT50cnlUb1NldEFjdGl2ZShhY3RpdmUpOworICAgIH0K
KworICAgIC8vIElmIHRoaXMgcHJveHkgaXMgQW1iaWVudCwgYW5kIHRoZSBzZXNzaW9uIGlzIGFs
cmVhZHkgYWN0aXZlLCB0aGlzCisgICAgLy8gcHJveHkgd2lsbCBtaXggd2l0aCB0aGUgYWN0aXZl
IHByb3hpZXMuIE5vLW9wLCBhbmQgcmV0dXJuIGFjdGl2YXRpb24KKyAgICAvLyB3YXMgc3VjZXNz
ZnVsLgorICAgIGlmIChjYXRlZ29yeUNhbk1peFdpdGhPdGhlcnMocHJveHktPmNhdGVnb3J5KCkp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
Ly8gT3RoZXJ3aXNlLCB0aGlzIHByb3h5IHdhbnRzIHRvIGJlY29tZSBhY3RpdmUsIGJ1dCB0aGVy
ZSBhcmUgb3RoZXIKKyAgICAvLyBwcm94aWVzIHdobyBhcmUgYWxyZWFkeSBhY3RpdmUuIFdhbGsg
b3ZlciB0aGUgcHJveGllcywgYW5kIGludGVycnVwdAorICAgIC8vIHRob3NlIHByb3hpZXMgd2hv
c2UgY2F0ZW9ncmllcyBpbmRpY2F0ZSB0aGV5IGNhbm5vdCBtaXggd2l0aCBvdGhlcnMuCisgICAg
Zm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAgICAgIGlm
ICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIW90aGVy
UHJveHktPmlzQWN0aXZlKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAo
Y2F0ZWdvcnlDYW5NaXhXaXRoT3RoZXJzKG90aGVyUHJveHktPmNhdGVnb3J5KCkpKQorICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgb3RoZXJQcm94eS0+YmVnaW5JbnRlcnJ1cHRpb24o
UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUludGVycnVwdGlv
bik7CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gdHJ1ZTsKKworfQorCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2YTdmNzYxZjZiMWU4
NWJhNzE1OGUwYmRmNDBjNWZjMjNiYWExN2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgKQEAg
LTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPFdlYkNvcmUvQXVk
aW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7CisKK2Ns
YXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcgorICAgIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcj4geworICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
cigpOworICAgIH5SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKTsKKworICAgIHZvaWQg
YWRkUHJveHkoV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4mJik7CisgICAgdm9pZCBy
ZW1vdmVQcm94eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYpOworICAgIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5KiBnZXRQcm94eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciYpOworCisgICAgdm9pZCBzZXRDYXRlZ29yeUZvclByb2Nlc3MoY29uc3QgV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aWZpZXImLCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwg
V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KTsKKyAgICB2b2lkIHNldFByZWZlcnJlZEJ1ZmZl
clNpemVGb3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJiwgc2l6ZV90
KTsKKworICAgIHVzaW5nIFNldEFjdGl2ZUNvbXBsZXRpb24gPSBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPjsKKyAgICBib29sIHRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyhjb25zdCBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIGJvb2wpOworCisgICAgY29uc3QgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uJiBzZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uOyB9CisKK3ByaXZh
dGU6CisgICAgVW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbj4gbV9zZXNzaW9uOworICAg
IEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk+PiBtX3Byb3hpZXM7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRiM2RlYzdj
ZDM5ZDAxMDJiODVmMGY5NWRmNGU0MzBmOWFlMTNmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDI1NmRjOTkwNWJmNDQ2NmQwYzJhZDU3NGQ4
YzM2OGExNGJlNjk2M2EuLjRiYTE0ZGJhZjI0YjI0MWU1OWRiMGE3ZjIwODBkMDJkMDI3YzNiMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysr
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjM0LDYgKzIz
NCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAg
ICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXInLAogICAgICAg
ICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJl
bW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUlkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZUlkZW50aWZpZXInLAog
ICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25JZGVudGlmaWVyJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggZDA3ZjJi
ZjViMjFiNjIwYjkxOTgxMDE5OTQwZTI3NDRlZDI1MDBjZC4uNjc1MmNiNmQ0NWU1YWYwMDVlZmY4
MjdhNzY2YmEzYmIxYjNhOGQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKQEAgLTYxLDYgKzYxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DRE1J
bnN0YW5jZVNlc3Npb24uaD4KICNlbmRpZgogCisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisjaW5j
bHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1hY2hTZW5kUmlnaHQ7CkBAIC0xMDI1LDQgKzEw
MjksMTkgQEAgdGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q0RNSW5zdGFu
Y2U6OkhEQ1BTdGF0dXM+IHsKIAogI2VuZGlmCiAKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKK3Rl
bXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU6OkFtYmllbnRTb3VuZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZTo6U29sb0FtYmllbnRTb3VuZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6TWVkaWFQbGF5YmFjaywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6UmVjb3JkQXVkaW8sCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU6OlBsYXlBbmRSZWNvcmQsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU6OkF1ZGlvUHJvY2Vzc2luZworICAgID47Cit9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKaW5kZXggNmQwZThjNjhhMDIzODg3M2I2ODY0MjM4M2U1YjdiYzVhYTA2
MzdkYy4uZDAwNjIzYTYyOTY3ODFjYWQ3ZGNhNmViZTA1ZDE5NjNhZDY2OTY0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CkBAIC0yMiwxMSArMjIsMTQgQEAKIC8vIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAorR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBH
UFVQcm9jZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAKIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCitHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5LmNwcAorR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eS5j
cHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5jcHAKIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkuY3BwCkBAIC01NDYsNiArNTQ5
LDcgQEAgV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAK
IFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAorV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
Q0RNLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeS5jcHAKIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CmluZGV4IDBhNzc2OTM5ODc5ZWI2OTVmZmJmZWFmYmVkOGJjMmY5YzQ0Y2VmYTQuLjY0NGJjYmMz
NWI0NThmNDNlNTNiZmIxMGE5MWQzN2JjOTg2NTYxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
QEAgLTY1NCw2ICs2NTQsOCBAQCBMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKIExpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVy
LmNwcAorUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJl
bW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1M2VkZTU2NmQzZGU4ZTk5NzU0
Yjk2NjI1NDY0YjYxZWIxNzQ4YTM4Li41ZjQ4YTgxM2FlMjk5ZWY1ZWE0YWVkN2RjMGZhNGMzMzFl
ZDM2MDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE3NDMsNiArMTc0Myw4IEBACiAJCUNEQUMyMEY4MjNGQzcyNkMwMDIxREVFMyAv
KiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEY1MjNGQzM4M0IwMDIxREVF
MyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJ
Q0RBQzIwRjkyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQUMyMEVDMjNGQzM4MzgwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNEQUMyMEZBMjNGQzcyNkMw
MDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREFDMjBFRjIzRkMzODM5MDAyMURF
RTMgLyogUmVtb3RlQ0RNUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDREJCNDlG
MDI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREJCNDlFRTI0MEQ1N0QyMDAxN0My
OTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87IH07CisJCUNEQkI0OUZEMjQwRDlBNzIw
MDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREJCNDlGQzI0MEQ5QTcyMDAxN0My
OTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovOyB9OwogCQlDREMyODMx
RDIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMyODMxQjIwMUJENzlEMDBFNkU3
NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggKi87IH07CiAJCUNEQ0E4NUM5MTMyQUJBNEUw
MEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODVDNzEzMkFCQTRFMDBFOTYxREYg
LyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICovOyB9OwogCQlDRTExQUQ1MjFDQkM0
ODJGMDA2ODFFRTUgLyogQ29kZVNpZ25pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENFMTFBRDUxMUNCQzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmlu
Zy5oICovOyB9OwpAQCAtNTA5NCw2ICs1MDk2LDE3IEBACiAJCUNEQUMyMEY0MjNGQzM4M0EwMDIx
REVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZUNETVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RBQzIwRjUyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEQUMyMEY2MjNGQzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1J
bnN0YW5jZVByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RUUyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBsYXRm
b3JtU3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RUYyNDBENTdEMjAwMTdDMjkyIC8q
IEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGNDI0
MEQ4QUM2MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZUF1ZGlvU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlG
NTI0MEQ4QUM2MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNEQkI0OUY2MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDREJCNDlGNzI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGODI0MEQ4RDUzMDAx
N0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNEQkI0OUY5MjQwRDk2M0MwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZBMjQwRDk2M0QwMDE3QzI5MiAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RCQjQ5RkIyNDBEOTc0QTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbklk
ZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIg
LyogUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEQzI4MzFCMjAxQkQ3OUQwMEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lmg7IHBhdGggPSBpb3MvZnVsbHNj
cmVlbi9XS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RDMjgzMUMyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmlldy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLRnVsbHNjcmVlblN0YWNrVmlldy5tbTsgcGF0aCA9IGlv
cy9mdWxsc2NyZWVuL1dLRnVsbHNjcmVlblN0YWNrVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RDMzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFtZXdv
cmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFw
cGVyLmZyYW1ld29yazsgbmFtZSA9IENGTmV0d29yay5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9DRk5ldHdvcmsuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxh
YnNvbHV0ZT4iOyB9OwpAQCAtNTEwMSw2ICs1MTE0LDE3IEBACiAJCUNEQ0E4NUM2MTMyQUJBNEUw
MEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1QzcxMzJBQkE0RTAwRTk2MURG
IC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRENBODVENDEzMkFDMkIzMDBFOTYxREYgLyogSU9LaXQuZnJhbWV3
b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3Jh
cHBlci5mcmFtZXdvcms7IG5hbWUgPSBJT0tpdC5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xp
YnJhcnkvRnJhbWV3b3Jrcy9JT0tpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRl
PiI7IH07CisJCUNERDUzNTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24u
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3MDI0MERENEVGMDBGN0I4QzQgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0RENTM1NzEyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RE
NTM1NzIyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3MzI0MERERTA2MDBGN0I4QzQgLyogUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc0MjQwRERFMDcwMEY3QjhD
NCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNERDUzNTc1MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25N
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3NjI0MERERTA3MDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNERDUzNTc3MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
REQ1MzU3ODI0MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzkyNDBEREUw
ODAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UxMUFENEYxQ0JDNDdG
ODAwNjgxRUU1IC8qIENvZGVTaWduaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQ29kZVNpZ25pbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFMTFBRDUxMUNCQzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb2RlU2lnbmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRTFBMEJDQzFBNDhFNkM2MDA1NEVGNzQgLyogQXNzZXJ0aW9uU2VydmljZXNTUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXNzZXJ0aW9uU2VydmljZXNTUEku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzNzgsNiArNTQwMiwxMSBAQAogCQkJ
CTlCNUJFQzI5MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHku
Y3BwICovLAogCQkJCTlCNUJFQzI4MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuaCAqLywKIAkJCQk5QjVCRUMyRTI0MDEwMThDMDA3MEM2RUYgLyogUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCUNEQkI0OUY1MjQwRDhB
QzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uY3BwICovLAorCQkJCUNEQkI0OUY0MjQw
RDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uaCAqLywKKwkJCQlDREQ1MzU2RjI0
MEREMzQzMDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluICovLAorCQkJ
CUNEQkI0OUZDMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0
aW9uLmggKi8sCisJCQkJQ0RCQjQ5RkIyNDBEOTc0QTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbklkZW50aWZpZXIuaCAqLywKIAkJCQlDREFDMjBCRjIzRkMyRjc1MDAyMURFRTMgLyogUmVt
b3RlQ0RNLmNwcCAqLywKIAkJCQlDREFDMjBCQTIzRkMyRjc0MDAyMURFRTMgLyogUmVtb3RlQ0RN
LmggKi8sCiAJCQkJQ0RBQzIwQjgyM0ZDMkY3MzAwMjFERUUzIC8qIFJlbW90ZUNETUNvbmZpZ3Vy
YXRpb24uaCAqLywKQEAgLTU0MjAsNiArNTQ0OSwxMiBAQAogCQkJCTlCMTIyOUNDMjNGRjI1RjIw
MDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOUIx
MjI5Q0IyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmgg
Ki8sCiAJCQkJOUIxMjI5Q0YyM0ZGMjgxNDAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJCUNEQkI0OUY3MjQwRDhDOTUwMDE3QzI5MiAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAgKi8sCisJCQkJQ0RCQjQ5RjYyNDBEOEM5NTAw
MTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmggKi8sCisJCQkJQ0RCQjQ5RjgyNDBE
OEQ1MzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluICovLAor
CQkJCUNEQkI0OUZBMjQwRDk2M0QwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXIuY3BwICovLAorCQkJCUNEQkI0OUY5MjQwRDk2M0MwMDE3QzI5MiAvKiBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuaCAqLywKKwkJCQlDREQ1MzU3MDI0MERENEVGMDBGN0I4QzQg
LyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTA3
MUJDNTdFMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwICovLAog
CQkJCTA3MUJDNTdGMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCAq
LywKIAkJCQlDREFDMjA3OTIzRkIxRTIxMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5
LmNwcCAqLywKQEAgLTY3MDYsNiArNjc0MSw4IEBACiAJCQkJMkQ5RkIyMEMyMzc1MjA5RDAwNDlG
OTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovLAogCQkJCTJEOUZCMjAwMjM3
NTIwOUQwMDQ5RjkzNiAvKiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggKi8sCiAJCQkJMkQ5
RkIyMDkyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RUYyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAgKi8sCisJCQkJQ0RCQjQ5RUUyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBsYXRm
b3JtU3RyYXRlZ2llcy5oICovLAogCQkJCTJEOUZCMjAxMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQ
cm9jZXNzLmNwcCAqLywKIAkJCQkyRDlGQjIxNTIzNzUyMDlEMDA0OUY5MzYgLyogR1BVUHJvY2Vz
cy5oICovLAogCQkJCTJEOUZCMjAyMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9jZXNzLm1lc3Nh
Z2VzLmluICovLApAQCAtOTgzMSw2ICs5ODY4LDE1IEBACiAJCQkJMUEwNDNCNUMxMjRENUU5RDAw
RkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMUE4RUZBNkUx
MjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJ
CQkxQThFRkE2RjEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlcy5oICovLAor
CQkJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTc1MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25NZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc0MjQwRERFMDcwMEY3QjhDNCAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQlDREQ1MzU3MzI0
MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKKwkJCQlDREQ1MzU3ODI0MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQlDREQ1MzU3OTI0MERERTA4
MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggKi8sCisJCQkJQ0RENTM1NzEyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDREQ1MzU3MjI0MERERTA2MDBGN0I4
QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc3
MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzUmVwbGll
cy5oICovLAogCQkJCUNEQUMyMEYyMjNGQzM4M0EwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQUMyMEYzMjNGQzM4M0EwMDIxREVF
MyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNEQUMyMEVFMjNG
QzM4MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlc1JlcGxpZXMuaCAq
LywKQEAgLTEwNTM0LDYgKzEwNTgwLDcgQEAKIAkJCQlCQzA2RjQ0QTEyREJEMUY1MDAyRDc4REUg
LyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMwNkY0M0ExMkRCQ0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBOTQ0QTQxODg0RTRGMDAwRUQ4
NkRCIC8qIEdlc3R1cmVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RCQjQ5RjAyNDBENTdE
MjAwMTdDMjkyIC8qIEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkRBMDQ5QjgxODBDQ0QwQTAwQUFGQTlFIC8qIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzBDRTcyQUQxMjQ3RTc4RDAwQkMwRUM0IC8qIEhhbmRsZU1lc3NhZ2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzc1QTFCMUIzMzY4MjcwMDU2NzQ1QiAvKiBIYW5nRGV0
ZWN0aW9uRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTA3NTIsNiArMTA3OTksNyBAQAog
CQkJCTlCMTIyOUQyMjNGRjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRl
bnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUIxMjI5Q0QyM0ZGMjVGMjAwOENBNzUxIC8q
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjVC
RUMyQTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggaW4g
SGVhZGVycyAqLywKKwkJCQlDREJCNDlGRDI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzcyM0ZDMkY3
NTAwMjFERUUzIC8qIFJlbW90ZUNETS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzUyM0ZD
MkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUNEQUMyMENEMjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5LmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmU1Y2VjOGVhMWI2ODdkNWJk
ZDcxN2RjZGMzMzFjNDYxYWRkNTUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCkBAIC0wLDAgKzEsOTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVk
aW9TZXNzaW9uLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQorCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiR1BVUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4gUmVtb3RlQXVkaW9TZXNzaW9uOjpj
cmVhdGUoV2ViUHJvY2VzcyYgcHJvY2VzcykKK3sKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CisgICAgcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6RW5zdXJlQXVkaW9TZXNzaW9uKCksIE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpFbnN1cmVBdWRpb1Nlc3Npb246OlJlcGx5KGNvbmZpZ3VyYXRpb24pLCB7
IH0pOworICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4ocHJvY2Vz
cywgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvbjo6UmVt
b3RlQXVkaW9TZXNzaW9uKFdlYlByb2Nlc3MmIHByb2Nlc3MsIFJlbW90ZUF1ZGlvU2Vzc2lvbkNv
bmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCisg
ICAgLCBtX2NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKK3sKK30KKworUmVt
b3RlQXVkaW9TZXNzaW9uOjp+UmVtb3RlQXVkaW9TZXNzaW9uKCkgPSBkZWZhdWx0OworCitJUEM6
OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29ubmVjdGlvbigpCit7CisgICAgcmV0
dXJuIG1fcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsK
K30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSB0
eXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6U2V0Q2F0ZWdvcnkodHlwZSwgcG9s
aWN5KSwgeyB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1
ZmZlclNpemUoc2l6ZV90IHNpemUpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemUpLCB7
IH0pOworfQorCitib29sIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmVJbnRlcm5h
bChib29sIGFjdGl2ZSkKK3sKKyAgICBib29sIHN1Y2NlZWRlZDsKKyAgICBjb25uZWN0aW9uKCku
c2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpUcnlUb1NldEFjdGl2
ZShhY3RpdmUpLCBNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRyeVRvU2V0QWN0
aXZlOjpSZXBseShzdWNjZWVkZWQpLCB7IH0pOworICAgIHJldHVybiBzdWNjZWVkZWQ7Cit9CisK
K3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZChSZW1vdGVBdWRp
b1Nlc3Npb25Db25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBib29sIG11dGVk
U3RhdGVDaGFuZ2VkID0gY29uZmlndXJhdGlvbi5pc011dGVkICE9IG1fY29uZmlndXJhdGlvbi5p
c011dGVkOworCisgICAgbV9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsKKworICAgIGlm
IChtdXRlZFN0YXRlQ2hhbmdlZCkKKyAgICAgICAgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwor
fQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24oUGxhdGZvcm1N
ZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkKK3sKKyAgICBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5iZWdpbkludGVycnVwdGlvbih0eXBlKTsK
K30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbihQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit7CisgICAgUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZW5kSW50ZXJydXB0aW9uKGZsYWdz
KTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4ZjhkYzgyM2Uz
ZjAxMDdjMTkzYmU5NDhiZjdmYjk2OGJjZTc5ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCkBAIC0wLDAg
KzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVk
aWFTZXNzaW9uLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOworY2xhc3Mg
V2ViUHJvY2VzczsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uIGZpbmFsCisgICAgOiBwdWJs
aWMgV2ViQ29yZTo6QXVkaW9TZXNzaW9uCisgICAgLCBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJl
ZjxSZW1vdGVBdWRpb1Nlc3Npb24+IGNyZWF0ZShXZWJQcm9jZXNzJik7CisgICAgdmlydHVhbCB+
UmVtb3RlQXVkaW9TZXNzaW9uKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxS
ZW1vdGVBdWRpb1Nlc3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hl
Y2s8UmVtb3RlQXVkaW9TZXNzaW9uPihXZWJQcm9jZXNzJiwgUmVtb3RlQXVkaW9TZXNzaW9uQ29u
ZmlndXJhdGlvbiYmKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb24oV2ViUHJvY2VzcyYsIFJlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJik7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCk7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAg
ICAvLyBNZXNzYWdlcworICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIGJlZ2luSW50ZXJydXB0aW9uKFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlKTsKKyAgICB2b2lkIGVu
ZEludGVycnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0
aW9uRmxhZ3MpOworCisgICAgLy8gQXVkaW9TZXNzaW9uCisgICAgdm9pZCBzZXRDYXRlZ29yeShD
YXRlZ29yeVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSkgZmluYWw7CisgICAgdm9p
ZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCkgZmluYWw7CisgICAgYm9vbCB0cnlUb1Nl
dEFjdGl2ZUludGVybmFsKGJvb2wpIGZpbmFsOworCisgICAgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmNhdGVnb3J5OyB9CisgICAg
V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5yb3V0ZVNoYXJpbmdQb2xpY3k7IH0KKyAgICBT
dHJpbmcgcm91dGluZ0NvbnRleHRVSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3Vy
YXRpb24ucm91dGluZ0NvbnRleHRVSUQ7IH0KKyAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnNhbXBsZVJhdGU7IH0KKyAgICBzaXplX3Qg
YnVmZmVyU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5idWZmZXJT
aXplOyB9CisgICAgc2l6ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2NvbmZpZ3VyYXRpb24ubnVtYmVyT2ZPdXRwdXRDaGFubmVsczsgfQorICAgIHNp
emVfdCBwcmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1
cmF0aW9uLnByZWZlcnJlZEJ1ZmZlclNpemU7IH0KKyAgICBib29sIGlzTXV0ZWQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uaXNNdXRlZDsgfQorICAgIGJvb2wgaXNBY3Rp
dmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uaXNBY3RpdmU7IH0KKwor
ICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1
cmF0aW9uIG1fY29uZmlndXJhdGlvbjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4OTYyOGY2NTdlZjdjZGJjZGJhNzc5ZDQx
ZGI5OWJjYTVkNDRiMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NF
U1NJT04pCisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvbiBOb3RSZWZDb3VudGVkIHsK
KyAgICBDb25maWd1cmF0aW9uQ2hhbmdlZChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgQmVnaW5JbnRlcnJ1cHRpb24oZW51
bTp1aW50OF90IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBl
IHR5cGUpCisgICAgRW5kSW50ZXJydXB0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Db25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTZjNDM2
MmVkOTVhYTZjNTAxY2QwYTZhMjAzZDJiNWVhNzFmMGI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1
cmF0aW9uLmgKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRl
IDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0
IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24geworCisgICAgV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnk7CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5n
UG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeTsKKyAgICBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQ7
CisgICAgZmxvYXQgc2FtcGxlUmF0ZTsKKyAgICB1aW50NjRfdCBidWZmZXJTaXplOworICAgIHVp
bnQ2NF90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAgdWludDY0X3QgcHJlZmVycmVkQnVm
ZmVyU2l6ZTsKKyAgICBib29sIGlzTXV0ZWQ7CisgICAgYm9vbCBpc0FjdGl2ZTsKKworICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgY2F0ZWdvcnk7CisgICAgICAgIGVuY29k
ZXIgPDwgcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBlbmNvZGVyIDw8IHJvdXRpbmdDb250
ZXh0VUlEOworICAgICAgICBlbmNvZGVyIDw8IHNhbXBsZVJhdGU7CisgICAgICAgIGVuY29kZXIg
PDwgYnVmZmVyU2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBudW1iZXJPZk91dHB1dENoYW5uZWxz
OworICAgICAgICBlbmNvZGVyIDw8IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgICAgIGVuY29k
ZXIgPDwgaXNNdXRlZDsKKyAgICAgICAgZW5jb2RlciA8PCBpc0FjdGl2ZTsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9uYWw8UmVtb3RlQXVk
aW9TZXNzaW9uQ29uZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
ICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gY2F0
ZWdvcnk7CisgICAgICAgIGRlY29kZXIgPj4gY2F0ZWdvcnk7CisgICAgICAgIGlmICghY2F0ZWdv
cnkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFs
PFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gcm91dGVTaGFyaW5nUG9saWN5OworICAgICAg
ICBkZWNvZGVyID4+IHJvdXRlU2hhcmluZ1BvbGljeTsKKyAgICAgICAgaWYgKCFyb3V0ZVNoYXJp
bmdQb2xpY3kpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9w
dGlvbmFsPFN0cmluZz4gcm91dGluZ0NvbnRleHRVSUQ7CisgICAgICAgIGRlY29kZXIgPj4gcm91
dGluZ0NvbnRleHRVSUQ7CisgICAgICAgIGlmICghcm91dGluZ0NvbnRleHRVSUQpCisgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGZsb2F0PiBzYW1w
bGVSYXRlOworICAgICAgICBkZWNvZGVyID4+IHNhbXBsZVJhdGU7CisgICAgICAgIGlmICghc2Ft
cGxlUmF0ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0
aW9uYWw8dWludDY0X3Q+IGJ1ZmZlclNpemU7CisgICAgICAgIGRlY29kZXIgPj4gYnVmZmVyU2l6
ZTsKKyAgICAgICAgaWYgKCFidWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgICAgICBPcHRpb25hbDx1aW50NjRfdD4gbnVtYmVyT2ZPdXRwdXRDaGFubmVs
czsKKyAgICAgICAgZGVjb2RlciA+PiBudW1iZXJPZk91dHB1dENoYW5uZWxzOworICAgICAgICBp
ZiAoIW51bWJlck9mT3V0cHV0Q2hhbm5lbHMpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBwcmVmZXJyZWRCdWZmZXJTaXplOwor
ICAgICAgICBkZWNvZGVyID4+IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgICAgIGlmICghcHJl
ZmVycmVkQnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNNdXRlZDsKKyAgICAgICAgZGVjb2RlciA+PiBpc011dGVk
OworICAgICAgICBpZiAoIWlzTXV0ZWQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGlzQWN0aXZlOworICAgICAgICBkZWNvZGVyID4+
IGlzQWN0aXZlOworICAgICAgICBpZiAoIWlzQWN0aXZlKQorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4ge3sKKyAgICAgICAgICAgIFdURk1vdmUoKmNh
dGVnb3J5KSwKKyAgICAgICAgICAgIFdURk1vdmUoKnJvdXRlU2hhcmluZ1BvbGljeSksCisgICAg
ICAgICAgICBXVEZNb3ZlKCpyb3V0aW5nQ29udGV4dFVJRCksCisgICAgICAgICAgICAqc2FtcGxl
UmF0ZSwKKyAgICAgICAgICAgICpidWZmZXJTaXplLAorICAgICAgICAgICAgKm51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsCisgICAgICAgICAgICAqcHJlZmVycmVkQnVmZmVyU2l6ZSwKKyAgICAgICAg
ICAgICppc011dGVkLAorICAgICAgICAgICAgKmlzQWN0aXZlLAorICAgICAgICB9fTsKKyAgICB9
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25JZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzE0ODBjNjk0ZTJiM2Q5N2I1OTZlMmEwNzMw
M2Q2N2ZiMGY5OWJkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlm
aWVyVHlwZSB7IH07Cit1c2luZyBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyID0gT2JqZWN0
SWRlbnRpZmllcjxSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCmluZGV4IDVkN2E4YjhkMTEyNGIy
YTUyOGFkNzNiZGM5NmQ5YTk3ODBkYzIwNGMuLjAyZTZiMjk5Yzk3YzgyZGE3YWU4ZWRkNWZkYTEy
N2RkNjI1NGEzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvV2ViTWVkaWFTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJS
ZW1vdGVDRE1GYWN0b3J5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgpAQCAtMzYsMjIgKzM3LDI0IEBACiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogV2ViTWVkaWFTdHJhdGVn
eTo6fldlYk1lZGlhU3RyYXRlZ3koKSA9IGRlZmF1bHQ7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQotc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrJiBj
YWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAorc3RkOjp1bmlxdWVfcHRyPEF1
ZGlvRGVzdGluYXRpb24+IFdlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGluYXRpb24o
QXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAog
ICAgIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRw
dXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAgICAgaWYgKG1fdXNlR1BVUHJvY2VzcykKICAgICAgICAgcmV0dXJuIFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBudW1iZXJPZklu
cHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpOwogI2VuZGlm
Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb246OmNyZWF0ZShjYWxsYmFjaywg
aW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzLCBzYW1wbGVSYXRlKTsKKyAgICByZXR1cm4gTWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9E
ZXN0aW5hdGlvbihjYWxsYmFjaywgaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxz
LCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKTsKIH0KICNlbmRpZgogCiAjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLXZvaWQgV2ViTWVkaWFTdHJhdGVneTo6cmVnaXN0ZXJD
RE1GYWN0b3JpZXMoVmVjdG9yPFdlYkNvcmU6OkNETUZhY3RvcnkqPiYgZmFjdG9yaWVzKQordm9p
ZCBXZWJNZWRpYVN0cmF0ZWd5OjpyZWdpc3RlckNETUZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9y
eSo+JiBmYWN0b3JpZXMpCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChtX3Vz
ZUdQVVByb2Nlc3MpIHsKQEAgLTU5LDcgKzYyLDE4IEBAIHZvaWQgV2ViTWVkaWFTdHJhdGVneTo6
cmVnaXN0ZXJDRE1GYWN0b3JpZXMoVmVjdG9yPFdlYkNvcmU6OkNETUZhY3RvcnkqPiYgZmFjdG9y
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKLSAgICBXZWJDb3JlOjpDRE1GYWN0b3J5
OjpwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKGZhY3Rvcmllcyk7CisgICAgTWVkaWFTdHJhdGVn
eTo6cmVnaXN0ZXJDRE1GYWN0b3JpZXMoZmFjdG9yaWVzKTsKK30KKyNlbmRpZgorCisjaWYgVVNF
KEFVRElPX1NFU1NJT04pCitVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBXZWJNZWRpYVN0cmF0ZWd5
OjpjcmVhdGVBdWRpb1Nlc3Npb24oKQoreworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBp
ZiAobV91c2VHUFVQcm9jZXNzKQorICAgICAgICByZXR1cm4gUmVtb3RlQXVkaW9TZXNzaW9uOjpj
cmVhdGUoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkpOworI2VuZGlmCisgICAgcmV0dXJuIE1lZGlh
U3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbigpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFTdHJhdGVneS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKaW5k
ZXggNGZhYjBlOTQ0ZmMxNGU2ODQzNzllMzAwODE2M2JlMTYyZGQ4OWI0ZC4uNGM1Y2Q3YzM1MDhk
NmRiZjliNGZmMGJhYjBkYjUyZjc4NGU2MzMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmgKQEAgLTQ2LDYgKzQ2LDEw
IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckNETUZhY3RvcmllcyhWZWN0b3I8V2ViQ29y
ZTo6Q0RNRmFjdG9yeSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNT
SU9OKQorICAgIFVuaXF1ZVJlZjxXZWJDb3JlOjpBdWRpb1Nlc3Npb24+IGNyZWF0ZUF1ZGlvU2Vz
c2lvbigpIG92ZXJyaWRlOworI2VuZGlmCisKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAg
Ym9vbCBtX3VzZUdQVVByb2Nlc3MgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMubW0KaW5kZXggYjkwOWVjYzQzOWJjZDNjNmY2ZGE4MDQxYzZlZjI5M2ZmMzQ2Njk2
Zi4uNmI0NzNjZTkzYWI4ZWVjOTFkOTNiNzA4NzA0M2ViYTc4MzVmMTZkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtNjUsMjYgKzY1LDkgQEAgUGFzdGVib2FyZFN0cmF0ZWd5
KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgpCiAgICAg
cmV0dXJuIHRoaXM7CiB9CiAKLWNsYXNzIFdlYk1lZGlhU3RyYXRlZ3kgZmluYWwgOiBwdWJsaWMg
TWVkaWFTdHJhdGVneSB7Ci1wcml2YXRlOgotI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgc3Rk
Ojp1bmlxdWVfcHRyPEF1ZGlvRGVzdGluYXRpb24+IGNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oQXVk
aW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgY29uc3QgU3RyaW5nJiBpbnB1dERldmljZUlkLAotICAg
ICAgICB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBy
ZXR1cm4gQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKGNhbGxiYWNrLCBpbnB1dERldmljZUlkLCBu
dW1iZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUp
OwotICAgIH0KLSNlbmRpZgotI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0gICAgdm9pZCBy
ZWdpc3RlckNETUZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMpIG92ZXJy
aWRlCi0gICAgewotICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q0RNRmFjdG9yeTo6cGxhdGZvcm1S
ZWdpc3RlckZhY3RvcmllcyhmYWN0b3JpZXMpOwotICAgIH0KLSNlbmRpZgotfTsKLQogTWVkaWFT
dHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkKIHsK
LSAgICByZXR1cm4gbmV3IFdlYk1lZGlhU3RyYXRlZ3k7CisgICAgcmV0dXJuIG5ldyBNZWRpYVN0
cmF0ZWd5OwogfQogCiBjbGFzcyBXZWJCbG9iUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJl
Z2lzdHJ5IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392570</attachid>
            <date>2020-03-05 08:12:41 -0800</date>
            <delta_ts>2020-03-05 08:25:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200305081239.patch</filename>
            <type>text/plain</type>
            <size>90849</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkODA0MjkxNDkyNWFlNWJmYTc5ZWZj
ZmUxYTMwZDc5YjU1Yjg3NjEuLjcxNWExOGJmMDQzMDAxYjE3ZjUyODUyMzQ4OGUyNmYwOGIxNWU1
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBV
bmlxdWVSZWYgdG8gdGhlIGxpc3Qgb2YgZm9yd2FyZC1kZWNsYXJlZCB0ZW1wbGF0ZSB0eXBlcy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisKIDIwMjAtMDMtMDMgIEppdGVuIE1laHRhICA8
am1laHRhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBIVFRQIEFsdGVybmF0aXZlIFNlcnZp
Y2VzIFN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTFkOTE0MmI0MWVkYzIwNDViMDFkNzE4YzYzZjE0
MTBhNmM0MjNhLi4xZGI3MGE2NmUxYmRhOThiYTJkNTU3ZGFmNGYxNDg3M2UyODY1ZGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
biBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVN0cmF0ZWd5IHdoaWNoIHByb3ZpZGVzIGRlZmF1bHQg
aW1wbGVtZW50YXRpb25zIG9mIHRoZQorICAgICAgICBwbGF0Zm9ybSBjcmVhdGlvbiBtZXRob2Rz
LCBzbyB0aGV5IGRvbid0IG5lZWQgdG8gYmUgcmUtaW1wbGVtZW50ZWQgYnkgZWFjaCBjbGllbnQg
dW5sZXNzCisgICAgICAgIHRoYXQgY2xpZW50IG5lZWRzIHRvIG92ZXJyaWRlIHRoYXQgYmVoYXZp
b3IuCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUgZW51bWVyYXRpb25zIGlu
c2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1ZGlvU2Vzc2lvbiBtZXRo
b2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGNhc2Ugd2hlcmUg
dGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OmNyZWF0ZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0
ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
YXRlZ3k6OnJlZ2lzdGVyQ0RNRmFjdG9yaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb24uaDoKKwogMjAyMC0wMi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUF0gSW1wbGVtZW50IE1vZGVybiBFTUUgQVBJIGluIHRoZSBHUFUgUHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA0NTBlN2UzNTJmM2VhYjhmMzU2MGUxNjViNzNhYmU5M2MwODQ2OTA4
Li5mYjY1MjZkOWMzZTQ4MTU3NzY1ODc1ZGM4M2U2OTkyNzRlYjQ5MTI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDk0IEBACisyMDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdWJjbGFzcyBv
ZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBhdWRpbyBiZWhh
dmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAgICAgYXVkaW8g
YmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJvY2Vzcywgc2lu
Y2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFsbHkKKyAgICAg
ICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAgICAgICAgT3Zl
cnJpZGUgdGhlIGRlZmF1bHQgc2hhcmVkIEF1ZGlvU2Vzc2lvbiBhdCBXZWJQcm9jZXNzIGluaXRp
YWxpemF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjphdWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmVuc3VyZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxlZ2FjeUNkbUZhY3RvcnlQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01l
c3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSk6CisgICAg
ICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTG9hZGVyU3RyYXRlZ3kp
OgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9h
cmRTdHJhdGVneSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6Y3Jl
YXRlTWVkaWFTdHJhdGVneSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2ll
czo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVBsYXRmb3Jt
U3RyYXRlZ2llcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmluaXRpYWxpemVHUFVQcm9jZXNzKToKKyAgICAgICAg
KFdlYktpdDo6R1BVUHJvY2Vzczo6YXVkaW9TZXNzaW9uTWFuYWdlciBjb25zdCk6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHk6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbmZpZ3VyYXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0Q2F0ZWdvcnkpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0UHJlZmVycmVkQnVmZmVyU2l6
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1NldEFj
dGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbklu
dGVycnVwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpl
bmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eTo6YXVkaW9TZXNzaW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eTo6Y2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6cm91dGVTaGFyaW5nUG9saWN5IGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnByZWZlcnJlZEJ1ZmZlclNpemUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6aXNBY3RpdmUgY29u
c3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmFkZFByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpyZW1vdmVQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6
Z2V0UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3MpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnRyeVRvU2V0
QWN0aXZlRm9yUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyOjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OlJlbW90ZUF1ZGlvU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29ubmVjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNpemUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OnRyeVRvU2V0QWN0aXZlSW50ZXJuYWwpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb25DaGFuZ2Vk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpiZWdpbkludGVycnVwdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5kSW50ZXJydXB0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaDog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6cmVnaXN0ZXJDRE1GYWN0b3JpZXMpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaDoKKwogMjAyMC0w
Mi0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0g
SW1wbGVtZW50IE1vZGVybiBFTUUgQVBJIGluIHRoZSBHUFUgUHJvY2VzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCmluZGV4
IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThmNzAzYThmMGQuLjZlOTdkNWQ5ZWU5MDk2
MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zv
cndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAgLTY4LDYgKzY4LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBEdW1iUHRyVHJhaXRzPFQ+PiBjbGFzcyBS
ZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IER1bWJQdHJUcmFpdHM8VD4+IGNs
YXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJpbmdCdWZmZXI7CiB0ZW1w
bGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBjbGFzcyBTdHJpbmdUeXBlQWRhcHRlcjsK
K3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1ZVJlZjsKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgRGVmYXVsdEhh
c2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEyNSw2ICsxMjYsNyBAQCB1c2luZyBXVEY6
OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3NpdGlvbjsKIHVzaW5nIFdURjo6VGV4dFN0
cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RGOjpVbmlxdWVSZWY7CiB1c2luZyBXVEY6
OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggYjVmYjU4MDY0OGY5Y2Y4ZWM0ZjE4NmZh
ZmE0OGUxM2ZkY2YyZjU3ZC4uNTA4MjgzM2NhMDk0MjE0N2RjZmFjNjYxNGVlMzc5MWQwMDllYTZj
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3Bw
CkBAIC0yOCwxNSArMjgsMzIgQEAKIAogI2lmIFVTRShBVURJT19TRVNTSU9OKQogCisjaW5jbHVk
ZSAiTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIFVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+
JiBzaGFyZWRBdWRpb1Nlc3Npb24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVbmlx
dWVSZWY8QXVkaW9TZXNzaW9uPj4gc2Vzc2lvbiA9IEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCk7Cisg
ICAgcmV0dXJuIHNlc3Npb24uZ2V0KCk7Cit9CisKK1VuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+IEF1
ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxBdWRpb1Nl
c3Npb24+KCk7Cit9CisKIEF1ZGlvU2Vzc2lvbiYgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9u
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPiBzZXNzaW9uOwot
ICAgIHJldHVybiBzZXNzaW9uOworICAgIHJldHVybiBzaGFyZWRBdWRpb1Nlc3Npb24oKTsKK30K
Kwordm9pZCBBdWRpb1Nlc3Npb246OnNldFNoYXJlZFNlc3Npb24oVW5pcXVlUmVmPEF1ZGlvU2Vz
c2lvbj4mJiBzZXNzaW9uKQoreworICAgIHNoYXJlZEF1ZGlvU2Vzc2lvbigpID0gV1RGTW92ZShz
ZXNzaW9uKTsKIH0KIAogYm9vbCBBdWRpb1Nlc3Npb246OnRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0
aXZlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAppbmRl
eCBlNzAwODIyZmYxZmVlYmQ3ODI5YWVjNzUwY2NlNDBhNjBiOTI1NjZhLi4wNGE0MDNhYjNlN2M4
YWMyMWI4YTcwZDViNjI3OTJkN2Q0MjE0NmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb1Nlc3Npb24uaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCwxMyArNDUs
MTggQEAgZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90IHsKICAgICBMb25n
Rm9ybVZpZGVvCiB9OwogCi1jbGFzcyBBdWRpb1Nlc3Npb24gZmluYWwgeworY2xhc3MgV0VCQ09S
RV9FWFBPUlQgQXVkaW9TZXNzaW9uIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1Nlc3Npb24pOworICAgIGZyaWVuZCBjbGFzcyBV
bmlxdWVSZWY8QXVkaW9TZXNzaW9uPjsKKyAgICBmcmllbmQgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lv
bj4gV1RGOjptYWtlVW5pcXVlUmVmV2l0aG91dEZhc3RNYWxsb2NDaGVjazxBdWRpb1Nlc3Npb24+
KCk7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvU2Vzc2lvbiYgc2hh
cmVkU2Vzc2lvbigpOworICAgIHN0YXRpYyBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBjcmVhdGUo
KTsKKyAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRTZXNzaW9uKFVuaXF1ZVJlZjxBdWRpb1Nlc3Np
b24+JiYpOworICAgIHN0YXRpYyBBdWRpb1Nlc3Npb24mIHNoYXJlZFNlc3Npb24oKTsKKyAgICB2
aXJ0dWFsIH5BdWRpb1Nlc3Npb24oKTsKIAotICAgIGVudW0gQ2F0ZWdvcnlUeXBlIHsKKyAgICBl
bnVtIENhdGVnb3J5VHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb25lLAogICAgICAgICBBbWJp
ZW50U291bmQsCiAgICAgICAgIFNvbG9BbWJpZW50U291bmQsCkBAIC01OSwyMyArNjUsMjMgQEAg
cHVibGljOgogICAgICAgICBQbGF5QW5kUmVjb3JkLAogICAgICAgICBBdWRpb1Byb2Nlc3Npbmcs
CiAgICAgfTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5VHlw
ZSwgUm91dGVTaGFyaW5nUG9saWN5KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBDYXRlZ29yeVR5cGUg
Y2F0ZWdvcnkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlU
eXBlLCBSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIHZpcnR1YWwgQ2F0ZWdvcnlUeXBlIGNhdGVn
b3J5KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldENhdGVnb3J5T3ZlcnJpZGUoQ2F0ZWdvcnlUeXBl
KTsKICAgICBDYXRlZ29yeVR5cGUgY2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0OwogCi0gICAgUm91
dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0OwotICAgIFN0cmluZyBy
b3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0OworICAgIHZpcnR1YWwgUm91dGVTaGFyaW5nUG9saWN5
IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHJvdXRpbmdD
b250ZXh0VUlEKCkgY29uc3Q7CiAKLSAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7Ci0gICAg
c2l6ZV90IGJ1ZmZlclNpemUoKSBjb25zdDsKLSAgICBzaXplX3QgbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscygpIGNvbnN0OworICAgIHZpcnR1YWwgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0OworICAg
IHZpcnR1YWwgc2l6ZV90IGJ1ZmZlclNpemUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHNpemVfdCBu
dW1iZXJPZk91dHB1dENoYW5uZWxzKCkgY29uc3Q7CiAKICAgICBib29sIHRyeVRvU2V0QWN0aXZl
KGJvb2wpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUo
KSBjb25zdDsKLSAgICB2b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KTsKKyAgICB2
aXJ0dWFsIHNpemVfdCBwcmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3Q7CisgICAgdmlydHVhbCB2
b2lkIHNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KTsKIAogICAgIGNsYXNzIE11dGVkU3Rh
dGVPYnNlcnZlciB7CiAgICAgcHVibGljOgpAQCAtODcsMTcgKzkzLDE2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGFkZE11dGVkU3RhdGVPYnNlcnZlcihNdXRlZFN0YXRlT2JzZXJ2ZXIqKTsKICAgICB2
b2lkIHJlbW92ZU11dGVkU3RhdGVPYnNlcnZlcihNdXRlZFN0YXRlT2JzZXJ2ZXIqKTsKIAotICAg
IGJvb2wgaXNNdXRlZCgpIGNvbnN0OwotICAgIHZvaWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgp
OworICAgIHZpcnR1YWwgYm9vbCBpc011dGVkKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGhh
bmRsZU11dGVkU3RhdGVDaGFuZ2UoKTsKIAotICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJl
dHVybiBtX2FjdGl2ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fYWN0aXZlOyB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgZnJpZW5kIGNsYXNz
IE5ldmVyRGVzdHJveWVkPEF1ZGlvU2Vzc2lvbj47CiAgICAgQXVkaW9TZXNzaW9uKCk7Ci0gICAg
fkF1ZGlvU2Vzc2lvbigpOwogCi0gICAgYm9vbCB0cnlUb1NldEFjdGl2ZUludGVybmFsKGJvb2wp
OworICAgIHZpcnR1YWwgYm9vbCB0cnlUb1NldEFjdGl2ZUludGVybmFsKGJvb2wpOwogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2Vzc2lvblByaXZhdGU+IG1fcHJpdmF0ZTsKICAgICBIYXNo
U2V0PE11dGVkU3RhdGVPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKaW5kZXggYThkMThi
ZTRlYWJhZTllYzgwZmY1ZGVmNGZiN2JjYTlkYTY1NzA3YS4uMTI4ZmFkYWUwZmQ5NjdlZmEwZmU5
Y2MxNDE1NzQ3ZDkzZmVjY2QzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFTZXNzaW9uKCk7CiAKLSAgICBlbnVtIGNsYXNz
IE1lZGlhVHlwZSB7CisgICAgZW51bSBjbGFzcyBNZWRpYVR5cGUgOiB1aW50OF90IHsKICAgICAg
ICAgTm9uZSA9IDAsCiAgICAgICAgIFZpZGVvLAogICAgICAgICBWaWRlb0F1ZGlvLApAQCAtNjks
NyArNjksNyBAQCBwdWJsaWM6CiAgICAgTWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0OwogICAg
IE1lZGlhVHlwZSBwcmVzZW50YXRpb25UeXBlKCkgY29uc3Q7CiAKLSAgICBlbnVtIFN0YXRlIHsK
KyAgICBlbnVtIFN0YXRlIDogdWludDhfdCB7CiAgICAgICAgIElkbGUsCiAgICAgICAgIEF1dG9w
bGF5aW5nLAogICAgICAgICBQbGF5aW5nLApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAg
U3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAgICAgdm9pZCBzZXRTdGF0
ZShTdGF0ZSk7CiAKLSAgICBlbnVtIEludGVycnVwdGlvblR5cGUgeworICAgIGVudW0gSW50ZXJy
dXB0aW9uVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0ludGVycnVwdGlvbiwKICAgICAgICAg
U3lzdGVtU2xlZXAsCiAgICAgICAgIEVudGVyaW5nQmFja2dyb3VuZCwKQEAgLTkxLDcgKzkxLDcg
QEAgcHVibGljOgogICAgIH07CiAgICAgSW50ZXJydXB0aW9uVHlwZSBpbnRlcnJ1cHRpb25UeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcnJ1cHRpb25UeXBlOyB9CiAKLSAgICBlbnVtIEVuZElu
dGVycnVwdGlvbkZsYWdzIHsKKyAgICBlbnVtIEVuZEludGVycnVwdGlvbkZsYWdzIDogdWludDhf
dCB7CiAgICAgICAgIE5vRmxhZ3MgPSAwLAogICAgICAgICBNYXlSZXN1bWVQbGF5aW5nID0gMSA8
PCAwLAogICAgIH07CkBAIC0xMjQsNyArMTI0LDcgQEAgcHVibGljOgogICAgICAgICBkb3VibGUg
YXNEb3VibGU7CiAgICAgfSBSZW1vdGVDb21tYW5kQXJndW1lbnQ7CiAKLSAgICBlbnVtIFJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZSB7CisgICAgZW51bSBSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUg
OiB1aW50OF90IHsKICAgICAgICAgTm9Db21tYW5kLAogICAgICAgICBQbGF5Q29tbWFuZCwKICAg
ICAgICAgUGF1c2VDb21tYW5kLApAQCAtMTQwLDcgKzE0MCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUs
IGNvbnN0IFJlbW90ZUNvbW1hbmRBcmd1bWVudCogYXJndW1lbnQgPSBudWxscHRyKTsKICAgICBi
b29sIHN1cHBvcnRzU2Vla2luZygpIGNvbnN0OwogCi0gICAgZW51bSBEaXNwbGF5VHlwZSB7Cisg
ICAgZW51bSBEaXNwbGF5VHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb3JtYWwsCiAgICAgICAg
IEZ1bGxzY3JlZW4sCiAgICAgICAgIE9wdGltaXplZCwKQEAgLTMxMSw0ICszMTEsNjQgQEAgc3Ry
dWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250
cm9sQ29tbWFuZFR5cGU+IHsKICAgICB9CiB9OwogCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Np
b246Ok1lZGlhVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFU
eXBlOjpOb25lLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6
OlZpZGVvLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6OlZp
ZGVvQXVkaW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6
QXVkaW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6V2Vi
QXVkaW8KKyAgICA+OworfTsKKwordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlLAorICAg
IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SWRsZSwKKyAgICBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU6OkF1dG9wbGF5aW5nLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGxheWluZywKKyAgICBXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU6OlBhdXNlZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6U3RhdGU6OkludGVycnVwdGVkCisgICAgPjsKK307CisKK3RlbXBsYXRlIDw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRpb25UeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUsCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6Ok5vSW50ZXJydXB0aW9uLAor
ICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpTeXN0
ZW1TbGVlcCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9u
VHlwZTo6RW50ZXJpbmdCYWNrZ3JvdW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpTeXN0ZW1JbnRlcnJ1cHRpb24sCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN1c3BlbmRlZFVuZGVyTG9j
aywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6
SW52aXNpYmxlQXV0b3BsYXksCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Oklu
dGVycnVwdGlvblR5cGU6OlByb2Nlc3NJbmFjdGl2ZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6UGxheWJhY2tTdXNwZW5kZWQKKyAgICA+Owor
fTsKKwordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVw
dGlvbkZsYWdzLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1
cHRpb25GbGFnczo6Tm9GbGFncywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
RW5kSW50ZXJydXB0aW9uRmxhZ3M6Ok1heVJlc3VtZVBsYXlpbmcKKyAgICA+OworfTsKKwordGVt
cGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXMgPAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29t
bWFuZFR5cGUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZTo6Tm9Db21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlBsYXlDb21tYW5kLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlBhdXNlQ29t
bWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENv
bW1hbmRUeXBlOjpTdG9wQ29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpUb2dnbGVQbGF5UGF1c2VDb21tYW5kLAorICAg
IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6
OkJlZ2luU2Vla2luZ0JhY2t3YXJkQ29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpFbmRTZWVraW5nQmFja3dhcmRDb21t
YW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29t
bWFuZFR5cGU6OkJlZ2luU2Vla2luZ0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OkVuZFNlZWtpbmdGb3J3
YXJkQ29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29u
dHJvbENvbW1hbmRUeXBlOjpTZWVrVG9QbGF5YmFja1Bvc2l0aW9uQ29tbWFuZAorICAgID47Cit9
OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCmluZGV4IGQ2YzAwN2Y0MGI1ZmI3NjM3MjJk
NTM4YWRlZDAyZDFiODFhMTg4NTQuLjgzZDI0MDBhMWQwYWE2Mzg5YzNkZjg5MzY3MTBhMzU4OWE0
NDU4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRp
b1Nlc3Npb25JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1
ZGlvU2Vzc2lvbklPUy5tbQpAQCAtMjQzLDYgKzI0MywxNSBAQCB2b2lkIEF1ZGlvU2Vzc2lvbjo6
c2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QgYnVmZmVyU2l6ZSkKICAgICBBU1NFUlQoIWVy
cm9yKTsKIH0KIAorYm9vbCBBdWRpb1Nlc3Npb246OmlzTXV0ZWQoKSBjb25zdAoreworICAgIHJl
dHVybiBmYWxzZTsKK30KKwordm9pZCBBdWRpb1Nlc3Npb246OmhhbmRsZU11dGVkU3RhdGVDaGFu
Z2UoKQoreworfQorCiB9CiAKICNlbmRpZiAvLyBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAppbmRleCA5Zjk0NmY4NDk3YWYyM2I0YWZhNTFiNzkxODQxODUxODg2MGFjNWI5Li5k
NzQ5YjJkYjA5Yjk2NzQ2ZjRhMGYxZTM0YzIxNzQyZWRmNTNlNDZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xOCw2ICsxOCw4IEBAICQo
UFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQu
R1BVUHJvY2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNU
X0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9y
eVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUNETUluc3RhbmNlUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KQEAgLTExNiw2
ICsxMTgsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVS
ZW1vdGUubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CmluZGV4IGE5NmMyY2ZkZGQ0NmIzNTkyMzhlOTYyMzQzYTk5MjIxMDRlZWE1
OWIuLjk5NTAzNTEyYmE1NThiMmI0MTAwOGY1YjE2NjUwNDYwYTk1NDE0NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTM3LDYgKzEz
NywxNSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNl
aXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNz
YWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVz
c2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNETUZhY3RvcnlQcm94eU1l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggNDVlZTNkYjdlZDdlMTMzNzJjOGE3NWFkNTU1YTE2NTg3ZjY3ZDA4YS4uMWMz
ZDFhMjBlZWEzYjczODAwMTAyZTFkMzE5ODM3OTAzYWE2Y2QwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtMTQ4LDYgKzE0OCw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAg
IFBsdWdpblByb3h5IFwKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciBcCiAgICAg
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IFwKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb24gXAor
ICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5IFwKICAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1hbmFnZXIgXAogICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyIFwKICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAppbmRleCA2Y2YxYzMwYjNlMzMwMTI3NzQ2NmQ5MmVlMjkzMzI0NjA3ZTU5Y2MxLi4yNDk4MWZm
ZjUyODgzYzcwMjE3ODU4NzliZTE4ZjFiNjk0ZjliYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC03MSw2
ICs3MSwxMSBAQAogI2luY2x1ZGUgIlJlbW90ZUNETVByb3h5TWVzc2FnZXMuaCIKICNlbmRpZgog
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyNpbmNsdWRl
ICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2Fn
ZXMuaCIKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwpAQCAtMTE5LDYgKzEyNCwxMCBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpCiAKIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKIHsKKyAgICBpZiAobV9hdWRpb1Nlc3Npb25Q
cm94eSkgeworICAgICAgICBncHVQcm9jZXNzKCkuYXVkaW9TZXNzaW9uTWFuYWdlcigpLnJlbW92
ZVByb3h5KHdlYlByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgICAgICBtX2F1ZGlvU2Vzc2lvblBy
b3h5ID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIExvZ2dlciYgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6bG9nZ2VyKCkKQEAgLTIxNyw2ICsyMjYsMTcgQEAgUmVtb3RlQ0RNRmFjdG9yeVByb3h5
JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjZG1GYWN0b3J5UHJveHkoKQogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmF1ZGlvU2Vzc2lv
blByb3h5KCkKK3sKKyAgICBpZiAoIW1fYXVkaW9TZXNzaW9uUHJveHkpIHsKKyAgICAgICAgbV9h
dWRpb1Nlc3Npb25Qcm94eSA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpjcmVhdGUoKnRoaXMp
Lm1vdmVUb1VuaXF1ZVB0cigpOworICAgICAgICBncHVQcm9jZXNzKCkuYXVkaW9TZXNzaW9uTWFu
YWdlcigpLmFkZFByb3h5KG1ha2VXZWFrUHRyKG1fYXVkaW9TZXNzaW9uUHJveHkuZ2V0KCkpKTsK
KyAgICB9CisgICAgcmV0dXJuICptX2F1ZGlvU2Vzc2lvblByb3h5OworfQorI2VuZGlmCisKIHZv
aWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlUmVuZGVyaW5nQmFja2VuZChSZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcikKIHsKICAg
ICBhdXRvIGFkZFJlc3VsdCA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5TWFwLmVuc3Vy
ZShyZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciwgWyZdKCkgewpAQCAtMjMxLDYgKzI1MSwxMyBA
QCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbGVhc2VSZW5kZXJpbmdCYWNrZW5k
KFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaQogICAgIEFTU0VSVF9VTlVTRUQoZm91bmQsIGZvdW5k
KTsKIH0KIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCit2
b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1cmVB
dWRpb1Nlc3Npb25Db21wbGV0aW9uJiYgY29tcGxldGlvbikKK3sKKyAgICBjb21wbGV0aW9uKGF1
ZGlvU2Vzc2lvblByb3h5KCkuY29uZmlndXJhdGlvbigpKTsKK30KKyNlbmRpZgorCiBib29sIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKQEAgLTMwOCw2ICszMzUsMTIgQEAgYm9v
bCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEMKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogI2VuZGlm
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgYXVkaW9TZXNzaW9u
UHJveHkoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCiAKICAgICByZXR1cm4gbWVzc2FnZVJlY2VpdmVy
TWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQpAQCAtMzU1LDYg
KzM4OCwxMiBAQCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAg
ICBhdWRpb1Nlc3Npb25Qcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5k
aWYKIAogICAgIHJldHVybiBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhM2Vj
YTVjOGZhZDY5MTgzODBmZDkzM2JmNjMwZGQ0Y2ZmNzMwZDk2Li4zMDc5MDZmYTIwNTA2ODM4YTU0
NTNjMTc5OTc3NWQ3ZjMyZmI1YmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCisjaW5jbHVkZSAiUmVt
b3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgpAQCAtNDgsMTIgKzQ5LDE1IEBA
IGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eTsKIGNsYXNzIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNYW5hZ2VyOworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7Citj
bGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVDRE1GYWN0
b3J5UHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXI7CiBjbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3Mg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKK3N0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uOwogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBw
dWJsaWMgUmVmQ291bnRlZDxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPgpAQCAtOTAsMTEgKzk0
LDE1IEBAIHB1YmxpYzoKICAgICBSZW1vdGVDRE1GYWN0b3J5UHJveHkmIGNkbUZhY3RvcnlQcm94
eSgpOwogI2VuZGlmCiAKKyAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVT
RShBVURJT19TRVNTSU9OKQorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVk
aW9TZXNzaW9uTWFuYWdlcigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXImIHJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7
Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5KCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAg
TGliV2ViUlRDQ29kZWNzUHJveHkmIGxpYldlYlJUQ0NvZGVjc1Byb3h5KCk7CiAjZW5kaWYKQEAg
LTEwNiw4ICsxMTQsMTcgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAjZW5kaWYK
ICNlbmRpZgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgYXVkaW9TZXNzaW9uUHJveHkoKTsKKyNlbmRp
ZgorCiAgICAgdm9pZCBjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQorICAgIHVzaW5nIEVuc3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24gPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mKT47Cisg
ICAgdm9pZCBlbnN1cmVBdWRpb1Nlc3Npb24oRW5zdXJlQXVkaW9TZXNzaW9uQ29tcGxldGlvbiYm
KTsKKyNlbmRpZgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGRp
ZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIGZpbmFsOwpAQCAtMTQ3LDYgKzE2NCw5IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlQ0RNRmFjdG9yeVByb3h5PiBtX2NkbUZhY3RvcnlQcm94eTsKICNlbmRpZgorI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBtX2F1ZGlvU2Vzc2lvblByb3h5OworI2VuZGlmCiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5k
ZXggOTMyYzAxMjJkZTA4MWVkZTliYjllZmI1NmY5YmM1MjU5YmE0ZDcwNC4uNGZkMGYyMjMwN2U4
Mzg4MzZkNDc0YmFiM2UwMjc1YTM1YzA3NTBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KQEAgLTI1LDYgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MgV2FudHNEaXNwYXRjaE1lc3NhZ2UgewogICAgIHZvaWQgQ3JlYXRlUmVuZGVyaW5nQmFja2Vu
ZChXZWJLaXQ6OlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyKQogICAgIHZvaWQgUmVsZWFzZVJlbmRlcmluZ0JhY2tlbmQoV2ViS2l0OjpSZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcikKKyAgICBFbnN1
cmVBdWRpb1Nlc3Npb24oKSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29u
ZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKSBTeW5jaHJvbm91cwogfQogCiAjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCmlu
ZGV4IDBlN2JkMDliZWE1ZDEyM2E0MDdlY2ZiOWQzOWY3MjQwZjViM2M3YjkuLjYwMzcwMDU5Y2Qx
NDk1NTM2ZWY0NWNmNDk2NDUyZGQ0MWUyNGU0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVUHJvY2Vzcy5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBdXhpbGlhcnlQcm9j
ZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIkdQVVBsYXRmb3JtU3RyYXRlZ2ll
cy5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRl
ICJHUFVQcm9jZXNzU2Vzc2lvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBA
IC01MSw2ICs1MiwxMCBAQAogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShB
VURJT19TRVNTSU9OKQorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5o
IgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKQEAgLTExMCw2ICsxMTUsOCBAQCB2b2lkIEdQVVByb2Nlc3M6OmluaXRpYWxpemVHUFVQcm9j
ZXNzKEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIFdURjo6
VGhyZWFkOjpzZXRDdXJyZW50VGhyZWFkSXNVc2VySW5pdGlhdGVkKCk7CiAgICAgQXRvbVN0cmlu
Zzo6aW5pdCgpOwogCisgICAgR1BVUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCk7CisK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6
c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKQEAgLTIx
Miw2ICsyMTksMTUgQEAgY29uc3QgU3RyaW5nJiBHUFVQcm9jZXNzOjptZWRpYUtleXNTdG9yYWdl
RGlyZWN0b3J5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY28KIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKK1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlciYgR1BVUHJvY2Vzczo6YXVkaW9TZXNzaW9uTWFuYWdlcigpIGNvbnN0
Cit7CisgICAgaWYgKCFtX2F1ZGlvU2Vzc2lvbk1hbmFnZXIpCisgICAgICAgIG1fYXVkaW9TZXNz
aW9uTWFuYWdlciA9IFdURjo6bWFrZVVuaXF1ZTxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXI+KCk7CisgICAgcmV0dXJuICptX2F1ZGlvU2Vzc2lvbk1hbmFnZXI7Cit9CisjZW5kaWYKKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaAppbmRleCA2ZmEwMjAxNGI5NDc4MWVhOTll
MDM1ZGIzYWQ3OWQ2NWEyNGYyODdiLi40M2FhZTFhMTJiNWI4ODViMjZjNTZkZGYxNTI5NjBmMDIy
N2M1MjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKQEAgLTQwLDYgKzQw
LDcgQEAgY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIHN0cnVjdCBHUFVQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IEdQVVByb2Nlc3NTZXNzaW9uUGFyYW1ldGVyczsK
IGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXI7CiAKIGNsYXNzIEdQVVByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vzcywg
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEdQVVByb2Nlc3M+LCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8R1BVUHJvY2Vzcz4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdQVVByb2Nlc3Mp
OwpAQCAtNjMsNiArNjQsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgbWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeShQQUw6OlNlc3Npb25JRCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkgY29uc3Q7CisjZW5kaWYK
KwogcHJpdmF0ZToKICAgICB2b2lkIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwpOwogCkBAIC0x
MDMsNiArMTA4LDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5n
Q29udGV4dD4gbV9jb250ZXh0Rm9yVmlzaWJpbGl0eVByb3BhZ2F0aW9uOwogICAgIGJvb2wgbV9j
YW5TaG93V2hpbGVMb2NrZWQgeyBmYWxzZSB9OwogI2VuZGlmCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI+IG1fYXVkaW9TZXNzaW9uTWFuYWdlcjsKKyNl
bmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41YWZjNDlkZTg5ZGUxYWNlNDZhYzE2N2Y4NTg0NjgwMzM2NTJkYzkwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5LmNwcApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIgorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIlJlbW90
ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5PiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb24pCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+KGdwdUNvbm5lY3Rpb24pOworfQorCitSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eTo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYgZ3B1Q29ubmVjdGlvbikKKyAgICA6IG1fZ3B1Q29ubmVjdGlvbihncHVDb25uZWN0
aW9uKQoreworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6flJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5KCkgPSBkZWZhdWx0OworCitXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6cHJvY2Vzc0lkZW50aWZpZXIoKQoreworICAgIHJldHVybiBtX2dw
dUNvbm5lY3Rpb24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KKworUmVtb3RlQXVkaW9TZXNz
aW9uQ29uZmlndXJhdGlvbiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29uZmlndXJhdGlvbigp
Cit7CisgICAgYXV0byYgc2Vzc2lvbiA9IGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXNzaW9uKCk7
CisgICAgcmV0dXJuIHsKKyAgICAgICAgc2Vzc2lvbi5jYXRlZ29yeSgpLAorICAgICAgICBzZXNz
aW9uLnJvdXRlU2hhcmluZ1BvbGljeSgpLAorICAgICAgICBzZXNzaW9uLnJvdXRpbmdDb250ZXh0
VUlEKCksCisgICAgICAgIHNlc3Npb24uc2FtcGxlUmF0ZSgpLAorICAgICAgICBzZXNzaW9uLmJ1
ZmZlclNpemUoKSwKKyAgICAgICAgc2Vzc2lvbi5udW1iZXJPZk91dHB1dENoYW5uZWxzKCksCisg
ICAgICAgIHNlc3Npb24ucHJlZmVycmVkQnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNzaW9uLmlz
TXV0ZWQoKSwKKyAgICAgICAgbV9hY3RpdmUKKyAgICB9OworfQorCit2b2lkIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5OjpzZXRDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSBjYXRlZ29yeSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKK3sKKyAg
ICBtX2NhdGVnb3J5ID0gY2F0ZWdvcnk7CisgICAgbV9yb3V0ZVNoYXJpbmdQb2xpY3kgPSBwb2xp
Y3k7CisgICAgYXVkaW9TZXNzaW9uTWFuYWdlcigpLnNldENhdGVnb3J5Rm9yUHJvY2VzcyhtX2dw
dUNvbm5lY3Rpb24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgY2F0ZWdvcnksIHBvbGljeSk7Cit9
CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUo
dWludDY0X3Qgc2l6ZSkKK3sKKyAgICBtX3ByZWZlcnJlZEJ1ZmZlclNpemUgPSBzaXplOworICAg
IGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2Vzcyht
X2dwdUNvbm5lY3Rpb24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgc2l6ZSk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlLCBTZXRB
Y3RpdmVDb21wbGV0aW9uJiYgY29tcGxldGlvbikKK3sKKyAgICBtX2FjdGl2ZSA9IGF1ZGlvU2Vz
c2lvbk1hbmFnZXIoKS50cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MobV9ncHVDb25uZWN0aW9uLndl
YlByb2Nlc3NJZGVudGlmaWVyKCksIGFjdGl2ZSk7CisgICAgY29tcGxldGlvbihtX2FjdGl2ZSk7
Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmJlZ2luSW50ZXJydXB0aW9uKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCit7Cisg
ICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6QmVnaW5J
bnRlcnJ1cHRpb24odHlwZSksIHsgfSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHk6OmVuZEludGVycnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50
ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uKGZsYWdzKSwgeyB9KTsKK30KKwor
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyJiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6
YXVkaW9TZXNzaW9uTWFuYWdlcigpCit7CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi5ncHVQ
cm9jZXNzKCkuYXVkaW9TZXNzaW9uTWFuYWdlcigpOworfQorCitJUEM6OkNvbm5lY3Rpb24mIFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gbV9ncHVD
b25uZWN0aW9uLmNvbm5lY3Rpb24oKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWNkMmM2YzM3YzE3OTY0ZTBiYzhkZmE3MjEzNjQ5OTIxZDg0OTNjMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eS5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNp
bmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Q
cm9jZXNzSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFj
ZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKKworY2xhc3MgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHkKKyAgICA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgICwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAg
ICB2aXJ0dWFsIH5SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSgpOworCisgICAgV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIoKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24oKTsKKworICAgIFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsg
fTsKKyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkg
Y29uc3QgeyByZXR1cm4gbV9yb3V0ZVNoYXJpbmdQb2xpY3k7IH0KKyAgICBzaXplX3QgcHJlZmVy
cmVkQnVmZmVyU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZmVycmVkQnVmZmVyU2l6ZTsgfQor
ICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZTsgfQorCisgICAgdm9p
ZCBiZWdpbkludGVycnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJy
dXB0aW9uVHlwZSk7CisgICAgdm9pZCBlbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzKTsKKworICAgIC8vIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVy
PiYpIGZpbmFsOworCitwcml2YXRlOgorICAgIGZyaWVuZCBVbmlxdWVSZWY8UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk+KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisKKyAg
ICAvLyBNZXNzYWdlcworICAgIHZvaWQgc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdm9pZCBz
ZXRQcmVmZXJyZWRCdWZmZXJTaXplKHVpbnQ2NF90KTsKKyAgICB1c2luZyBTZXRBY3RpdmVDb21w
bGV0aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT47CisgICAgdm9pZCB0cnlUb1Nl
dEFjdGl2ZShib29sLCBTZXRBY3RpdmVDb21wbGV0aW9uJiYpOworCisgICAgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCk7CisgICAgSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKCk7CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBt
X2dwdUNvbm5lY3Rpb247CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUg
bV9jYXRlZ29yeTsKKyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgbV9yb3V0ZVNoYXJp
bmdQb2xpY3k7CisgICAgc2l6ZV90IG1fcHJlZmVycmVkQnVmZmVyU2l6ZSB7IDAgfTsKKyAgICBi
b29sIG1fYWN0aXZlIHsgZmFsc2UgfTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdmM2JhZTgyNDNmYWE1NDU1MmJiZmYw
NGQ5YTZlYjg1MmI2MDYyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsx
LDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElP
X1NFU1NJT04pCisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5IE5vdFJlZkNv
dW50ZWQgeworICAgIFNldENhdGVnb3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZSB0eXBlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5n
UG9saWN5IHBvbGljeSkKKyAgICBTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHVpbnQ2NF90IHByZWZl
cnJlZEJ1ZmZlclNpemUpCisgICAgVHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpIC0+IChib29s
IHN1Y2VlZGVkKSBTeW5jaHJvbm91cworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE2YjRlZjIxMWYyYTM4MzA3MDU0YzUxMjYxYjcxNjFm
YzdkMDhkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTkxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVE
SU9fU0VTU0lPTikKKworI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRT
ZXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CitzdGF0aWMgYm9vbCBjYXRlZ29yeUNhbk1peFdpdGhPdGhlcnMoQXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGUgY2F0ZWdvcnkpCit7CisgICAgcmV0dXJuIGNhdGVnb3J5ID09IEF1ZGlvU2Vzc2lv
bjo6QW1iaWVudFNvdW5kOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpCisgICAgOiBtX3Nlc3Npb24oQXVkaW9TZXNz
aW9uOjpjcmVhdGUoKSkKK3sKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp+
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCkgPSBkZWZhdWx0OworCit2b2lkIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6YWRkUHJveHkoV2Vha1B0cjxSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eT4mJiBwcm94eSkKK3sKKyAgICBhdXRvIGlkID0gcHJveHktPnByb2Nlc3NJZGVu
dGlmaWVyKCk7CisgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3By
b3hpZXMuc2V0KGlkLCBXVEZNb3ZlKHByb3h5KSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyOjpyZW1vdmVQcm94eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQp
Cit7CisgICAgQVNTRVJUKG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIG1fcHJveGllcy5y
ZW1vdmUoaWQpOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSogUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyOjpnZXRQcm94eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7
CisgICAgYXV0byByZXN1bHRzID0gbV9wcm94aWVzLmZpbmQoaWQpOworICAgIGlmIChyZXN1bHRz
ICE9IG1fcHJveGllcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdHMtPnZhbHVlLmdldCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlcjo6c2V0Q2F0ZWdvcnlGb3JQcm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlmaWVyJiBp
ZCwgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGlj
eSBwb2xpY3kpCit7CisgICAgQVNTRVJUKG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIGF1
dG8gcHJveHkgPSBnZXRQcm94eShpZCk7CisgICAgaWYgKCFwcm94eSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKHByb3h5LT5jYXRlZ29yeSgpID09IGNhdGVnb3J5ICYmIHByb3h5LT5yb3V0
ZVNoYXJpbmdQb2xpY3koKSA9PSBwb2xpY3kpCisgICAgICAgIHJldHVybjsKKworICAgIEhhc2hD
b3VudGVkU2V0PEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXVEY6OkludEhhc2g8QXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPEF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlPj4gY2F0ZWdvcnlDb3VudHM7CisgICAgSGFzaENvdW50ZWRTZXQ8
Um91dGVTaGFyaW5nUG9saWN5LCBXVEY6OkludEhhc2g8Um91dGVTaGFyaW5nUG9saWN5PiwgV1RG
OjpTdHJvbmdFbnVtSGFzaFRyYWl0czxSb3V0ZVNoYXJpbmdQb2xpY3k+PiBwb2xpY3lDb3VudHM7
CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAg
ICAgIGNhdGVnb3J5Q291bnRzLmFkZChvdGhlclByb3h5LT5jYXRlZ29yeSgpKTsKKyAgICAgICAg
cG9saWN5Q291bnRzLmFkZChvdGhlclByb3h5LT5yb3V0ZVNoYXJpbmdQb2xpY3koKSk7CisgICAg
fQorCisgICAgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UGxheUFu
ZFJlY29yZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3Jk
OworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UmVj
b3JkQXVkaW8pKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW87
CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpNZWRp
YVBsYXliYWNrKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJh
Y2s7CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpT
b2xvQW1iaWVudFNvdW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlNvbG9B
bWJpZW50U291bmQ7CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9T
ZXNzaW9uOjpBbWJpZW50U291bmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6
QW1iaWVudFNvdW5kOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlv
U2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Np
b246OkF1ZGlvUHJvY2Vzc2luZzsKKyAgICBlbHNlCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9T
ZXNzaW9uOjpOb25lOworCisgICAgaWYgKHBvbGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJp
bmdQb2xpY3k6OkxvbmdGb3JtVmlkZW8pKQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQ
b2xpY3k6OkxvbmdGb3JtVmlkZW87CisgICAgZWxzZSBpZiAocG9saWN5Q291bnRzLmNvbnRhaW5z
KFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1BdWRpbykpCisgICAgICAgIHBvbGljeSA9IFJv
dXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1BdWRpbzsKKyAgICBlbHNlIGlmIChwb2xpY3lDb3Vu
dHMuY29udGFpbnMoUm91dGVTaGFyaW5nUG9saWN5OjpJbmRlcGVuZGVudCkpCisgICAgICAgIHBv
bGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQ7CisgICAgZWxzZQorICAgICAg
ICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQ7CisKKyAgICBtX3Nlc3Npb24t
PnNldENhdGVnb3J5KGNhdGVnb3J5LCBwb2xpY3kpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlcjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3MoY29uc3Qg
UHJvY2Vzc0lkZW50aWZpZXImIGlkLCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSkKK3sKKyAg
ICBmb3IgKGF1dG8mIG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAg
aWYgKCFvdGhlclByb3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhl
clByb3h5LT5wcmVmZXJyZWRCdWZmZXJTaXplKCkgPCBwcmVmZXJyZWRCdWZmZXJTaXplKQorICAg
ICAgICAgICAgcHJlZmVycmVkQnVmZmVyU2l6ZSA9IG90aGVyUHJveHktPnByZWZlcnJlZEJ1ZmZl
clNpemUoKTsKKyAgICB9CisKKyAgICBtX3Nlc3Npb24tPnNldFByZWZlcnJlZEJ1ZmZlclNpemUo
cHJlZmVycmVkQnVmZmVyU2l6ZSk7Cit9CisKK2Jvb2wgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyOjp0cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXIm
IGlkLCBib29sIGFjdGl2ZSkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7
CisgICAgYXV0byBwcm94eSA9IGdldFByb3h5KGlkKTsKKyAgICBpZiAoIXByb3h5KQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBzaXplX3QgYWN0aXZlUHJveHlDb3VudCB7IDAgfTsKKyAg
ICBmb3IgKGF1dG8mIG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAg
aWYgKCFvdGhlclByb3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhl
clByb3h5LT5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgKythY3RpdmVQcm94eUNvdW50OworICAg
IH0KKworICAgIGlmICghYWN0aXZlICYmIGFjdGl2ZVByb3h5Q291bnQgPiAxKSB7CisgICAgICAg
IC8vIFRoaXMgcHJveHkgd2FudHMgdG8gZGUtYWN0aXZhdGUsIGJ1dCBvdGhlciBwcm94aWVzIGFy
ZSBzdGlsbAorICAgICAgICAvLyBhY3RpdmUuIE5vLW9wLCBhbmQgcmV0dXJuIGRlYWN0aXZhdGlv
biB3YXMgc3VjZXNzZnVsLgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAo
IWFjdGl2ZSkgeworICAgICAgICAvLyBUaGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBh
bmQgaXMgdGhlIGxhc3QgcmVtYWluaW5nIGFjdGl2ZQorICAgICAgICAvLyBwcm94eS4gRGVhY3Rp
dmF0ZSB0aGUgc2Vzc2lvbiwgYW5kIHJldHVybiB3aGV0aGVyIHRoYXQgZGVhY3RpdmF0aW9uCisg
ICAgICAgIC8vIHdhcyBzdWNlc3NmdWw7CisgICAgICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRv
U2V0QWN0aXZlKGZhbHNlKTsKKyAgICB9CisKKyAgICBpZiAoYWN0aXZlICYmICFhY3RpdmVQcm94
eUNvdW50KSB7CisgICAgICAgIC8vIFRoaXMgcHJveHkgYW5kIG9ubHkgdGhpcyBwcm94eSB3YW50
cyB0byBiZWNvbWUgYWN0aXZlLiBBY3RpdmF0ZQorICAgICAgICAvLyB0aGUgc2Vzc2lvbiwgYW5k
IHJldHVybiB3aGV0aGVyIHRoYXQgYWN0aXZhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICAg
cmV0dXJuIG1fc2Vzc2lvbi0+dHJ5VG9TZXRBY3RpdmUoYWN0aXZlKTsKKyAgICB9CisKKyAgICAv
LyBJZiB0aGlzIHByb3h5IGlzIEFtYmllbnQsIGFuZCB0aGUgc2Vzc2lvbiBpcyBhbHJlYWR5IGFj
dGl2ZSwgdGhpcworICAgIC8vIHByb3h5IHdpbGwgbWl4IHdpdGggdGhlIGFjdGl2ZSBwcm94aWVz
LiBOby1vcCwgYW5kIHJldHVybiBhY3RpdmF0aW9uCisgICAgLy8gd2FzIHN1Y2Vzc2Z1bC4KKyAg
ICBpZiAoY2F0ZWdvcnlDYW5NaXhXaXRoT3RoZXJzKHByb3h5LT5jYXRlZ29yeSgpKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIE90aGVy
d2lzZSwgdGhpcyBwcm94eSB3YW50cyB0byBiZWNvbWUgYWN0aXZlLCBidXQgdGhlcmUgYXJlIG90
aGVyCisgICAgLy8gcHJveGllcyB3aG8gYXJlIGFscmVhZHkgYWN0aXZlLiBXYWxrIG92ZXIgdGhl
IHByb3hpZXMsIGFuZCBpbnRlcnJ1cHQKKyAgICAvLyB0aG9zZSBwcm94aWVzIHdob3NlIGNhdGVv
Z3JpZXMgaW5kaWNhdGUgdGhleSBjYW5ub3QgbWl4IHdpdGggb3RoZXJzLgorICAgIGZvciAoYXV0
byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoIW90aGVy
UHJveHkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5LT5p
c0FjdGl2ZSgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGNhdGVnb3J5
Q2FuTWl4V2l0aE90aGVycyhvdGhlclByb3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgIG90aGVyUHJveHktPmJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpTeXN0ZW1JbnRlcnJ1cHRpb24pOworICAg
IH0KKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7CisKK30KKworfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmE3Zjc2MWY2YjFlODViYTcxNThl
MGJkZjQwYzVmYzIzYmFhMTdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oCkBAIC0wLDAgKzEs
NjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lv
bi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OworCitjbGFzcyBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKTsKKyAg
ICB+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGFkZFByb3h5
KFdlYWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+JiYpOworICAgIHZvaWQgcmVtb3ZlUHJv
eHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKKyAgICBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eSogZ2V0UHJveHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsK
KworICAgIHZvaWQgc2V0Q2F0ZWdvcnlGb3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyJiwgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdlYkNvcmU6
OlJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9y
UHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIHNpemVfdCk7CisKKyAg
ICB1c2luZyBTZXRBY3RpdmVDb21wbGV0aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT47CisgICAgYm9vbCB0cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXImLCBib29sKTsKKworICAgIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
biYgc2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbjsgfQorCitwcml2YXRlOgorICAg
IFVuaXF1ZVJlZjxXZWJDb3JlOjpBdWRpb1Nlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBIYXNoTWFw
PFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBXZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Pj4gbV9wcm94aWVzOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YjNkZWM3Y2QzOWQwMTAy
Yjg1ZjBmOTVkZjRlNDMwZjlhZTEzZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2Vz
LmluCkBAIC0wLDAgKzEsMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQppbmRleCAyNTZkYzk5MDViZjQ0NjZkMGMyYWQ1NzRkOGMzNjhhMTRi
ZTY5NjNhLi40YmExNGRiYWYyNGIyNDFlNTlkYjBhN2YyMDgwZDAyZDAyN2MzYjA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIzNCw2ICsyMzQsNyBAQCBk
ZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktp
dDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uSWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vz
c2lvbklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uSWRlbnRpZmllcicsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGQwN2YyYmY1YjIxYjYy
MGI5MTk4MTAxOTk0MGUyNzQ0ZWQyNTAwY2QuLjY3NTJjYjZkNDVlNWFmMDA1ZWZmODI3YTc2NmJh
M2JiMWIzYThkODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCkBAIC02MSw2ICs2MSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ0RNSW5zdGFuY2VT
ZXNzaW9uLmg+CiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgPFdl
YkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogbmFt
ZXNwYWNlIFdURiB7CiBjbGFzcyBNYWNoU2VuZFJpZ2h0OwpAQCAtMTAyNSw0ICsxMDI5LDE5IEBA
IHRlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNETUluc3RhbmNlOjpIRENQ
U3RhdHVzPiB7CiAKICNlbmRpZgogCisjaWYgVVNFKEFVRElPX1NFU1NJT04pCit0ZW1wbGF0ZSA8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4g
eworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMgPAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlOjpOb25lLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBbWJp
ZW50U291bmQsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlNvbG9B
bWJpZW50U291bmQsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok1l
ZGlhUGxheWJhY2ssCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlJl
Y29yZEF1ZGlvLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpQbGF5
QW5kUmVjb3JkLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpBdWRp
b1Byb2Nlc3NpbmcKKyAgICA+OworfTsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAppbmRleCA2MjllMWFlN2QwMmY4OGZiYmY4ZDdhYjA3ZjI2ZjU4MDQwYWU5YTk1Li5jOTM1OGM1
OWQwMmFlYmFmNTZkYjExMjIxNDg5OGJjNmVhMjhkMzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMjQsNiArMTI0
LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgZnVs
bEtleWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtZW1vcnlDYWNoZURp
c2FibGVkIHsgZmFsc2UgfTsKICAgICBib29sIGF0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9Owor
ICAgIGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhIHsgZmFsc2UgfTsKIAogI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQogICAgIGJvb2wgaGFzSW1hZ2VTZXJ2aWNlcyB7IGZhbHNlIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAppbmRleCA2ZDBlOGM2OGEwMjM4ODczYjY4NjQyMzgzZTViN2JjNWFhMDYzN2RjLi5k
MDA2MjNhNjI5Njc4MWNhZDdkY2E2ZWJlMDVkMTk2M2FkNjY5NjQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAg
LTIyLDExICsyMiwxNCBAQAogLy8gVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBH
UFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCitHUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nl
c3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKK0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuY3BwCitHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNwcAogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5jcHAKQEAgLTU0Niw2ICs1NDksNyBAQCBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb24uY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE0uY3Bw
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5LmNwcAogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXgg
MGE3NzY5Mzk4NzllYjY5NWZmYmZlYWZiZWQ4YmMyZjljNDRjZWZhNC4uNjQ0YmNiYzM1YjQ1OGY0
M2U1M2JmYjEwYTkxZDM3YmM5ODY1NjE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjU0
LDYgKzY1NCw4IEBAIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogTGli
V2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwCitS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVk
aWFSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUzZWRlNTY2ZDNkZThlOTk3NTRiOTY2MjU0
NjRiNjFlYjE3NDhhMzguLjVmNDhhODEzYWUyOTllZjVlYTRhZWQ3ZGMwZmE0YzMzMWVkMzYwMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTc0Myw2ICsxNzQzLDggQEAKIAkJQ0RBQzIwRjgyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90
ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQzIwRjUyM0ZDMzgzQjAwMjFERUUzIC8qIFJl
bW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDREFDMjBG
OTIzRkM3MjZDMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RBQzIwRUMyM0ZDMzgzODAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0RBQzIwRkEyM0ZDNzI2QzAwMjFERUUz
IC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEVGMjNGQzM4MzkwMDIxREVFMyAvKiBS
ZW1vdGVDRE1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNEQkI0OUYwMjQwRDU3
RDIwMDE3QzI5MiAvKiBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQkI0OUVFMjQwRDU3RDIwMDE3QzI5MiAvKiBH
UFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsKKwkJQ0RCQjQ5RkQyNDBEOUE3MjAwMTdDMjky
IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQkI0OUZDMjQwRDlBNzIwMDE3QzI5MiAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi87IH07CiAJCUNEQzI4MzFEMjAxQkQ3
OUQwMEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzI4MzFCMjAxQkQ3OUQwMEU2RTc0NSAvKiBX
S0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCAqLzsgfTsKIAkJQ0RDQTg1QzkxMzJBQkE0RTAwRTk2MURG
IC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4NUM3MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi87IH07CiAJCUNFMTFBRDUyMUNCQzQ4MkYwMDY4
MUVFNSAvKiBDb2RlU2lnbmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0UxMUFENTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWduaW5nLmggKi87
IH07CkBAIC01MDk0LDYgKzUwOTYsMTcgQEAKIAkJQ0RBQzIwRjQyM0ZDMzgzQTAwMjFERUUzIC8q
IFJlbW90ZUNETVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDREFDMjBGNTIzRkMzODNCMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1v
dGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RBQzIwRjYyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNl
UHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDREJCNDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJh
dGVnaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlFRjI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVBsYXRmb3JtU3RyYXRl
Z2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY0MjQwRDhBQzYw
MDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVk
aW9TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY1MjQwRDhB
QzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlQXVkaW9TZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RC
QjQ5RjYyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEQkI0OUY3MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY4MjQwRDhENTMwMDE3QzI5MiAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RC
QjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmll
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZDMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RD
MjgzMUIyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmlldy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaDsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dL
RnVsbHNjcmVlblN0YWNrVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREMy
ODMxQzIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBwYXRoID0gaW9zL2Z1bGxz
Y3JlZW4vV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDREMzODJGNzE3MjExNTA2MDA4QTJGQzMgLyogQ0ZOZXR3b3JrLmZyYW1ld29yayAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJh
bWV3b3JrOyBuYW1lID0gQ0ZOZXR3b3JrLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL0NGTmV0d29yay5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRl
PiI7IH07CkBAIC01MTAxLDYgKzUxMTQsMTcgQEAKIAkJQ0RDQTg1QzYxMzJBQkE0RTAwRTk2MURG
IC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZy
YW1ld29yazsgbmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsK
KwkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNERDUzNTcwMjQwREQ0RUYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1
MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3MjI0
MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTczMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzQyNDBEREUwNzAwRjdCOEM0IC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVB
dWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3Rl
QXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RENTM1NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc4
MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3OTI0MERERTA4MDBGN0I4
QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTExQUQ0RjFDQkM0N0Y4MDA2ODFF
RTUgLyogQ29kZVNpZ25pbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBDb2RlU2lnbmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UxMUFE
NTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWduaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENvZGVTaWduaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFMUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTM3OCw2ICs1NDAyLDExIEBACiAJCQkJOUI1QkVD
MjkyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgKi8s
CiAJCQkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5oICovLAogCQkJCTlCNUJFQzJFMjQwMTAxOEMwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjUyNDBEOEFDNjAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAgKi8sCisJCQkJQ0RCQjQ5RjQyNDBEOEFDNjAw
MTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5oICovLAorCQkJCUNERDUzNTZGMjQwREQzNDMw
MEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5
RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAq
LywKKwkJCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uSWRl
bnRpZmllci5oICovLAogCQkJCUNEQUMyMEJGMjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE0u
Y3BwICovLAogCQkJCUNEQUMyMEJBMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1vdGVDRE0uaCAqLywK
IAkJCQlDREFDMjBCODIzRkMyRjczMDAyMURFRTMgLyogUmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5o
ICovLApAQCAtNTQyMCw2ICs1NDQ5LDEyIEBACiAJCQkJOUIxMjI5Q0MyM0ZGMjVGMjAwOENBNzUx
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5QjEyMjlDQjIz
RkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCAqLywKIAkJ
CQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjcyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCAqLywKKwkJCQlDREJCNDlGNjI0MEQ4Qzk1MDAxN0MyOTIg
LyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCAqLywKKwkJCQlDREJCNDlGODI0MEQ4RDUzMDAx
N0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RC
QjQ5RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5j
cHAgKi8sCisJCQkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlci5oICovLAorCQkJCUNERDUzNTcwMjQwREQ0RUYwMEY3QjhDNCAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDcxQkM1N0Uy
M0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJMDcx
QkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oICovLAogCQkJ
CUNEQUMyMDc5MjNGQjFFMjEwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwICov
LApAQCAtNjcwNiw2ICs2NzQxLDggQEAKIAkJCQkyRDlGQjIwQzIzNzUyMDlEMDA0OUY5MzYgLyog
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCiAJCQkJMkQ5RkIyMDAyMzc1MjA5RDAw
NDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQkyRDlGQjIwOTIz
NzUyMDlEMDA0OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAq
LywKKwkJCQlDREJCNDlFRjI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcCAqLywKKwkJCQlDREJCNDlFRTI0MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJh
dGVnaWVzLmggKi8sCiAJCQkJMkQ5RkIyMDEyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3Mu
Y3BwICovLAogCQkJCTJEOUZCMjE1MjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9jZXNzLmggKi8s
CiAJCQkJMkQ5RkIyMDIyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3MubWVzc2FnZXMuaW4g
Ki8sCkBAIC05ODMxLDYgKzk4NjgsMTUgQEAKIAkJCQkxQTA0M0I1QzEyNEQ1RTlEMDBGRkJGQjUg
LyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQkxQThFRkE2RTEyNTJCODQx
MDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBOEVG
QTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0RE
NTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCisJCQkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbk1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzQyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCUNERDUzNTczMjQwRERFMDYw
MEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCUNERDUzNTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc5MjQwRERFMDgwMEY3QjhD
NCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywK
KwkJCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTcyMjQwRERFMDYwMEY3QjhDNCAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzcyNDBEREUw
NzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8s
CiAJCQkJQ0RBQzIwRjIyM0ZDMzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RBQzIwRjMyM0ZDMzgzQTAwMjFERUUzIC8qIFJl
bW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBQzIwRUUyM0ZDMzgzOTAw
MjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovLApAQCAt
MTA1MzQsNiArMTA1ODAsNyBAQAogCQkJCUJDMDZGNDRBMTJEQkQxRjUwMDJENzhERSAvKiBHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzA2RjQzQTEyREJDQ0ZCMDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyog
R2VzdHVyZVR5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREJCNDlGMDI0MEQ1N0QyMDAxN0My
OTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREEwNDlC
ODE4MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDMENFNzJBRDEyNDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVzc2FnZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFDNzVBMUIxQjMzNjgyNzAwNTY3NDVCIC8qIEhhbmdEZXRlY3Rpb25E
aXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDc1Miw2ICsxMDc5OSw3IEBACiAJCQkJOUIx
MjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjEyMjlDRDIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCNUJFQzJBMjQw
MTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNEQkI0OUZEMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDNzIzRkMyRjc1MDAyMURF
RTMgLyogUmVtb3RlQ0RNLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDNTIzRkMyRjc1MDAy
MURFRTMgLyogUmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RB
QzIwQ0QyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnkuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb1Nlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZTVjZWM4ZWExYjY4N2Q1YmRkNzE3ZGNk
YzMzMWM0NjFhZGQ1NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw5OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Np
b24uaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisK
KyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJHUFVQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitV
bmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPiBSZW1vdGVBdWRpb1Nlc3Npb246OmNyZWF0ZShX
ZWJQcm9jZXNzJiBwcm9jZXNzKQoreworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRp
b24gY29uZmlndXJhdGlvbjsKKyAgICBwcm9jZXNzLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpFbnN1cmVBdWRpb1Nlc3Npb24oKSwgTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OkVuc3VyZUF1ZGlvU2Vzc2lvbjo6UmVwbHkoY29uZmlndXJhdGlvbiksIHsgfSk7Cisg
ICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPihwcm9jZXNzLCBXVEZN
b3ZlKGNvbmZpZ3VyYXRpb24pKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uOjpSZW1vdGVBdWRp
b1Nlc3Npb24oV2ViUHJvY2VzcyYgcHJvY2VzcywgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24pCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKKyAgICAsIG1f
Y29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKQoreworfQorCitSZW1vdGVBdWRp
b1Nlc3Npb246On5SZW1vdGVBdWRpb1Nlc3Npb24oKSA9IGRlZmF1bHQ7CisKK0lQQzo6Q29ubmVj
dGlvbiYgUmVtb3RlQXVkaW9TZXNzaW9uOjpjb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gbV9w
cm9jZXNzLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOworfQorCit2
b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIHR5cGUsIFJv
dXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpTZXRDYXRlZ29yeSh0eXBlLCBwb2xpY3kpLCB7
IH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6
ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHk6OlNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZSksIHsgfSk7Cit9
CisKK2Jvb2wgUmVtb3RlQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKGJvb2wg
YWN0aXZlKQoreworICAgIGJvb2wgc3VjY2VlZGVkOworICAgIGNvbm5lY3Rpb24oKS5zZW5kU3lu
YyhNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRyeVRvU2V0QWN0aXZlKGFjdGl2
ZSksIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6VHJ5VG9TZXRBY3RpdmU6OlJl
cGx5KHN1Y2NlZWRlZCksIHsgfSk7CisgICAgcmV0dXJuIHN1Y2NlZWRlZDsKK30KKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb25DaGFuZ2VkKFJlbW90ZUF1ZGlvU2Vzc2lv
bkNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQoreworICAgIGJvb2wgbXV0ZWRTdGF0ZUNo
YW5nZWQgPSBjb25maWd1cmF0aW9uLmlzTXV0ZWQgIT0gbV9jb25maWd1cmF0aW9uLmlzTXV0ZWQ7
CisKKyAgICBtX2NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOworCisgICAgaWYgKG11dGVk
U3RhdGVDaGFuZ2VkKQorICAgICAgICBoYW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCk7Cit9CisKK3Zv
aWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpiZWdpbkludGVycnVwdGlvbihQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQoreworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmJlZ2luSW50ZXJydXB0aW9uKHR5cGUpOworfQorCit2
b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5kSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyBmbGFncykKK3sKKyAgICBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5lbmRJbnRlcnJ1cHRpb24oZmxhZ3MpOworfQor
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThmOGRjODIzZTNmMDEwN2Mx
OTNiZTk0OGJmN2ZiOTY4YmNlNzlmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmgKQEAgLTAsMCArMSw4NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Np
b24uaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CitjbGFzcyBXZWJQcm9j
ZXNzOworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb24gZmluYWwKKyAgICA6IHB1YmxpYyBXZWJD
b3JlOjpBdWRpb1Nlc3Npb24KKyAgICAsIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgVW5pcXVlUmVmPFJlbW90
ZUF1ZGlvU2Vzc2lvbj4gY3JlYXRlKFdlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVB
dWRpb1Nlc3Npb24oKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgVW5pcXVlUmVmPFJlbW90ZUF1
ZGlvU2Vzc2lvbj4gV1RGOjptYWtlVW5pcXVlUmVmV2l0aG91dEZhc3RNYWxsb2NDaGVjazxSZW1v
dGVBdWRpb1Nlc3Npb24+KFdlYlByb2Nlc3MmLCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0
aW9uJiYpOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbihXZWJQcm9jZXNzJiwgUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbiYmKTsKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24o
KTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIC8vIE1l
c3NhZ2VzCisgICAgdm9pZCBjb25maWd1cmF0aW9uQ2hhbmdlZChSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uJiYpOworICAgIHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUpOworICAgIHZvaWQgZW5kSW50ZXJy
dXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFn
cyk7CisKKyAgICAvLyBBdWRpb1Nlc3Npb24KKyAgICB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5
VHlwZSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KSBmaW5hbDsKKyAgICB2b2lkIHNldFBy
ZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZV90KSBmaW5hbDsKKyAgICBib29sIHRyeVRvU2V0QWN0aXZl
SW50ZXJuYWwoYm9vbCkgZmluYWw7CisKKyAgICBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uY2F0ZWdvcnk7IH0KKyAgICBXZWJDb3Jl
OjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9jb25maWd1cmF0aW9uLnJvdXRlU2hhcmluZ1BvbGljeTsgfQorICAgIFN0cmluZyBy
b3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5y
b3V0aW5nQ29udGV4dFVJRDsgfQorICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uc2FtcGxlUmF0ZTsgfQorICAgIHNpemVfdCBidWZmZXJT
aXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmJ1ZmZlclNpemU7IH0K
KyAgICBzaXplX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fY29uZmlndXJhdGlvbi5udW1iZXJPZk91dHB1dENoYW5uZWxzOyB9CisgICAgc2l6ZV90IHBy
ZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24u
cHJlZmVycmVkQnVmZmVyU2l6ZTsgfQorICAgIGJvb2wgaXNNdXRlZCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fY29uZmlndXJhdGlvbi5pc011dGVkOyB9CisgICAgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5pc0FjdGl2ZTsgfQorCisgICAgV2Vi
UHJvY2VzcyYgbV9wcm9jZXNzOworICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24g
bV9jb25maWd1cmF0aW9uOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24u
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg5NjI4ZjY1N2VmN2NkYmNkYmE3NzlkNDFkYjk5YmNh
NWQ0NGIxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9TZXNzaW9uIE5vdFJlZkNvdW50ZWQgeworICAgIENv
bmZpZ3VyYXRpb25DaGFuZ2VkKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24gY29uZmlndXJhdGlvbikKKyAgICBCZWdpbkludGVycnVwdGlvbihlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkK
KyAgICBFbmRJbnRlcnJ1cHRpb24oZW51bTp1aW50OF90IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyBmbGFncykKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lv
bkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlNmM0MzYyZWQ5NWFh
NmM1MDFjZDBhNmEyMDNkMmI1ZWE3MWYwYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24u
aApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPFdlYkNv
cmUvQXVkaW9TZXNzaW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUmVtb3Rl
QXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiB7CisKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZSBjYXRlZ29yeTsKKyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kg
cm91dGVTaGFyaW5nUG9saWN5OworICAgIFN0cmluZyByb3V0aW5nQ29udGV4dFVJRDsKKyAgICBm
bG9hdCBzYW1wbGVSYXRlOworICAgIHVpbnQ2NF90IGJ1ZmZlclNpemU7CisgICAgdWludDY0X3Qg
bnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKKyAgICB1aW50NjRfdCBwcmVmZXJyZWRCdWZmZXJTaXpl
OworICAgIGJvb2wgaXNNdXRlZDsKKyAgICBib29sIGlzQWN0aXZlOworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjYXRlZ29yeTsKKyAgICAgICAgZW5jb2RlciA8PCBy
b3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgICAgIGVuY29kZXIgPDwgcm91dGluZ0NvbnRleHRVSUQ7
CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlUmF0ZTsKKyAgICAgICAgZW5jb2RlciA8PCBidWZm
ZXJTaXplOworICAgICAgICBlbmNvZGVyIDw8IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAg
ICAgIGVuY29kZXIgPDwgcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBp
c011dGVkOworICAgICAgICBlbmNvZGVyIDw8IGlzQWN0aXZlOworICAgIH0KKworICAgIHRlbXBs
YXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBPcHRpb25hbDxSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAg
IE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiBjYXRlZ29yeTsK
KyAgICAgICAgZGVjb2RlciA+PiBjYXRlZ29yeTsKKyAgICAgICAgaWYgKCFjYXRlZ29yeSkKKyAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29y
ZTo6Um91dGVTaGFyaW5nUG9saWN5PiByb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgICAgIGRlY29k
ZXIgPj4gcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBpZiAoIXJvdXRlU2hhcmluZ1BvbGlj
eSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8
U3RyaW5nPiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgZGVjb2RlciA+PiByb3V0aW5nQ29u
dGV4dFVJRDsKKyAgICAgICAgaWYgKCFyb3V0aW5nQ29udGV4dFVJRCkKKyAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+IHNhbXBsZVJhdGU7
CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxlUmF0ZTsKKyAgICAgICAgaWYgKCFzYW1wbGVSYXRl
KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDx1
aW50NjRfdD4gYnVmZmVyU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBidWZmZXJTaXplOworICAg
ICAgICBpZiAoIWJ1ZmZlclNpemUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBudW1iZXJPZk91dHB1dENoYW5uZWxzOworICAg
ICAgICBkZWNvZGVyID4+IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAgICAgIGlmICghbnVt
YmVyT2ZPdXRwdXRDaGFubmVscykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgICAg
IGRlY29kZXIgPj4gcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgaWYgKCFwcmVmZXJyZWRC
dWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBP
cHRpb25hbDxib29sPiBpc011dGVkOworICAgICAgICBkZWNvZGVyID4+IGlzTXV0ZWQ7CisgICAg
ICAgIGlmICghaXNNdXRlZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNBY3RpdmU7CisgICAgICAgIGRlY29kZXIgPj4gaXNBY3Rp
dmU7CisgICAgICAgIGlmICghaXNBY3RpdmUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAgICAgICAgV1RGTW92ZSgqY2F0ZWdvcnkp
LAorICAgICAgICAgICAgV1RGTW92ZSgqcm91dGVTaGFyaW5nUG9saWN5KSwKKyAgICAgICAgICAg
IFdURk1vdmUoKnJvdXRpbmdDb250ZXh0VUlEKSwKKyAgICAgICAgICAgICpzYW1wbGVSYXRlLAor
ICAgICAgICAgICAgKmJ1ZmZlclNpemUsCisgICAgICAgICAgICAqbnVtYmVyT2ZPdXRwdXRDaGFu
bmVscywKKyAgICAgICAgICAgICpwcmVmZXJyZWRCdWZmZXJTaXplLAorICAgICAgICAgICAgKmlz
TXV0ZWQsCisgICAgICAgICAgICAqaXNBY3RpdmUsCisgICAgICAgIH19OworICAgIH0KK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbklk
ZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTQ4MGM2OTRlMmIzZDk3YjU5NmUyYTA3MzAzZDY3ZmIw
Zjk5YmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0Uo
QVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXJUeXBl
IHsgfTsKK3VzaW5nIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlm
aWVyPFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDUxYzJmNWU1M2IzNDBjMjIwNWY3ODliNGIzNzNhMmU1MDdiYjZlYmIuLmFlYTI5MWVkOGUx
OGY1NDE5MTZiYzRkNzhhYThhYWFhODUxY2FjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lv
bi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5j
bHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3Rl
QXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKICNpbmNsdWRlICJT
dG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCkBAIC00NzEsNiArNDcyLDgg
QEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6
c2V0U2hvdWxkTG9nVXNlckludGVyYWN0aW9uKHBhcmFtZXRlcnMuc2hvdWxkTG9nVXNlckludGVy
YWN0aW9uKTsKICNlbmRpZgogCisgICAgc2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKHBhcmFtZXRl
cnMudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKTsKKwogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
UHJvY2VzcywgImluaXRpYWxpemVXZWJQcm9jZXNzOiBQcmVzZW50aW5nIHByb2Nlc3MgPSAlZCIs
IFdlYkNvcmU6OnByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpKTsKIH0KIApAQCAtMTk5Nyw2ICsy
MDAwLDE1IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0U2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2ll
c0ZvclRlc3RpbmcoVGhpcmRQYXJ0eUNvb2tpZUJsb2NrCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQ
cm9jZXNzOjpzZXRVc2VHUFVQcm9jZXNzRm9yTWVkaWEoYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVk
aWEpCit7CisgICAgaWYgKHVzZUdQVVByb2Nlc3NGb3JNZWRpYSA9PSBtX3VzZUdQVVByb2Nlc3NG
b3JNZWRpYSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV91c2VHUFVQcm9jZXNzRm9yTWVkaWEg
PSB1c2VHUFVQcm9jZXNzRm9yTWVkaWE7CisgICAgQXVkaW9TZXNzaW9uOjpzZXRTaGFyZWRTZXNz
aW9uKHVzZUdQVVByb2Nlc3NGb3JNZWRpYSA/IFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCp0
aGlzKSA6IEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX1NFU1NJT05fSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCmluZGV4IDY1YmYwNDE3ZDRmOGMxZGI1MWY5ZTk3NTBiY2I5N2Y5YTViYzJi
OTAuLjY1NWU3OGRmMDhkZjA4YWM5MmE1NmJmYzljYzhhN2E5ZDUyNTVkM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNTE3LDYgKzUxNyw4IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIHsgcmV0dXJuIG1fc2Vzc2lvbklE
ID8gbV9zZXNzaW9uSUQtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIDogdHJ1ZTsgfQogCisg
ICAgdm9pZCBzZXRVc2VHUFVQcm9jZXNzRm9yTWVkaWEoYm9vbCk7CisKICAgICBSZWZQdHI8V2Vi
Q29ubmVjdGlvblRvVUlQcm9jZXNzPiBtX3dlYkNvbm5lY3Rpb247CiAKICAgICBIYXNoTWFwPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8V2ViUGFnZT4+IG1fcGFnZU1hcDsKQEAgLTY1
Myw2ICs2NTUsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX2Fz
c2V0U2VydmljZUV4dGVuc2lvbjsKICAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9hc3Nl
dFNlcnZpY2VWMkV4dGVuc2lvbjsKICNlbmRpZgorCisgICAgYm9vbCBtX3VzZUdQVVByb2Nlc3NG
b3JNZWRpYSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392574</attachid>
            <date>2020-03-05 08:25:15 -0800</date>
            <delta_ts>2020-03-05 08:34:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200305082512.patch</filename>
            <type>text/plain</type>
            <size>91195</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZmZTQ3YzEyYzgxMzExY2M4OWRkYmI5
NTE2MjE0MjU0ZGU5YTAxNjEuLjA3M2UwNjZlODhkOTdiNmJkMGVmYmExOGMzYTNmNDBjNzVjOGI1
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBV
bmlxdWVSZWYgdG8gdGhlIGxpc3Qgb2YgZm9yd2FyZC1kZWNsYXJlZCB0ZW1wbGF0ZSB0eXBlcy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisKIDIwMjAtMDMtMDQgIE1hcmsgTGFtICA8bWFy
ay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEhhbmRsZSBhbiBvdXQgb2YgbWVtb3J5IGVycm9y
IHdoaWxlIGNvbnN0cnVjdGluZyB0aGUgQnl0ZWNvZGVHZW5lcmF0b3IuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmJjODY4NmY2YzVlOTRlYjU2ZGM2YzkxZjNiOWZiYTE5MGU1MmVkOC4uYjI0NzFiYzYxOWVhNGM4
NWVlMjRkNzZjOTA5Y2VlODA4MGEzOGM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisy
MDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtH
UFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gaW1wbGVtZW50YXRpb24gb2YgTWVkaWFT
dHJhdGVneSB3aGljaCBwcm92aWRlcyBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBvZiB0aGUKKyAg
ICAgICAgcGxhdGZvcm0gY3JlYXRpb24gbWV0aG9kcywgc28gdGhleSBkb24ndCBuZWVkIHRvIGJl
IHJlLWltcGxlbWVudGVkIGJ5IGVhY2ggY2xpZW50IHVubGVzcworICAgICAgICB0aGF0IGNsaWVu
dCBuZWVkcyB0byBvdmVycmlkZSB0aGF0IGJlaGF2aW9yLgorCisgICAgICAgIEFkZCBFbnVtVHJh
aXRzIGZvciBhbGwgdGhlIGVudW1lcmF0aW9ucyBpbnNpZGUgQXVkaW9TZXNzaW9uLgorCisgICAg
ICAgIE1ha2UgbWFueSBBdWRpb1Nlc3Npb24gbWV0aG9kcyB2aXJ0dWFsLCBzbyB0aGV5IGNhbiBi
ZSBvdmVycmlkZGVuIGluIHRoZSBjYXNlIHdoZXJlIHRoZQorICAgICAgICBHUFUgcHJvY2VzcyBp
cyBlbmFibGVkLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL01lZGlhU3RyYXRl
Z3kuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5
LmguCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb1Nlc3Npb24p
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5OjpyZWdpc3RlckNETUZhY3Rvcmll
cyk6CisgICAgICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Np
b24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisKIDIwMjAtMDMtMDUgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUg
UGF0aDo6ZW5jb2RlIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQgQ0dQYXRoR2V0TnVtYmVyT2ZF
bGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBlOWQzOTlhYjZlMGZjYzRmZTc1N2Y5OGYxMjE5OTFiOWIxZDMw
NDFiLi5mZTg4ZDQzMWQ1YWFmZmI5ZWY3MmRlMDUzZGUzYjdiMWE5YTgwNTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDk0IEBACisyMDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdWJjbGFz
cyBvZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBhdWRpbyBi
ZWhhdmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAgICAgYXVk
aW8gYmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJvY2Vzcywg
c2luY2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFsbHkKKyAg
ICAgICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAgICAgICAg
T3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2hhcmVkIEF1ZGlvU2Vzc2lvbiBhdCBXZWJQcm9jZXNzIGlu
aXRpYWxpemF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjphdWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmVuc3VyZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6
OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxlZ2FjeUNkbUZhY3RvcnlQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZSk6
CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3lu
Y01lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTG9hZGVyU3RyYXRl
Z3kpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3Rl
Ym9hcmRTdHJhdGVneSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6
Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRl
Z2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVBsYXRm
b3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmluaXRpYWxpemVHUFVQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6YXVkaW9TZXNzaW9uTWFuYWdlciBjb25zdCk6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHk6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0Q2F0ZWdvcnkpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0UHJlZmVycmVkQnVmZmVy
U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1Nl
dEFjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdp
bkludGVycnVwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
OjplbmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eTo6YXVkaW9TZXNzaW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6Y2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eTo6cm91dGVTaGFyaW5nUG9saWN5IGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnByZWZlcnJlZEJ1ZmZlclNpemUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6aXNBY3RpdmUg
Y29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmFkZFByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpyZW1v
dmVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
cjo6Z2V0UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnRyeVRv
U2V0QWN0aXZlRm9yUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291
cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OlJlbW90ZUF1ZGlvU2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNpemUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OnRyeVRvU2V0QWN0aXZlSW50ZXJuYWwp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb25DaGFu
Z2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpiZWdpbkludGVycnVw
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5kSW50ZXJydXB0
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24u
aDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6cmVnaXN0ZXJDRE1GYWN0b3JpZXMpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaDoKKwogMjAy
MC0wMy0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhw
b3J0IE5vd1BsYXlpbmcgY29tbWFuZHMgdG8gR1BVUHJvY2VzcyB3aGVuIG1lZGlhIHBsYXlpbmcg
aW4gR1BVUHJvY2VzcyBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3
YXJkLmggYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKaW5kZXggNzBkZGI5MTZlNTBjNmUyODUy
YjdmOWU0ZTBlM2E1OGY3MDNhOGYwZC4uNmU5N2Q1ZDllZTkwOTYwZjFjZTMyZTY4MDNiY2ZmZGU0
MjIwNGNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0ZvcndhcmQuaApAQCAtNjgsNiArNjgsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSA9IER1bWJQdHJUcmFpdHM8VD4+IGNsYXNzIFJlZjsKIHRlbXBsYXRlPHR5cGVu
YW1lIFQsIHR5cGVuYW1lID0gRHVtYlB0clRyYWl0czxUPj4gY2xhc3MgUmVmUHRyOwogdGVtcGxh
dGU8dHlwZW5hbWU+IGNsYXNzIFN0cmluZ0J1ZmZlcjsKIHRlbXBsYXRlPHR5cGVuYW1lLCB0eXBl
bmFtZSA9IHZvaWQ+IGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyOwordGVtcGxhdGU8dHlwZW5hbWUg
VD4gY2xhc3MgVW5pcXVlUmVmOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV2Vha1B0cjsK
IAogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBEZWZhdWx0SGFzaCB7IHVzaW5nIEhhc2ggPSB2
b2lkOyB9OwpAQCAtMTI1LDYgKzEyNiw3IEBAIHVzaW5nIFdURjo6U3RyaW5nVmlldzsKIHVzaW5n
IFdURjo6VGV4dFBvc2l0aW9uOwogdXNpbmcgV1RGOjpUZXh0U3RyZWFtOwogdXNpbmcgV1RGOjpV
Ukw7Cit1c2luZyBXVEY6OlVuaXF1ZVJlZjsKIHVzaW5nIFdURjo6VmFyaWFudDsKIHVzaW5nIFdU
Rjo6VmVjdG9yOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uLmNwcAppbmRleCBiNWZiNTgwNjQ4ZjljZjhlYzRmMTg2ZmFmYTQ4ZTEzZmRjZjJmNTdkLi41
MDgyODMzY2EwOTQyMTQ3ZGNmYWM2NjE0ZWUzNzkxZDAwOWVhNmM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKQEAgLTI4LDE1ICsyOCwzMiBA
QAogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAKKyNpbmNsdWRlICJNZWRpYVN0cmF0ZWd5Lmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4mIHNoYXJlZEF1ZGlvU2Vzc2lv
bigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+
PiBzZXNzaW9uID0gQXVkaW9TZXNzaW9uOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gc2Vzc2lvbi5n
ZXQoKTsKK30KKworVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4gQXVkaW9TZXNzaW9uOjpjcmVhdGUo
KQoreworICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4oKTsKK30KKwogQXVk
aW9TZXNzaW9uJiBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdWRpb1Nlc3Npb24+IHNlc3Npb247Ci0gICAgcmV0dXJuIHNlc3Npb247
CisgICAgcmV0dXJuIHNoYXJlZEF1ZGlvU2Vzc2lvbigpOworfQorCit2b2lkIEF1ZGlvU2Vzc2lv
bjo6c2V0U2hhcmVkU2Vzc2lvbihVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiYmIHNlc3Npb24pCit7
CisgICAgc2hhcmVkQXVkaW9TZXNzaW9uKCkgPSBXVEZNb3ZlKHNlc3Npb24pOwogfQogCiBib29s
IEF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCmluZGV4IDBkYTc1ZmRhNGEzYTdjNzE3
Nzc4NDQ1OGVkNjQyMDg2NjFjNzZiMzUuLjA0YTQwM2FiM2U3YzhhYzIxYjhhNzBkNWI2Mjc5MmQ3
ZDQyMTQ2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lv
bi5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDEzICs0NSwxOCBAQCBlbnVtIGNsYXNzIFJv
dXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3QgewogICAgIExvbmdGb3JtVmlkZW8KIH07CiAKLWNs
YXNzIEF1ZGlvU2Vzc2lvbiBmaW5hbCB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBBdWRpb1Nlc3Np
b24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEF1ZGlvU2Vzc2lvbik7CisgICAgZnJpZW5kIGNsYXNzIFVuaXF1ZVJlZjxBdWRpb1Nlc3Np
b24+OworICAgIGZyaWVuZCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBXVEY6Om1ha2VVbmlxdWVS
ZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPEF1ZGlvU2Vzc2lvbj4oKTsKIHB1YmxpYzoKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgQXVkaW9TZXNzaW9uJiBzaGFyZWRTZXNzaW9uKCk7CisgICAg
c3RhdGljIFVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+IGNyZWF0ZSgpOworICAgIHN0YXRpYyB2b2lk
IHNldFNoYXJlZFNlc3Npb24oVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4mJik7CisgICAgc3RhdGlj
IEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOworICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lv
bigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgeworICAgIGVudW0gQ2F0ZWdvcnlUeXBlIDog
dWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAgIEFtYmllbnRTb3VuZCwKICAgICAgICAg
U29sb0FtYmllbnRTb3VuZCwKQEAgLTU5LDIzICs2NSwyMyBAQCBwdWJsaWM6CiAgICAgICAgIFBs
YXlBbmRSZWNvcmQsCiAgICAgICAgIEF1ZGlvUHJvY2Vzc2luZywKICAgICB9OwotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xp
Y3kpOwotICAgIFdFQkNPUkVfRVhQT1JUIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUsIFJvdXRlU2hhcmluZ1Bv
bGljeSk7CisgICAgdmlydHVhbCBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdDsKIAogICAg
IHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUpOwogICAgIENhdGVnb3J5VHlw
ZSBjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3Q7CiAKLSAgICBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91
dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7Ci0gICAgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5
KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQoKSBjb25zdDsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsKLSAgICBzaXpl
X3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZk91dHB1dENoYW5uZWxz
KCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7CisgICAgdmly
dHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgc2l6ZV90IG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAogICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmUoYm9v
bCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNv
bnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXpl
X3QpOworICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xh
c3MgTXV0ZWRTdGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04NywxNyArOTMsMTYgQEAg
cHVibGljOgogICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZl
ciopOwogICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZl
ciopOwogCi0gICAgYm9vbCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBoYW5kbGVNdXRlZFN0
YXRlQ2hhbmdlKCk7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkg
Y29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBm
cmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRpb1Nlc3Np
b24oKTsKLSAgICB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlSW50
ZXJuYWwoYm9vbCk7CisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9v
bCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0ZT4gbV9wcml2YXRl
OwogICAgIEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApp
bmRleCBlMmIzOGEwMWQwYWE1YTY2ZDM3NzkxMWVkNDAxZTUyODkwNzg5NzA4Li45MzA4NWIwZDQy
N2FlYmU4NDEwZTVkMDcxOTM4YWIwNjAxNDQxYWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTYwLDcgKzYwLDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb24oKTsKIAotICAg
IGVudW0gY2xhc3MgTWVkaWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSA6IHVpbnQ4
X3QgewogICAgICAgICBOb25lID0gMCwKICAgICAgICAgVmlkZW8sCiAgICAgICAgIFZpZGVvQXVk
aW8sCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5cGUgbWVkaWFUeXBlKCkg
Y29uc3Q7CiAgICAgTWVkaWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBjb25zdDsKIAotICAgIGVu
dW0gU3RhdGUgeworICAgIGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAgICAgICAgSWRsZSwKICAg
ICAgICAgQXV0b3BsYXlpbmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC04MCw3ICs4MCw3IEBAIHB1
YmxpYzoKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICB2
b2lkIHNldFN0YXRlKFN0YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0aW9uVHlwZSB7CisgICAg
ZW51bSBJbnRlcnJ1cHRpb25UeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vSW50ZXJydXB0aW9u
LAogICAgICAgICBTeXN0ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdCYWNrZ3JvdW5kLApAQCAt
OTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIGludGVy
cnVwdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlvblR5cGU7IH0KIAotICAg
IGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxh
Z3MgOiB1aW50OF90IHsKICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAgICAgIE1heVJlc3VtZVBs
YXlpbmcgPSAxIDw8IDAsCiAgICAgfTsKQEAgLTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGRvdWJsZSBhc0RvdWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRBcmd1bWVudDsKIAotICAg
IGVudW0gUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVtIFJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQsCiAgICAgICAgIFBsYXlD
b21tYW5kLAogICAgICAgICBQYXVzZUNvbW1hbmQsCkBAIC0xMzQsNyArMTM0LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZSwgY29uc3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBhcmd1bWVudCA9IG51bGxw
dHIpOwogICAgIGJvb2wgc3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAKLSAgICBlbnVtIERpc3Bs
YXlUeXBlIHsKKyAgICBlbnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vcm1h
bCwKICAgICAgICAgRnVsbHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVkLApAQCAtMjk3LDQgKzI5
Nyw2NCBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZT4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpNZWRpYVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
Ok1lZGlhVHlwZTo6VmlkZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1l
ZGlhVHlwZTo6VmlkZW9BdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
TWVkaWFUeXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVk
aWFUeXBlOjpXZWJBdWRpbworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
U3RhdGUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpJZGxlLAor
ICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6QXV0b3BsYXlpbmcsCisg
ICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQbGF5aW5nLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2VkLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQKKyAgICA+OworfTsKKwor
dGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Np
b246OkludGVycnVwdGlvblR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwK
KyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSwKKyAg
ICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6Tm9JbnRl
cnJ1cHRpb24sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlv
blR5cGU6OlN5c3RlbVNsZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJ
bnRlcnJ1cHRpb25UeXBlOjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUludGVycnVwdGlvbiwKKyAg
ICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3VzcGVu
ZGVkVW5kZXJMb2NrLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRpb25UeXBlOjpJbnZpc2libGVBdXRvcGxheSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZlLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQbGF5YmFja1N1c3BlbmRl
ZAorICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
RW5kSW50ZXJydXB0aW9uRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OkVuZEludGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1lUGxheWluZworICAgID47
Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGxheUNvbW1hbmQsCisg
ICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlw
ZTo6UGF1c2VDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1v
dGVDb250cm9sQ29tbWFuZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRvZ2dsZVBsYXlQYXVzZUNv
bW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZTo6QmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OkVuZFNlZWtpbmdC
YWNrd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6RW5k
U2Vla2luZ0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNrUG9zaXRpb25Db21tYW5k
CisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggZDZjMDA3ZjQw
YjVmYjc2MzcyMmQ1MzhhZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGExZDBhYTYzODljM2RmODkz
NjcxMGEzNTg5YTQ0NTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQzLDE1IEBAIHZvaWQgQXVk
aW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZmZXJTaXplKQogICAg
IEFTU0VSVCghZXJyb3IpOwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6aXNNdXRlZCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6aGFuZGxlTXV0
ZWRTdGF0ZUNoYW5nZSgpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9O
KSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDlmOTQ2Zjg0OTdhZjIzYjRhZmE1MWI3OTE4NDE4NTE4
ODYwYWM1YjkuLmQ3NDliMmRiMDliOTY3NDZmNGEwZjFlMzRjMjE3NDJlZGY1M2U0NmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE4LDYg
KzE4LDggQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFw
cGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1Rf
RElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmlu
CiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5p
bgpAQCAtMTE2LDYgKzExOCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYTk2YzJjZmRkZDQ2YjM1OTIzOGU5NjIzNDNh
OTkyMjEwNGVlYTU5Yi4uOTk1MDM1MTJiYTU1OGIyYjQxMDA4ZjViMTY2NTA0NjBhOTU0MTQ1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBA
IC0xMzcsNiArMTM3LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVz
c2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9u
TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBs
aWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFj
dG9yeVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQppbmRleCA0NWVlM2RiN2VkN2UxMzM3MmM4YTc1YWQ1NTVhMTY1ODdm
NjdkMDhhLi4xYzNkMWEyMGVlYTNiNzM4MDAxMDJlMWQzMTk4Mzc5MDNhYTZjZDBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNDgsNiArMTQ4LDggQEAgTUVTU0FHRV9SRUNFSVZF
UlMgPSBcCiAgICAgUGx1Z2luUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyIFwKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAorICAgIFJlbW90ZUF1ZGlv
U2Vzc2lvbiBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCmluZGV4IGIwZTc4Yzc4N2ZhNTdlZDBkZTkzNDBmMTk3YjVkNmUyMzQ1ZTdj
OTIuLmNiNTc5MjhlY2YyZTI5Y2FiOWQzNmU0ZDBhZGE4MGI5NzJlY2ZhMDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKQEAgLTc2LDYgKzc2LDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5o
IgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9O
KQorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNZXNzYWdlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CkBAIC0xMzMsNiArMTM4LDEwIEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKIAogdm9pZCBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworICAgIGlmIChtX2F1
ZGlvU2Vzc2lvblByb3h5KSB7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5h
Z2VyKCkucmVtb3ZlUHJveHkod2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIG1fYXVk
aW9TZXNzaW9uUHJveHkgPSBudWxscHRyOworICAgIH0KIH0KIAogTG9nZ2VyJiBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpsb2dnZXIoKQpAQCAtMjMxLDYgKzI0MCwxNyBAQCBSZW1vdGVDRE1G
YWN0b3J5UHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNkbUZhY3RvcnlQcm94eSgp
CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJ
T04pCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
YXVkaW9TZXNzaW9uUHJveHkoKQoreworICAgIGlmICghbV9hdWRpb1Nlc3Npb25Qcm94eSkgewor
ICAgICAgICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNy
ZWF0ZSgqdGhpcykubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRp
b1Nlc3Npb25NYW5hZ2VyKCkuYWRkUHJveHkobWFrZVdlYWtQdHIobV9hdWRpb1Nlc3Npb25Qcm94
eS5nZXQoKSkpOworICAgIH0KKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uUHJveHk7Cit9Cisj
ZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdC
YWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHlNYXAuZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0yNTcs
NiArMjc3LDEzIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Tm93UGxheWlu
Z0luZm8oYm9vbCBzZXRBc05vd1BsYXlpbmdBcHBsaWNhdGlvCiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCit2b2lkIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1cmVBdWRpb1Nlc3Npb25Db21w
bGV0aW9uJiYgY29tcGxldGlvbikKK3sKKyAgICBjb21wbGV0aW9uKGF1ZGlvU2Vzc2lvblByb3h5
KCkuY29uZmlndXJhdGlvbigpKTsKK30KKyNlbmRpZgorCiBib29sIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJO
YW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKQEAgLTMzNCw2ICszNjEsMTIgQEAgYm9vbCBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEMKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogI2VuZGlmCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdl
UmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgYXVkaW9TZXNzaW9uUHJveHkoKS5kaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorI2VuZGlmCiAKICAgICByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQpAQCAtMzgxLDYgKzQxNCwxMiBAQCBib29s
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAjZW5kaWYK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBhdWRpb1Nlc3Npb25Q
cm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVy
biBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAxODIyNmE3YzM0OTkxOGFjYmJj
NDViZmY1NGFmNmE3YmJmYzcwMWMzLi5iMDA3MWNjNjUyNjZmZTdhOTJhYmMwNGYzYmZkOGM1YTQy
M2Q2ODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9u
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgog
I2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9Qcm9jZXNzSWRlbnRpZmllci5oPgpAQCAtNDgsMTIgKzQ5LDE1IEBAIGNsYXNzIEdQVVByb2Nl
c3M7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eTsKIGNsYXNzIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyOworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7CitjbGFzcyBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVDRE1GYWN0b3J5UHJveHk7CiBjbGFz
cyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUmVjb3Jk
ZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CiBjbGFzcyBSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3MgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTsKK3N0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uOwog
CiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMgUmVmQ291bnRl
ZDxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPgpAQCAtODgsMTEgKzkyLDE1IEBAIHB1YmxpYzoK
ICAgICBSZW1vdGVDRE1GYWN0b3J5UHJveHkmIGNkbUZhY3RvcnlQcm94eSgpOwogI2VuZGlmCiAK
KyAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkoKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9O
KQorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdl
cigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhH
UFVQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bk1hbmFnZXImIHJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7Ci0gICAgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCk7CiAj
aWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgTGliV2ViUlRDQ29kZWNz
UHJveHkmIGxpYldlYlJUQ0NvZGVjc1Byb3h5KCk7CiAjZW5kaWYKQEAgLTEwNCw2ICsxMTIsMTEg
QEAgcHJpdmF0ZToKICAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBz
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAjZW5kaWYKICNlbmRpZgorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eSYgYXVkaW9TZXNzaW9uUHJveHkoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBj
cmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICB2
b2lkIHJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsK
ICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTExMSw2ICsxMjQsMTEgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHNldE5vd1BsYXlpbmdJbmZvKGJvb2wgc2V0QXNOb3dQbGF5aW5nQXBwbGljYXRpb24sIGNv
bnN0IFdlYkNvcmU6Ok5vd1BsYXlpbmdJbmZvJik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgdXNpbmcgRW5zdXJlQXVkaW9TZXNz
aW9uQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbiYpPjsKKyAgICB2b2lkIGVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1
cmVBdWRpb1Nlc3Npb25Db21wbGV0aW9uJiYpOworI2VuZGlmCisKICAgICAvLyBJUEM6OkNvbm5l
Y3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgZmluYWw7
CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbWVzc2FnZU5hbWUpIGZpbmFsOwpAQCAtMTQ5LDYgKzE2Nyw5IEBAIHByaXZhdGU6CiAjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ0RNRmFj
dG9yeVByb3h5PiBtX2NkbUZhY3RvcnlQcm94eTsKICNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5PiBtX2F1ZGlvU2Vzc2lvblByb3h5OworI2VuZGlmCiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOGQ5MWNl
MmJjZGJkYWVjZmMyNTcxMDNjZGFjZTY5NjU0Y2M0OGQzOS4uNWFiNDE3MmVkMzE0N2YyNmE5MDM3
ZGJjOTg4NWE5N2YxZTgwOWNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI5
LDYgKzI5LDcgQEAgbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBXYW50c0Rp
c3BhdGNoTWVzc2FnZSB7CiAgICAgdm9pZCBDbGVhck5vd1BsYXlpbmdJbmZvKCk7CiAgICAgdm9p
ZCBTZXROb3dQbGF5aW5nSW5mbyhib29sIHNldEFzTm93UGxheWluZ0FwcGxpY2F0aW9uLCBzdHJ1
Y3QgV2ViQ29yZTo6Tm93UGxheWluZ0luZm8gbm93UGxheWluZ0luZm8pOwogI2VuZGlmCisgICAg
RW5zdXJlQXVkaW9TZXNzaW9uKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
bkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikgU3luY2hyb25vdXMKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNw
cAppbmRleCAwZTdiZDA5YmVhNWQxMjNhNDA3ZWNmYjlkMzlmNzI0MGY1YjNjN2I5Li42MDM3MDA1
OWNkMTQ5NTUzNmVmNDVjZjQ5NjQ1MmRkNDFlMjRlNDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQXV4aWxpYXJ5
UHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJHUFVQbGF0Zm9ybVN0cmF0
ZWdpZXMuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5j
bHVkZSAiR1BVUHJvY2Vzc1Nlc3Npb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgpAQCAtNTEsNiArNTIsMTAgQEAKICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBV
U0UoQVVESU9fU0VTU0lPTikKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCkBAIC0xMTAsNiArMTE1LDggQEAgdm9pZCBHUFVQcm9jZXNzOjppbml0aWFsaXplR1BV
UHJvY2VzcyhHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBX
VEY6OlRocmVhZDo6c2V0Q3VycmVudFRocmVhZElzVXNlckluaXRpYXRlZCgpOwogICAgIEF0b21T
dHJpbmc6OmluaXQoKTsKIAorICAgIEdQVVBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgp
OworCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOwogI2VuZGlmCkBA
IC0yMTIsNiArMjE5LDE1IEBAIGNvbnN0IFN0cmluZyYgR1BVUHJvY2Vzczo6bWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGNvCiB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCitSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXImIEdQVVByb2Nlc3M6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKSBj
b25zdAoreworICAgIGlmICghbV9hdWRpb1Nlc3Npb25NYW5hZ2VyKQorICAgICAgICBtX2F1ZGlv
U2Vzc2lvbk1hbmFnZXIgPSBXVEY6Om1ha2VVbmlxdWU8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyPigpOworICAgIHJldHVybiAqbV9hdWRpb1Nlc3Npb25NYW5hZ2VyOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKaW5kZXggNmZhMDIwMTRiOTQ3ODFl
YTk5ZTAzNWRiM2FkNzlkNjVhMjRmMjg3Yi4uNDNhYWUxYTEyYjViODg1YjI2YzU2ZGRmMTUyOTYw
ZjAyMjdjNTIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCkBAIC00MCw2
ICs0MCw3IEBAIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiBzdHJ1Y3QgR1BVUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBHUFVQcm9jZXNzU2Vzc2lvblBhcmFtZXRl
cnM7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyOwogCiBjbGFzcyBHUFVQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nl
c3MsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxHUFVQcm9jZXNzPiwgcHVibGljIENhbk1h
a2VXZWFrUHRyPEdQVVByb2Nlc3M+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHUFVQcm9j
ZXNzKTsKQEAgLTYzLDYgKzY0LDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG1lZGlh
S2V5c1N0b3JhZ2VEaXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpIGNvbnN0OworI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsKTsKIApA
QCAtMTAzLDYgKzEwOCw5IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9z
dGluZ0NvbnRleHQ+IG1fY29udGV4dEZvclZpc2liaWxpdHlQcm9wYWdhdGlvbjsKICAgICBib29s
IG1fY2FuU2hvd1doaWxlTG9ja2VkIHsgZmFsc2UgfTsKICNlbmRpZgorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyPiBtX2F1ZGlvU2Vzc2lvbk1hbmFnZXI7
CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWFmYzQ5ZGU4OWRlMWFjZTQ2YWMxNjdmODU4NDY4MDMzNjUyZGM5MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eS5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJS
ZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1VuaXF1ZVJlZjxSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eT4gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNyZWF0ZShHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uKQoreworICAgIHJldHVybiBtYWtlVW5pcXVl
UmVmPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PihncHVDb25uZWN0aW9uKTsKK30KKworUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHk6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb24pCisgICAgOiBtX2dwdUNvbm5lY3Rpb24oZ3B1Q29u
bmVjdGlvbikKK3sKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6On5SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eSgpID0gZGVmYXVsdDsKKworV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OnByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICByZXR1cm4g
bV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisKK1JlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbmZpZ3VyYXRp
b24oKQoreworICAgIGF1dG8mIHNlc3Npb24gPSBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2Vzc2lv
bigpOworICAgIHJldHVybiB7CisgICAgICAgIHNlc3Npb24uY2F0ZWdvcnkoKSwKKyAgICAgICAg
c2Vzc2lvbi5yb3V0ZVNoYXJpbmdQb2xpY3koKSwKKyAgICAgICAgc2Vzc2lvbi5yb3V0aW5nQ29u
dGV4dFVJRCgpLAorICAgICAgICBzZXNzaW9uLnNhbXBsZVJhdGUoKSwKKyAgICAgICAgc2Vzc2lv
bi5idWZmZXJTaXplKCksCisgICAgICAgIHNlc3Npb24ubnVtYmVyT2ZPdXRwdXRDaGFubmVscygp
LAorICAgICAgICBzZXNzaW9uLnByZWZlcnJlZEJ1ZmZlclNpemUoKSwKKyAgICAgICAgc2Vzc2lv
bi5pc011dGVkKCksCisgICAgICAgIG1fYWN0aXZlCisgICAgfTsKK30KKwordm9pZCBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6c2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGUgY2F0ZWdvcnksIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7
CisgICAgbV9jYXRlZ29yeSA9IGNhdGVnb3J5OworICAgIG1fcm91dGVTaGFyaW5nUG9saWN5ID0g
cG9saWN5OworICAgIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXRDYXRlZ29yeUZvclByb2Nlc3Mo
bV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIGNhdGVnb3J5LCBwb2xpY3kp
OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpzZXRQcmVmZXJyZWRCdWZmZXJT
aXplKHVpbnQ2NF90IHNpemUpCit7CisgICAgbV9wcmVmZXJyZWRCdWZmZXJTaXplID0gc2l6ZTsK
KyAgICBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nl
c3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIHNpemUpOworfQorCit2
b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1NldEFjdGl2ZShib29sIGFjdGl2ZSwg
U2V0QWN0aXZlQ29tcGxldGlvbiYmIGNvbXBsZXRpb24pCit7CisgICAgbV9hY3RpdmUgPSBhdWRp
b1Nlc3Npb25NYW5hZ2VyKCkudHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKG1fZ3B1Q29ubmVjdGlv
bi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCBhY3RpdmUpOworICAgIGNvbXBsZXRpb24obV9hY3Rp
dmUpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbkludGVycnVwdGlv
bihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQor
eworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246OkJl
Z2luSW50ZXJydXB0aW9uKHR5cGUpLCB7IH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjplbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVu
ZEludGVycnVwdGlvbkZsYWdzIGZsYWdzKQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246OkVuZEludGVycnVwdGlvbihmbGFncyksIHsgfSk7Cit9
CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKQoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb24u
Z3B1UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKTsKK30KKworSVBDOjpDb25uZWN0aW9u
JiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1f
Z3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVjZDJjNmMzN2MxNzk2NGUwYmM4ZGZhNzIxMzY0OTkyMWQ4NDkzYzEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQor
CisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNz
aW9uQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1l
c3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CisKK2NsYXNzIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5CisgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICAs
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4geworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7
CisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoKTsKKworICAgIFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKCk7CisgICAgUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKCk7CisKKyAgICBXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0IHsgcmV0dXJuIG1fY2F0ZWdv
cnk7IH07CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGlj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAgc2l6ZV90IHBy
ZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcnJlZEJ1ZmZlclNpemU7
IH0KKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KKworICAg
IHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Oklu
dGVycnVwdGlvblR5cGUpOworICAgIHZvaWQgZW5kSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyk7CisKKyAgICAvLyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4mKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgVW5pcXVlUmVmPFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5PiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNr
PFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7Cisg
ICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwor
CisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIHNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIHZv
aWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCk7CisgICAgdXNpbmcgU2V0QWN0aXZl
Q29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+OworICAgIHZvaWQgdHJ5
VG9TZXRBY3RpdmUoYm9vbCwgU2V0QWN0aXZlQ29tcGxldGlvbiYmKTsKKworICAgIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpOworICAgIElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOworCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgbV9ncHVDb25uZWN0aW9uOworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlIG1fY2F0ZWdvcnk7CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IG1fcm91dGVT
aGFyaW5nUG9saWN5OworICAgIHNpemVfdCBtX3ByZWZlcnJlZEJ1ZmZlclNpemUgeyAwIH07Cisg
ICAgYm9vbCBtX2FjdGl2ZSB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZjNiYWU4MjQzZmFhNTQ1NTJi
YmZmMDRkOWE2ZWI4NTJiNjA2MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShB
VURJT19TRVNTSU9OKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSBOb3RS
ZWZDb3VudGVkIHsKKyAgICBTZXRDYXRlZ29yeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGUgdHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlJvdXRlU2hh
cmluZ1BvbGljeSBwb2xpY3kpCisgICAgU2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCBw
cmVmZXJyZWRCdWZmZXJTaXplKQorICAgIFRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlKSAtPiAo
Ym9vbCBzdWNlZWRlZCkgU3luY2hyb25vdXMKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNmI0ZWYyMTFmMmEzODMwNzA1NGM1MTI2MWI3
MTYxZmM3ZDA4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDE5MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNF
KEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hDb3Vu
dGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworc3RhdGljIGJvb2wgY2F0ZWdvcnlDYW5NaXhXaXRoT3RoZXJzKEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQoreworICAgIHJldHVybiBjYXRlZ29yeSA9PSBBdWRpb1Nl
c3Npb246OkFtYmllbnRTb3VuZDsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKQorICAgIDogbV9zZXNzaW9uKEF1ZGlv
U2Vzc2lvbjo6Y3JlYXRlKCkpCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
cjo6flJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpID0gZGVmYXVsdDsKKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmFkZFByb3h5KFdlYWtQdHI8UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHk+JiYgcHJveHkpCit7CisgICAgYXV0byBpZCA9IHByb3h5LT5wcm9jZXNz
SWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7CisgICAg
bV9wcm94aWVzLnNldChpZCwgV1RGTW92ZShwcm94eSkpOworfQorCit2b2lkIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXIm
IGlkKQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3Byb3hp
ZXMucmVtb3ZlKGlkKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkqIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcjo6Z2V0UHJveHkoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlk
KQoreworICAgIGF1dG8gcmVzdWx0cyA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAgICBpZiAocmVz
dWx0cyAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIHJldHVybiByZXN1bHRzLT52YWx1ZS5n
ZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyhjb25zdCBQcm9jZXNzSWRlbnRpZmll
ciYgaWQsIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQ
b2xpY3kgcG9saWN5KQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAg
ICBhdXRvIHByb3h5ID0gZ2V0UHJveHkoaWQpOworICAgIGlmICghcHJveHkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChwcm94eS0+Y2F0ZWdvcnkoKSA9PSBjYXRlZ29yeSAmJiBwcm94eS0+
cm91dGVTaGFyaW5nUG9saWN5KCkgPT0gcG9saWN5KQorICAgICAgICByZXR1cm47CisKKyAgICBI
YXNoQ291bnRlZFNldDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgV1RGOjpJbnRIYXNoPEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZT4+IGNhdGVnb3J5Q291bnRzOworICAgIEhhc2hDb3VudGVk
U2V0PFJvdXRlU2hhcmluZ1BvbGljeSwgV1RGOjpJbnRIYXNoPFJvdXRlU2hhcmluZ1BvbGljeT4s
IFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8Um91dGVTaGFyaW5nUG9saWN5Pj4gcG9saWN5Q291
bnRzOworICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1ZXMoKSkgewor
ICAgICAgICBjYXRlZ29yeUNvdW50cy5hZGQob3RoZXJQcm94eS0+Y2F0ZWdvcnkoKSk7CisgICAg
ICAgIHBvbGljeUNvdW50cy5hZGQob3RoZXJQcm94eS0+cm91dGVTaGFyaW5nUG9saWN5KCkpOwor
ICAgIH0KKworICAgIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OlBs
YXlBbmRSZWNvcmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJl
Y29yZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246
OlJlY29yZEF1ZGlvKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlJlY29yZEF1
ZGlvOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6
TWVkaWFQbGF5YmFjaykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpNZWRpYVBs
YXliYWNrOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lv
bjo6U29sb0FtYmllbnRTb3VuZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpT
b2xvQW1iaWVudFNvdW5kOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1
ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Np
b246OkFtYmllbnRTb3VuZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhB
dWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9T
ZXNzaW9uOjpBdWRpb1Byb2Nlc3Npbmc7CisgICAgZWxzZQorICAgICAgICBjYXRlZ29yeSA9IEF1
ZGlvU2Vzc2lvbjo6Tm9uZTsKKworICAgIGlmIChwb2xpY3lDb3VudHMuY29udGFpbnMoUm91dGVT
aGFyaW5nUG9saWN5OjpMb25nRm9ybVZpZGVvKSkKKyAgICAgICAgcG9saWN5ID0gUm91dGVTaGFy
aW5nUG9saWN5OjpMb25nRm9ybVZpZGVvOworICAgIGVsc2UgaWYgKHBvbGljeUNvdW50cy5jb250
YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW8pKQorICAgICAgICBwb2xpY3kg
PSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW87CisgICAgZWxzZSBpZiAocG9saWN5
Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQpKQorICAgICAg
ICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkluZGVwZW5kZW50OworICAgIGVsc2UKKyAg
ICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0OworCisgICAgbV9zZXNz
aW9uLT5zZXRDYXRlZ29yeShjYXRlZ29yeSwgcG9saWN5KTsKK30KKwordm9pZCBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKGNv
bnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUpCit7
CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAg
ICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAo
b3RoZXJQcm94eS0+cHJlZmVycmVkQnVmZmVyU2l6ZSgpIDwgcHJlZmVycmVkQnVmZmVyU2l6ZSkK
KyAgICAgICAgICAgIHByZWZlcnJlZEJ1ZmZlclNpemUgPSBvdGhlclByb3h5LT5wcmVmZXJyZWRC
dWZmZXJTaXplKCk7CisgICAgfQorCisgICAgbV9zZXNzaW9uLT5zZXRQcmVmZXJyZWRCdWZmZXJT
aXplKHByZWZlcnJlZEJ1ZmZlclNpemUpOworfQorCitib29sIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcjo6dHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlm
aWVyJiBpZCwgYm9vbCBhY3RpdmUpCit7CisgICAgQVNTRVJUKG1fcHJveGllcy5jb250YWlucyhp
ZCkpOworICAgIGF1dG8gcHJveHkgPSBnZXRQcm94eShpZCk7CisgICAgaWYgKCFwcm94eSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc2l6ZV90IGFjdGl2ZVByb3h5Q291bnQgeyAwIH07
CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAg
ICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAo
b3RoZXJQcm94eS0+aXNBY3RpdmUoKSkKKyAgICAgICAgICAgICsrYWN0aXZlUHJveHlDb3VudDsK
KyAgICB9CisKKyAgICBpZiAoIWFjdGl2ZSAmJiBhY3RpdmVQcm94eUNvdW50ID4gMSkgeworICAg
ICAgICAvLyBUaGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBidXQgb3RoZXIgcHJveGll
cyBhcmUgc3RpbGwKKyAgICAgICAgLy8gYWN0aXZlLiBOby1vcCwgYW5kIHJldHVybiBkZWFjdGl2
YXRpb24gd2FzIHN1Y2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
aWYgKCFhY3RpdmUpIHsKKyAgICAgICAgLy8gVGhpcyBwcm94eSB3YW50cyB0byBkZS1hY3RpdmF0
ZSwgYW5kIGlzIHRoZSBsYXN0IHJlbWFpbmluZyBhY3RpdmUKKyAgICAgICAgLy8gcHJveHkuIERl
YWN0aXZhdGUgdGhlIHNlc3Npb24sIGFuZCByZXR1cm4gd2hldGhlciB0aGF0IGRlYWN0aXZhdGlv
bgorICAgICAgICAvLyB3YXMgc3VjZXNzZnVsOworICAgICAgICByZXR1cm4gbV9zZXNzaW9uLT50
cnlUb1NldEFjdGl2ZShmYWxzZSk7CisgICAgfQorCisgICAgaWYgKGFjdGl2ZSAmJiAhYWN0aXZl
UHJveHlDb3VudCkgeworICAgICAgICAvLyBUaGlzIHByb3h5IGFuZCBvbmx5IHRoaXMgcHJveHkg
d2FudHMgdG8gYmVjb21lIGFjdGl2ZS4gQWN0aXZhdGUKKyAgICAgICAgLy8gdGhlIHNlc3Npb24s
IGFuZCByZXR1cm4gd2hldGhlciB0aGF0IGFjdGl2YXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAg
ICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGFjdGl2ZSk7CisgICAgfQorCisg
ICAgLy8gSWYgdGhpcyBwcm94eSBpcyBBbWJpZW50LCBhbmQgdGhlIHNlc3Npb24gaXMgYWxyZWFk
eSBhY3RpdmUsIHRoaXMKKyAgICAvLyBwcm94eSB3aWxsIG1peCB3aXRoIHRoZSBhY3RpdmUgcHJv
eGllcy4gTm8tb3AsIGFuZCByZXR1cm4gYWN0aXZhdGlvbgorICAgIC8vIHdhcyBzdWNlc3NmdWwu
CisgICAgaWYgKGNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyhwcm94eS0+Y2F0ZWdvcnkoKSkpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBP
dGhlcndpc2UsIHRoaXMgcHJveHkgd2FudHMgdG8gYmVjb21lIGFjdGl2ZSwgYnV0IHRoZXJlIGFy
ZSBvdGhlcgorICAgIC8vIHByb3hpZXMgd2hvIGFyZSBhbHJlYWR5IGFjdGl2ZS4gV2FsayBvdmVy
IHRoZSBwcm94aWVzLCBhbmQgaW50ZXJydXB0CisgICAgLy8gdGhvc2UgcHJveGllcyB3aG9zZSBj
YXRlb2dyaWVzIGluZGljYXRlIHRoZXkgY2Fubm90IG1peCB3aXRoIG90aGVycy4KKyAgICBmb3Ig
KGF1dG8mIG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFv
dGhlclByb3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghb3RoZXJQcm94
eS0+aXNBY3RpdmUoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChjYXRl
Z29yeUNhbk1peFdpdGhPdGhlcnMob3RoZXJQcm94eS0+Y2F0ZWdvcnkoKSkpCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBvdGhlclByb3h5LT5iZWdpbkludGVycnVwdGlvbihQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVtSW50ZXJydXB0aW9uKTsK
KyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiB0cnVlOworCit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhN2Y3NjFmNmIxZTg1YmE3
MTU4ZTBiZGY0MGM1ZmMyM2JhYTE3YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaApAQCAtMCww
ICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nl
c3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTsKKworY2xhc3Mg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyCisgICAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyPiB7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCk7
CisgICAgflJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpOworCisgICAgdm9pZCBhZGRQ
cm94eShXZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiYmKTsKKyAgICB2b2lkIHJlbW92
ZVByb3h5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJik7CisgICAgUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkqIGdldFByb3h5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
Jik7CisKKyAgICB2b2lkIHNldENhdGVnb3J5Rm9yUHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciYsIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6
ZUZvclByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImLCBzaXplX3QpOwor
CisgICAgdXNpbmcgU2V0QWN0aXZlQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+OworICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyJiwgYm9vbCk7CisKKyAgICBjb25zdCBXZWJDb3JlOjpBdWRpb1Nl
c3Npb24mIHNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb247IH0KKworcHJpdmF0ZToK
KyAgICBVbmlxdWVSZWY8V2ViQ29yZTo6QXVkaW9TZXNzaW9uPiBtX3Nlc3Npb247CisgICAgSGFz
aE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eT4+IG1fcHJveGllczsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGIzZGVjN2NkMzlk
MDEwMmI4NWYwZjk1ZGY0ZTQzMGY5YWUxM2ZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNz
YWdlcy5pbgpAQCAtMCwwICsxLDI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMjU2ZGM5OTA1YmY0NDY2ZDBjMmFkNTc0ZDhjMzY4
YTE0YmU2OTYzYS4uNGJhMTRkYmFmMjRiMjQxZTU5ZGIwYTdmMjA4MGQwMmQwMjdjM2IwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMzQsNiArMjM0LDcg
QEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAg
J1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpSZW1vdGVBdWRp
b1Nlc3Npb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3RlQ0RNSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlSWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50aWZpZXInLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBkMDdmMmJmNWIy
MWI2MjBiOTE5ODEwMTk5NDBlMjc0NGVkMjUwMGNkLi42NzUyY2I2ZDQ1ZTVhZjAwNWVmZjgyN2E3
NjZiYTNiYjFiM2E4ZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaApAQCAtNjEsNiArNjEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NETUluc3Rh
bmNlU2Vzc2lvbi5oPgogI2VuZGlmCiAKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyNpbmNsdWRl
IDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkK
IG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTWFjaFNlbmRSaWdodDsKQEAgLTEwMjUsNCArMTAyOSwx
OSBAQCB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDRE1JbnN0YW5jZTo6
SERDUFN0YXR1cz4gewogCiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKQordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpT
b2xvQW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpNZWRpYVBsYXliYWNrLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpSZWNvcmRBdWRpbywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
UGxheUFuZFJlY29yZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QXVkaW9Qcm9jZXNzaW5nCisgICAgPjsKK307CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKaW5kZXggNDM2YmMyNjM0ZjEwZGQwM2JkOTFmMjUyZjk3YzI2ODdmMDVmNzliNS4uMjUy
YzhmYWRhZmUxZWJhMDM5MzZmOWE5MmNkYmVlYmRmOTQyNTg1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTI0LDYg
KzEyNCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29s
IGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbWVtb3J5Q2Fj
aGVEaXNhYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkIHsgZmFsc2Ug
fTsKKyAgICBib29sIHVzZUdQVVByb2Nlc3NGb3JNZWRpYSB7IGZhbHNlIH07CiAKICNpZiBFTkFC
TEUoU0VSVklDRV9DT05UUk9MUykKICAgICBib29sIGhhc0ltYWdlU2VydmljZXMgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggMGZiYTU0OThhZGRlZTAzY2U4Yjk1N2QyODVkYzQxZDE0ODdjODZk
Yi4uY2ViNWRlODI2NDk3MTNjZWVlMWJmOTc0NzUwODVjYWYzNTVjNGExYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC0yMiwxMSArMjIsMTQgQEAKIC8vIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAorR1BVUHJvY2Vzcy9HUFVQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQ
cm9jZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAKIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCitHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5LmNwcAorR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXIuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eS5jcHAK
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5jcHAKIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkuY3BwCkBAIC01NDcsNiArNTUwLDcg
QEAgV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKIFdl
YlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RN
LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeS5jcHAKIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cmlu
ZGV4IDkyNjliMGEzYmFmNTk0ZjMzY2RlZDlmNTRiZTdmOTJmZWQwYjRlODkuLmVkOWY0NGJiOWYy
MmUzYzI0ZjFkMmQ5ODA1ODMyMWE4MTBmNzlkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAg
LTY1Niw2ICs2NTYsOCBAQCBMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
IExpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNw
cAorUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90
ZU1lZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlODlkZTY5ODk0NzRiZjg5MWIyNjEx
NjExNmMxZGIwZDZhZjk5ZDA0Li5kMTlkNzA1ZDNiODZhZDMwNmJkOTBkYzBhMTk5ZDQ2ZDZiZTMx
ZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTE3NDUsNiArMTc0NSw4IEBACiAJCUNEQUMyMEY4MjNGQzcyNkMwMDIxREVFMyAvKiBS
ZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEY1MjNGQzM4M0IwMDIxREVFMyAv
KiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0RB
QzIwRjkyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEQUMyMEVDMjNGQzM4MzgwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Np
b25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNEQUMyMEZBMjNGQzcyNkMwMDIx
REVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREFDMjBFRjIzRkMzODM5MDAyMURFRTMg
LyogUmVtb3RlQ0RNUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDREJCNDlGMDI0
MEQ1N0QyMDAxN0MyOTIgLyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREJCNDlFRTI0MEQ1N0QyMDAxN0MyOTIg
LyogR1BVUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87IH07CisJCUNEQkI0OUZEMjQwRDlBNzIwMDE3
QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIg
LyogUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovOyB9OwogCQlDREMyODMxRDIw
MUJENzlEMDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMyODMxQjIwMUJENzlEMDBFNkU3NDUg
LyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggKi87IH07CiAJCUNEQ0E4NUM5MTMyQUJBNEUwMEU5
NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyog
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICovOyB9OwogCQlDRTExQUQ1MjFDQkM0ODJG
MDA2ODFFRTUgLyogQ29kZVNpZ25pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENFMTFBRDUxMUNCQzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5o
ICovOyB9OwpAQCAtNTEwMyw2ICs1MTA1LDE3IEBACiAJCUNEQUMyMEY0MjNGQzM4M0EwMDIxREVF
MyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUNETVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RBQzIwRjUyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNEQUMyMEY2MjNGQzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0
YW5jZVByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RUUyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBsYXRmb3Jt
U3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RUYyNDBENTdEMjAwMTdDMjkyIC8qIEdQ
VVBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGNDI0MEQ4
QUM2MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZUF1ZGlvU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGNTI0
MEQ4QUM2MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEQkI0OUY2MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDREJCNDlGNzI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGODI0MEQ4RDUzMDAxN0My
OTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEQkI0OUY5MjQwRDk2M0MwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZBMjQwRDk2M0QwMDE3QzI5MiAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RCQjQ5RkIyNDBEOTc0QTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50
aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIgLyog
UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVB
dWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEQzI4MzFCMjAxQkQ3OUQwMEU2RTc0NSAvKiBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lmg7IHBhdGggPSBpb3MvZnVsbHNjcmVl
bi9XS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RDMjgzMUMyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmlldy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFdLRnVsbHNjcmVlblN0YWNrVmlldy5tbTsgcGF0aCA9IGlvcy9m
dWxsc2NyZWVuL1dLRnVsbHNjcmVlblN0YWNrVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RDMzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFtZXdvcmsg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVy
LmZyYW1ld29yazsgbmFtZSA9IENGTmV0d29yay5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xp
YnJhcnkvRnJhbWV3b3Jrcy9DRk5ldHdvcmsuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNv
bHV0ZT4iOyB9OwpAQCAtNTExMCw2ICs1MTIzLDE3IEBACiAJCUNEQ0E4NUM2MTMyQUJBNEUwMEU5
NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1QzcxMzJBQkE0RTAwRTk2MURGIC8q
IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRENBODVENDEzMkFDMkIzMDBFOTYxREYgLyogSU9LaXQuZnJhbWV3b3Jr
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBl
ci5mcmFtZXdvcms7IG5hbWUgPSBJT0tpdC5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9JT0tpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7
IH07CisJCUNERDUzNTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24ubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3MDI0MERENEVGMDBGN0I4QzQgLyogUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0RENTM1NzEyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1
NzIyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3MzI0MERERTA2MDBGN0I4QzQgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc0MjQwRERFMDcwMEY3QjhDNCAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNERDUzNTc1MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3NjI0MERERTA3MDBGN0I4QzQgLyogUmVt
b3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNERDUzNTc3MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1
MzU3ODI0MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzkyNDBEREUwODAw
RjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UxMUFENEYxQ0JDNDdGODAw
NjgxRUU1IC8qIENvZGVTaWduaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gQ29kZVNpZ25pbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNF
MTFBRDUxMUNCQzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDb2RlU2lnbmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRTFBMEJDQzFBNDhFNkM2MDA1NEVGNzQgLyogQXNzZXJ0aW9uU2VydmljZXNTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXNzZXJ0aW9uU2VydmljZXNTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzODksNiArNTQxMywxMSBAQAogCQkJCTlC
NUJFQzI5MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3Bw
ICovLAogCQkJCTlCNUJFQzI4MjQwMTAxNTgwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHkuaCAqLywKIAkJCQk5QjVCRUMyRTI0MDEwMThDMDA3MEM2RUYgLyogUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCUNEQkI0OUY1MjQwRDhBQzYw
MDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uY3BwICovLAorCQkJCUNEQkI0OUY0MjQwRDhB
QzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uaCAqLywKKwkJCQlDREQ1MzU2RjI0MERE
MzQzMDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluICovLAorCQkJCUNE
QkI0OUZDMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
LmggKi8sCisJCQkJQ0RCQjQ5RkIyNDBEOTc0QTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
bklkZW50aWZpZXIuaCAqLywKIAkJCQlDREFDMjBCRjIzRkMyRjc1MDAyMURFRTMgLyogUmVtb3Rl
Q0RNLmNwcCAqLywKIAkJCQlDREFDMjBCQTIzRkMyRjc0MDAyMURFRTMgLyogUmVtb3RlQ0RNLmgg
Ki8sCiAJCQkJQ0RBQzIwQjgyM0ZDMkY3MzAwMjFERUUzIC8qIFJlbW90ZUNETUNvbmZpZ3VyYXRp
b24uaCAqLywKQEAgLTU0MzEsNiArNTQ2MCwxMiBAQAogCQkJCTlCMTIyOUNDMjNGRjI1RjIwMDhD
QTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOUIxMjI5
Q0IyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggKi8s
CiAJCQkJOUIxMjI5Q0YyM0ZGMjgxNDAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJCUNEQkI0OUY3MjQwRDhDOTUwMDE3QzI5MiAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAgKi8sCisJCQkJQ0RCQjQ5RjYyNDBEOEM5NTAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmggKi8sCisJCQkJQ0RCQjQ5RjgyNDBEOEQ1
MzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJ
CUNEQkI0OUZBMjQwRDk2M0QwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIuY3BwICovLAorCQkJCUNEQkI0OUY5MjQwRDk2M0MwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIuaCAqLywKKwkJCQlDREQ1MzU3MDI0MERENEVGMDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTA3MUJD
NTdFMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwICovLAogCQkJ
CTA3MUJDNTdGMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCAqLywK
IAkJCQlDREFDMjA3OTIzRkIxRTIxMDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmNw
cCAqLywKQEAgLTY3MTgsNiArNjc1Myw4IEBACiAJCQkJMkQ5RkIyMEMyMzc1MjA5RDAwNDlGOTM2
IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovLAogCQkJCTJEOUZCMjAwMjM3NTIw
OUQwMDQ5RjkzNiAvKiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggKi8sCiAJCQkJMkQ5RkIy
MDkyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4gKi8sCisJCQkJQ0RCQjQ5RUYyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAgKi8sCisJCQkJQ0RCQjQ5RUUyNDBENTdEMjAwMTdDMjkyIC8qIEdQVVBsYXRmb3Jt
U3RyYXRlZ2llcy5oICovLAogCQkJCTJEOUZCMjAxMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9j
ZXNzLmNwcCAqLywKIAkJCQkyRDlGQjIxNTIzNzUyMDlEMDA0OUY5MzYgLyogR1BVUHJvY2Vzcy5o
ICovLAogCQkJCTJEOUZCMjAyMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9jZXNzLm1lc3NhZ2Vz
LmluICovLApAQCAtOTg1MCw2ICs5ODg3LDE1IEBACiAJCQkJMUEwNDNCNUMxMjRENUU5RDAwRkZC
RkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMUE4RUZBNkUxMjUy
Qjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkx
QThFRkE2RjEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlcy5oICovLAorCQkJ
CUNERDUzNTc2MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTc1MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRp
b1Nlc3Npb25NZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc0MjQwRERFMDcwMEY3QjhDNCAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQlDREQ1MzU3MzI0MERE
RTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKKwkJCQlDREQ1MzU3ODI0MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQlDREQ1MzU3OTI0MERERTA4MDBG
N0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgg
Ki8sCisJCQkJQ0RENTM1NzEyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDREQ1MzU3MjI0MERERTA2MDBGN0I4QzQg
LyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc3MjQw
RERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzUmVwbGllcy5o
ICovLAogCQkJCUNEQUMyMEYyMjNGQzM4M0EwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQUMyMEYzMjNGQzM4M0EwMDIxREVFMyAv
KiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNEQUMyMEVFMjNGQzM4
MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywK
QEAgLTEwNTU1LDYgKzEwNjAxLDcgQEAKIAkJCQlCQzA2RjQ0QTEyREJEMUY1MDAyRDc4REUgLyog
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMwNkY0M0ExMkRCQ0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBOTQ0QTQxODg0RTRGMDAwRUQ4NkRC
IC8qIEdlc3R1cmVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RCQjQ5RjAyNDBENTdEMjAw
MTdDMjkyIC8qIEdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRB
MDQ5QjgxODBDQ0QwQTAwQUFGQTlFIC8qIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzBDRTcyQUQxMjQ3RTc4RDAwQkMwRUM0IC8qIEhhbmRsZU1lc3NhZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQzc1QTFCMUIzMzY4MjcwMDU2NzQ1QiAvKiBIYW5nRGV0ZWN0
aW9uRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTA3NzMsNiArMTA4MjAsNyBAQAogCQkJ
CTlCMTIyOUQyMjNGRjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRp
Zmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUIxMjI5Q0QyM0ZGMjVGMjAwOENBNzUxIC8qIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjVCRUMy
QTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDREJCNDlGRDI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNz
aW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzcyM0ZDMkY3NTAw
MjFERUUzIC8qIFJlbW90ZUNETS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzUyM0ZDMkY3
NTAwMjFERUUzIC8qIFJlbW90ZUNETUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQUMyMENEMjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmU1Y2VjOGVhMWI2ODdkNWJkZDcx
N2RjZGMzMzFjNDYxYWRkNTUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCkBAIC0wLDAgKzEsOTkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
ZXNzaW9uLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9O
KQorCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiR1BVUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4gUmVtb3RlQXVkaW9TZXNzaW9uOjpjcmVh
dGUoV2ViUHJvY2VzcyYgcHJvY2VzcykKK3sKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1
cmF0aW9uIGNvbmZpZ3VyYXRpb247CisgICAgcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6RW5zdXJlQXVkaW9TZXNzaW9uKCksIE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpFbnN1cmVBdWRpb1Nlc3Npb246OlJlcGx5KGNvbmZpZ3VyYXRpb24pLCB7IH0p
OworICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4ocHJvY2Vzcywg
V1RGTW92ZShjb25maWd1cmF0aW9uKSk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvbjo6UmVtb3Rl
QXVkaW9TZXNzaW9uKFdlYlByb2Nlc3MmIHByb2Nlc3MsIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCisgICAg
LCBtX2NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKK3sKK30KKworUmVtb3Rl
QXVkaW9TZXNzaW9uOjp+UmVtb3RlQXVkaW9TZXNzaW9uKCkgPSBkZWZhdWx0OworCitJUEM6OkNv
bm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29ubmVjdGlvbigpCit7CisgICAgcmV0dXJu
IG1fcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKK30K
Kwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSB0eXBl
LCBSb3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6U2V0Q2F0ZWdvcnkodHlwZSwgcG9saWN5
KSwgeyB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZl
clNpemUoc2l6ZV90IHNpemUpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemUpLCB7IH0p
OworfQorCitib29sIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChi
b29sIGFjdGl2ZSkKK3sKKyAgICBib29sIHN1Y2NlZWRlZDsKKyAgICBjb25uZWN0aW9uKCkuc2Vu
ZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpUcnlUb1NldEFjdGl2ZShh
Y3RpdmUpLCBNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRyeVRvU2V0QWN0aXZl
OjpSZXBseShzdWNjZWVkZWQpLCB7IH0pOworICAgIHJldHVybiBzdWNjZWVkZWQ7Cit9CisKK3Zv
aWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZChSZW1vdGVBdWRpb1Nl
c3Npb25Db25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBib29sIG11dGVkU3Rh
dGVDaGFuZ2VkID0gY29uZmlndXJhdGlvbi5pc011dGVkICE9IG1fY29uZmlndXJhdGlvbi5pc011
dGVkOworCisgICAgbV9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsKKworICAgIGlmICht
dXRlZFN0YXRlQ2hhbmdlZCkKKyAgICAgICAgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOworfQor
Cit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRp
YVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkKK3sKKyAgICBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5iZWdpbkludGVycnVwdGlvbih0eXBlKTsKK30K
Kwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit7CisgICAgUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZW5kSW50ZXJydXB0aW9uKGZsYWdzKTsK
K30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4ZjhkYzgyM2UzZjAx
MDdjMTkzYmU5NDhiZjdmYjk2OGJjZTc5ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCkBAIC0wLDAgKzEs
ODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
KyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFT
ZXNzaW9uLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgV2Vi
UHJvY2VzczsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uIGZpbmFsCisgICAgOiBwdWJsaWMg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uCisgICAgLCBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxS
ZW1vdGVBdWRpb1Nlc3Npb24+IGNyZWF0ZShXZWJQcm9jZXNzJik7CisgICAgdmlydHVhbCB+UmVt
b3RlQXVkaW9TZXNzaW9uKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxSZW1v
dGVBdWRpb1Nlc3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8
UmVtb3RlQXVkaW9TZXNzaW9uPihXZWJQcm9jZXNzJiwgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmln
dXJhdGlvbiYmKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb24oV2ViUHJvY2VzcyYsIFJlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJik7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uKCk7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAv
LyBNZXNzYWdlcworICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9TZXNz
aW9uQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIGJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlKTsKKyAgICB2b2lkIGVuZElu
dGVycnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9u
RmxhZ3MpOworCisgICAgLy8gQXVkaW9TZXNzaW9uCisgICAgdm9pZCBzZXRDYXRlZ29yeShDYXRl
Z29yeVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSkgZmluYWw7CisgICAgdm9pZCBz
ZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCkgZmluYWw7CisgICAgYm9vbCB0cnlUb1NldEFj
dGl2ZUludGVybmFsKGJvb2wpIGZpbmFsOworCisgICAgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmNhdGVnb3J5OyB9CisgICAgV2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5yb3V0ZVNoYXJpbmdQb2xpY3k7IH0KKyAgICBTdHJp
bmcgcm91dGluZ0NvbnRleHRVSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRp
b24ucm91dGluZ0NvbnRleHRVSUQ7IH0KKyAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnNhbXBsZVJhdGU7IH0KKyAgICBzaXplX3QgYnVm
ZmVyU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5idWZmZXJTaXpl
OyB9CisgICAgc2l6ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2NvbmZpZ3VyYXRpb24ubnVtYmVyT2ZPdXRwdXRDaGFubmVsczsgfQorICAgIHNpemVf
dCBwcmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0
aW9uLnByZWZlcnJlZEJ1ZmZlclNpemU7IH0KKyAgICBib29sIGlzTXV0ZWQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uaXNNdXRlZDsgfQorICAgIGJvb2wgaXNBY3RpdmUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uaXNBY3RpdmU7IH0KKworICAg
IFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0
aW9uIG1fY29uZmlndXJhdGlvbjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4OTYyOGY2NTdlZjdjZGJjZGJhNzc5ZDQxZGI5
OWJjYTVkNDRiMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJ
T04pCisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvbiBOb3RSZWZDb3VudGVkIHsKKyAg
ICBDb25maWd1cmF0aW9uQ2hhbmdlZChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgQmVnaW5JbnRlcnJ1cHRpb24oZW51bTp1
aW50OF90IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5
cGUpCisgICAgRW5kSW50ZXJydXB0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Db25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTZjNDM2MmVk
OTVhYTZjNTAxY2QwYTZhMjAzZDJiNWVhNzFmMGI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0
aW9uLmgKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFJl
bW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24geworCisgICAgV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnk7CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9s
aWN5IHJvdXRlU2hhcmluZ1BvbGljeTsKKyAgICBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQ7Cisg
ICAgZmxvYXQgc2FtcGxlUmF0ZTsKKyAgICB1aW50NjRfdCBidWZmZXJTaXplOworICAgIHVpbnQ2
NF90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAgdWludDY0X3QgcHJlZmVycmVkQnVmZmVy
U2l6ZTsKKyAgICBib29sIGlzTXV0ZWQ7CisgICAgYm9vbCBpc0FjdGl2ZTsKKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgY2F0ZWdvcnk7CisgICAgICAgIGVuY29kZXIg
PDwgcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBlbmNvZGVyIDw8IHJvdXRpbmdDb250ZXh0
VUlEOworICAgICAgICBlbmNvZGVyIDw8IHNhbXBsZVJhdGU7CisgICAgICAgIGVuY29kZXIgPDwg
YnVmZmVyU2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBudW1iZXJPZk91dHB1dENoYW5uZWxzOwor
ICAgICAgICBlbmNvZGVyIDw8IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgICAgIGVuY29kZXIg
PDwgaXNNdXRlZDsKKyAgICAgICAgZW5jb2RlciA8PCBpc0FjdGl2ZTsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9uYWw8UmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAg
ICAgICBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gY2F0ZWdv
cnk7CisgICAgICAgIGRlY29kZXIgPj4gY2F0ZWdvcnk7CisgICAgICAgIGlmICghY2F0ZWdvcnkp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPFdl
YkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBk
ZWNvZGVyID4+IHJvdXRlU2hhcmluZ1BvbGljeTsKKyAgICAgICAgaWYgKCFyb3V0ZVNoYXJpbmdQ
b2xpY3kpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlv
bmFsPFN0cmluZz4gcm91dGluZ0NvbnRleHRVSUQ7CisgICAgICAgIGRlY29kZXIgPj4gcm91dGlu
Z0NvbnRleHRVSUQ7CisgICAgICAgIGlmICghcm91dGluZ0NvbnRleHRVSUQpCisgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGZsb2F0PiBzYW1wbGVS
YXRlOworICAgICAgICBkZWNvZGVyID4+IHNhbXBsZVJhdGU7CisgICAgICAgIGlmICghc2FtcGxl
UmF0ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9u
YWw8dWludDY0X3Q+IGJ1ZmZlclNpemU7CisgICAgICAgIGRlY29kZXIgPj4gYnVmZmVyU2l6ZTsK
KyAgICAgICAgaWYgKCFidWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgICAgICBPcHRpb25hbDx1aW50NjRfdD4gbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsK
KyAgICAgICAgZGVjb2RlciA+PiBudW1iZXJPZk91dHB1dENoYW5uZWxzOworICAgICAgICBpZiAo
IW51bWJlck9mT3V0cHV0Q2hhbm5lbHMpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBwcmVmZXJyZWRCdWZmZXJTaXplOworICAg
ICAgICBkZWNvZGVyID4+IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgICAgIGlmICghcHJlZmVy
cmVkQnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8Ym9vbD4gaXNNdXRlZDsKKyAgICAgICAgZGVjb2RlciA+PiBpc011dGVkOwor
ICAgICAgICBpZiAoIWlzTXV0ZWQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGlzQWN0aXZlOworICAgICAgICBkZWNvZGVyID4+IGlz
QWN0aXZlOworICAgICAgICBpZiAoIWlzQWN0aXZlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgICAgICByZXR1cm4ge3sKKyAgICAgICAgICAgIFdURk1vdmUoKmNhdGVn
b3J5KSwKKyAgICAgICAgICAgIFdURk1vdmUoKnJvdXRlU2hhcmluZ1BvbGljeSksCisgICAgICAg
ICAgICBXVEZNb3ZlKCpyb3V0aW5nQ29udGV4dFVJRCksCisgICAgICAgICAgICAqc2FtcGxlUmF0
ZSwKKyAgICAgICAgICAgICpidWZmZXJTaXplLAorICAgICAgICAgICAgKm51bWJlck9mT3V0cHV0
Q2hhbm5lbHMsCisgICAgICAgICAgICAqcHJlZmVycmVkQnVmZmVyU2l6ZSwKKyAgICAgICAgICAg
ICppc011dGVkLAorICAgICAgICAgICAgKmlzQWN0aXZlLAorICAgICAgICB9fTsKKyAgICB9Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmll
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25JZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzE0ODBjNjk0ZTJiM2Q5N2I1OTZlMmEwNzMwM2Q2
N2ZiMGY5OWJkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
VVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVy
VHlwZSB7IH07Cit1c2luZyBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyID0gT2JqZWN0SWRl
bnRpZmllcjxSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCA1MWMyZjVlNTNiMzQwYzIyMDVmNzg5YjRiMzczYTJlNTA3YmI2ZWJiLi5hZWEyOTFl
ZDhlMThmNTQxOTE2YmM0ZDc4YWE4YWFhYTg1MWNhY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlJl
bW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAjaW5jbHVk
ZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgpAQCAtNDcxLDYgKzQ3
Miw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2
ZXI6OnNldFNob3VsZExvZ1VzZXJJbnRlcmFjdGlvbihwYXJhbWV0ZXJzLnNob3VsZExvZ1VzZXJJ
bnRlcmFjdGlvbik7CiAjZW5kaWYKIAorICAgIHNldFVzZUdQVVByb2Nlc3NGb3JNZWRpYShwYXJh
bWV0ZXJzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSk7CisKICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKFByb2Nlc3MsICJpbml0aWFsaXplV2ViUHJvY2VzczogUHJlc2VudGluZyBwcm9jZXNzID0g
JWQiLCBXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKSk7CiB9CiAKQEAgLTE5OTcs
NiArMjAwMCwxNSBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFNob3VsZEJsb2NrVGhpcmRQYXJ0eUNv
b2tpZXNGb3JUZXN0aW5nKFRoaXJkUGFydHlDb29raWVCbG9jawogfQogI2VuZGlmCiAKK3ZvaWQg
V2ViUHJvY2Vzczo6c2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKGJvb2wgdXNlR1BVUHJvY2Vzc0Zv
ck1lZGlhKQoreworICAgIGlmICh1c2VHUFVQcm9jZXNzRm9yTWVkaWEgPT0gbV91c2VHUFVQcm9j
ZXNzRm9yTWVkaWEpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdXNlR1BVUHJvY2Vzc0Zvck1l
ZGlhID0gdXNlR1BVUHJvY2Vzc0Zvck1lZGlhOworICAgIEF1ZGlvU2Vzc2lvbjo6c2V0U2hhcmVk
U2Vzc2lvbih1c2VHUFVQcm9jZXNzRm9yTWVkaWEgPyBSZW1vdGVBdWRpb1Nlc3Npb246OmNyZWF0
ZSgqdGhpcykgOiBBdWRpb1Nlc3Npb246OmNyZWF0ZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19TRVNTSU9OX0lECmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAppbmRleCA2NWJmMDQxN2Q0ZjhjMWRiNTFmOWU5NzUwYmNiOTdmOWE1
YmMyYjkwLi42NTVlNzhkZjA4ZGYwOGFjOTJhNTZiZmM5Y2M4YTdhOWQ1MjU1ZDNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTUxNyw2ICs1MTcsOCBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSB7IHJldHVybiBtX3Nlc3Np
b25JRCA/IG1fc2Vzc2lvbklELT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSA6IHRydWU7IH0K
IAorICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKGJvb2wpOworCiAgICAgUmVmUHRy
PFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcz4gbV93ZWJDb25uZWN0aW9uOwogCiAgICAgSGFzaE1h
cDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPFdlYlBhZ2U+PiBtX3BhZ2VNYXA7CkBA
IC02NTMsNiArNjU1LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4g
bV9hc3NldFNlcnZpY2VFeHRlbnNpb247CiAgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1f
YXNzZXRTZXJ2aWNlVjJFeHRlbnNpb247CiAjZW5kaWYKKworICAgIGJvb2wgbV91c2VHUFVQcm9j
ZXNzRm9yTWVkaWEgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392575</attachid>
            <date>2020-03-05 08:34:05 -0800</date>
            <delta_ts>2020-03-05 09:02:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208583-20200305083402.patch</filename>
            <type>text/plain</type>
            <size>88379</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZmZTQ3YzEyYzgxMzExY2M4OWRkYmI5
NTE2MjE0MjU0ZGU5YTAxNjEuLjA3M2UwNjZlODhkOTdiNmJkMGVmYmExOGMzYTNmNDBjNzVjOGI1
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBV
bmlxdWVSZWYgdG8gdGhlIGxpc3Qgb2YgZm9yd2FyZC1kZWNsYXJlZCB0ZW1wbGF0ZSB0eXBlcy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisKIDIwMjAtMDMtMDQgIE1hcmsgTGFtICA8bWFy
ay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEhhbmRsZSBhbiBvdXQgb2YgbWVtb3J5IGVycm9y
IHdoaWxlIGNvbnN0cnVjdGluZyB0aGUgQnl0ZWNvZGVHZW5lcmF0b3IuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmJjODY4NmY2YzVlOTRlYjU2ZGM2YzkxZjNiOWZiYTE5MGU1MmVkOC4uYjI0NzFiYzYxOWVhNGM4
NWVlMjRkNzZjOTA5Y2VlODA4MGEzOGM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisy
MDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtH
UFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gaW1wbGVtZW50YXRpb24gb2YgTWVkaWFT
dHJhdGVneSB3aGljaCBwcm92aWRlcyBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBvZiB0aGUKKyAg
ICAgICAgcGxhdGZvcm0gY3JlYXRpb24gbWV0aG9kcywgc28gdGhleSBkb24ndCBuZWVkIHRvIGJl
IHJlLWltcGxlbWVudGVkIGJ5IGVhY2ggY2xpZW50IHVubGVzcworICAgICAgICB0aGF0IGNsaWVu
dCBuZWVkcyB0byBvdmVycmlkZSB0aGF0IGJlaGF2aW9yLgorCisgICAgICAgIEFkZCBFbnVtVHJh
aXRzIGZvciBhbGwgdGhlIGVudW1lcmF0aW9ucyBpbnNpZGUgQXVkaW9TZXNzaW9uLgorCisgICAg
ICAgIE1ha2UgbWFueSBBdWRpb1Nlc3Npb24gbWV0aG9kcyB2aXJ0dWFsLCBzbyB0aGV5IGNhbiBi
ZSBvdmVycmlkZGVuIGluIHRoZSBjYXNlIHdoZXJlIHRoZQorICAgICAgICBHUFUgcHJvY2VzcyBp
cyBlbmFibGVkLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL01lZGlhU3RyYXRl
Z3kuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5
LmguCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb1Nlc3Npb24p
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9EZXN0aW5hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmF0ZWd5OjpyZWdpc3RlckNETUZhY3Rvcmll
cyk6CisgICAgICAgICogcGxhdGZvcm0vTWVkaWFTdHJhdGVneS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Np
b24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisKIDIwMjAtMDMtMDUgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUg
UGF0aDo6ZW5jb2RlIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQgQ0dQYXRoR2V0TnVtYmVyT2ZF
bGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBlOWQzOTlhYjZlMGZjYzRmZTc1N2Y5OGYxMjE5OTFiOWIxZDMw
NDFiLi5mZTg4ZDQzMWQ1YWFmZmI5ZWY3MmRlMDUzZGUzYjdiMWE5YTgwNTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDk0IEBACisyMDIwLTAzLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdWJjbGFz
cyBvZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBhdWRpbyBi
ZWhhdmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAgICAgYXVk
aW8gYmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJvY2Vzcywg
c2luY2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFsbHkKKyAg
ICAgICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAgICAgICAg
T3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2hhcmVkIEF1ZGlvU2Vzc2lvbiBhdCBXZWJQcm9jZXNzIGlu
aXRpYWxpemF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjphdWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmVuc3VyZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6
OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxlZ2FjeUNkbUZhY3RvcnlQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZSk6
CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3lu
Y01lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTG9hZGVyU3RyYXRl
Z3kpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3Rl
Ym9hcmRTdHJhdGVneSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6
Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRl
Z2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVBsYXRm
b3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmluaXRpYWxpemVHUFVQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6YXVkaW9TZXNzaW9uTWFuYWdlciBjb25zdCk6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHk6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0Q2F0ZWdvcnkpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0UHJlZmVycmVkQnVmZmVy
U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1Nl
dEFjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdp
bkludGVycnVwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
OjplbmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eTo6YXVkaW9TZXNzaW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6Y2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eTo6cm91dGVTaGFyaW5nUG9saWN5IGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnByZWZlcnJlZEJ1ZmZlclNpemUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6aXNBY3RpdmUg
Y29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmFkZFByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpyZW1v
dmVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
cjo6Z2V0UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnRyeVRv
U2V0QWN0aXZlRm9yUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291
cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OlJlbW90ZUF1ZGlvU2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNpemUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OnRyeVRvU2V0QWN0aXZlSW50ZXJuYWwp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb25DaGFu
Z2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpiZWdpbkludGVycnVw
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6ZW5kSW50ZXJydXB0
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24u
aDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb246OmRlY29kZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJNZWRpYVN0cmF0ZWd5OjpjcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJhdGVneTo6cmVnaXN0ZXJDRE1GYWN0b3JpZXMpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1dlYk1lZGlhU3RyYXRlZ3kuaDoKKwogMjAy
MC0wMy0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhw
b3J0IE5vd1BsYXlpbmcgY29tbWFuZHMgdG8gR1BVUHJvY2VzcyB3aGVuIG1lZGlhIHBsYXlpbmcg
aW4gR1BVUHJvY2VzcyBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3
YXJkLmggYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKaW5kZXggNzBkZGI5MTZlNTBjNmUyODUy
YjdmOWU0ZTBlM2E1OGY3MDNhOGYwZC4uNmU5N2Q1ZDllZTkwOTYwZjFjZTMyZTY4MDNiY2ZmZGU0
MjIwNGNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0ZvcndhcmQuaApAQCAtNjgsNiArNjgsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSA9IER1bWJQdHJUcmFpdHM8VD4+IGNsYXNzIFJlZjsKIHRlbXBsYXRlPHR5cGVu
YW1lIFQsIHR5cGVuYW1lID0gRHVtYlB0clRyYWl0czxUPj4gY2xhc3MgUmVmUHRyOwogdGVtcGxh
dGU8dHlwZW5hbWU+IGNsYXNzIFN0cmluZ0J1ZmZlcjsKIHRlbXBsYXRlPHR5cGVuYW1lLCB0eXBl
bmFtZSA9IHZvaWQ+IGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyOwordGVtcGxhdGU8dHlwZW5hbWUg
VD4gY2xhc3MgVW5pcXVlUmVmOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV2Vha1B0cjsK
IAogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBEZWZhdWx0SGFzaCB7IHVzaW5nIEhhc2ggPSB2
b2lkOyB9OwpAQCAtMTI1LDYgKzEyNiw3IEBAIHVzaW5nIFdURjo6U3RyaW5nVmlldzsKIHVzaW5n
IFdURjo6VGV4dFBvc2l0aW9uOwogdXNpbmcgV1RGOjpUZXh0U3RyZWFtOwogdXNpbmcgV1RGOjpV
Ukw7Cit1c2luZyBXVEY6OlVuaXF1ZVJlZjsKIHVzaW5nIFdURjo6VmFyaWFudDsKIHVzaW5nIFdU
Rjo6VmVjdG9yOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNz
aW9uLmNwcAppbmRleCBiNWZiNTgwNjQ4ZjljZjhlYzRmMTg2ZmFmYTQ4ZTEzZmRjZjJmNTdkLi41
MDgyODMzY2EwOTQyMTQ3ZGNmYWM2NjE0ZWUzNzkxZDAwOWVhNmM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKQEAgLTI4LDE1ICsyOCwzMiBA
QAogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAKKyNpbmNsdWRlICJNZWRpYVN0cmF0ZWd5Lmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4mIHNoYXJlZEF1ZGlvU2Vzc2lv
bigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+
PiBzZXNzaW9uID0gQXVkaW9TZXNzaW9uOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gc2Vzc2lvbi5n
ZXQoKTsKK30KKworVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4gQXVkaW9TZXNzaW9uOjpjcmVhdGUo
KQoreworICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4oKTsKK30KKwogQXVk
aW9TZXNzaW9uJiBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdWRpb1Nlc3Npb24+IHNlc3Npb247Ci0gICAgcmV0dXJuIHNlc3Npb247
CisgICAgcmV0dXJuIHNoYXJlZEF1ZGlvU2Vzc2lvbigpOworfQorCit2b2lkIEF1ZGlvU2Vzc2lv
bjo6c2V0U2hhcmVkU2Vzc2lvbihVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiYmIHNlc3Npb24pCit7
CisgICAgc2hhcmVkQXVkaW9TZXNzaW9uKCkgPSBXVEZNb3ZlKHNlc3Npb24pOwogfQogCiBib29s
IEF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCmluZGV4IDBkYTc1ZmRhNGEzYTdjNzE3
Nzc4NDQ1OGVkNjQyMDg2NjFjNzZiMzUuLjA0YTQwM2FiM2U3YzhhYzIxYjhhNzBkNWI2Mjc5MmQ3
ZDQyMTQ2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lv
bi5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDEzICs0NSwxOCBAQCBlbnVtIGNsYXNzIFJv
dXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3QgewogICAgIExvbmdGb3JtVmlkZW8KIH07CiAKLWNs
YXNzIEF1ZGlvU2Vzc2lvbiBmaW5hbCB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBBdWRpb1Nlc3Np
b24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEF1ZGlvU2Vzc2lvbik7CisgICAgZnJpZW5kIGNsYXNzIFVuaXF1ZVJlZjxBdWRpb1Nlc3Np
b24+OworICAgIGZyaWVuZCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBXVEY6Om1ha2VVbmlxdWVS
ZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPEF1ZGlvU2Vzc2lvbj4oKTsKIHB1YmxpYzoKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgQXVkaW9TZXNzaW9uJiBzaGFyZWRTZXNzaW9uKCk7CisgICAg
c3RhdGljIFVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+IGNyZWF0ZSgpOworICAgIHN0YXRpYyB2b2lk
IHNldFNoYXJlZFNlc3Npb24oVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4mJik7CisgICAgc3RhdGlj
IEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOworICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lv
bigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgeworICAgIGVudW0gQ2F0ZWdvcnlUeXBlIDog
dWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAgIEFtYmllbnRTb3VuZCwKICAgICAgICAg
U29sb0FtYmllbnRTb3VuZCwKQEAgLTU5LDIzICs2NSwyMyBAQCBwdWJsaWM6CiAgICAgICAgIFBs
YXlBbmRSZWNvcmQsCiAgICAgICAgIEF1ZGlvUHJvY2Vzc2luZywKICAgICB9OwotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJpbmdQb2xp
Y3kpOwotICAgIFdFQkNPUkVfRVhQT1JUIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUsIFJvdXRlU2hhcmluZ1Bv
bGljeSk7CisgICAgdmlydHVhbCBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdDsKIAogICAg
IHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUpOwogICAgIENhdGVnb3J5VHlw
ZSBjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3Q7CiAKLSAgICBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91
dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7Ci0gICAgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5
KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQoKSBjb25zdDsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsKLSAgICBzaXpl
X3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZk91dHB1dENoYW5uZWxz
KCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7CisgICAgdmly
dHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgc2l6ZV90IG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAogICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmUoYm9v
bCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNv
bnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXpl
X3QpOworICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAgICAgY2xh
c3MgTXV0ZWRTdGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04NywxNyArOTMsMTYgQEAg
cHVibGljOgogICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZl
ciopOwogICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZl
ciopOwogCi0gICAgYm9vbCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBoYW5kbGVNdXRlZFN0
YXRlQ2hhbmdlKCk7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkg
Y29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBm
cmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRpb1Nlc3Np
b24oKTsKLSAgICB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0aXZlSW50
ZXJuYWwoYm9vbCk7CisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9v
bCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0ZT4gbV9wcml2YXRl
OwogICAgIEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApp
bmRleCBlMmIzOGEwMWQwYWE1YTY2ZDM3NzkxMWVkNDAxZTUyODkwNzg5NzA4Li45MzA4NWIwZDQy
N2FlYmU4NDEwZTVkMDcxOTM4YWIwNjAxNDQxYWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTYwLDcgKzYwLDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb24oKTsKIAotICAg
IGVudW0gY2xhc3MgTWVkaWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSA6IHVpbnQ4
X3QgewogICAgICAgICBOb25lID0gMCwKICAgICAgICAgVmlkZW8sCiAgICAgICAgIFZpZGVvQXVk
aW8sCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5cGUgbWVkaWFUeXBlKCkg
Y29uc3Q7CiAgICAgTWVkaWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBjb25zdDsKIAotICAgIGVu
dW0gU3RhdGUgeworICAgIGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAgICAgICAgSWRsZSwKICAg
ICAgICAgQXV0b3BsYXlpbmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC04MCw3ICs4MCw3IEBAIHB1
YmxpYzoKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICB2
b2lkIHNldFN0YXRlKFN0YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0aW9uVHlwZSB7CisgICAg
ZW51bSBJbnRlcnJ1cHRpb25UeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vSW50ZXJydXB0aW9u
LAogICAgICAgICBTeXN0ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdCYWNrZ3JvdW5kLApAQCAt
OTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIGludGVy
cnVwdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlvblR5cGU7IH0KIAotICAg
IGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxh
Z3MgOiB1aW50OF90IHsKICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAgICAgIE1heVJlc3VtZVBs
YXlpbmcgPSAxIDw8IDAsCiAgICAgfTsKQEAgLTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGRvdWJsZSBhc0RvdWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRBcmd1bWVudDsKIAotICAg
IGVudW0gUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVtIFJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQsCiAgICAgICAgIFBsYXlD
b21tYW5kLAogICAgICAgICBQYXVzZUNvbW1hbmQsCkBAIC0xMzQsNyArMTM0LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZSwgY29uc3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBhcmd1bWVudCA9IG51bGxw
dHIpOwogICAgIGJvb2wgc3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAKLSAgICBlbnVtIERpc3Bs
YXlUeXBlIHsKKyAgICBlbnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vcm1h
bCwKICAgICAgICAgRnVsbHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVkLApAQCAtMjk3LDQgKzI5
Nyw2NCBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZT4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpNZWRpYVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
Ok1lZGlhVHlwZTo6VmlkZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1l
ZGlhVHlwZTo6VmlkZW9BdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
TWVkaWFUeXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVk
aWFUeXBlOjpXZWJBdWRpbworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
U3RhdGUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpJZGxlLAor
ICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6QXV0b3BsYXlpbmcsCisg
ICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQbGF5aW5nLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2VkLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQKKyAgICA+OworfTsKKwor
dGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Np
b246OkludGVycnVwdGlvblR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwK
KyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSwKKyAg
ICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6Tm9JbnRl
cnJ1cHRpb24sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlv
blR5cGU6OlN5c3RlbVNsZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJ
bnRlcnJ1cHRpb25UeXBlOjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUludGVycnVwdGlvbiwKKyAg
ICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3VzcGVu
ZGVkVW5kZXJMb2NrLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRpb25UeXBlOjpJbnZpc2libGVBdXRvcGxheSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZlLAorICAgIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQbGF5YmFja1N1c3BlbmRl
ZAorICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
RW5kSW50ZXJydXB0aW9uRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OkVuZEludGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1lUGxheWluZworICAgID47
Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6UGxheUNvbW1hbmQsCisg
ICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlw
ZTo6UGF1c2VDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1v
dGVDb250cm9sQ29tbWFuZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRvZ2dsZVBsYXlQYXVzZUNv
bW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZTo6QmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OkVuZFNlZWtpbmdC
YWNrd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6RW5k
U2Vla2luZ0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNrUG9zaXRpb25Db21tYW5k
CisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggZDZjMDA3ZjQw
YjVmYjc2MzcyMmQ1MzhhZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGExZDBhYTYzODljM2RmODkz
NjcxMGEzNTg5YTQ0NTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQzLDE1IEBAIHZvaWQgQXVk
aW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZmZXJTaXplKQogICAg
IEFTU0VSVCghZXJyb3IpOwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6aXNNdXRlZCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6aGFuZGxlTXV0
ZWRTdGF0ZUNoYW5nZSgpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9O
KSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDlmOTQ2Zjg0OTdhZjIzYjRhZmE1MWI3OTE4NDE4NTE4
ODYwYWM1YjkuLmQ3NDliMmRiMDliOTY3NDZmNGEwZjFlMzRjMjE3NDJlZGY1M2U0NmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE4LDYg
KzE4LDggQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFw
cGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1Rf
RElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmlu
CiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5p
bgpAQCAtMTE2LDYgKzExOCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYTk2YzJjZmRkZDQ2YjM1OTIzOGU5NjIzNDNh
OTkyMjEwNGVlYTU5Yi4uOTk1MDM1MTJiYTU1OGIyYjQxMDA4ZjViMTY2NTA0NjBhOTU0MTQ1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBA
IC0xMzcsNiArMTM3LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVz
c2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9u
TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBs
aWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFj
dG9yeVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQppbmRleCA0NWVlM2RiN2VkN2UxMzM3MmM4YTc1YWQ1NTVhMTY1ODdm
NjdkMDhhLi4xYzNkMWEyMGVlYTNiNzM4MDAxMDJlMWQzMTk4Mzc5MDNhYTZjZDBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNDgsNiArMTQ4LDggQEAgTUVTU0FHRV9SRUNFSVZF
UlMgPSBcCiAgICAgUGx1Z2luUHJveHkgXAogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyIFwKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAorICAgIFJlbW90ZUF1ZGlv
U2Vzc2lvbiBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXAogICAgIFJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCmluZGV4IGIwZTc4Yzc4N2ZhNTdlZDBkZTkzNDBmMTk3YjVkNmUyMzQ1ZTdj
OTIuLmNiNTc5MjhlY2YyZTI5Y2FiOWQzNmU0ZDBhZGE4MGI5NzJlY2ZhMDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKQEAgLTc2LDYgKzc2LDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5o
IgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9O
KQorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNZXNzYWdlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CkBAIC0xMzMsNiArMTM4LDEwIEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKIAogdm9pZCBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogeworICAgIGlmIChtX2F1
ZGlvU2Vzc2lvblByb3h5KSB7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5h
Z2VyKCkucmVtb3ZlUHJveHkod2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIG1fYXVk
aW9TZXNzaW9uUHJveHkgPSBudWxscHRyOworICAgIH0KIH0KIAogTG9nZ2VyJiBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpsb2dnZXIoKQpAQCAtMjMxLDYgKzI0MCwxNyBAQCBSZW1vdGVDRE1G
YWN0b3J5UHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNkbUZhY3RvcnlQcm94eSgp
CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJ
T04pCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
YXVkaW9TZXNzaW9uUHJveHkoKQoreworICAgIGlmICghbV9hdWRpb1Nlc3Npb25Qcm94eSkgewor
ICAgICAgICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNy
ZWF0ZSgqdGhpcykubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGdwdVByb2Nlc3MoKS5hdWRp
b1Nlc3Npb25NYW5hZ2VyKCkuYWRkUHJveHkobWFrZVdlYWtQdHIobV9hdWRpb1Nlc3Npb25Qcm94
eS5nZXQoKSkpOworICAgIH0KKyAgICByZXR1cm4gKm1fYXVkaW9TZXNzaW9uUHJveHk7Cit9Cisj
ZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdC
YWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHlNYXAuZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBbJl0oKSB7CkBAIC0yNTcs
NiArMjc3LDEzIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Tm93UGxheWlu
Z0luZm8oYm9vbCBzZXRBc05vd1BsYXlpbmdBcHBsaWNhdGlvCiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCit2b2lkIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1cmVBdWRpb1Nlc3Npb25Db21w
bGV0aW9uJiYgY29tcGxldGlvbikKK3sKKyAgICBjb21wbGV0aW9uKGF1ZGlvU2Vzc2lvblByb3h5
KCkuY29uZmlndXJhdGlvbigpKTsKK30KKyNlbmRpZgorCiBib29sIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJO
YW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKQEAgLTMzNCw2ICszNjEsMTIgQEAgYm9vbCBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEMKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogI2VuZGlmCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdl
UmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgYXVkaW9TZXNzaW9uUHJveHkoKS5kaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorI2VuZGlmCiAKICAgICByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQpAQCAtMzgxLDYgKzQxNCwxMiBAQCBib29s
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAjZW5kaWYK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBhdWRpb1Nlc3Npb25Q
cm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVy
biBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAxODIyNmE3YzM0OTkxOGFjYmJj
NDViZmY1NGFmNmE3YmJmYzcwMWMzLi5iMDA3MWNjNjUyNjZmZTdhOTJhYmMwNGYzYmZkOGM1YTQy
M2Q2ODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9u
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgog
I2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9Qcm9jZXNzSWRlbnRpZmllci5oPgpAQCAtNDgsMTIgKzQ5LDE1IEBAIGNsYXNzIEdQVVByb2Nl
c3M7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eTsKIGNsYXNzIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyOworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7CitjbGFzcyBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVDRE1GYWN0b3J5UHJveHk7CiBjbGFz
cyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUmVjb3Jk
ZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CiBjbGFzcyBSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3MgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTsKK3N0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uOwog
CiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMgUmVmQ291bnRl
ZDxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPgpAQCAtODgsMTEgKzkyLDE1IEBAIHB1YmxpYzoK
ICAgICBSZW1vdGVDRE1GYWN0b3J5UHJveHkmIGNkbUZhY3RvcnlQcm94eSgpOwogI2VuZGlmCiAK
KyAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkoKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9O
KQorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdl
cigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhH
UFVQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bk1hbmFnZXImIHJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7Ci0gICAgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCk7CiAj
aWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgTGliV2ViUlRDQ29kZWNz
UHJveHkmIGxpYldlYlJUQ0NvZGVjc1Byb3h5KCk7CiAjZW5kaWYKQEAgLTEwNCw2ICsxMTIsMTEg
QEAgcHJpdmF0ZToKICAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBz
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAjZW5kaWYKICNlbmRpZgorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eSYgYXVkaW9TZXNzaW9uUHJveHkoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBj
cmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICB2
b2lkIHJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsK
ICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTExMSw2ICsxMjQsMTEgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHNldE5vd1BsYXlpbmdJbmZvKGJvb2wgc2V0QXNOb3dQbGF5aW5nQXBwbGljYXRpb24sIGNv
bnN0IFdlYkNvcmU6Ok5vd1BsYXlpbmdJbmZvJik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgdXNpbmcgRW5zdXJlQXVkaW9TZXNz
aW9uQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbiYpPjsKKyAgICB2b2lkIGVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1
cmVBdWRpb1Nlc3Npb25Db21wbGV0aW9uJiYpOworI2VuZGlmCisKICAgICAvLyBJUEM6OkNvbm5l
Y3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgZmluYWw7
CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbWVzc2FnZU5hbWUpIGZpbmFsOwpAQCAtMTQ5LDYgKzE2Nyw5IEBAIHByaXZhdGU6CiAjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ0RNRmFj
dG9yeVByb3h5PiBtX2NkbUZhY3RvcnlQcm94eTsKICNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5PiBtX2F1ZGlvU2Vzc2lvblByb3h5OworI2VuZGlmCiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOGQ5MWNl
MmJjZGJkYWVjZmMyNTcxMDNjZGFjZTY5NjU0Y2M0OGQzOS4uNWFiNDE3MmVkMzE0N2YyNmE5MDM3
ZGJjOTg4NWE5N2YxZTgwOWNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI5
LDYgKzI5LDcgQEAgbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBXYW50c0Rp
c3BhdGNoTWVzc2FnZSB7CiAgICAgdm9pZCBDbGVhck5vd1BsYXlpbmdJbmZvKCk7CiAgICAgdm9p
ZCBTZXROb3dQbGF5aW5nSW5mbyhib29sIHNldEFzTm93UGxheWluZ0FwcGxpY2F0aW9uLCBzdHJ1
Y3QgV2ViQ29yZTo6Tm93UGxheWluZ0luZm8gbm93UGxheWluZ0luZm8pOwogI2VuZGlmCisgICAg
RW5zdXJlQXVkaW9TZXNzaW9uKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
bkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikgU3luY2hyb25vdXMKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNw
cAppbmRleCAwZTdiZDA5YmVhNWQxMjNhNDA3ZWNmYjlkMzlmNzI0MGY1YjNjN2I5Li42MDM3MDA1
OWNkMTQ5NTUzNmVmNDVjZjQ5NjQ1MmRkNDFlMjRlNDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQXV4aWxpYXJ5
UHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJHUFVQbGF0Zm9ybVN0cmF0
ZWdpZXMuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5j
bHVkZSAiR1BVUHJvY2Vzc1Nlc3Npb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgpAQCAtNTEsNiArNTIsMTAgQEAKICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBV
U0UoQVVESU9fU0VTU0lPTikKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCkBAIC0xMTAsNiArMTE1LDggQEAgdm9pZCBHUFVQcm9jZXNzOjppbml0aWFsaXplR1BV
UHJvY2VzcyhHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBX
VEY6OlRocmVhZDo6c2V0Q3VycmVudFRocmVhZElzVXNlckluaXRpYXRlZCgpOwogICAgIEF0b21T
dHJpbmc6OmluaXQoKTsKIAorICAgIEdQVVBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgp
OworCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOwogI2VuZGlmCkBA
IC0yMTIsNiArMjE5LDE1IEBAIGNvbnN0IFN0cmluZyYgR1BVUHJvY2Vzczo6bWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGNvCiB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCitSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXImIEdQVVByb2Nlc3M6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKSBj
b25zdAoreworICAgIGlmICghbV9hdWRpb1Nlc3Npb25NYW5hZ2VyKQorICAgICAgICBtX2F1ZGlv
U2Vzc2lvbk1hbmFnZXIgPSBXVEY6Om1ha2VVbmlxdWU8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyPigpOworICAgIHJldHVybiAqbV9hdWRpb1Nlc3Npb25NYW5hZ2VyOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKaW5kZXggNmZhMDIwMTRiOTQ3ODFl
YTk5ZTAzNWRiM2FkNzlkNjVhMjRmMjg3Yi4uNDNhYWUxYTEyYjViODg1YjI2YzU2ZGRmMTUyOTYw
ZjAyMjdjNTIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCkBAIC00MCw2
ICs0MCw3IEBAIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiBzdHJ1Y3QgR1BVUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBHUFVQcm9jZXNzU2Vzc2lvblBhcmFtZXRl
cnM7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyOwogCiBjbGFzcyBHUFVQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nl
c3MsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxHUFVQcm9jZXNzPiwgcHVibGljIENhbk1h
a2VXZWFrUHRyPEdQVVByb2Nlc3M+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHUFVQcm9j
ZXNzKTsKQEAgLTYzLDYgKzY0LDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG1lZGlh
S2V5c1N0b3JhZ2VEaXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorICAgIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpIGNvbnN0OworI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsKTsKIApA
QCAtMTAzLDYgKzEwOCw5IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9z
dGluZ0NvbnRleHQ+IG1fY29udGV4dEZvclZpc2liaWxpdHlQcm9wYWdhdGlvbjsKICAgICBib29s
IG1fY2FuU2hvd1doaWxlTG9ja2VkIHsgZmFsc2UgfTsKICNlbmRpZgorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyPiBtX2F1ZGlvU2Vzc2lvbk1hbmFnZXI7
CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWFmYzQ5ZGU4OWRlMWFjZTQ2YWMxNjdmODU4NDY4MDMzNjUyZGM5MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eS5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJS
ZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1VuaXF1ZVJlZjxSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eT4gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNyZWF0ZShHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uKQoreworICAgIHJldHVybiBtYWtlVW5pcXVl
UmVmPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PihncHVDb25uZWN0aW9uKTsKK30KKworUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHk6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb24pCisgICAgOiBtX2dwdUNvbm5lY3Rpb24oZ3B1Q29u
bmVjdGlvbikKK3sKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6On5SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eSgpID0gZGVmYXVsdDsKKworV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OnByb2Nlc3NJZGVudGlmaWVyKCkKK3sKKyAgICByZXR1cm4g
bV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisKK1JlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbmZpZ3VyYXRp
b24oKQoreworICAgIGF1dG8mIHNlc3Npb24gPSBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2Vzc2lv
bigpOworICAgIHJldHVybiB7CisgICAgICAgIHNlc3Npb24uY2F0ZWdvcnkoKSwKKyAgICAgICAg
c2Vzc2lvbi5yb3V0ZVNoYXJpbmdQb2xpY3koKSwKKyAgICAgICAgc2Vzc2lvbi5yb3V0aW5nQ29u
dGV4dFVJRCgpLAorICAgICAgICBzZXNzaW9uLnNhbXBsZVJhdGUoKSwKKyAgICAgICAgc2Vzc2lv
bi5idWZmZXJTaXplKCksCisgICAgICAgIHNlc3Npb24ubnVtYmVyT2ZPdXRwdXRDaGFubmVscygp
LAorICAgICAgICBzZXNzaW9uLnByZWZlcnJlZEJ1ZmZlclNpemUoKSwKKyAgICAgICAgc2Vzc2lv
bi5pc011dGVkKCksCisgICAgICAgIG1fYWN0aXZlCisgICAgfTsKK30KKwordm9pZCBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6c2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGUgY2F0ZWdvcnksIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7
CisgICAgbV9jYXRlZ29yeSA9IGNhdGVnb3J5OworICAgIG1fcm91dGVTaGFyaW5nUG9saWN5ID0g
cG9saWN5OworICAgIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXRDYXRlZ29yeUZvclByb2Nlc3Mo
bV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIGNhdGVnb3J5LCBwb2xpY3kp
OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpzZXRQcmVmZXJyZWRCdWZmZXJT
aXplKHVpbnQ2NF90IHNpemUpCit7CisgICAgbV9wcmVmZXJyZWRCdWZmZXJTaXplID0gc2l6ZTsK
KyAgICBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nl
c3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIHNpemUpOworfQorCit2
b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1NldEFjdGl2ZShib29sIGFjdGl2ZSwg
U2V0QWN0aXZlQ29tcGxldGlvbiYmIGNvbXBsZXRpb24pCit7CisgICAgbV9hY3RpdmUgPSBhdWRp
b1Nlc3Npb25NYW5hZ2VyKCkudHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKG1fZ3B1Q29ubmVjdGlv
bi53ZWJQcm9jZXNzSWRlbnRpZmllcigpLCBhY3RpdmUpOworICAgIGNvbXBsZXRpb24obV9hY3Rp
dmUpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbkludGVycnVwdGlv
bihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQor
eworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246OkJl
Z2luSW50ZXJydXB0aW9uKHR5cGUpLCB7IH0pOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjplbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVu
ZEludGVycnVwdGlvbkZsYWdzIGZsYWdzKQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246OkVuZEludGVycnVwdGlvbihmbGFncyksIHsgfSk7Cit9
CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHk6OmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKQoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb24u
Z3B1UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKTsKK30KKworSVBDOjpDb25uZWN0aW9u
JiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1f
Z3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVjZDJjNmMzN2MxNzk2NGUwYmM4ZGZhNzIxMzY0OTkyMWQ4NDkzYzEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQor
CisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNz
aW9uQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1l
c3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CisKK2NsYXNzIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5CisgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICAs
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4geworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7
CisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoKTsKKworICAgIFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKCk7CisgICAgUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKCk7CisKKyAgICBXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0IHsgcmV0dXJuIG1fY2F0ZWdv
cnk7IH07CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGlj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAgc2l6ZV90IHBy
ZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcnJlZEJ1ZmZlclNpemU7
IH0KKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KKworICAg
IHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Oklu
dGVycnVwdGlvblR5cGUpOworICAgIHZvaWQgZW5kSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncyk7CisKKyAgICAvLyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4mKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgVW5pcXVlUmVmPFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5PiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNr
PFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7Cisg
ICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwor
CisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIHNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIHZv
aWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCk7CisgICAgdXNpbmcgU2V0QWN0aXZl
Q29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+OworICAgIHZvaWQgdHJ5
VG9TZXRBY3RpdmUoYm9vbCwgU2V0QWN0aXZlQ29tcGxldGlvbiYmKTsKKworICAgIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNzaW9uTWFuYWdlcigpOworICAgIElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOworCisgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgbV9ncHVDb25uZWN0aW9uOworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlIG1fY2F0ZWdvcnk7CisgICAgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IG1fcm91dGVT
aGFyaW5nUG9saWN5OworICAgIHNpemVfdCBtX3ByZWZlcnJlZEJ1ZmZlclNpemUgeyAwIH07Cisg
ICAgYm9vbCBtX2FjdGl2ZSB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZjNiYWU4MjQzZmFhNTQ1NTJi
YmZmMDRkOWE2ZWI4NTJiNjA2MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShB
VURJT19TRVNTSU9OKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSBOb3RS
ZWZDb3VudGVkIHsKKyAgICBTZXRDYXRlZ29yeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGUgdHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlJvdXRlU2hh
cmluZ1BvbGljeSBwb2xpY3kpCisgICAgU2V0UHJlZmVycmVkQnVmZmVyU2l6ZSh1aW50NjRfdCBw
cmVmZXJyZWRCdWZmZXJTaXplKQorICAgIFRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlKSAtPiAo
Ym9vbCBzdWNlZWRlZCkgU3luY2hyb25vdXMKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNmI0ZWYyMTFmMmEzODMwNzA1NGM1MTI2MWI3
MTYxZmM3ZDA4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDE5MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNF
KEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hDb3Vu
dGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworc3RhdGljIGJvb2wgY2F0ZWdvcnlDYW5NaXhXaXRoT3RoZXJzKEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQoreworICAgIHJldHVybiBjYXRlZ29yeSA9PSBBdWRpb1Nl
c3Npb246OkFtYmllbnRTb3VuZDsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKQorICAgIDogbV9zZXNzaW9uKEF1ZGlv
U2Vzc2lvbjo6Y3JlYXRlKCkpCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
cjo6flJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpID0gZGVmYXVsdDsKKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmFkZFByb3h5KFdlYWtQdHI8UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHk+JiYgcHJveHkpCit7CisgICAgYXV0byBpZCA9IHByb3h5LT5wcm9jZXNz
SWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7CisgICAg
bV9wcm94aWVzLnNldChpZCwgV1RGTW92ZShwcm94eSkpOworfQorCit2b2lkIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcjo6cmVtb3ZlUHJveHkoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXIm
IGlkKQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3Byb3hp
ZXMucmVtb3ZlKGlkKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkqIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlcjo6Z2V0UHJveHkoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlk
KQoreworICAgIGF1dG8gcmVzdWx0cyA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAgICBpZiAocmVz
dWx0cyAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIHJldHVybiByZXN1bHRzLT52YWx1ZS5n
ZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyhjb25zdCBQcm9jZXNzSWRlbnRpZmll
ciYgaWQsIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQ
b2xpY3kgcG9saWN5KQoreworICAgIEFTU0VSVChtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAg
ICBhdXRvIHByb3h5ID0gZ2V0UHJveHkoaWQpOworICAgIGlmICghcHJveHkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChwcm94eS0+Y2F0ZWdvcnkoKSA9PSBjYXRlZ29yeSAmJiBwcm94eS0+
cm91dGVTaGFyaW5nUG9saWN5KCkgPT0gcG9saWN5KQorICAgICAgICByZXR1cm47CisKKyAgICBI
YXNoQ291bnRlZFNldDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgV1RGOjpJbnRIYXNoPEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZT4+IGNhdGVnb3J5Q291bnRzOworICAgIEhhc2hDb3VudGVk
U2V0PFJvdXRlU2hhcmluZ1BvbGljeSwgV1RGOjpJbnRIYXNoPFJvdXRlU2hhcmluZ1BvbGljeT4s
IFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8Um91dGVTaGFyaW5nUG9saWN5Pj4gcG9saWN5Q291
bnRzOworICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGllcy52YWx1ZXMoKSkgewor
ICAgICAgICBjYXRlZ29yeUNvdW50cy5hZGQob3RoZXJQcm94eS0+Y2F0ZWdvcnkoKSk7CisgICAg
ICAgIHBvbGljeUNvdW50cy5hZGQob3RoZXJQcm94eS0+cm91dGVTaGFyaW5nUG9saWN5KCkpOwor
ICAgIH0KKworICAgIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246OlBs
YXlBbmRSZWNvcmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJl
Y29yZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhBdWRpb1Nlc3Npb246
OlJlY29yZEF1ZGlvKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlJlY29yZEF1
ZGlvOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6
TWVkaWFQbGF5YmFjaykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpNZWRpYVBs
YXliYWNrOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lv
bjo6U29sb0FtYmllbnRTb3VuZCkpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpT
b2xvQW1iaWVudFNvdW5kOworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1
ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Np
b246OkFtYmllbnRTb3VuZDsKKyAgICBlbHNlIGlmIChjYXRlZ29yeUNvdW50cy5jb250YWlucyhB
dWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZykpCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9T
ZXNzaW9uOjpBdWRpb1Byb2Nlc3Npbmc7CisgICAgZWxzZQorICAgICAgICBjYXRlZ29yeSA9IEF1
ZGlvU2Vzc2lvbjo6Tm9uZTsKKworICAgIGlmIChwb2xpY3lDb3VudHMuY29udGFpbnMoUm91dGVT
aGFyaW5nUG9saWN5OjpMb25nRm9ybVZpZGVvKSkKKyAgICAgICAgcG9saWN5ID0gUm91dGVTaGFy
aW5nUG9saWN5OjpMb25nRm9ybVZpZGVvOworICAgIGVsc2UgaWYgKHBvbGljeUNvdW50cy5jb250
YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW8pKQorICAgICAgICBwb2xpY3kg
PSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtQXVkaW87CisgICAgZWxzZSBpZiAocG9saWN5
Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQpKQorICAgICAg
ICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkluZGVwZW5kZW50OworICAgIGVsc2UKKyAg
ICAgICAgcG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0OworCisgICAgbV9zZXNz
aW9uLT5zZXRDYXRlZ29yeShjYXRlZ29yeSwgcG9saWN5KTsKK30KKwordm9pZCBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldFByZWZlcnJlZEJ1ZmZlclNpemVGb3JQcm9jZXNzKGNv
bnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUpCit7
CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAg
ICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAo
b3RoZXJQcm94eS0+cHJlZmVycmVkQnVmZmVyU2l6ZSgpIDwgcHJlZmVycmVkQnVmZmVyU2l6ZSkK
KyAgICAgICAgICAgIHByZWZlcnJlZEJ1ZmZlclNpemUgPSBvdGhlclByb3h5LT5wcmVmZXJyZWRC
dWZmZXJTaXplKCk7CisgICAgfQorCisgICAgbV9zZXNzaW9uLT5zZXRQcmVmZXJyZWRCdWZmZXJT
aXplKHByZWZlcnJlZEJ1ZmZlclNpemUpOworfQorCitib29sIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcjo6dHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlm
aWVyJiBpZCwgYm9vbCBhY3RpdmUpCit7CisgICAgQVNTRVJUKG1fcHJveGllcy5jb250YWlucyhp
ZCkpOworICAgIGF1dG8gcHJveHkgPSBnZXRQcm94eShpZCk7CisgICAgaWYgKCFwcm94eSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc2l6ZV90IGFjdGl2ZVByb3h5Q291bnQgeyAwIH07
CisgICAgZm9yIChhdXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAg
ICAgIGlmICghb3RoZXJQcm94eSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAo
b3RoZXJQcm94eS0+aXNBY3RpdmUoKSkKKyAgICAgICAgICAgICsrYWN0aXZlUHJveHlDb3VudDsK
KyAgICB9CisKKyAgICBpZiAoIWFjdGl2ZSAmJiBhY3RpdmVQcm94eUNvdW50ID4gMSkgeworICAg
ICAgICAvLyBUaGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBidXQgb3RoZXIgcHJveGll
cyBhcmUgc3RpbGwKKyAgICAgICAgLy8gYWN0aXZlLiBOby1vcCwgYW5kIHJldHVybiBkZWFjdGl2
YXRpb24gd2FzIHN1Y2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
aWYgKCFhY3RpdmUpIHsKKyAgICAgICAgLy8gVGhpcyBwcm94eSB3YW50cyB0byBkZS1hY3RpdmF0
ZSwgYW5kIGlzIHRoZSBsYXN0IHJlbWFpbmluZyBhY3RpdmUKKyAgICAgICAgLy8gcHJveHkuIERl
YWN0aXZhdGUgdGhlIHNlc3Npb24sIGFuZCByZXR1cm4gd2hldGhlciB0aGF0IGRlYWN0aXZhdGlv
bgorICAgICAgICAvLyB3YXMgc3VjZXNzZnVsOworICAgICAgICByZXR1cm4gbV9zZXNzaW9uLT50
cnlUb1NldEFjdGl2ZShmYWxzZSk7CisgICAgfQorCisgICAgaWYgKGFjdGl2ZSAmJiAhYWN0aXZl
UHJveHlDb3VudCkgeworICAgICAgICAvLyBUaGlzIHByb3h5IGFuZCBvbmx5IHRoaXMgcHJveHkg
d2FudHMgdG8gYmVjb21lIGFjdGl2ZS4gQWN0aXZhdGUKKyAgICAgICAgLy8gdGhlIHNlc3Npb24s
IGFuZCByZXR1cm4gd2hldGhlciB0aGF0IGFjdGl2YXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAg
ICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGFjdGl2ZSk7CisgICAgfQorCisg
ICAgLy8gSWYgdGhpcyBwcm94eSBpcyBBbWJpZW50LCBhbmQgdGhlIHNlc3Npb24gaXMgYWxyZWFk
eSBhY3RpdmUsIHRoaXMKKyAgICAvLyBwcm94eSB3aWxsIG1peCB3aXRoIHRoZSBhY3RpdmUgcHJv
eGllcy4gTm8tb3AsIGFuZCByZXR1cm4gYWN0aXZhdGlvbgorICAgIC8vIHdhcyBzdWNlc3NmdWwu
CisgICAgaWYgKGNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyhwcm94eS0+Y2F0ZWdvcnkoKSkpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBP
dGhlcndpc2UsIHRoaXMgcHJveHkgd2FudHMgdG8gYmVjb21lIGFjdGl2ZSwgYnV0IHRoZXJlIGFy
ZSBvdGhlcgorICAgIC8vIHByb3hpZXMgd2hvIGFyZSBhbHJlYWR5IGFjdGl2ZS4gV2FsayBvdmVy
IHRoZSBwcm94aWVzLCBhbmQgaW50ZXJydXB0CisgICAgLy8gdGhvc2UgcHJveGllcyB3aG9zZSBj
YXRlb2dyaWVzIGluZGljYXRlIHRoZXkgY2Fubm90IG1peCB3aXRoIG90aGVycy4KKyAgICBmb3Ig
KGF1dG8mIG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFv
dGhlclByb3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghb3RoZXJQcm94
eS0+aXNBY3RpdmUoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChjYXRl
Z29yeUNhbk1peFdpdGhPdGhlcnMob3RoZXJQcm94eS0+Y2F0ZWdvcnkoKSkpCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBvdGhlclByb3h5LT5iZWdpbkludGVycnVwdGlvbihQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVtSW50ZXJydXB0aW9uKTsK
KyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiB0cnVlOworCit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhN2Y3NjFmNmIxZTg1YmE3
MTU4ZTBiZGY0MGM1ZmMyM2JhYTE3YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaApAQCAtMCww
ICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nl
c3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTsKKworY2xhc3Mg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyCisgICAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyPiB7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyKCk7
CisgICAgflJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcigpOworCisgICAgdm9pZCBhZGRQ
cm94eShXZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiYmKTsKKyAgICB2b2lkIHJlbW92
ZVByb3h5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJik7CisgICAgUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkqIGdldFByb3h5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
Jik7CisKKyAgICB2b2lkIHNldENhdGVnb3J5Rm9yUHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciYsIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpOworICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6
ZUZvclByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImLCBzaXplX3QpOwor
CisgICAgdXNpbmcgU2V0QWN0aXZlQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+OworICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVGb3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyJiwgYm9vbCk7CisKKyAgICBjb25zdCBXZWJDb3JlOjpBdWRpb1Nl
c3Npb24mIHNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb247IH0KKworcHJpdmF0ZToK
KyAgICBVbmlxdWVSZWY8V2ViQ29yZTo6QXVkaW9TZXNzaW9uPiBtX3Nlc3Npb247CisgICAgSGFz
aE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eT4+IG1fcHJveGllczsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGIzZGVjN2NkMzlk
MDEwMmI4NWYwZjk1ZGY0ZTQzMGY5YWUxM2ZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNz
YWdlcy5pbgpAQCAtMCwwICsxLDI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMjU2ZGM5OTA1YmY0NDY2ZDBjMmFkNTc0ZDhjMzY4
YTE0YmU2OTYzYS4uNGJhMTRkYmFmMjRiMjQxZTU5ZGIwYTdmMjA4MGQwMmQwMjdjM2IwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMzQsNiArMjM0LDcg
QEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAg
J1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpSZW1vdGVBdWRp
b1Nlc3Npb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3RlQ0RNSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlSWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50aWZpZXInLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBkMDdmMmJmNWIy
MWI2MjBiOTE5ODEwMTk5NDBlMjc0NGVkMjUwMGNkLi42NzUyY2I2ZDQ1ZTVhZjAwNWVmZjgyN2E3
NjZiYTNiYjFiM2E4ZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaApAQCAtNjEsNiArNjEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NETUluc3Rh
bmNlU2Vzc2lvbi5oPgogI2VuZGlmCiAKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyNpbmNsdWRl
IDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkK
IG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTWFjaFNlbmRSaWdodDsKQEAgLTEwMjUsNCArMTAyOSwx
OSBAQCB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDRE1JbnN0YW5jZTo6
SERDUFN0YXR1cz4gewogCiAjZW5kaWYKIAorI2lmIFVTRShBVURJT19TRVNTSU9OKQordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpT
b2xvQW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpNZWRpYVBsYXliYWNrLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpSZWNvcmRBdWRpbywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
UGxheUFuZFJlY29yZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QXVkaW9Qcm9jZXNzaW5nCisgICAgPjsKK307CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKaW5kZXggNDM2YmMyNjM0ZjEwZGQwM2JkOTFmMjUyZjk3YzI2ODdmMDVmNzliNS4uMjUy
YzhmYWRhZmUxZWJhMDM5MzZmOWE5MmNkYmVlYmRmOTQyNTg1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTI0LDYg
KzEyNCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29s
IGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbWVtb3J5Q2Fj
aGVEaXNhYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkIHsgZmFsc2Ug
fTsKKyAgICBib29sIHVzZUdQVVByb2Nlc3NGb3JNZWRpYSB7IGZhbHNlIH07CiAKICNpZiBFTkFC
TEUoU0VSVklDRV9DT05UUk9MUykKICAgICBib29sIGhhc0ltYWdlU2VydmljZXMgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDkyNjliMGEzYmFmNTk0ZjMzY2RlZDlmNTRiZTdm
OTJmZWQwYjRlODkuLmVkOWY0NGJiOWYyMmUzYzI0ZjFkMmQ5ODA1ODMyMWE4MTBmNzlkMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTY1Niw2ICs2NTYsOCBAQCBMaWJXZWJSVENDb2RlY3NQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5j
cHAKIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9T
ZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1l
c3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBlODlkZTY5ODk0NzRiZjg5MWIyNjExNjExNmMxZGIwZDZhZjk5ZDA0Li42MjFmYjFjOWVlMDkz
MmQ1MmI0ZjFkNTJkMmI1YjBmM2UzMDYzNzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NDUsNiArMTc0NSw3IEBACiAJCUNEQUMy
MEY4MjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
QUMyMEY1MjNGQzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0RBQzIwRjkyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNE
TUluc3RhbmNlU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEVDMjNGQzM4MzgwMDIxREVFMyAv
KiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CiAJCUNEQUMyMEZBMjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
REFDMjBFRjIzRkMzODM5MDAyMURFRTMgLyogUmVtb3RlQ0RNUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OworCQlDREJCNDlGRDI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNz
aW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNv
bmZpZ3VyYXRpb24uaCAqLzsgfTsKIAkJQ0RDMjgzMUQyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVs
bHNjcmVlblN0YWNrVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RDMjgzMUIyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmll
dy5oICovOyB9OwogCQlDRENBODVDOTEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RDQTg1QzcxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIuaCAqLzsgfTsKIAkJQ0UxMUFENTIxQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWduaW5n
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTExQUQ1
MTFDQkM0ODJGMDA2ODFFRTUgLyogQ29kZVNpZ25pbmcuaCAqLzsgfTsKQEAgLTUxMDMsNiArNTEw
NCwxNSBAQAogCQlDREFDMjBGNDIzRkMzODNBMDAyMURFRTMgLyogUmVtb3RlQ0RNUHJveHlNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVDRE1Qcm94eU1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQUMyMEY1MjNGQzM4M0Iw
MDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNETUluc3RhbmNlUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREFDMjBG
NjIzRkMzODNCMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVDRE1JbnN0YW5jZVBy
b3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0
OUY0MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQXVkaW9TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
QkI0OUY1MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RCQjQ5RjYyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY3MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY4MjQwRDhE
NTMwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNz
aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlm
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZDMjQwRDlBNzIwMDE3
QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RDMjgzMUIyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmll
dy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcuaDsgcGF0aCA9IGlvcy9m
dWxsc2NyZWVuL1dLRnVsbHNjcmVlblN0YWNrVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREMyODMxQzIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBwYXRo
ID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDREMzODJGNzE3MjExNTA2MDA4QTJGQzMgLyogQ0ZOZXR3b3JrLmZy
YW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ0ZOZXR3b3JrLmZyYW1ld29yazsgcGF0aCA9IC9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NGTmV0d29yay5mcmFtZXdvcms7IHNvdXJjZVRyZWUg
PSAiPGFic29sdXRlPiI7IH07CkBAIC01MTEwLDYgKzUxMjAsMTcgQEAKIAkJQ0RDQTg1QzYxMzJB
QkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENBODVDNzEzMkFCQTRFMDBF
OTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJz
b2x1dGU+IjsgfTsKKwkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcwMjQwREQ0RUYwMEY3QjhDNCAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDREQ1MzU3MjI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTczMjQwRERFMDYwMEY3QjhDNCAv
KiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzQyNDBEREUwNzAw
RjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhD
NCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNERDUzNTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3OTI0
MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNS
ZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTExQUQ0RjFD
QkM0N0Y4MDA2ODFFRTUgLyogQ29kZVNpZ25pbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDb2RlU2lnbmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0UxMUFENTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWduaW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvZGVTaWduaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNFMUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNl
c1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3NlcnRpb25TZXJ2aWNl
c1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTM4OSw2ICs1NDEwLDExIEBA
CiAJCQkJOUI1QkVDMjkyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5jcHAgKi8sCiAJCQkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eS5oICovLAogCQkJCTlCNUJFQzJFMjQwMTAxOEMwMDcwQzZFRiAvKiBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjUy
NDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAgKi8sCisJCQkJQ0RCQjQ5
RjQyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5oICovLAorCQkJCUNERDUz
NTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gKi8s
CisJCQkJQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24uaCAqLywKKwkJCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyogUmVtb3RlQXVk
aW9TZXNzaW9uSWRlbnRpZmllci5oICovLAogCQkJCUNEQUMyMEJGMjNGQzJGNzUwMDIxREVFMyAv
KiBSZW1vdGVDRE0uY3BwICovLAogCQkJCUNEQUMyMEJBMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1v
dGVDRE0uaCAqLywKIAkJCQlDREFDMjBCODIzRkMyRjczMDAyMURFRTMgLyogUmVtb3RlQ0RNQ29u
ZmlndXJhdGlvbi5oICovLApAQCAtNTQzMSw2ICs1NDU3LDEyIEBACiAJCQkJOUIxMjI5Q0MyM0ZG
MjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCAqLywKIAkJ
CQk5QjEyMjlDQjIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuaCAqLywKIAkJCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RjcyNDBEOEM5NTAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCAqLywKKwkJCQlDREJCNDlGNjI0MEQ4
Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCAqLywKKwkJCQlDREJCNDlG
ODI0MEQ4RDUzMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4g
Ki8sCisJCQkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlci5jcHAgKi8sCisJCQkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oICovLAorCQkJCUNERDUzNTcwMjQwREQ0RUYwMEY3
QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJ
CQkJMDcxQkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAg
Ki8sCiAJCQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94
eS5oICovLAogCQkJCUNEQUMyMDc5MjNGQjFFMjEwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5
UHJveHkuY3BwICovLApAQCAtOTg1MCw2ICs5ODgyLDE1IEBACiAJCQkJMUEwNDNCNUMxMjRENUU5
RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMUE4RUZB
NkUxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQkxQThFRkE2RjEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlcy5oICov
LAorCQkJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTc1MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc0MjQwRERFMDcwMEY3QjhD
NCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQlDREQ1MzU3
MzI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDREQ1MzU3ODI0MERERTA4MDBGN0I4QzQgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQlDREQ1MzU3OTI0MERE
RTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBs
aWVzLmggKi8sCisJCQkJQ0RENTM1NzEyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDREQ1MzU3MjI0MERERTA2MDBG
N0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oICovLAorCQkJCUNERDUz
NTc3MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzUmVw
bGllcy5oICovLAogCQkJCUNEQUMyMEYyMjNGQzM4M0EwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0
b3J5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQUMyMEYzMjNGQzM4M0EwMDIx
REVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNEQUMyMEVF
MjNGQzM4MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlc1JlcGxpZXMu
aCAqLywKQEAgLTEwNzczLDYgKzEwODE0LDcgQEAKIAkJCQk5QjEyMjlEMjIzRkYyQkNDMDA4Q0E3
NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUI1QkVDMkEyNDAxMDE1ODAwNzBDNkVGIC8qIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RCQjQ5RkQy
NDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEQUMyMEM3MjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE0uaCBp
biBIZWFkZXJzICovLAogCQkJCUNEQUMyMEM1MjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE1D
b25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDRDIzRkMyRjc1MDAyMURF
RTMgLyogUmVtb3RlQ0RNRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2JlNWNlYzhlYTFiNjg3ZDViZGQ3MTdkY2RjMzMxYzQ2MWFkZDU1MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uLmNwcApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkdQVVByb2Nlc3NQcm94eS5o
IgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1VuaXF1ZVJlZjxSZW1vdGVBdWRp
b1Nlc3Npb24+IFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKFdlYlByb2Nlc3MmIHByb2Nlc3Mp
Cit7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uOwor
ICAgIHByb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2Vu
ZFN5bmMoTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkVuc3VyZUF1ZGlvU2Vz
c2lvbigpLCBNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RW5zdXJlQXVkaW9T
ZXNzaW9uOjpSZXBseShjb25maWd1cmF0aW9uKSwgeyB9KTsKKyAgICByZXR1cm4gbWFrZVVuaXF1
ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb24+KHByb2Nlc3MsIFdURk1vdmUoY29uZmlndXJhdGlvbikp
OworfQorCitSZW1vdGVBdWRpb1Nlc3Npb246OlJlbW90ZUF1ZGlvU2Vzc2lvbihXZWJQcm9jZXNz
JiBwcm9jZXNzLCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlv
bikKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQorICAgICwgbV9jb25maWd1cmF0aW9uKFdURk1v
dmUoY29uZmlndXJhdGlvbikpCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvbjo6flJlbW90ZUF1
ZGlvU2Vzc2lvbigpID0gZGVmYXVsdDsKKworSVBDOjpDb25uZWN0aW9uJiBSZW1vdGVBdWRpb1Nl
c3Npb246OmNvbm5lY3Rpb24oKQoreworICAgIHJldHVybiBtX3Byb2Nlc3MuZW5zdXJlR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgdHlwZSwgUm91dGVTaGFyaW5nUG9saWN5IHBv
bGljeSkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk6OlNldENhdGVnb3J5KHR5cGUsIHBvbGljeSksIHsgfSk7Cit9CisKK3ZvaWQgUmVt
b3RlQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBzaXplKQorewor
ICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6
U2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplKSwgeyB9KTsKK30KKworYm9vbCBSZW1vdGVBdWRp
b1Nlc3Npb246OnRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCBhY3RpdmUpCit7CisgICAgYm9v
bCBzdWNjZWVkZWQ7CisgICAgY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6VHJ5VG9TZXRBY3RpdmUoYWN0aXZlKSwgTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5OjpUcnlUb1NldEFjdGl2ZTo6UmVwbHkoc3VjY2VlZGVkKSwgeyB9
KTsKKyAgICByZXR1cm4gc3VjY2VlZGVkOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6
Y29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24pCit7CisgICAgYm9vbCBtdXRlZFN0YXRlQ2hhbmdlZCA9IGNvbmZpZ3VyYXRp
b24uaXNNdXRlZCAhPSBtX2NvbmZpZ3VyYXRpb24uaXNNdXRlZDsKKworICAgIG1fY29uZmlndXJh
dGlvbiA9IGNvbmZpZ3VyYXRpb247CisKKyAgICBpZiAobXV0ZWRTdGF0ZUNoYW5nZWQpCisgICAg
ICAgIGhhbmRsZU11dGVkU3RhdGVDaGFuZ2UoKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Np
b246OmJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25U
eXBlIHR5cGUpCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5h
Z2VyKCkuYmVnaW5JbnRlcnJ1cHRpb24odHlwZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNz
aW9uOjplbmRJbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlv
bkZsYWdzIGZsYWdzKQoreworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVk
TWFuYWdlcigpLmVuZEludGVycnVwdGlvbihmbGFncyk7Cit9CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45OGY4ZGM4MjNlM2YwMTA3YzE5M2JlOTQ4YmY3ZmI5NjhiY2U3
OWY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb24uaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9O
KQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oPgorCituYW1lc3BhY2Ug
SVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBHUFVQcm9jZXNzQ29ubmVjdGlvbjsKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIFJlbW90
ZUF1ZGlvU2Vzc2lvbiBmaW5hbAorICAgIDogcHVibGljIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbgor
ICAgICwgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPiBjcmVh
dGUoV2ViUHJvY2VzcyYpOworICAgIHZpcnR1YWwgflJlbW90ZUF1ZGlvU2Vzc2lvbigpOworCitw
cml2YXRlOgorICAgIGZyaWVuZCBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPiBXVEY6Om1h
a2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPFJlbW90ZUF1ZGlvU2Vzc2lvbj4oV2Vi
UHJvY2VzcyYsIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJik7CisgICAgUmVtb3Rl
QXVkaW9TZXNzaW9uKFdlYlByb2Nlc3MmLCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
JiYpOworICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOworCisgICAgLy8gSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIGNv
bmZpZ3VyYXRpb25DaGFuZ2VkKFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJik7Cisg
ICAgdm9pZCBiZWdpbkludGVycnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
SW50ZXJydXB0aW9uVHlwZSk7CisgICAgdm9pZCBlbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzKTsKKworICAgIC8vIEF1ZGlv
U2Vzc2lvbgorICAgIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBXZWJDb3JlOjpSb3V0
ZVNoYXJpbmdQb2xpY3kpIGZpbmFsOworICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShz
aXplX3QpIGZpbmFsOworICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sKSBmaW5h
bDsKKworICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
Y29uZmlndXJhdGlvbi5jYXRlZ29yeTsgfQorICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGlj
eSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRp
b24ucm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnJvdXRpbmdDb250ZXh0VUlEOyB9
CisgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJh
dGlvbi5zYW1wbGVSYXRlOyB9CisgICAgc2l6ZV90IGJ1ZmZlclNpemUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYnVmZmVyU2l6ZTsgfQorICAgIHNpemVfdCBudW1iZXJP
Zk91dHB1dENoYW5uZWxzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLm51
bWJlck9mT3V0cHV0Q2hhbm5lbHM7IH0KKyAgICBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5wcmVmZXJyZWRCdWZmZXJTaXpl
OyB9CisgICAgYm9vbCBpc011dGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0
aW9uLmlzTXV0ZWQ7IH0KKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9jb25maWd1cmF0aW9uLmlzQWN0aXZlOyB9CisKKyAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7
CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBtX2NvbmZpZ3VyYXRpb247Cit9
OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wODk2MjhmNjU3ZWY3Y2RiY2RiYTc3OWQ0MWRiOTliY2E1ZDQ0YjEyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCittZXNzYWdlcyAtPiBSZW1v
dGVBdWRpb1Nlc3Npb24gTm90UmVmQ291bnRlZCB7CisgICAgQ29uZmlndXJhdGlvbkNoYW5nZWQo
c3RydWN0IFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0
aW9uKQorICAgIEJlZ2luSW50ZXJydXB0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQorICAgIEVuZEludGVycnVwdGlv
bihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVw
dGlvbkZsYWdzIGZsYWdzKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmU2YzQzNjJlZDk1YWE2YzUwMWNkMGE2YTIwM2QyYjVl
YTcxZjBiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCkBAIC0wLDAgKzEsMTI1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1
cmF0aW9uIHsKKworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVn
b3J5OworICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3k7
CisgICAgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEOworICAgIGZsb2F0IHNhbXBsZVJhdGU7Cisg
ICAgdWludDY0X3QgYnVmZmVyU2l6ZTsKKyAgICB1aW50NjRfdCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzOworICAgIHVpbnQ2NF90IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgYm9vbCBpc011dGVk
OworICAgIGJvb2wgaXNBY3RpdmU7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgorICAg
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNv
ZGVyIDw8IGNhdGVnb3J5OworICAgICAgICBlbmNvZGVyIDw8IHJvdXRlU2hhcmluZ1BvbGljeTsK
KyAgICAgICAgZW5jb2RlciA8PCByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgZW5jb2RlciA8
PCBzYW1wbGVSYXRlOworICAgICAgICBlbmNvZGVyIDw8IGJ1ZmZlclNpemU7CisgICAgICAgIGVu
Y29kZXIgPDwgbnVtYmVyT2ZPdXRwdXRDaGFubmVsczsKKyAgICAgICAgZW5jb2RlciA8PCBwcmVm
ZXJyZWRCdWZmZXJTaXplOworICAgICAgICBlbmNvZGVyIDw8IGlzTXV0ZWQ7CisgICAgICAgIGVu
Y29kZXIgPDwgaXNBY3RpdmU7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+
CisgICAgc3RhdGljIE9wdGlvbmFsPFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+IGNhdGVnb3J5OworICAgICAgICBkZWNvZGVyID4+
IGNhdGVnb3J5OworICAgICAgICBpZiAoIWNhdGVnb3J5KQorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xp
Y3k+IHJvdXRlU2hhcmluZ1BvbGljeTsKKyAgICAgICAgZGVjb2RlciA+PiByb3V0ZVNoYXJpbmdQ
b2xpY3k7CisgICAgICAgIGlmICghcm91dGVTaGFyaW5nUG9saWN5KQorICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxTdHJpbmc+IHJvdXRpbmdDb250
ZXh0VUlEOworICAgICAgICBkZWNvZGVyID4+IHJvdXRpbmdDb250ZXh0VUlEOworICAgICAgICBp
ZiAoIXJvdXRpbmdDb250ZXh0VUlEKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgICAgICBPcHRpb25hbDxmbG9hdD4gc2FtcGxlUmF0ZTsKKyAgICAgICAgZGVjb2RlciA+
PiBzYW1wbGVSYXRlOworICAgICAgICBpZiAoIXNhbXBsZVJhdGUpCisgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBidWZmZXJTaXpl
OworICAgICAgICBkZWNvZGVyID4+IGJ1ZmZlclNpemU7CisgICAgICAgIGlmICghYnVmZmVyU2l6
ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8
dWludDY0X3Q+IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAgICAgIGRlY29kZXIgPj4gbnVt
YmVyT2ZPdXRwdXRDaGFubmVsczsKKyAgICAgICAgaWYgKCFudW1iZXJPZk91dHB1dENoYW5uZWxz
KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDx1
aW50NjRfdD4gcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBwcmVmZXJy
ZWRCdWZmZXJTaXplOworICAgICAgICBpZiAoIXByZWZlcnJlZEJ1ZmZlclNpemUpCisgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGlzTXV0
ZWQ7CisgICAgICAgIGRlY29kZXIgPj4gaXNNdXRlZDsKKyAgICAgICAgaWYgKCFpc011dGVkKQor
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxib29s
PiBpc0FjdGl2ZTsKKyAgICAgICAgZGVjb2RlciA+PiBpc0FjdGl2ZTsKKyAgICAgICAgaWYgKCFp
c0FjdGl2ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0
dXJuIHt7CisgICAgICAgICAgICBXVEZNb3ZlKCpjYXRlZ29yeSksCisgICAgICAgICAgICBXVEZN
b3ZlKCpyb3V0ZVNoYXJpbmdQb2xpY3kpLAorICAgICAgICAgICAgV1RGTW92ZSgqcm91dGluZ0Nv
bnRleHRVSUQpLAorICAgICAgICAgICAgKnNhbXBsZVJhdGUsCisgICAgICAgICAgICAqYnVmZmVy
U2l6ZSwKKyAgICAgICAgICAgICpudW1iZXJPZk91dHB1dENoYW5uZWxzLAorICAgICAgICAgICAg
KnByZWZlcnJlZEJ1ZmZlclNpemUsCisgICAgICAgICAgICAqaXNNdXRlZCwKKyAgICAgICAgICAg
ICppc0FjdGl2ZSwKKyAgICAgICAgfX07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMxNDgwYzY5NGUyYjNkOTdiNTk2ZTJhMDczMDNkNjdmYjBmOTliZDYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vz
c2lvbklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisj
aW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2VudW0gUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgUmVtb3Rl
QXVkaW9TZXNzaW9uSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UmVtb3RlQXVkaW9TZXNz
aW9uSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTFjMmY1ZTUzYjM0MGMy
MjA1Zjc4OWI0YjM3M2EyZTUwN2JiNmViYi4uYWVhMjkxZWQ4ZTE4ZjU0MTkxNmJjNGQ3OGFhOGFh
YWE4NTFjYWNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
NDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb24uaCIKICNp
bmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCiAj
aW5jbHVkZSAiVXNlckRhdGEuaCIKQEAgLTQ3MSw2ICs0NzIsOCBAQCB2b2lkIFdlYlByb2Nlc3M6
OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzKQogICAgIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRTaG91bGRMb2dVc2VySW50
ZXJhY3Rpb24ocGFyYW1ldGVycy5zaG91bGRMb2dVc2VySW50ZXJhY3Rpb24pOwogI2VuZGlmCiAK
KyAgICBzZXRVc2VHUFVQcm9jZXNzRm9yTWVkaWEocGFyYW1ldGVycy51c2VHUFVQcm9jZXNzRm9y
TWVkaWEpOworCiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzLCAiaW5pdGlhbGl6
ZVdlYlByb2Nlc3M6IFByZXNlbnRpbmcgcHJvY2VzcyA9ICVkIiwgV2ViQ29yZTo6cHJlc2VudGlu
Z0FwcGxpY2F0aW9uUElEKCkpOwogfQogCkBAIC0xOTk3LDYgKzIwMDAsMTUgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpzZXRTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9yVGVzdGluZyhUaGlyZFBh
cnR5Q29va2llQmxvY2sKIH0KICNlbmRpZgogCit2b2lkIFdlYlByb2Nlc3M6OnNldFVzZUdQVVBy
b2Nlc3NGb3JNZWRpYShib29sIHVzZUdQVVByb2Nlc3NGb3JNZWRpYSkKK3sKKyAgICBpZiAodXNl
R1BVUHJvY2Vzc0Zvck1lZGlhID09IG1fdXNlR1BVUHJvY2Vzc0Zvck1lZGlhKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3VzZUdQVVByb2Nlc3NGb3JNZWRpYSA9IHVzZUdQVVByb2Nlc3NGb3JN
ZWRpYTsKKyAgICBBdWRpb1Nlc3Npb246OnNldFNoYXJlZFNlc3Npb24odXNlR1BVUHJvY2Vzc0Zv
ck1lZGlhID8gUmVtb3RlQXVkaW9TZXNzaW9uOjpjcmVhdGUoKnRoaXMpIDogQXVkaW9TZXNzaW9u
OjpjcmVhdGUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFT
RV9MT0dfU0VTU0lPTl9JRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXgg
NjViZjA0MTdkNGY4YzFkYjUxZjllOTc1MGJjYjk3ZjlhNWJjMmI5MC4uNjU1ZTc4ZGYwOGRmMDhh
YzkyYTU2YmZjOWNjOGE3YTlkNTI1NWQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCkBAIC01MTcsNiArNTE3LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCkgeyByZXR1cm4gbV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRC0+aXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgOiB0cnVlOyB9CiAKKyAgICB2b2lkIHNldFVzZUdQVVBy
b2Nlc3NGb3JNZWRpYShib29sKTsKKwogICAgIFJlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nl
c3M+IG1fd2ViQ29ubmVjdGlvbjsKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFJlZlB0cjxXZWJQYWdlPj4gbV9wYWdlTWFwOwpAQCAtNjUzLDYgKzY1NSw4IEBAIHByaXZh
dGU6CiAgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fYXNzZXRTZXJ2aWNlRXh0ZW5zaW9u
OwogICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX2Fzc2V0U2VydmljZVYyRXh0ZW5zaW9u
OwogI2VuZGlmCisKKyAgICBib29sIG1fdXNlR1BVUHJvY2Vzc0Zvck1lZGlhIHsgZmFsc2UgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392578</attachid>
            <date>2020-03-05 09:02:03 -0800</date>
            <delta_ts>2020-03-05 09:06:45 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208583-20200305090202.patch</filename>
            <type>text/plain</type>
            <size>87958</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZmZTQ3YzEyYzgxMzExY2M4OWRkYmI5
NTE2MjE0MjU0ZGU5YTAxNjEuLjc3OWQ0ZGE1Y2JmNTQ4ZWJkMTAzNzg2MDQ5NGNjNDIyMjA4ZGMy
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRk
IFVuaXF1ZVJlZiB0byB0aGUgbGlzdCBvZiBmb3J3YXJkLWRlY2xhcmVkIHRlbXBsYXRlIHR5cGVz
LgorCisgICAgICAgICogd3RmL0ZvcndhcmQuaDoKKwogMjAyMC0wMy0wNCAgTWFyayBMYW0gIDxt
YXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgZXJy
b3Igd2hpbGUgY29uc3RydWN0aW5nIHRoZSBCeXRlY29kZUdlbmVyYXRvci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBmYmM4Njg2ZjZjNWU5NGViNTZkYzZjOTFmM2I5ZmJhMTkwZTUyZWQ4Li5mOWVmZjA5ZDdkOWQ5
MmM3ZDZmY2M3MmI4ZmFiYmJiYTI1MmJjOTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAgIFJldmlld2VkIGJ5
IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRkIGFuIGltcGxlbWVudGF0aW9uIG9mIE1l
ZGlhU3RyYXRlZ3kgd2hpY2ggcHJvdmlkZXMgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhl
CisgICAgICAgIHBsYXRmb3JtIGNyZWF0aW9uIG1ldGhvZHMsIHNvIHRoZXkgZG9uJ3QgbmVlZCB0
byBiZSByZS1pbXBsZW1lbnRlZCBieSBlYWNoIGNsaWVudCB1bmxlc3MKKyAgICAgICAgdGhhdCBj
bGllbnQgbmVlZHMgdG8gb3ZlcnJpZGUgdGhhdCBiZWhhdmlvci4KKworICAgICAgICBBZGQgRW51
bVRyYWl0cyBmb3IgYWxsIHRoZSBlbnVtZXJhdGlvbnMgaW5zaWRlIEF1ZGlvU2Vzc2lvbi4KKwor
ICAgICAgICBNYWtlIG1hbnkgQXVkaW9TZXNzaW9uIG1ldGhvZHMgdmlydHVhbCwgc28gdGhleSBj
YW4gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgY2FzZSB3aGVyZSB0aGUKKyAgICAgICAgR1BVIHByb2Nl
c3MgaXMgZW5hYmxlZC4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJh
dGVneS5oLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9TZXNz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGlu
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneTo6cmVnaXN0ZXJDRE1GYWN0
b3JpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oOgorCiAyMDIwLTAzLTA1
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGlt
aXplIFBhdGg6OmVuY29kZSBvbiBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0IENHUGF0aEdldE51bWJl
ck9mRWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTlkMzk5YWI2ZTBmY2M0ZmU3NTdmOThmMTIxOTkxYjli
MWQzMDQxYi4uYzljN2IzMDc1NDA0ZGMwNjdjYmI5OGU3ZTRmZmIyMjhmNDk1MTVjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw5MyBAQAorMjAyMC0wMy0wNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gSW1wbGVtZW50IFJlbW90ZUF1ZGlvU2Vzc2lvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NTgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBZGQgYSBz
dWJjbGFzcyBvZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBh
dWRpbyBiZWhhdmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAg
ICAgYXVkaW8gYmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJv
Y2Vzcywgc2luY2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFs
bHkKKyAgICAgICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAg
ICAgICAgT3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2hhcmVkIEF1ZGlvU2Vzc2lvbiBhdCBXZWJQcm9j
ZXNzIGluaXRpYWxpemF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjphdWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuc3VyZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChX
ZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxlZ2FjeUNkbUZhY3RvcnlQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVz
c2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3Bh
dGNoU3luY01lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6
ZSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTG9hZGVy
U3RyYXRlZ3kpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0
ZVBhc3RlYm9hcmRTdHJhdGVneSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRl
Z2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3Jt
U3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQ
VVBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmluaXRpYWxpemVHUFVQcm9jZXNzKToK
KyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6YXVkaW9TZXNzaW9uTWFuYWdlciBjb25zdCk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnByb2Nlc3NJZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0Q2F0ZWdvcnkp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0UHJlZmVycmVk
QnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0
cnlUb1NldEFjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
OjpiZWdpbkludGVycnVwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjplbmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eTo6YXVkaW9TZXNzaW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6cm91dGVTaGFyaW5nUG9saWN5IGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnByZWZlcnJlZEJ1ZmZlclNp
emUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6aXNB
Y3RpdmUgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmFk
ZFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
OjpyZW1vdmVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlcjo6Z2V0UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6
OnRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1Nlc3Npb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6
UmVtb3RlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRD
YXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVy
cmVkQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6dHJ5
VG9TZXRBY3RpdmVJbnRlcm5hbCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
bjo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb246OmJlZ2luSW50ZXJydXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjplbmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbjo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbjo6
ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25JZGVudGlmaWVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmF0ZWd5OjpyZWdp
c3RlckNETUZhY3Rvcmllcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVk
aWFTdHJhdGVneS5oOgorCiAyMDIwLTAzLTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBFeHBvcnQgTm93UGxheWluZyBjb21tYW5kcyB0byBHUFVQcm9jZXNz
IHdoZW4gbWVkaWEgcGxheWluZyBpbiBHUFVQcm9jZXNzIGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAppbmRl
eCA3MGRkYjkxNmU1MGM2ZTI4NTJiN2Y5ZTRlMGUzYTU4ZjcwM2E4ZjBkLi42ZTk3ZDVkOWVlOTA5
NjBmMWNlMzJlNjgwM2JjZmZkZTQyMjA0Y2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9G
b3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCkBAIC02OCw2ICs2OCw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gRHVtYlB0clRyYWl0czxUPj4gY2xhc3Mg
UmVmOwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBEdW1iUHRyVHJhaXRzPFQ+PiBj
bGFzcyBSZWZQdHI7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgU3RyaW5nQnVmZmVyOwogdGVt
cGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lID0gdm9pZD4gY2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI7
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBVbmlxdWVSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBjbGFzcyBXZWFrUHRyOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IERlZmF1bHRI
YXNoIHsgdXNpbmcgSGFzaCA9IHZvaWQ7IH07CkBAIC0xMjUsNiArMTI2LDcgQEAgdXNpbmcgV1RG
OjpTdHJpbmdWaWV3OwogdXNpbmcgV1RGOjpUZXh0UG9zaXRpb247CiB1c2luZyBXVEY6OlRleHRT
dHJlYW07CiB1c2luZyBXVEY6OlVSTDsKK3VzaW5nIFdURjo6VW5pcXVlUmVmOwogdXNpbmcgV1RG
OjpWYXJpYW50OwogdXNpbmcgV1RGOjpWZWN0b3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZm
YWZhNDhlMTNmZGNmMmY1N2QuLjUwODI4MzNjYTA5NDIxNDdkY2ZhYzY2MTRlZTM3OTFkMDA5ZWE2
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNw
cApAQCAtMjgsMTUgKzI4LDMyIEBACiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikKIAorI2luY2x1
ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBVbmlxdWVSZWY8QXVkaW9TZXNzaW9u
PiYgc2hhcmVkQXVkaW9TZXNzaW9uKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VW5p
cXVlUmVmPEF1ZGlvU2Vzc2lvbj4+IHNlc3Npb24gPSBBdWRpb1Nlc3Npb246OmNyZWF0ZSgpOwor
ICAgIHJldHVybiBzZXNzaW9uLmdldCgpOworfQorCitVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBB
dWRpb1Nlc3Npb246OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8QXVkaW9T
ZXNzaW9uPigpOworfQorCiBBdWRpb1Nlc3Npb24mIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lv
bigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF1ZGlvU2Vzc2lvbj4gc2Vzc2lvbjsK
LSAgICByZXR1cm4gc2Vzc2lvbjsKKyAgICByZXR1cm4gc2hhcmVkQXVkaW9TZXNzaW9uKCk7Cit9
CisKK3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRTaGFyZWRTZXNzaW9uKFVuaXF1ZVJlZjxBdWRpb1Nl
c3Npb24+JiYgc2Vzc2lvbikKK3sKKyAgICBzaGFyZWRBdWRpb1Nlc3Npb24oKSA9IFdURk1vdmUo
c2Vzc2lvbik7CiB9CiAKIGJvb2wgQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZShib29sIGFj
dGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vz
c2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKaW5k
ZXggMGRhNzVmZGE0YTNhN2M3MTc3Nzg0NDU4ZWQ2NDIwODY2MWM3NmIzNS4uZmE0MjEyZmQwNTlh
Y2E2NGFjNmNkNjk3OTEyMzRmOWEyNjYzY2FmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQsMTMgKzQ1
LDE4IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdCB7CiAgICAgTG9u
Z0Zvcm1WaWRlbwogfTsKIAotY2xhc3MgQXVkaW9TZXNzaW9uIGZpbmFsIHsKK2NsYXNzIFdFQkNP
UkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9TZXNzaW9uKTsKKyAgICBmcmllbmQgY2xhc3Mg
VW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj47CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxBdWRpb1Nlc3Np
b24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8QXVkaW9TZXNzaW9u
PigpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1Nlc3Npb24mIHNo
YXJlZFNlc3Npb24oKTsKKyAgICBzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4gY3JlYXRl
KCk7CisgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkU2Vzc2lvbihVbmlxdWVSZWY8QXVkaW9TZXNz
aW9uPiYmKTsKKyAgICBzdGF0aWMgQXVkaW9TZXNzaW9uJiBzaGFyZWRTZXNzaW9uKCk7CisgICAg
dmlydHVhbCB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBlbnVtIENhdGVnb3J5VHlwZSB7CisgICAg
ZW51bSBDYXRlZ29yeVR5cGUgOiB1aW50OF90IHsKICAgICAgICAgTm9uZSwKICAgICAgICAgQW1i
aWVudFNvdW5kLAogICAgICAgICBTb2xvQW1iaWVudFNvdW5kLApAQCAtNTksMjMgKzY1LDIzIEBA
IHB1YmxpYzoKICAgICAgICAgUGxheUFuZFJlY29yZCwKICAgICAgICAgQXVkaW9Qcm9jZXNzaW5n
LAogICAgIH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5
cGUsIFJvdXRlU2hhcmluZ1BvbGljeSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ2F0ZWdvcnlUeXBl
IGNhdGVnb3J5KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5
VHlwZSwgUm91dGVTaGFyaW5nUG9saWN5KTsKKyAgICB2aXJ0dWFsIENhdGVnb3J5VHlwZSBjYXRl
Z29yeSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlw
ZSk7CiAgICAgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdDsKIAotICAgIFJv
dXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdDsKLSAgICBTdHJpbmcg
cm91dGluZ0NvbnRleHRVSUQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFJvdXRlU2hhcmluZ1BvbGlj
eSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyByb3V0aW5n
Q29udGV4dFVJRCgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgZmxvYXQgc2FtcGxlUmF0
ZSgpIGNvbnN0OwotICAgIHNpemVfdCBidWZmZXJTaXplKCkgY29uc3Q7Ci0gICAgc2l6ZV90IG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGZsb2F0IHNhbXBsZVJh
dGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHNpemVfdCBidWZmZXJTaXplKCkgY29uc3Q7CisgICAg
dmlydHVhbCBzaXplX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscygpIGNvbnN0OwogCiAgICAgYm9v
bCB0cnlUb1NldEFjdGl2ZShib29sKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHNpemVfdCBwcmVm
ZXJyZWRCdWZmZXJTaXplKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQcmVm
ZXJyZWRCdWZmZXJTaXplKHNpemVfdCk7CisgICAgdmlydHVhbCBzaXplX3QgcHJlZmVycmVkQnVm
ZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXpl
KHNpemVfdCk7CiAKICAgICBjbGFzcyBNdXRlZFN0YXRlT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoK
QEAgLTg3LDE3ICs5MywxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRNdXRlZFN0YXRlT2JzZXJ2
ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKik7CiAgICAgdm9pZCByZW1vdmVNdXRlZFN0YXRlT2JzZXJ2
ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKik7CiAKLSAgICBib29sIGlzTXV0ZWQoKSBjb25zdDsKLSAg
ICB2b2lkIGhhbmRsZU11dGVkU3RhdGVDaGFuZ2UoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNdXRl
ZCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCk7CiAK
LSAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZTsgfQogCi1wcml2YXRl
OgorcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxBdWRpb1Nlc3Np
b24+OwogICAgIEF1ZGlvU2Vzc2lvbigpOwotICAgIH5BdWRpb1Nlc3Npb24oKTsKIAotICAgIGJv
b2wgdHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgdHJ5VG9T
ZXRBY3RpdmVJbnRlcm5hbChib29sKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1Nlc3Np
b25Qcml2YXRlPiBtX3ByaXZhdGU7CiAgICAgSGFzaFNldDxNdXRlZFN0YXRlT2JzZXJ2ZXIqPiBt
X29ic2VydmVyczsKQEAgLTEyMCw2ICsxMjUsMTkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHsKICAgICA+OwogfTsKIAordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpT
b2xvQW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpNZWRpYVBsYXliYWNrLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpSZWNvcmRBdWRpbywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
UGxheUFuZFJlY29yZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QXVkaW9Qcm9jZXNzaW5nCisgICAgPjsKK307CisKIHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CiBz
dHJ1Y3QgTG9nQXJndW1lbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCmluZGV4IGUyYjM4YTAxZDBhYTVhNjZkMzc3OTEx
ZWQ0MDFlNTI4OTA3ODk3MDguLjkzMDg1YjBkNDI3YWViZTg0MTBlNWQwNzE5MzhhYjA2MDE0NDFh
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1N
ZWRpYVNlc3Npb24uaApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbigpOwogCi0gICAgZW51bSBjbGFzcyBNZWRpYVR5cGUgeworICAg
IGVudW0gY2xhc3MgTWVkaWFUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUgPSAwLAogICAg
ICAgICBWaWRlbywKICAgICAgICAgVmlkZW9BdWRpbywKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGlj
OgogICAgIE1lZGlhVHlwZSBtZWRpYVR5cGUoKSBjb25zdDsKICAgICBNZWRpYVR5cGUgcHJlc2Vu
dGF0aW9uVHlwZSgpIGNvbnN0OwogCi0gICAgZW51bSBTdGF0ZSB7CisgICAgZW51bSBTdGF0ZSA6
IHVpbnQ4X3QgewogICAgICAgICBJZGxlLAogICAgICAgICBBdXRvcGxheWluZywKICAgICAgICAg
UGxheWluZywKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogICAgIFN0YXRlIHN0YXRlKCkgY29u
c3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogICAgIHZvaWQgc2V0U3RhdGUoU3RhdGUpOwogCi0gICAg
ZW51bSBJbnRlcnJ1cHRpb25UeXBlIHsKKyAgICBlbnVtIEludGVycnVwdGlvblR5cGUgOiB1aW50
OF90IHsKICAgICAgICAgTm9JbnRlcnJ1cHRpb24sCiAgICAgICAgIFN5c3RlbVNsZWVwLAogICAg
ICAgICBFbnRlcmluZ0JhY2tncm91bmQsCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICB9
OwogICAgIEludGVycnVwdGlvblR5cGUgaW50ZXJydXB0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1faW50ZXJydXB0aW9uVHlwZTsgfQogCi0gICAgZW51bSBFbmRJbnRlcnJ1cHRpb25GbGFncyB7
CisgICAgZW51bSBFbmRJbnRlcnJ1cHRpb25GbGFncyA6IHVpbnQ4X3QgewogICAgICAgICBOb0Zs
YWdzID0gMCwKICAgICAgICAgTWF5UmVzdW1lUGxheWluZyA9IDEgPDwgMCwKICAgICB9OwpAQCAt
MTE4LDcgKzExOCw3IEBAIHB1YmxpYzoKICAgICAgICAgZG91YmxlIGFzRG91YmxlOwogICAgIH0g
UmVtb3RlQ29tbWFuZEFyZ3VtZW50OwogCi0gICAgZW51bSBSZW1vdGVDb250cm9sQ29tbWFuZFR5
cGUgeworICAgIGVudW0gUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIDogdWludDhfdCB7CiAgICAg
ICAgIE5vQ29tbWFuZCwKICAgICAgICAgUGxheUNvbW1hbmQsCiAgICAgICAgIFBhdXNlQ29tbWFu
ZCwKQEAgLTEzNCw3ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVtb3Rl
Q29udHJvbENvbW1hbmQoUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlLCBjb25zdCBSZW1vdGVDb21t
YW5kQXJndW1lbnQqIGFyZ3VtZW50ID0gbnVsbHB0cik7CiAgICAgYm9vbCBzdXBwb3J0c1NlZWtp
bmcoKSBjb25zdDsKIAotICAgIGVudW0gRGlzcGxheVR5cGUgeworICAgIGVudW0gRGlzcGxheVR5
cGUgOiB1aW50OF90IHsKICAgICAgICAgTm9ybWFsLAogICAgICAgICBGdWxsc2NyZWVuLAogICAg
ICAgICBPcHRpbWl6ZWQsCkBAIC0yOTcsNCArMjk3LDY0IEBAIHN0cnVjdCBMb2dBcmd1bWVudDxX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7
CiAgICAgfQogfTsKIAordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXMgPAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGUsCisg
ICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6Tm9uZSwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpWaWRlbywKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpWaWRlb0F1ZGlvLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6OkF1ZGlvLAorICAgIFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6OldlYkF1ZGlvCisgICAgPjsKK307
CisKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpTdGF0ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMgPAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6U3RhdGU6OklkbGUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNl
c3Npb246OlN0YXRlOjpBdXRvcGxheWluZywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6U3RhdGU6OlBsYXlpbmcsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlN0YXRlOjpQYXVzZWQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRl
OjpJbnRlcnJ1cHRlZAorICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZT4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMgPAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpOb0ludGVycnVwdGlvbiwKKyAgICBXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVtU2xlZXAsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OkVudGVyaW5nQmFj
a2dyb3VuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9u
VHlwZTo6U3lzdGVtSW50ZXJydXB0aW9uLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpTdXNwZW5kZWRVbmRlckxvY2ssCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OkludmlzaWJsZUF1dG9wbGF5
LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQ
cm9jZXNzSW5hY3RpdmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVy
cnVwdGlvblR5cGU6OlBsYXliYWNrU3VzcGVuZGVkCisgICAgPjsKK307CisKK3RlbXBsYXRlIDw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRl
cnJ1cHRpb25GbGFncz4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMgPAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncywKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M6Ok5vRmxh
Z3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZs
YWdzOjpNYXlSZXN1bWVQbGF5aW5nCisgICAgPjsKK307CisKK3RlbXBsYXRlIDw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29t
bWFuZFR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6Ok5v
Q29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJv
bENvbW1hbmRUeXBlOjpQbGF5Q29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpQYXVzZUNvbW1hbmQsCisgICAgV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6U3RvcENv
bW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZTo6VG9nZ2xlUGxheVBhdXNlQ29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpCZWdpblNlZWtpbmdCYWNr
d2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNv
bnRyb2xDb21tYW5kVHlwZTo6RW5kU2Vla2luZ0JhY2t3YXJkQ29tbWFuZCwKKyAgICBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpCZWdpblNl
ZWtpbmdGb3J3YXJkQ29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpFbmRTZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAg
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6
U2Vla1RvUGxheWJhY2tQb3NpdGlvbkNvbW1hbmQKKyAgICA+OworfTsKKwogfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVk
aW9TZXNzaW9uSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlv
U2Vzc2lvbklPUy5tbQppbmRleCBkNmMwMDdmNDBiNWZiNzYzNzIyZDUzOGFkZWQwMmQxYjgxYTE4
ODU0Li44M2QyNDAwYTFkMGFhNjM4OWMzZGY4OTM2NzEwYTM1ODlhNDQ1ODg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0K
QEAgLTI0Myw2ICsyNDMsMTUgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZl
clNpemUoc2l6ZV90IGJ1ZmZlclNpemUpCiAgICAgQVNTRVJUKCFlcnJvcik7CiB9CiAKK2Jvb2wg
QXVkaW9TZXNzaW9uOjppc011dGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K3ZvaWQgQXVkaW9TZXNzaW9uOjpoYW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCkKK3sKK30KKwogfQog
CiAjZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Qg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggOWY5
NDZmODQ5N2FmMjNiNGFmYTUxYjc5MTg0MTg1MTg4NjBhYzViOS4uZDc0OWIyZGIwOWI5Njc0NmY0
YTBmMWUzNGMyMTc0MmVkZjUzZTQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTgsNiArMTgsOCBAQCAkKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eS5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUlu
c3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMTYsNiArMTE4LDcgQEAgJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUlu
c3RhbmNlU2Vzc2lvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmlu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRl
eCBhOTZjMmNmZGRkNDZiMzU5MjM4ZTk2MjM0M2E5OTIyMTA0ZWVhNTliLi45OTUwMzUxMmJhNTU4
YjJiNDEwMDhmNWIxNjY1MDQ2MGE5NTQxNDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEzNyw2ICsxMzcsMTUgQEAgJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25N
ZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0
b3J5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJv
eHlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQ1ZWUz
ZGI3ZWQ3ZTEzMzcyYzhhNzVhZDU1NWExNjU4N2Y2N2QwOGEuLjFjM2QxYTIwZWVhM2I3MzgwMDEw
MmUxZDMxOTgzNzkwM2FhNmNkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0
OCw2ICsxNDgsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm94eSBcCiAg
ICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgXAogICAgIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eSBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uIFwKKyAgICBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eSBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyIFwKICAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBcCiAgICAgUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYjBlNzhjNzg3
ZmE1N2VkMGRlOTM0MGYxOTdiNWQ2ZTIzNDVlN2M5Mi4uY2I1NzkyOGVjZjJlMjljYWI5ZDM2ZTRk
MGFkYTgwYjk3MmVjZmEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNzYsNiArNzYsMTEgQEAKICNpbmNs
dWRlICJSZW1vdGVDRE1Qcm94eU1lc3NhZ2VzLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIK
KyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmgiCisjZW5kaWYKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTEzMyw2ICsx
MzgsMTAgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoKQogCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKElQQzo6
Q29ubmVjdGlvbiYpCiB7CisgICAgaWYgKG1fYXVkaW9TZXNzaW9uUHJveHkpIHsKKyAgICAgICAg
Z3B1UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5yZW1vdmVQcm94eSh3ZWJQcm9jZXNz
SWRlbnRpZmllcigpKTsKKyAgICAgICAgbV9hdWRpb1Nlc3Npb25Qcm94eSA9IG51bGxwdHI7Cisg
ICAgfQogfQogCiBMb2dnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ2dlcigpCkBA
IC0yMzEsNiArMjQwLDE3IEBAIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6Y2RtRmFjdG9yeVByb3h5KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphdWRpb1Nlc3Npb25Qcm94eSgpCit7CisgICAg
aWYgKCFtX2F1ZGlvU2Vzc2lvblByb3h5KSB7CisgICAgICAgIG1fYXVkaW9TZXNzaW9uUHJveHkg
PSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKCp0aGlzKS5tb3ZlVG9VbmlxdWVQdHIo
KTsKKyAgICAgICAgZ3B1UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5hZGRQcm94eSht
YWtlV2Vha1B0cihtX2F1ZGlvU2Vzc2lvblByb3h5LmdldCgpKSk7CisgICAgfQorICAgIHJldHVy
biAqbV9hdWRpb1Nlc3Npb25Qcm94eTsKK30KKyNlbmRpZgorCiB2b2lkIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQg
PSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1hcC5lbnN1cmUocmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIsIFsmXSgpIHsKQEAgLTI1Nyw2ICsyNzcsMTMgQEAgdm9pZCBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpzZXROb3dQbGF5aW5nSW5mbyhib29sIHNldEFzTm93UGxheWluZ0Fw
cGxpY2F0aW8KIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVE
SU9fU0VTU0lPTikKK3ZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlQXVkaW9T
ZXNzaW9uKEVuc3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24mJiBjb21wbGV0aW9uKQoreworICAg
IGNvbXBsZXRpb24oYXVkaW9TZXNzaW9uUHJveHkoKS5jb25maWd1cmF0aW9uKCkpOworfQorI2Vu
ZGlmCisKIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMzM0LDYg
KzM2MSwxMiBAQCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAg
ICBhdWRpb1Nlc3Npb25Qcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiBt
ZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CiB9CkBAIC0zODEsNiArNDE0LDEyIEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KICNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
VVNFKEFVRElPX1NFU1NJT04pCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgp
ID09IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CisgICAgICAgIGF1ZGlvU2Vzc2lvblByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyNlbmRpZgogCiAgICAgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3Bh
dGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCmluZGV4IDE4MjI2YTdjMzQ5OTE4YWNiYmM0NWJmZjU0YWY2YTdiYmZjNzAxYzMuLmIwMDcx
Y2M2NTI2NmZlN2E5MmFiYzA0ZjNiZmQ4YzVhNDIzZDY4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIK
KyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CkBAIC00
OCwxMiArNDksMTUgQEAgY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIExpYldlYlJUQ0NvZGVjc1By
b3h5OwogY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7CiBjbGFzcyBSZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI7CitjbGFzcyBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eTsKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKIGNsYXNz
IFJlbW90ZUNETUZhY3RvcnlQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OwogY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlcjsKIGNsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXI7CiBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Oworc3RydWN0IFJlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+
CkBAIC04OCwxMSArOTIsMTUgQEAgcHVibGljOgogICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYg
Y2RtRmFjdG9yeVByb3h5KCk7CiAjZW5kaWYKIAorICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5JiByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpOworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAg
ICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7
CiAKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciYgcmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIoKTsKLSAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJ
QldFQlJUQykKICAgICBMaWJXZWJSVENDb2RlY3NQcm94eSYgbGliV2ViUlRDQ29kZWNzUHJveHko
KTsKICNlbmRpZgpAQCAtMTA0LDYgKzExMiwxMSBAQCBwcml2YXRlOgogICAgIFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIoKTsKICNlbmRpZgogI2VuZGlmCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShB
VURJT19TRVNTSU9OKQorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5JiBhdWRpb1Nlc3Npb25Q
cm94eSgpOworI2VuZGlmCisKICAgICB2b2lkIGNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVsZWFzZVJlbmRlcmluZ0JhY2tlbmQo
UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMTEx
LDYgKzEyNCwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Tm93UGxheWluZ0luZm8oYm9vbCBz
ZXRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbiwgY29uc3QgV2ViQ29yZTo6Tm93UGxheWluZ0luZm8m
KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lP
TikKKyAgICB1c2luZyBFbnN1cmVBdWRpb1Nlc3Npb25Db21wbGV0aW9uID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJik+OworICAg
IHZvaWQgZW5zdXJlQXVkaW9TZXNzaW9uKEVuc3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24mJik7
CisjZW5kaWYKKwogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBkaWRD
bG9zZShJUEM6OkNvbm5lY3Rpb24mKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVj
ZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgZmluYWw7CkBAIC0x
NDksNiArMTY3LDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAg
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVDRE1GYWN0b3J5UHJveHk+IG1fY2RtRmFjdG9yeVByb3h5
OwogI2VuZGlmCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IG1fYXVkaW9TZXNz
aW9uUHJveHk7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCA4ZDkxY2UyYmNkYmRhZWNmYzI1NzEwM2NkYWNlNjk2NTRj
YzQ4ZDM5Li41YWI0MTcyZWQzMTQ3ZjI2YTkwMzdkYmM5ODg1YTk3ZjFlODA5Y2M2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjksNiArMjksNyBAQCBtZXNzYWdlcyAtPiBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzIFdhbnRzRGlzcGF0Y2hNZXNzYWdlIHsKICAgICB2b2lkIENs
ZWFyTm93UGxheWluZ0luZm8oKTsKICAgICB2b2lkIFNldE5vd1BsYXlpbmdJbmZvKGJvb2wgc2V0
QXNOb3dQbGF5aW5nQXBwbGljYXRpb24sIHN0cnVjdCBXZWJDb3JlOjpOb3dQbGF5aW5nSW5mbyBu
b3dQbGF5aW5nSW5mbyk7CiAjZW5kaWYKKyAgICBFbnN1cmVBdWRpb1Nlc3Npb24oKSAtPiAoc3Ry
dWN0IFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9u
KSBTeW5jaHJvbm91cwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCmluZGV4IDBlN2JkMDliZWE1ZDEyM2E0MDdl
Y2ZiOWQzOWY3MjQwZjViM2M3YjkuLjYwMzcwMDU5Y2QxNDk1NTM2ZWY0NWNmNDk2NDUyZGQ0MWUy
NGU0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbmNsdWRlICJBdXhpbGlhcnlQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IgorI2luY2x1ZGUgIkdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIkdQVVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzU2Vzc2lvblBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC01MSw2ICs1MiwxMCBAQAogI2luY2x1
ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTExMCw2ICsxMTUsOCBAQCB2
b2lkIEdQVVByb2Nlc3M6OmluaXRpYWxpemVHUFVQcm9jZXNzKEdQVVByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIFdURjo6VGhyZWFkOjpzZXRDdXJyZW50VGhyZWFk
SXNVc2VySW5pdGlhdGVkKCk7CiAgICAgQXRvbVN0cmluZzo6aW5pdCgpOwogCisgICAgR1BVUGxh
dGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCk7CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKQEAgLTIxMiw2ICsyMTksMTUgQEAgY29uc3QgU3Ry
aW5nJiBHUFVQcm9jZXNzOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkgY28KIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBV
U0UoQVVESU9fU0VTU0lPTikKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgR1BVUHJv
Y2Vzczo6YXVkaW9TZXNzaW9uTWFuYWdlcigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2F1ZGlvU2Vz
c2lvbk1hbmFnZXIpCisgICAgICAgIG1fYXVkaW9TZXNzaW9uTWFuYWdlciA9IFdURjo6bWFrZVVu
aXF1ZTxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI+KCk7CisgICAgcmV0dXJuICptX2F1
ZGlvU2Vzc2lvbk1hbmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBy
b2Nlc3MuaAppbmRleCA2ZmEwMjAxNGI5NDc4MWVhOTllMDM1ZGIzYWQ3OWQ2NWEyNGYyODdiLi40
M2FhZTFhMTJiNWI4ODViMjZjNTZkZGYxNTI5NjBmMDIyN2M1MjBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzczsKIHN0cnVjdCBHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3Ry
dWN0IEdQVVByb2Nlc3NTZXNzaW9uUGFyYW1ldGVyczsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRl
eHQ7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CiAKIGNsYXNzIEdQVVBy
b2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcywgcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPEdQVVByb2Nlc3M+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVUHJvY2Vzcz4gewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEdQVVByb2Nlc3MpOwpAQCAtNjMsNiArNjQsMTAgQEAgcHVi
bGljOgogICAgIGNvbnN0IFN0cmluZyYgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeShQQUw6OlNl
c3Npb25JRCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNF
KEFVRElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyJiBhdWRp
b1Nlc3Npb25NYW5hZ2VyKCkgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIGxv
d01lbW9yeUhhbmRsZXIoQ3JpdGljYWwpOwogCkBAIC0xMDMsNiArMTA4LDkgQEAgcHJpdmF0ZToK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gbV9jb250ZXh0Rm9yVmlz
aWJpbGl0eVByb3BhZ2F0aW9uOwogICAgIGJvb2wgbV9jYW5TaG93V2hpbGVMb2NrZWQgeyBmYWxz
ZSB9OwogI2VuZGlmCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lP
TikKKyAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXI+IG1fYXVkaW9TZXNzaW9uTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWZjNDlkZTg5ZGUxYWNl
NDZhYzE2N2Y4NTg0NjgwMzM2NTJkYzkwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApAQCAtMCwwICsx
LDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0Uo
QVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAi
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVk
aW9TZXNzaW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eTo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rp
b24pCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+
KGdwdUNvbm5lY3Rpb24pOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvbikK
KyAgICA6IG1fZ3B1Q29ubmVjdGlvbihncHVDb25uZWN0aW9uKQoreworfQorCitSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eTo6flJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KCkgPSBkZWZhdWx0OworCitX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6cHJvY2Vz
c0lkZW50aWZpZXIoKQoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb24ud2ViUHJvY2Vzc0lk
ZW50aWZpZXIoKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6Y29uZmlndXJhdGlvbigpCit7CisgICAgYXV0byYgc2Vzc2lvbiA9
IGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXNzaW9uKCk7CisgICAgcmV0dXJuIHsKKyAgICAgICAg
c2Vzc2lvbi5jYXRlZ29yeSgpLAorICAgICAgICBzZXNzaW9uLnJvdXRlU2hhcmluZ1BvbGljeSgp
LAorICAgICAgICBzZXNzaW9uLnJvdXRpbmdDb250ZXh0VUlEKCksCisgICAgICAgIHNlc3Npb24u
c2FtcGxlUmF0ZSgpLAorICAgICAgICBzZXNzaW9uLmJ1ZmZlclNpemUoKSwKKyAgICAgICAgc2Vz
c2lvbi5udW1iZXJPZk91dHB1dENoYW5uZWxzKCksCisgICAgICAgIHNlc3Npb24ucHJlZmVycmVk
QnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNzaW9uLmlzTXV0ZWQoKSwKKyAgICAgICAgbV9hY3Rp
dmUKKyAgICB9OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpzZXRDYXRlZ29y
eShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSwgV2ViQ29yZTo6
Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBtX2NhdGVnb3J5ID0gY2F0ZWdvcnk7
CisgICAgbV9yb3V0ZVNoYXJpbmdQb2xpY3kgPSBwb2xpY3k7CisgICAgYXVkaW9TZXNzaW9uTWFu
YWdlcigpLnNldENhdGVnb3J5Rm9yUHJvY2VzcyhtX2dwdUNvbm5lY3Rpb24ud2ViUHJvY2Vzc0lk
ZW50aWZpZXIoKSwgY2F0ZWdvcnksIHBvbGljeSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUodWludDY0X3Qgc2l6ZSkKK3sKKyAgICBt
X3ByZWZlcnJlZEJ1ZmZlclNpemUgPSBzaXplOworICAgIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5z
ZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2VzcyhtX2dwdUNvbm5lY3Rpb24ud2ViUHJvY2Vz
c0lkZW50aWZpZXIoKSwgc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6
OnRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlLCBTZXRBY3RpdmVDb21wbGV0aW9uJiYgY29tcGxl
dGlvbikKK3sKKyAgICBtX2FjdGl2ZSA9IGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS50cnlUb1NldEFj
dGl2ZUZvclByb2Nlc3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIGFj
dGl2ZSk7CisgICAgY29tcGxldGlvbihtX2FjdGl2ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OmJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6QmVnaW5JbnRlcnJ1cHRpb24odHlwZSksIHsgfSk7
Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmVuZEludGVycnVwdGlvbihXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit7
CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6RW5k
SW50ZXJydXB0aW9uKGZsYWdzKSwgeyB9KTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyJiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YXVkaW9TZXNzaW9uTWFuYWdlcigpCit7
CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi5ncHVQcm9jZXNzKCkuYXVkaW9TZXNzaW9uTWFu
YWdlcigpOworfQorCitJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpj
b25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gbV9ncHVDb25uZWN0aW9uLmNvbm5lY3Rpb24oKTsK
K30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNkMmM2YzM3YzE3
OTY0ZTBiYzhkZmE3MjEzNjQ5OTIxZDg0OTNjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oCkBAIC0wLDAg
KzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVk
aWFTZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgorI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlv
bjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcjsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkKKyAgICA6IHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5PiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4gY3JlYXRl
KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eSgpOworCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lk
ZW50aWZpZXIoKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIGNvbmZpZ3Vy
YXRpb24oKTsKKworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVn
b3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsgfTsKKyAgICBXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9yb3V0ZVNo
YXJpbmdQb2xpY3k7IH0KKyAgICBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJlZmVycmVkQnVmZmVyU2l6ZTsgfQorICAgIGJvb2wgaXNBY3RpdmUoKSBjb25z
dCB7IHJldHVybiBtX2FjdGl2ZTsgfQorCisgICAgdm9pZCBiZWdpbkludGVycnVwdGlvbihXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSk7CisgICAgdm9pZCBl
bmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVw
dGlvbkZsYWdzKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOworCitwcml2YXRlOgor
ICAgIGZyaWVuZCBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IFdURjo6bWFrZVVu
aXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+KEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eShH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisKKyAgICAvLyBNZXNzYWdlcworICAgIHZvaWQg
c2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdlYkNvcmU6
OlJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHVp
bnQ2NF90KTsKKyAgICB1c2luZyBTZXRBY3RpdmVDb21wbGV0aW9uID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT47CisgICAgdm9pZCB0cnlUb1NldEFjdGl2ZShib29sLCBTZXRBY3RpdmVD
b21wbGV0aW9uJiYpOworCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyJiBhdWRp
b1Nlc3Npb25NYW5hZ2VyKCk7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCk7CisK
KyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb247CisgICAgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeTsKKyAgICBXZWJDb3Jl
OjpSb3V0ZVNoYXJpbmdQb2xpY3kgbV9yb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgc2l6ZV90IG1f
cHJlZmVycmVkQnVmZmVyU2l6ZSB7IDAgfTsKKyAgICBib29sIG1fYWN0aXZlIHsgZmFsc2UgfTsK
K307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTdmM2JhZTgyNDNmYWE1NDU1MmJiZmYwNGQ5YTZlYjg1MmI2MDYyMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKK21lc3NhZ2VzIC0+
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIFNldENhdGVnb3J5
KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSB0eXBlLCBl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKKyAgICBTZXRQ
cmVmZXJyZWRCdWZmZXJTaXplKHVpbnQ2NF90IHByZWZlcnJlZEJ1ZmZlclNpemUpCisgICAgVHJ5
VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpIC0+IChib29sIHN1Y2VlZGVkKSBTeW5jaHJvbm91cwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjE2YjRlZjIxMWYyYTM4MzA3MDU0YzUxMjYxYjcxNjFmYzdkMDhkYgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Np
b24uaD4KKyNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgYm9vbCBjYXRlZ29yeUNh
bk1peFdpdGhPdGhlcnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpCit7Cisg
ICAgcmV0dXJuIGNhdGVnb3J5ID09IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kOworfQorCitS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlcigpCisgICAgOiBtX3Nlc3Npb24oQXVkaW9TZXNzaW9uOjpjcmVhdGUoKSkKK3sKK30KKwor
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyKCkgPSBkZWZhdWx0OworCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
cjo6YWRkUHJveHkoV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4mJiBwcm94eSkKK3sK
KyAgICBhdXRvIGlkID0gcHJveHktPnByb2Nlc3NJZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKCFt
X3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3Byb3hpZXMuc2V0KGlkLCBXVEZNb3ZlKHBy
b3h5KSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpyZW1vdmVQ
cm94eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7CisgICAgQVNTRVJUKG1fcHJveGll
cy5jb250YWlucyhpZCkpOworICAgIG1fcHJveGllcy5yZW1vdmUoaWQpOworfQorCitSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eSogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpnZXRQcm94
eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7CisgICAgYXV0byByZXN1bHRzID0gbV9w
cm94aWVzLmZpbmQoaWQpOworICAgIGlmIChyZXN1bHRzICE9IG1fcHJveGllcy5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdHMtPnZhbHVlLmdldCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0Q2F0ZWdvcnlGb3JQ
cm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7CisgICAgQVNTRVJU
KG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIGF1dG8gcHJveHkgPSBnZXRQcm94eShpZCk7
CisgICAgaWYgKCFwcm94eSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHByb3h5LT5jYXRl
Z29yeSgpID09IGNhdGVnb3J5ICYmIHByb3h5LT5yb3V0ZVNoYXJpbmdQb2xpY3koKSA9PSBwb2xp
Y3kpCisgICAgICAgIHJldHVybjsKKworICAgIEhhc2hDb3VudGVkU2V0PEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlLCBXVEY6OkludEhhc2g8QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+LCBX
VEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPj4gY2F0
ZWdvcnlDb3VudHM7CisgICAgSGFzaENvdW50ZWRTZXQ8Um91dGVTaGFyaW5nUG9saWN5LCBXVEY6
OkludEhhc2g8Um91dGVTaGFyaW5nUG9saWN5PiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxS
b3V0ZVNoYXJpbmdQb2xpY3k+PiBwb2xpY3lDb3VudHM7CisgICAgZm9yIChhdXRvJiBvdGhlclBy
b3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAgICAgIGNhdGVnb3J5Q291bnRzLmFkZChv
dGhlclByb3h5LT5jYXRlZ29yeSgpKTsKKyAgICAgICAgcG9saWN5Q291bnRzLmFkZChvdGhlclBy
b3h5LT5yb3V0ZVNoYXJpbmdQb2xpY3koKSk7CisgICAgfQorCisgICAgaWYgKGNhdGVnb3J5Q291
bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCkpCisgICAgICAgIGNhdGVn
b3J5ID0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOworICAgIGVsc2UgaWYgKGNhdGVnb3J5
Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW8pKQorICAgICAgICBjYXRl
Z29yeSA9IEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW87CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlD
b3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrKSkKKyAgICAgICAgY2F0
ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7CisgICAgZWxzZSBpZiAoY2F0ZWdv
cnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpTb2xvQW1iaWVudFNvdW5kKSkKKyAgICAg
ICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQ7CisgICAgZWxzZSBp
ZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQpKQor
ICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kOworICAgIGVsc2Ug
aWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5n
KSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZzsKKyAg
ICBlbHNlCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpOb25lOworCisgICAgaWYg
KHBvbGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtVmlkZW8p
KQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtVmlkZW87Cisg
ICAgZWxzZSBpZiAocG9saWN5Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmluZ1BvbGljeTo6TG9u
Z0Zvcm1BdWRpbykpCisgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zv
cm1BdWRpbzsKKyAgICBlbHNlIGlmIChwb2xpY3lDb3VudHMuY29udGFpbnMoUm91dGVTaGFyaW5n
UG9saWN5OjpJbmRlcGVuZGVudCkpCisgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGlj
eTo6SW5kZXBlbmRlbnQ7CisgICAgZWxzZQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQ
b2xpY3k6OkRlZmF1bHQ7CisKKyAgICBtX3Nlc3Npb24tPnNldENhdGVnb3J5KGNhdGVnb3J5LCBw
b2xpY3kpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlkLCBz
aXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSkKK3sKKyAgICBmb3IgKGF1dG8mIG90aGVyUHJveHkg
OiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5KQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhlclByb3h5LT5wcmVmZXJyZWRCdWZmZXJT
aXplKCkgPCBwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcHJlZmVycmVkQnVmZmVy
U2l6ZSA9IG90aGVyUHJveHktPnByZWZlcnJlZEJ1ZmZlclNpemUoKTsKKyAgICB9CisKKyAgICBt
X3Nlc3Npb24tPnNldFByZWZlcnJlZEJ1ZmZlclNpemUocHJlZmVycmVkQnVmZmVyU2l6ZSk7Cit9
CisKK2Jvb2wgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlUb1NldEFjdGl2ZUZv
clByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlkLCBib29sIGFjdGl2ZSkKK3sKKyAg
ICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7CisgICAgYXV0byBwcm94eSA9IGdldFBy
b3h5KGlkKTsKKyAgICBpZiAoIXByb3h5KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBz
aXplX3QgYWN0aXZlUHJveHlDb3VudCB7IDAgfTsKKyAgICBmb3IgKGF1dG8mIG90aGVyUHJveHkg
OiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5KQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhlclByb3h5LT5pc0FjdGl2ZSgpKQorICAg
ICAgICAgICAgKythY3RpdmVQcm94eUNvdW50OworICAgIH0KKworICAgIGlmICghYWN0aXZlICYm
IGFjdGl2ZVByb3h5Q291bnQgPiAxKSB7CisgICAgICAgIC8vIFRoaXMgcHJveHkgd2FudHMgdG8g
ZGUtYWN0aXZhdGUsIGJ1dCBvdGhlciBwcm94aWVzIGFyZSBzdGlsbAorICAgICAgICAvLyBhY3Rp
dmUuIE5vLW9wLCBhbmQgcmV0dXJuIGRlYWN0aXZhdGlvbiB3YXMgc3VjZXNzZnVsLgorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIWFjdGl2ZSkgeworICAgICAgICAvLyBU
aGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBhbmQgaXMgdGhlIGxhc3QgcmVtYWluaW5n
IGFjdGl2ZQorICAgICAgICAvLyBwcm94eS4gRGVhY3RpdmF0ZSB0aGUgc2Vzc2lvbiwgYW5kIHJl
dHVybiB3aGV0aGVyIHRoYXQgZGVhY3RpdmF0aW9uCisgICAgICAgIC8vIHdhcyBzdWNlc3NmdWw7
CisgICAgICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGZhbHNlKTsKKyAgICB9
CisKKyAgICBpZiAoYWN0aXZlICYmICFhY3RpdmVQcm94eUNvdW50KSB7CisgICAgICAgIC8vIFRo
aXMgcHJveHkgYW5kIG9ubHkgdGhpcyBwcm94eSB3YW50cyB0byBiZWNvbWUgYWN0aXZlLiBBY3Rp
dmF0ZQorICAgICAgICAvLyB0aGUgc2Vzc2lvbiwgYW5kIHJldHVybiB3aGV0aGVyIHRoYXQgYWN0
aXZhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIG1fc2Vzc2lvbi0+dHJ5VG9T
ZXRBY3RpdmUoYWN0aXZlKTsKKyAgICB9CisKKyAgICAvLyBJZiB0aGlzIHByb3h5IGlzIEFtYmll
bnQsIGFuZCB0aGUgc2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZSwgdGhpcworICAgIC8vIHByb3h5
IHdpbGwgbWl4IHdpdGggdGhlIGFjdGl2ZSBwcm94aWVzLiBOby1vcCwgYW5kIHJldHVybiBhY3Rp
dmF0aW9uCisgICAgLy8gd2FzIHN1Y2Vzc2Z1bC4KKyAgICBpZiAoY2F0ZWdvcnlDYW5NaXhXaXRo
T3RoZXJzKHByb3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIE90aGVyd2lzZSwgdGhpcyBwcm94eSB3YW50cyB0
byBiZWNvbWUgYWN0aXZlLCBidXQgdGhlcmUgYXJlIG90aGVyCisgICAgLy8gcHJveGllcyB3aG8g
YXJlIGFscmVhZHkgYWN0aXZlLiBXYWxrIG92ZXIgdGhlIHByb3hpZXMsIGFuZCBpbnRlcnJ1cHQK
KyAgICAvLyB0aG9zZSBwcm94aWVzIHdob3NlIGNhdGVvZ3JpZXMgaW5kaWNhdGUgdGhleSBjYW5u
b3QgbWl4IHdpdGggb3RoZXJzLgorICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGll
cy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoIW90aGVyUHJveHkpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5LT5pc0FjdGl2ZSgpKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgaWYgKGNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyhvdGhlclBy
b3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIG90aGVy
UHJveHktPmJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRp
b25UeXBlOjpTeXN0ZW1JbnRlcnJ1cHRpb24pOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJu
IHRydWU7CisKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iMDA0NTU3MTJmNWE4NjAxOTk5MzIzNzU3M2UzOWMyODRjOGY2YzIzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlci5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04p
CisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UHJvY2Vzc0lkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5OworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKTsKKyAgICB+UmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGFkZFByb3h5KFdlYWtQdHI8UmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk+JiYpOworICAgIHZvaWQgcmVtb3ZlUHJveHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXImKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSogZ2V0UHJveHkoY29u
c3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKKworICAgIHZvaWQgc2V0Q2F0ZWdvcnlG
b3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJiwgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSk7Cisg
ICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllciYsIHNpemVfdCk7CisKKyAgICBib29sIHRyeVRvU2V0QWN0aXZlRm9y
UHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIGJvb2wpOworCisgICAg
Y29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uJiBzZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXNzaW9uOyB9CisKK3ByaXZhdGU6CisgICAgVW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bj4gbV9zZXNzaW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFdl
YWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+PiBtX3Byb3hpZXM7Cit9OworCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDRiM2RlYzdjZDM5ZDAxMDJiODVmMGY5NWRmNGU0MzBmOWFlMTNmZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDI1NmRjOTkw
NWJmNDQ2NmQwYzJhZDU3NGQ4YzM2OGExNGJlNjk2M2EuLjRiYTE0ZGJhZjI0YjI0MWU1OWRiMGE3
ZjIwODBkMDJkMDI3YzNiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQpAQCAtMjM0LDYgKzIzNCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJk
X2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyJywKKyAgICAg
ICAgJ1dlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJL
aXQ6OlJlbW90ZUNETUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JbnN0
YW5jZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZVNlc3Np
b25JZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA0MzZiYzI2MzRmMTBkZDAzYmQ5MWYyNTJmOTdjMjY4
N2YwNWY3OWI1Li4yNTJjOGZhZGFmZTFlYmEwMzkzNmY5YTkyY2RiZWViZGY5NDI1ODVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCkBAIC0xMjQsNiArMTI0LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMgewogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtZW1vcnlDYWNoZURpc2FibGVkIHsgZmFsc2UgfTsKICAgICBib29sIGF0dHJTdHlsZUVu
YWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhIHsgZmFsc2Ug
fTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGJvb2wgaGFzSW1hZ2VTZXJ2
aWNlcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggOTI2OWIwYTNiYWY1OTRm
MzNjZGVkOWY1NGJlN2Y5MmZlZDBiNGU4OS4uZWQ5ZjQ0YmI5ZjIyZTNjMjRmMWQyZDk4MDU4MzIx
YTgxMGY3OWQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjU2LDYgKzY1Niw4IEBAIExp
YldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzTWVz
c2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CitSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGU4OWRlNjk4OTQ3NGJmODkxYjI2MTE2MTE2YzFkYjBkNmFmOTlkMDQu
LjYyMWZiMWM5ZWUwOTMyZDUyYjRmMWQ1MmQyYjViMGYzZTMwNjM3NjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc0NSw2ICsxNzQ1
LDcgQEAKIAkJQ0RBQzIwRjgyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RBQzIwRjUyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNl
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDREFDMjBGOTIzRkM3MjZDMDAyMURF
RTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQzIwRUMyM0ZD
MzgzODAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKIAkJQ0RBQzIwRkEyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETVBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEQUMyMEVGMjNGQzM4MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNEQkI0OUZEMjQwRDlBNzIwMDE3QzI5MiAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovOyB9OwogCQlDREMyODMxRDIwMUJENzlEMDBF
NkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMyODMxQjIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxs
c2NyZWVuU3RhY2tWaWV3LmggKi87IH07CiAJCUNEQ0E4NUM5MTMyQUJBNEUwMEU5NjFERiAvKiBX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5oICovOyB9OwogCQlDRTExQUQ1MjFDQkM0ODJGMDA2ODFFRTUg
LyogQ29kZVNpZ25pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENFMTFBRDUxMUNCQzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5oICovOyB9OwpA
QCAtNTEwMyw2ICs1MTA0LDE1IEBACiAJCUNEQUMyMEY0MjNGQzM4M0EwMDIxREVFMyAvKiBSZW1v
dGVDRE1Qcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZUNETVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RB
QzIwRjUyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ0RN
SW5zdGFuY2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEQUMyMEY2MjNGQzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5
TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RCQjQ5RjQyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0RCQjQ5RjUyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGNjI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjcyNDBEOEM5NTAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0RCQjQ5RjgyNDBEOEQ1MzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGOTI0MEQ5NjNDMDAxN0MyOTIgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlG
QTI0MEQ5NjNEMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZCMjQwRDk3NEEwMDE3QzI5MiAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U2Vzc2lvbklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5
RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREMyODMxQjIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxs
c2NyZWVuU3RhY2tWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRnVsbHNjcmVlblN0YWNrVmlldy5o
OyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzI4MzFDMjAxQkQ3OUQwMEU2RTc0NSAvKiBXS0Z1bGxz
Y3JlZW5TdGFja1ZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0Z1bGxzY3JlZW5TdGFj
a1ZpZXcubW07IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxzY3JlZW5TdGFja1ZpZXcubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzM4MkY3MTcyMTE1MDYwMDhBMkZDMyAv
KiBDRk5ldHdvcmsuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDRk5ldHdvcmsuZnJhbWV3
b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ0ZOZXR3b3JrLmZyYW1ld29y
azsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKQEAgLTUxMTAsNiArNTEyMCwxNyBAQAog
CQlDRENBODVDNjEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4
NUM3MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1RDQxMzJBQzJCMzAwRTk2
MURGIC8qIElPS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gSU9LaXQuZnJhbWV3b3Jr
OyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3b3JrOyBzb3Vy
Y2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQlDREQ1MzU2RjI0MEREMzQzMDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbi5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzAyNDBERDRF
RjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcxMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNERDUzNTcyMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzMyNDBE
REUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1
MzU3NDI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3NTI0MERERTA3MDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9T
ZXNzaW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzYy
NDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3NzI0MERERTA3MDBGN0I4QzQg
LyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzgyNDBEREUwODAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNERDUzNTc5MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNFMTFBRDRGMUNCQzQ3RjgwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvZGVTaWduaW5nLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRTExQUQ1MTFDQkM0ODJGMDA2ODFFRTUgLyogQ29kZVNpZ25p
bmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29kZVNpZ25pbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UxQTBCQ0MxQTQ4RTZDNjAwNTRFRjc0IC8qIEFz
c2VydGlvblNlcnZpY2VzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFz
c2VydGlvblNlcnZpY2VzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01Mzg5
LDYgKzU0MTAsMTEgQEAKIAkJCQk5QjVCRUMyOTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5LmNwcCAqLywKIAkJCQk5QjVCRUMyODI0MDEwMTU4MDA3MEM2RUYg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggKi8sCiAJCQkJOUI1QkVDMkUyNDAxMDE4
QzAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbiAqLywK
KwkJCQlDREJCNDlGNTI0MEQ4QUM2MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uLmNwcCAq
LywKKwkJCQlDREJCNDlGNDI0MEQ4QUM2MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uLmgg
Ki8sCisJCQkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5t
ZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVk
aW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovLAorCQkJCUNEQkI0OUZCMjQwRDk3NEEwMDE3QzI5
MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8sCiAJCQkJQ0RBQzIwQkYyM0ZD
MkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETS5jcHAgKi8sCiAJCQkJQ0RBQzIwQkEyM0ZDMkY3NDAw
MjFERUUzIC8qIFJlbW90ZUNETS5oICovLAogCQkJCUNEQUMyMEI4MjNGQzJGNzMwMDIxREVFMyAv
KiBSZW1vdGVDRE1Db25maWd1cmF0aW9uLmggKi8sCkBAIC01NDMxLDYgKzU0NTcsMTIgQEAKIAkJ
CQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuY3BwICovLAogCQkJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5oICovLAogCQkJCTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1MSAvKiBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlG
NzI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwICovLAorCQkJ
CUNEQkI0OUY2MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oICov
LAorCQkJCUNEQkI0OUY4MjQwRDhENTMwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eS5tZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlGQTI0MEQ5NjNEMDAxN0MyOTIgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcCAqLywKKwkJCQlDREJCNDlGOTI0MEQ5NjNDMDAx
N0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmggKi8sCisJCQkJQ0RENTM1
NzAyNDBERDRFRjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9U
cmFja1Byb3h5LmNwcCAqLywKIAkJCQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3Rl
QXVkaW9UcmFja1Byb3h5LmggKi8sCiAJCQkJQ0RBQzIwNzkyM0ZCMUUyMTAwMjFERUUzIC8qIFJl
bW90ZUNETUZhY3RvcnlQcm94eS5jcHAgKi8sCkBAIC05ODUwLDYgKzk4ODIsMTUgQEAKIAkJCQkx
QTA0M0I1QzEyNEQ1RTlEMDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAq
LywKIAkJCQkxQThFRkE2RTEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCTFBOEVGQTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94
eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1
ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJQ0RENTM1NzUyNDBEREUwNzAw
RjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzQy
NDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICov
LAorCQkJCUNERDUzNTczMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTc4MjQwRERFMDgwMEY3
QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJ
CUNERDUzNTc5MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUz
NTcyMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmgg
Ki8sCisJCQkJQ0RENTM1NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJQ0RBQzIwRjIyM0ZDMzgzQTAwMjFERUUzIC8q
IFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RBQzIw
RjMyM0ZDMzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzLmggKi8s
CiAJCQkJQ0RBQzIwRUUyM0ZDMzgzOTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1l
c3NhZ2VzUmVwbGllcy5oICovLApAQCAtMTA3NzMsNiArMTA4MTQsNyBAQAogCQkJCTlCMTIyOUQy
MjNGRjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOUIxMjI5Q0QyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjVCRUMyQTI0MDEwMTU4
MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggaW4gSGVhZGVycyAqLywK
KwkJCQlDREJCNDlGRDI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmln
dXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzcyM0ZDMkY3NTAwMjFERUUzIC8q
IFJlbW90ZUNETS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzUyM0ZDMkY3NTAwMjFERUUz
IC8qIFJlbW90ZUNETUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQUMyMENE
MjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5LmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVk
aW9TZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmU1Y2VjOGVhMWI2ODdkNWJkZDcxN2RjZGMzMzFj
NDYxYWRkNTUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5j
bHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiR1BV
UHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworVW5pcXVl
UmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4gUmVtb3RlQXVkaW9TZXNzaW9uOjpjcmVhdGUoV2ViUHJv
Y2VzcyYgcHJvY2VzcykKK3sKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIGNv
bmZpZ3VyYXRpb247CisgICAgcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
RW5zdXJlQXVkaW9TZXNzaW9uKCksIE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpFbnN1cmVBdWRpb1Nlc3Npb246OlJlcGx5KGNvbmZpZ3VyYXRpb24pLCB7IH0pOworICAgIHJl
dHVybiBtYWtlVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4ocHJvY2VzcywgV1RGTW92ZShj
b25maWd1cmF0aW9uKSk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvbjo6UmVtb3RlQXVkaW9TZXNz
aW9uKFdlYlByb2Nlc3MmIHByb2Nlc3MsIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCisgICAgLCBtX2NvbmZp
Z3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKK3sKK30KKworUmVtb3RlQXVkaW9TZXNz
aW9uOjp+UmVtb3RlQXVkaW9TZXNzaW9uKCkgPSBkZWZhdWx0OworCitJUEM6OkNvbm5lY3Rpb24m
IFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1fcHJvY2Vz
cy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKK30KKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSB0eXBlLCBSb3V0ZVNo
YXJpbmdQb2xpY3kgcG9saWN5KQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6U2V0Q2F0ZWdvcnkodHlwZSwgcG9saWN5KSwgeyB9KTsK
K30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6
ZV90IHNpemUpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5OjpTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemUpLCB7IH0pOworfQorCiti
b29sIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sIGFjdGl2
ZSkKK3sKKyAgICBib29sIHN1Y2NlZWRlZDsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVz
c2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpUcnlUb1NldEFjdGl2ZShhY3RpdmUpLCBN
ZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRyeVRvU2V0QWN0aXZlOjpSZXBseShz
dWNjZWVkZWQpLCB7IH0pOworICAgIHJldHVybiBzdWNjZWVkZWQ7Cit9CisKK3ZvaWQgUmVtb3Rl
QXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZChSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBib29sIG11dGVkU3RhdGVDaGFuZ2Vk
ID0gY29uZmlndXJhdGlvbi5pc011dGVkICE9IG1fY29uZmlndXJhdGlvbi5pc011dGVkOworCisg
ICAgbV9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsKKworICAgIGlmIChtdXRlZFN0YXRl
Q2hhbmdlZCkKKyAgICAgICAgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOworfQorCit2b2lkIFJl
bW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246
OkludGVycnVwdGlvblR5cGUgdHlwZSkKK3sKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNoYXJlZE1hbmFnZXIoKS5iZWdpbkludGVycnVwdGlvbih0eXBlKTsKK30KKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZW5kSW50ZXJydXB0aW9uKGZsYWdzKTsKK30KKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4ZjhkYzgyM2UzZjAxMDdjMTkzYmU5
NDhiZjdmYjk2OGJjZTc5ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCkBAIC0wLDAgKzEsODYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNF
KEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRl
ICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg+
CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgV2ViUHJvY2VzczsK
KworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uIGZpbmFsCisgICAgOiBwdWJsaWMgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uCisgICAgLCBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxSZW1vdGVBdWRp
b1Nlc3Npb24+IGNyZWF0ZShXZWJQcm9jZXNzJik7CisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9T
ZXNzaW9uKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nl
c3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UmVtb3RlQXVk
aW9TZXNzaW9uPihXZWJQcm9jZXNzJiwgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYm
KTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb24oV2ViUHJvY2VzcyYsIFJlbW90ZUF1ZGlvU2Vzc2lv
bkNvbmZpZ3VyYXRpb24mJik7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCk7CisK
KyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdl
cworICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmln
dXJhdGlvbiYmKTsKKyAgICB2b2lkIGJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlKTsKKyAgICB2b2lkIGVuZEludGVycnVwdGlv
bihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MpOwor
CisgICAgLy8gQXVkaW9TZXNzaW9uCisgICAgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUs
IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSkgZmluYWw7CisgICAgdm9pZCBzZXRQcmVmZXJy
ZWRCdWZmZXJTaXplKHNpemVfdCkgZmluYWw7CisgICAgYm9vbCB0cnlUb1NldEFjdGl2ZUludGVy
bmFsKGJvb2wpIGZpbmFsOworCisgICAgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmNhdGVnb3J5OyB9CisgICAgV2ViQ29yZTo6Um91
dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fY29uZmlndXJhdGlvbi5yb3V0ZVNoYXJpbmdQb2xpY3k7IH0KKyAgICBTdHJpbmcgcm91dGlu
Z0NvbnRleHRVSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24ucm91dGlu
Z0NvbnRleHRVSUQ7IH0KKyAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9jb25maWd1cmF0aW9uLnNhbXBsZVJhdGU7IH0KKyAgICBzaXplX3QgYnVmZmVyU2l6ZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5idWZmZXJTaXplOyB9CisgICAg
c2l6ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nv
bmZpZ3VyYXRpb24ubnVtYmVyT2ZPdXRwdXRDaGFubmVsczsgfQorICAgIHNpemVfdCBwcmVmZXJy
ZWRCdWZmZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnByZWZl
cnJlZEJ1ZmZlclNpemU7IH0KKyAgICBib29sIGlzTXV0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NvbmZpZ3VyYXRpb24uaXNNdXRlZDsgfQorICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uaXNBY3RpdmU7IH0KKworICAgIFdlYlByb2Nl
c3MmIG1fcHJvY2VzczsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIG1fY29u
ZmlndXJhdGlvbjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA4OTYyOGY2NTdlZjdjZGJjZGJhNzc5ZDQxZGI5OWJjYTVkNDRi
MTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKK21l
c3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvbiBOb3RSZWZDb3VudGVkIHsKKyAgICBDb25maWd1
cmF0aW9uQ2hhbmdlZChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgQmVnaW5JbnRlcnJ1cHRpb24oZW51bTp1aW50OF90IFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCisgICAg
RW5kSW50ZXJydXB0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWU2MDI5MDQ2ODg1ZjVmZmZh
ODMwMjBhZmFjZTg4ZDQ3M2VlZjJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgKQEAg
LTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1
ZGlvU2Vzc2lvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFJlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24geworCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGUgY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
Tm9uZSB9OworICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xp
Y3kgeyBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQgfTsKKyAgICBTdHJpbmcg
cm91dGluZ0NvbnRleHRVSUQ7CisgICAgZmxvYXQgc2FtcGxlUmF0ZSB7IDAgfTsKKyAgICB1aW50
NjRfdCBidWZmZXJTaXplIHsgMCB9OworICAgIHVpbnQ2NF90IG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMgeyAwIH07CisgICAgdWludDY0X3QgcHJlZmVycmVkQnVmZmVyU2l6ZSB7IDAgfTsKKyAgICBi
b29sIGlzTXV0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNBY3RpdmUgeyBmYWxzZSB9OworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjYXRlZ29yeTsKKyAgICAgICAg
ZW5jb2RlciA8PCByb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgICAgIGVuY29kZXIgPDwgcm91dGlu
Z0NvbnRleHRVSUQ7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlUmF0ZTsKKyAgICAgICAgZW5j
b2RlciA8PCBidWZmZXJTaXplOworICAgICAgICBlbmNvZGVyIDw8IG51bWJlck9mT3V0cHV0Q2hh
bm5lbHM7CisgICAgICAgIGVuY29kZXIgPDwgcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAg
ZW5jb2RlciA8PCBpc011dGVkOworICAgICAgICBlbmNvZGVyIDw8IGlzQWN0aXZlOworICAgIH0K
KworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBPcHRpb25hbDxSZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
PiBjYXRlZ29yeTsKKyAgICAgICAgZGVjb2RlciA+PiBjYXRlZ29yeTsKKyAgICAgICAgaWYgKCFj
YXRlZ29yeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0
aW9uYWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiByb3V0ZVNoYXJpbmdQb2xpY3k7Cisg
ICAgICAgIGRlY29kZXIgPj4gcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBpZiAoIXJvdXRl
U2hhcmluZ1BvbGljeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8U3RyaW5nPiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgZGVjb2RlciA+
PiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgaWYgKCFyb3V0aW5nQ29udGV4dFVJRCkKKyAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+
IHNhbXBsZVJhdGU7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxlUmF0ZTsKKyAgICAgICAgaWYg
KCFzYW1wbGVSYXRlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBPcHRpb25hbDx1aW50NjRfdD4gYnVmZmVyU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBidWZm
ZXJTaXplOworICAgICAgICBpZiAoIWJ1ZmZlclNpemUpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBudW1iZXJPZk91dHB1dENo
YW5uZWxzOworICAgICAgICBkZWNvZGVyID4+IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAg
ICAgIGlmICghbnVtYmVyT2ZPdXRwdXRDaGFubmVscykKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IHByZWZlcnJlZEJ1ZmZlclNp
emU7CisgICAgICAgIGRlY29kZXIgPj4gcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgaWYg
KCFwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgICAgICBPcHRpb25hbDxib29sPiBpc011dGVkOworICAgICAgICBkZWNvZGVyID4+IGlz
TXV0ZWQ7CisgICAgICAgIGlmICghaXNNdXRlZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNBY3RpdmU7CisgICAgICAgIGRlY29k
ZXIgPj4gaXNBY3RpdmU7CisgICAgICAgIGlmICghaXNBY3RpdmUpCisgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAgICAgICAgV1RGTW92
ZSgqY2F0ZWdvcnkpLAorICAgICAgICAgICAgV1RGTW92ZSgqcm91dGVTaGFyaW5nUG9saWN5KSwK
KyAgICAgICAgICAgIFdURk1vdmUoKnJvdXRpbmdDb250ZXh0VUlEKSwKKyAgICAgICAgICAgICpz
YW1wbGVSYXRlLAorICAgICAgICAgICAgKmJ1ZmZlclNpemUsCisgICAgICAgICAgICAqbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywKKyAgICAgICAgICAgICpwcmVmZXJyZWRCdWZmZXJTaXplLAorICAg
ICAgICAgICAgKmlzTXV0ZWQsCisgICAgICAgICAgICAqaXNBY3RpdmUsCisgICAgICAgIH19Owor
ICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25J
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTQ4MGM2OTRlMmIzZDk3YjU5NmUy
YTA3MzAzZDY3ZmIwZjk5YmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgKQEAgLTAsMCAr
MSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbW90ZUF1ZGlvU2Vzc2lvbklk
ZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIgPSBP
YmplY3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXJUeXBlPjsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDUxYzJmNWU1M2IzNDBjMjIwNWY3ODliNGIzNzNhMmU1MDdiYjZlYmIu
LjFhODU2ZWJkZjZhNWFkMzFhMGM1MjQ1ODZiZmU3YTQ4YjQ0YjI2MjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJO
ZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCisjaW5j
bHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIK
ICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCkBAIC00
NzEsNiArNDcyLDggQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBXZWJSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2V0U2hvdWxkTG9nVXNlckludGVyYWN0aW9uKHBhcmFtZXRlcnMuc2hvdWxk
TG9nVXNlckludGVyYWN0aW9uKTsKICNlbmRpZgogCisgICAgc2V0VXNlR1BVUHJvY2Vzc0Zvck1l
ZGlhKHBhcmFtZXRlcnMudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKTsKKwogICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoUHJvY2VzcywgImluaXRpYWxpemVXZWJQcm9jZXNzOiBQcmVzZW50aW5nIHBy
b2Nlc3MgPSAlZCIsIFdlYkNvcmU6OnByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpKTsKIH0KIApA
QCAtMTk5Nyw2ICsyMDAwLDE4IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0U2hvdWxkQmxvY2tUaGly
ZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoVGhpcmRQYXJ0eUNvb2tpZUJsb2NrCiB9CiAjZW5kaWYK
IAordm9pZCBXZWJQcm9jZXNzOjpzZXRVc2VHUFVQcm9jZXNzRm9yTWVkaWEoYm9vbCB1c2VHUFVQ
cm9jZXNzRm9yTWVkaWEpCit7CisgICAgaWYgKHVzZUdQVVByb2Nlc3NGb3JNZWRpYSA9PSBtX3Vz
ZUdQVVByb2Nlc3NGb3JNZWRpYSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV91c2VHUFVQcm9j
ZXNzRm9yTWVkaWEgPSB1c2VHUFVQcm9jZXNzRm9yTWVkaWE7CisgICAgaWYgKHVzZUdQVVByb2Nl
c3NGb3JNZWRpYSkKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpzZXRTaGFyZWRTZXNzaW9uKFJlbW90
ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzKSkKKyAgICBlbHNlCisgICAgICAgIEF1ZGlvU2Vz
c2lvbjo6c2V0U2hhcmVkU2Vzc2lvbihBdWRpb1Nlc3Npb246OmNyZWF0ZSgpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19TRVNTSU9OX0lECmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA2NWJmMDQxN2Q0ZjhjMWRiNTFmOWU5
NzUwYmNiOTdmOWE1YmMyYjkwLi42NTVlNzhkZjA4ZGYwOGFjOTJhNTZiZmM5Y2M4YTdhOWQ1MjU1
ZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTUxNyw2ICs1MTcs
OCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSB7IHJl
dHVybiBtX3Nlc3Npb25JRCA/IG1fc2Vzc2lvbklELT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSA6IHRydWU7IH0KIAorICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKGJvb2wpOwor
CiAgICAgUmVmUHRyPFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcz4gbV93ZWJDb25uZWN0aW9uOwog
CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPFdlYlBhZ2U+PiBt
X3BhZ2VNYXA7CkBAIC02NTMsNiArNjU1LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2FuZGJv
eEV4dGVuc2lvbj4gbV9hc3NldFNlcnZpY2VFeHRlbnNpb247CiAgICAgUmVmUHRyPFNhbmRib3hF
eHRlbnNpb24+IG1fYXNzZXRTZXJ2aWNlVjJFeHRlbnNpb247CiAjZW5kaWYKKworICAgIGJvb2wg
bV91c2VHUFVQcm9jZXNzRm9yTWVkaWEgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392579</attachid>
            <date>2020-03-05 09:06:48 -0800</date>
            <delta_ts>2020-03-05 09:21:33 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208583-20200305090647.patch</filename>
            <type>text/plain</type>
            <size>87959</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZmZTQ3YzEyYzgxMzExY2M4OWRkYmI5
NTE2MjE0MjU0ZGU5YTAxNjEuLjc3OWQ0ZGE1Y2JmNTQ4ZWJkMTAzNzg2MDQ5NGNjNDIyMjA4ZGMy
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRk
IFVuaXF1ZVJlZiB0byB0aGUgbGlzdCBvZiBmb3J3YXJkLWRlY2xhcmVkIHRlbXBsYXRlIHR5cGVz
LgorCisgICAgICAgICogd3RmL0ZvcndhcmQuaDoKKwogMjAyMC0wMy0wNCAgTWFyayBMYW0gIDxt
YXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgZXJy
b3Igd2hpbGUgY29uc3RydWN0aW5nIHRoZSBCeXRlY29kZUdlbmVyYXRvci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBmYmM4Njg2ZjZjNWU5NGViNTZkYzZjOTFmM2I5ZmJhMTkwZTUyZWQ4Li5mOWVmZjA5ZDdkOWQ5
MmM3ZDZmY2M3MmI4ZmFiYmJiYTI1MmJjOTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAgIFJldmlld2VkIGJ5
IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRkIGFuIGltcGxlbWVudGF0aW9uIG9mIE1l
ZGlhU3RyYXRlZ3kgd2hpY2ggcHJvdmlkZXMgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhl
CisgICAgICAgIHBsYXRmb3JtIGNyZWF0aW9uIG1ldGhvZHMsIHNvIHRoZXkgZG9uJ3QgbmVlZCB0
byBiZSByZS1pbXBsZW1lbnRlZCBieSBlYWNoIGNsaWVudCB1bmxlc3MKKyAgICAgICAgdGhhdCBj
bGllbnQgbmVlZHMgdG8gb3ZlcnJpZGUgdGhhdCBiZWhhdmlvci4KKworICAgICAgICBBZGQgRW51
bVRyYWl0cyBmb3IgYWxsIHRoZSBlbnVtZXJhdGlvbnMgaW5zaWRlIEF1ZGlvU2Vzc2lvbi4KKwor
ICAgICAgICBNYWtlIG1hbnkgQXVkaW9TZXNzaW9uIG1ldGhvZHMgdmlydHVhbCwgc28gdGhleSBj
YW4gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgY2FzZSB3aGVyZSB0aGUKKyAgICAgICAgR1BVIHByb2Nl
c3MgaXMgZW5hYmxlZC4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVN0
cmF0ZWd5LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJh
dGVneS5oLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneTo6Y3JlYXRlQXVkaW9TZXNz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1ZGlvRGVzdGlu
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJhdGVneTo6cmVnaXN0ZXJDRE1GYWN0
b3JpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL01lZGlhU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oOgorCiAyMDIwLTAzLTA1
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGlt
aXplIFBhdGg6OmVuY29kZSBvbiBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0IENHUGF0aEdldE51bWJl
ck9mRWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTlkMzk5YWI2ZTBmY2M0ZmU3NTdmOThmMTIxOTkxYjli
MWQzMDQxYi4uYzljN2IzMDc1NDA0ZGMwNjdjYmI5OGU3ZTRmZmIyMjhmNDk1MTVjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw5MyBAQAorMjAyMC0wMy0wNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gSW1wbGVtZW50IFJlbW90ZUF1ZGlvU2Vzc2lvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NTgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBZGQgYSBz
dWJjbGFzcyBvZiBBdWRpb1Nlc3Npb24gd2hpY2gsIGluc3RlYWQgb2YgbW9kaWZ5aW5nIHRoZSBh
dWRpbyBiZWhhdmlvciBvZiB0aGUgY3VycmVudCBwcm9jZXNzLCBtb2RpZmllcyB0aGUKKyAgICAg
ICAgYXVkaW8gYmVoYXZpb3Igb2YgdGhlIEdQVSBQcm9jZXNzLiBBbmQsIGluIHRoZSBHUFUgUHJv
Y2Vzcywgc2luY2UgaXQgcmVwcmVzZW50cyB0aGUgYXVkaW8gYmVoYXZpb3Igb2YgcG90ZW50aWFs
bHkKKyAgICAgICAgbXVsdGlwbGUgc2VwYXJhdGUgV2ViQ29udGVudCBwcm9jZXNzZXMuCisKKyAg
ICAgICAgT3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2hhcmVkIEF1ZGlvU2Vzc2lvbiBhdCBXZWJQcm9j
ZXNzIGluaXRpYWxpemF0aW9uIHRpbWUuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjphdWRpb1Nlc3Npb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuc3VyZUF1ZGlvU2Vzc2lvbik6CisgICAgICAgIChX
ZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxlZ2FjeUNkbUZhY3RvcnlQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVz
c2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3Bh
dGNoU3luY01lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6
ZSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTG9hZGVy
U3RyYXRlZ3kpOgorICAgICAgICAoV2ViS2l0OjpHUFVQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0
ZVBhc3RlYm9hcmRTdHJhdGVneSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3JtU3RyYXRl
Z2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBsYXRmb3Jt
U3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQ
VVBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmluaXRpYWxpemVHUFVQcm9jZXNzKToK
KyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6YXVkaW9TZXNzaW9uTWFuYWdlciBjb25zdCk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnByb2Nlc3NJZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0Q2F0ZWdvcnkp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6c2V0UHJlZmVycmVk
QnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0
cnlUb1NldEFjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
OjpiZWdpbkludGVycnVwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5OjplbmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eTo6YXVkaW9TZXNzaW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6cm91dGVTaGFyaW5nUG9saWN5IGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OnByZWZlcnJlZEJ1ZmZlclNp
emUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6aXNB
Y3RpdmUgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OmFk
ZFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
OjpyZW1vdmVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlcjo6Z2V0UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6
OnRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1Nlc3Npb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6
UmVtb3RlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRD
YXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVy
cmVkQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6dHJ5
VG9TZXRBY3RpdmVJbnRlcm5hbCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lv
bjo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb246OmJlZ2luSW50ZXJydXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uOjplbmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbjo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbjo6
ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25JZGVudGlmaWVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVkaWFT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyYXRlZ3k6OmNyZWF0ZUF1
ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmF0ZWd5OjpyZWdp
c3RlckNETUZhY3Rvcmllcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvV2ViTWVk
aWFTdHJhdGVneS5oOgorCiAyMDIwLTAzLTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBFeHBvcnQgTm93UGxheWluZyBjb21tYW5kcyB0byBHUFVQcm9jZXNz
IHdoZW4gbWVkaWEgcGxheWluZyBpbiBHUFVQcm9jZXNzIGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAppbmRl
eCA3MGRkYjkxNmU1MGM2ZTI4NTJiN2Y5ZTRlMGUzYTU4ZjcwM2E4ZjBkLi42ZTk3ZDVkOWVlOTA5
NjBmMWNlMzJlNjgwM2JjZmZkZTQyMjA0Y2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9G
b3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCkBAIC02OCw2ICs2OCw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gRHVtYlB0clRyYWl0czxUPj4gY2xhc3Mg
UmVmOwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBEdW1iUHRyVHJhaXRzPFQ+PiBj
bGFzcyBSZWZQdHI7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgU3RyaW5nQnVmZmVyOwogdGVt
cGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lID0gdm9pZD4gY2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI7
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBVbmlxdWVSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBjbGFzcyBXZWFrUHRyOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IERlZmF1bHRI
YXNoIHsgdXNpbmcgSGFzaCA9IHZvaWQ7IH07CkBAIC0xMjUsNiArMTI2LDcgQEAgdXNpbmcgV1RG
OjpTdHJpbmdWaWV3OwogdXNpbmcgV1RGOjpUZXh0UG9zaXRpb247CiB1c2luZyBXVEY6OlRleHRT
dHJlYW07CiB1c2luZyBXVEY6OlVSTDsKK3VzaW5nIFdURjo6VW5pcXVlUmVmOwogdXNpbmcgV1RG
OjpWYXJpYW50OwogdXNpbmcgV1RGOjpWZWN0b3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4IGI1ZmI1ODA2NDhmOWNmOGVjNGYxODZm
YWZhNDhlMTNmZGNmMmY1N2QuLjUwODI4MzNjYTA5NDIxNDdkY2ZhYzY2MTRlZTM3OTFkMDA5ZWE2
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNw
cApAQCAtMjgsMTUgKzI4LDMyIEBACiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikKIAorI2luY2x1
ZGUgIk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBVbmlxdWVSZWY8QXVkaW9TZXNzaW9u
PiYgc2hhcmVkQXVkaW9TZXNzaW9uKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VW5p
cXVlUmVmPEF1ZGlvU2Vzc2lvbj4+IHNlc3Npb24gPSBBdWRpb1Nlc3Npb246OmNyZWF0ZSgpOwor
ICAgIHJldHVybiBzZXNzaW9uLmdldCgpOworfQorCitVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBB
dWRpb1Nlc3Npb246OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8QXVkaW9T
ZXNzaW9uPigpOworfQorCiBBdWRpb1Nlc3Npb24mIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lv
bigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF1ZGlvU2Vzc2lvbj4gc2Vzc2lvbjsK
LSAgICByZXR1cm4gc2Vzc2lvbjsKKyAgICByZXR1cm4gc2hhcmVkQXVkaW9TZXNzaW9uKCk7Cit9
CisKK3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRTaGFyZWRTZXNzaW9uKFVuaXF1ZVJlZjxBdWRpb1Nl
c3Npb24+JiYgc2Vzc2lvbikKK3sKKyAgICBzaGFyZWRBdWRpb1Nlc3Npb24oKSA9IFdURk1vdmUo
c2Vzc2lvbik7CiB9CiAKIGJvb2wgQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZShib29sIGFj
dGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vz
c2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKaW5k
ZXggMGRhNzVmZGE0YTNhN2M3MTc3Nzg0NDU4ZWQ2NDIwODY2MWM3NmIzNS4uZmE0MjEyZmQwNTlh
Y2E2NGFjNmNkNjk3OTEyMzRmOWEyNjYzY2FmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQsMTMgKzQ1
LDE4IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdCB7CiAgICAgTG9u
Z0Zvcm1WaWRlbwogfTsKIAotY2xhc3MgQXVkaW9TZXNzaW9uIGZpbmFsIHsKK2NsYXNzIFdFQkNP
UkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9TZXNzaW9uKTsKKyAgICBmcmllbmQgY2xhc3Mg
VW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj47CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxBdWRpb1Nlc3Np
b24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8QXVkaW9TZXNzaW9u
PigpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb1Nlc3Npb24mIHNo
YXJlZFNlc3Npb24oKTsKKyAgICBzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4gY3JlYXRl
KCk7CisgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkU2Vzc2lvbihVbmlxdWVSZWY8QXVkaW9TZXNz
aW9uPiYmKTsKKyAgICBzdGF0aWMgQXVkaW9TZXNzaW9uJiBzaGFyZWRTZXNzaW9uKCk7CisgICAg
dmlydHVhbCB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBlbnVtIENhdGVnb3J5VHlwZSB7CisgICAg
ZW51bSBDYXRlZ29yeVR5cGUgOiB1aW50OF90IHsKICAgICAgICAgTm9uZSwKICAgICAgICAgQW1i
aWVudFNvdW5kLAogICAgICAgICBTb2xvQW1iaWVudFNvdW5kLApAQCAtNTksMjMgKzY1LDIzIEBA
IHB1YmxpYzoKICAgICAgICAgUGxheUFuZFJlY29yZCwKICAgICAgICAgQXVkaW9Qcm9jZXNzaW5n
LAogICAgIH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5
cGUsIFJvdXRlU2hhcmluZ1BvbGljeSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ2F0ZWdvcnlUeXBl
IGNhdGVnb3J5KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldENhdGVnb3J5KENhdGVnb3J5
VHlwZSwgUm91dGVTaGFyaW5nUG9saWN5KTsKKyAgICB2aXJ0dWFsIENhdGVnb3J5VHlwZSBjYXRl
Z29yeSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlw
ZSk7CiAgICAgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdDsKIAotICAgIFJv
dXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdDsKLSAgICBTdHJpbmcg
cm91dGluZ0NvbnRleHRVSUQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFJvdXRlU2hhcmluZ1BvbGlj
eSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyByb3V0aW5n
Q29udGV4dFVJRCgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgZmxvYXQgc2FtcGxlUmF0
ZSgpIGNvbnN0OwotICAgIHNpemVfdCBidWZmZXJTaXplKCkgY29uc3Q7Ci0gICAgc2l6ZV90IG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGZsb2F0IHNhbXBsZVJh
dGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHNpemVfdCBidWZmZXJTaXplKCkgY29uc3Q7CisgICAg
dmlydHVhbCBzaXplX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscygpIGNvbnN0OwogCiAgICAgYm9v
bCB0cnlUb1NldEFjdGl2ZShib29sKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHNpemVfdCBwcmVm
ZXJyZWRCdWZmZXJTaXplKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQcmVm
ZXJyZWRCdWZmZXJTaXplKHNpemVfdCk7CisgICAgdmlydHVhbCBzaXplX3QgcHJlZmVycmVkQnVm
ZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXpl
KHNpemVfdCk7CiAKICAgICBjbGFzcyBNdXRlZFN0YXRlT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoK
QEAgLTg3LDE3ICs5MywxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRNdXRlZFN0YXRlT2JzZXJ2
ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKik7CiAgICAgdm9pZCByZW1vdmVNdXRlZFN0YXRlT2JzZXJ2
ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKik7CiAKLSAgICBib29sIGlzTXV0ZWQoKSBjb25zdDsKLSAg
ICB2b2lkIGhhbmRsZU11dGVkU3RhdGVDaGFuZ2UoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNdXRl
ZCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCk7CiAK
LSAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZTsgfQogCi1wcml2YXRl
OgorcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxBdWRpb1Nlc3Np
b24+OwogICAgIEF1ZGlvU2Vzc2lvbigpOwotICAgIH5BdWRpb1Nlc3Npb24oKTsKIAotICAgIGJv
b2wgdHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgdHJ5VG9T
ZXRBY3RpdmVJbnRlcm5hbChib29sKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1Nlc3Np
b25Qcml2YXRlPiBtX3ByaXZhdGU7CiAgICAgSGFzaFNldDxNdXRlZFN0YXRlT2JzZXJ2ZXIqPiBt
X29ic2VydmVyczsKQEAgLTEyMCw2ICsxMjUsMTkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k+IHsKICAgICA+OwogfTsKIAordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlOjpT
b2xvQW1iaWVudFNvdW5kLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpNZWRpYVBsYXliYWNrLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
OjpSZWNvcmRBdWRpbywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
UGxheUFuZFJlY29yZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
QXVkaW9Qcm9jZXNzaW5nCisgICAgPjsKK307CisKIHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CiBz
dHJ1Y3QgTG9nQXJndW1lbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCmluZGV4IGUyYjM4YTAxZDBhYTVhNjZkMzc3OTEx
ZWQ0MDFlNTI4OTA3ODk3MDguLjkzMDg1YjBkNDI3YWViZTg0MTBlNWQwNzE5MzhhYjA2MDE0NDFh
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1N
ZWRpYVNlc3Npb24uaApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbigpOwogCi0gICAgZW51bSBjbGFzcyBNZWRpYVR5cGUgeworICAg
IGVudW0gY2xhc3MgTWVkaWFUeXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUgPSAwLAogICAg
ICAgICBWaWRlbywKICAgICAgICAgVmlkZW9BdWRpbywKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGlj
OgogICAgIE1lZGlhVHlwZSBtZWRpYVR5cGUoKSBjb25zdDsKICAgICBNZWRpYVR5cGUgcHJlc2Vu
dGF0aW9uVHlwZSgpIGNvbnN0OwogCi0gICAgZW51bSBTdGF0ZSB7CisgICAgZW51bSBTdGF0ZSA6
IHVpbnQ4X3QgewogICAgICAgICBJZGxlLAogICAgICAgICBBdXRvcGxheWluZywKICAgICAgICAg
UGxheWluZywKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogICAgIFN0YXRlIHN0YXRlKCkgY29u
c3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogICAgIHZvaWQgc2V0U3RhdGUoU3RhdGUpOwogCi0gICAg
ZW51bSBJbnRlcnJ1cHRpb25UeXBlIHsKKyAgICBlbnVtIEludGVycnVwdGlvblR5cGUgOiB1aW50
OF90IHsKICAgICAgICAgTm9JbnRlcnJ1cHRpb24sCiAgICAgICAgIFN5c3RlbVNsZWVwLAogICAg
ICAgICBFbnRlcmluZ0JhY2tncm91bmQsCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICB9
OwogICAgIEludGVycnVwdGlvblR5cGUgaW50ZXJydXB0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1faW50ZXJydXB0aW9uVHlwZTsgfQogCi0gICAgZW51bSBFbmRJbnRlcnJ1cHRpb25GbGFncyB7
CisgICAgZW51bSBFbmRJbnRlcnJ1cHRpb25GbGFncyA6IHVpbnQ4X3QgewogICAgICAgICBOb0Zs
YWdzID0gMCwKICAgICAgICAgTWF5UmVzdW1lUGxheWluZyA9IDEgPDwgMCwKICAgICB9OwpAQCAt
MTE4LDcgKzExOCw3IEBAIHB1YmxpYzoKICAgICAgICAgZG91YmxlIGFzRG91YmxlOwogICAgIH0g
UmVtb3RlQ29tbWFuZEFyZ3VtZW50OwogCi0gICAgZW51bSBSZW1vdGVDb250cm9sQ29tbWFuZFR5
cGUgeworICAgIGVudW0gUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIDogdWludDhfdCB7CiAgICAg
ICAgIE5vQ29tbWFuZCwKICAgICAgICAgUGxheUNvbW1hbmQsCiAgICAgICAgIFBhdXNlQ29tbWFu
ZCwKQEAgLTEzNCw3ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVtb3Rl
Q29udHJvbENvbW1hbmQoUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlLCBjb25zdCBSZW1vdGVDb21t
YW5kQXJndW1lbnQqIGFyZ3VtZW50ID0gbnVsbHB0cik7CiAgICAgYm9vbCBzdXBwb3J0c1NlZWtp
bmcoKSBjb25zdDsKIAotICAgIGVudW0gRGlzcGxheVR5cGUgeworICAgIGVudW0gRGlzcGxheVR5
cGUgOiB1aW50OF90IHsKICAgICAgICAgTm9ybWFsLAogICAgICAgICBGdWxsc2NyZWVuLAogICAg
ICAgICBPcHRpbWl6ZWQsCkBAIC0yOTcsNCArMjk3LDY0IEBAIHN0cnVjdCBMb2dBcmd1bWVudDxX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7
CiAgICAgfQogfTsKIAordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1W
YWx1ZXMgPAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGUsCisg
ICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6Tm9uZSwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpWaWRlbywKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpWaWRlb0F1ZGlvLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6OkF1ZGlvLAorICAgIFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6OldlYkF1ZGlvCisgICAgPjsKK307
CisKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpTdGF0ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMgPAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6U3RhdGU6OklkbGUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNl
c3Npb246OlN0YXRlOjpBdXRvcGxheWluZywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6U3RhdGU6OlBsYXlpbmcsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlN0YXRlOjpQYXVzZWQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRl
OjpJbnRlcnJ1cHRlZAorICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZT4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMgPAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpOb0ludGVycnVwdGlvbiwKKyAgICBXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVtU2xlZXAsCisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OkVudGVyaW5nQmFj
a2dyb3VuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9u
VHlwZTo6U3lzdGVtSW50ZXJydXB0aW9uLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpTdXNwZW5kZWRVbmRlckxvY2ssCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OkludmlzaWJsZUF1dG9wbGF5
LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQ
cm9jZXNzSW5hY3RpdmUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVy
cnVwdGlvblR5cGU6OlBsYXliYWNrU3VzcGVuZGVkCisgICAgPjsKK307CisKK3RlbXBsYXRlIDw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRl
cnJ1cHRpb25GbGFncz4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXMgPAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncywKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M6Ok5vRmxh
Z3MsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZs
YWdzOjpNYXlSZXN1bWVQbGF5aW5nCisgICAgPjsKK307CisKK3RlbXBsYXRlIDw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29t
bWFuZFR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6Ok5v
Q29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJv
bENvbW1hbmRUeXBlOjpQbGF5Q29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpQYXVzZUNvbW1hbmQsCisgICAgV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6U3RvcENv
bW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZTo6VG9nZ2xlUGxheVBhdXNlQ29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpCZWdpblNlZWtpbmdCYWNr
d2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNv
bnRyb2xDb21tYW5kVHlwZTo6RW5kU2Vla2luZ0JhY2t3YXJkQ29tbWFuZCwKKyAgICBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpCZWdpblNl
ZWtpbmdGb3J3YXJkQ29tbWFuZCwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpFbmRTZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAg
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6
U2Vla1RvUGxheWJhY2tQb3NpdGlvbkNvbW1hbmQKKyAgICA+OworfTsKKwogfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVk
aW9TZXNzaW9uSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlv
U2Vzc2lvbklPUy5tbQppbmRleCBkNmMwMDdmNDBiNWZiNzYzNzIyZDUzOGFkZWQwMmQxYjgxYTE4
ODU0Li44M2QyNDAwYTFkMGFhNjM4OWMzZGY4OTM2NzEwYTM1ODlhNDQ1ODg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0K
QEAgLTI0Myw2ICsyNDMsMTUgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZl
clNpemUoc2l6ZV90IGJ1ZmZlclNpemUpCiAgICAgQVNTRVJUKCFlcnJvcik7CiB9CiAKK2Jvb2wg
QXVkaW9TZXNzaW9uOjppc011dGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K3ZvaWQgQXVkaW9TZXNzaW9uOjpoYW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCkKK3sKK30KKwogfQog
CiAjZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Qg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggOWY5
NDZmODQ5N2FmMjNiNGFmYTUxYjc5MTg0MTg1MTg4NjBhYzViOS4uZDc0OWIyZGIwOWI5Njc0NmY0
YTBmMWUzNGMyMTc0MmVkZjUzZTQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTgsNiArMTgsOCBAQCAkKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eS5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUlu
c3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMTYsNiArMTE4LDcgQEAgJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUNETUlu
c3RhbmNlU2Vzc2lvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmlu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRl
eCBhOTZjMmNmZGRkNDZiMzU5MjM4ZTk2MjM0M2E5OTIyMTA0ZWVhNTliLi45OTUwMzUxMmJhNTU4
YjJiNDEwMDhmNWIxNjY1MDQ2MGE5NTQxNDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEzNyw2ICsxMzcsMTUgQEAgJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25N
ZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0
b3J5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1GYWN0b3J5UHJv
eHlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQ1ZWUz
ZGI3ZWQ3ZTEzMzcyYzhhNzVhZDU1NWExNjU4N2Y2N2QwOGEuLjFjM2QxYTIwZWVhM2I3MzgwMDEw
MmUxZDMxOTgzNzkwM2FhNmNkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0
OCw2ICsxNDgsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm94eSBcCiAg
ICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIgXAogICAgIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eSBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uIFwKKyAgICBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eSBcCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyIFwKICAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBcCiAgICAgUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYjBlNzhjNzg3
ZmE1N2VkMGRlOTM0MGYxOTdiNWQ2ZTIzNDVlN2M5Mi4uY2I1NzkyOGVjZjJlMjljYWI5ZDM2ZTRk
MGFkYTgwYjk3MmVjZmEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNzYsNiArNzYsMTEgQEAKICNpbmNs
dWRlICJSZW1vdGVDRE1Qcm94eU1lc3NhZ2VzLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCIK
KyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmgiCisjZW5kaWYKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTEzMyw2ICsx
MzgsMTAgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoKQogCiB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKElQQzo6
Q29ubmVjdGlvbiYpCiB7CisgICAgaWYgKG1fYXVkaW9TZXNzaW9uUHJveHkpIHsKKyAgICAgICAg
Z3B1UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5yZW1vdmVQcm94eSh3ZWJQcm9jZXNz
SWRlbnRpZmllcigpKTsKKyAgICAgICAgbV9hdWRpb1Nlc3Npb25Qcm94eSA9IG51bGxwdHI7Cisg
ICAgfQogfQogCiBMb2dnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ2dlcigpCkBA
IC0yMzEsNiArMjQwLDE3IEBAIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6Y2RtRmFjdG9yeVByb3h5KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphdWRpb1Nlc3Npb25Qcm94eSgpCit7CisgICAg
aWYgKCFtX2F1ZGlvU2Vzc2lvblByb3h5KSB7CisgICAgICAgIG1fYXVkaW9TZXNzaW9uUHJveHkg
PSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKCp0aGlzKS5tb3ZlVG9VbmlxdWVQdHIo
KTsKKyAgICAgICAgZ3B1UHJvY2VzcygpLmF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5hZGRQcm94eSht
YWtlV2Vha1B0cihtX2F1ZGlvU2Vzc2lvblByb3h5LmdldCgpKSk7CisgICAgfQorICAgIHJldHVy
biAqbV9hdWRpb1Nlc3Npb25Qcm94eTsKK30KKyNlbmRpZgorCiB2b2lkIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQg
PSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1hcC5lbnN1cmUocmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIsIFsmXSgpIHsKQEAgLTI1Nyw2ICsyNzcsMTMgQEAgdm9pZCBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpzZXROb3dQbGF5aW5nSW5mbyhib29sIHNldEFzTm93UGxheWluZ0Fw
cGxpY2F0aW8KIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVE
SU9fU0VTU0lPTikKK3ZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlQXVkaW9T
ZXNzaW9uKEVuc3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24mJiBjb21wbGV0aW9uKQoreworICAg
IGNvbXBsZXRpb24oYXVkaW9TZXNzaW9uUHJveHkoKS5jb25maWd1cmF0aW9uKCkpOworfQorI2Vu
ZGlmCisKIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpAQCAtMzM0LDYg
KzM2MSwxMiBAQCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAg
ICBhdWRpb1Nlc3Npb25Qcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiBt
ZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CiB9CkBAIC0zODEsNiArNDE0LDEyIEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KICNlbmRpZgorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
VVNFKEFVRElPX1NFU1NJT04pCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgp
ID09IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CisgICAgICAgIGF1ZGlvU2Vzc2lvblByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyNlbmRpZgogCiAgICAgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3Bh
dGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCmluZGV4IDE4MjI2YTdjMzQ5OTE4YWNiYmM0NWJmZjU0YWY2YTdiYmZjNzAxYzMuLmIwMDcx
Y2M2NTI2NmZlN2E5MmFiYzA0ZjNiZmQ4YzVhNDIzZDY4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIK
KyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CkBAIC00
OCwxMiArNDksMTUgQEAgY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIExpYldlYlJUQ0NvZGVjc1By
b3h5OwogY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7CiBjbGFzcyBSZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI7CitjbGFzcyBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eTsKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKIGNsYXNz
IFJlbW90ZUNETUZhY3RvcnlQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OwogY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlcjsKIGNsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXI7CiBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Oworc3RydWN0IFJlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+
CkBAIC04OCwxMSArOTIsMTUgQEAgcHVibGljOgogICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYg
Y2RtRmFjdG9yeVByb3h5KCk7CiAjZW5kaWYKIAorICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5JiByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpOworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAg
ICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7
CiAKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlciYgcmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIoKTsKLSAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJ
QldFQlJUQykKICAgICBMaWJXZWJSVENDb2RlY3NQcm94eSYgbGliV2ViUlRDQ29kZWNzUHJveHko
KTsKICNlbmRpZgpAQCAtMTA0LDYgKzExMiwxMSBAQCBwcml2YXRlOgogICAgIFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIoKTsKICNlbmRpZgogI2VuZGlmCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShB
VURJT19TRVNTSU9OKQorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5JiBhdWRpb1Nlc3Npb25Q
cm94eSgpOworI2VuZGlmCisKICAgICB2b2lkIGNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVsZWFzZVJlbmRlcmluZ0JhY2tlbmQo
UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMTEx
LDYgKzEyNCwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Tm93UGxheWluZ0luZm8oYm9vbCBz
ZXRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbiwgY29uc3QgV2ViQ29yZTo6Tm93UGxheWluZ0luZm8m
KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lP
TikKKyAgICB1c2luZyBFbnN1cmVBdWRpb1Nlc3Npb25Db21wbGV0aW9uID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJik+OworICAg
IHZvaWQgZW5zdXJlQXVkaW9TZXNzaW9uKEVuc3VyZUF1ZGlvU2Vzc2lvbkNvbXBsZXRpb24mJik7
CisjZW5kaWYKKwogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBkaWRD
bG9zZShJUEM6OkNvbm5lY3Rpb24mKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVj
ZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgZmluYWw7CkBAIC0x
NDksNiArMTY3LDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAg
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVDRE1GYWN0b3J5UHJveHk+IG1fY2RtRmFjdG9yeVByb3h5
OwogI2VuZGlmCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IG1fYXVkaW9TZXNz
aW9uUHJveHk7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCA4ZDkxY2UyYmNkYmRhZWNmYzI1NzEwM2NkYWNlNjk2NTRj
YzQ4ZDM5Li41YWI0MTcyZWQzMTQ3ZjI2YTkwMzdkYmM5ODg1YTk3ZjFlODA5Y2M2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjksNiArMjksNyBAQCBtZXNzYWdlcyAtPiBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzIFdhbnRzRGlzcGF0Y2hNZXNzYWdlIHsKICAgICB2b2lkIENs
ZWFyTm93UGxheWluZ0luZm8oKTsKICAgICB2b2lkIFNldE5vd1BsYXlpbmdJbmZvKGJvb2wgc2V0
QXNOb3dQbGF5aW5nQXBwbGljYXRpb24sIHN0cnVjdCBXZWJDb3JlOjpOb3dQbGF5aW5nSW5mbyBu
b3dQbGF5aW5nSW5mbyk7CiAjZW5kaWYKKyAgICBFbnN1cmVBdWRpb1Nlc3Npb24oKSAtPiAoc3Ry
dWN0IFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9u
KSBTeW5jaHJvbm91cwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCmluZGV4IDBlN2JkMDliZWE1ZDEyM2E0MDdl
Y2ZiOWQzOWY3MjQwZjViM2M3YjkuLjYwMzcwMDU5Y2QxNDk1NTM2ZWY0NWNmNDk2NDUyZGQ0MWUy
NGU0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbmNsdWRlICJBdXhpbGlhcnlQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IgorI2luY2x1ZGUgIkdQVVBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIkdQVVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzU2Vzc2lvblBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC01MSw2ICs1MiwxMCBAQAogI2luY2x1
ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTExMCw2ICsxMTUsOCBAQCB2
b2lkIEdQVVByb2Nlc3M6OmluaXRpYWxpemVHUFVQcm9jZXNzKEdQVVByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIFdURjo6VGhyZWFkOjpzZXRDdXJyZW50VGhyZWFk
SXNVc2VySW5pdGlhdGVkKCk7CiAgICAgQXRvbVN0cmluZzo6aW5pdCgpOwogCisgICAgR1BVUGxh
dGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCk7CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNz
aW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKQEAgLTIxMiw2ICsyMTksMTUgQEAgY29uc3QgU3Ry
aW5nJiBHUFVQcm9jZXNzOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkgY28KIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBV
U0UoQVVESU9fU0VTU0lPTikKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgR1BVUHJv
Y2Vzczo6YXVkaW9TZXNzaW9uTWFuYWdlcigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2F1ZGlvU2Vz
c2lvbk1hbmFnZXIpCisgICAgICAgIG1fYXVkaW9TZXNzaW9uTWFuYWdlciA9IFdURjo6bWFrZVVu
aXF1ZTxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI+KCk7CisgICAgcmV0dXJuICptX2F1
ZGlvU2Vzc2lvbk1hbmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVBy
b2Nlc3MuaAppbmRleCA2ZmEwMjAxNGI5NDc4MWVhOTllMDM1ZGIzYWQ3OWQ2NWEyNGYyODdiLi40
M2FhZTFhMTJiNWI4ODViMjZjNTZkZGYxNTI5NjBmMDIyN2M1MjBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzczsKIHN0cnVjdCBHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3Ry
dWN0IEdQVVByb2Nlc3NTZXNzaW9uUGFyYW1ldGVyczsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRl
eHQ7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CiAKIGNsYXNzIEdQVVBy
b2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcywgcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPEdQVVByb2Nlc3M+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVUHJvY2Vzcz4gewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEdQVVByb2Nlc3MpOwpAQCAtNjMsNiArNjQsMTAgQEAgcHVi
bGljOgogICAgIGNvbnN0IFN0cmluZyYgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeShQQUw6OlNl
c3Npb25JRCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNF
KEFVRElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyJiBhdWRp
b1Nlc3Npb25NYW5hZ2VyKCkgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIGxv
d01lbW9yeUhhbmRsZXIoQ3JpdGljYWwpOwogCkBAIC0xMDMsNiArMTA4LDkgQEAgcHJpdmF0ZToK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gbV9jb250ZXh0Rm9yVmlz
aWJpbGl0eVByb3BhZ2F0aW9uOwogICAgIGJvb2wgbV9jYW5TaG93V2hpbGVMb2NrZWQgeyBmYWxz
ZSB9OwogI2VuZGlmCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lP
TikKKyAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXI+IG1fYXVkaW9TZXNzaW9uTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWZjNDlkZTg5ZGUxYWNl
NDZhYzE2N2Y4NTg0NjgwMzM2NTJkYzkwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApAQCAtMCwwICsx
LDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0Uo
QVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAi
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVk
aW9TZXNzaW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eTo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rp
b24pCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+
KGdwdUNvbm5lY3Rpb24pOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvbikK
KyAgICA6IG1fZ3B1Q29ubmVjdGlvbihncHVDb25uZWN0aW9uKQoreworfQorCitSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eTo6flJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KCkgPSBkZWZhdWx0OworCitX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6cHJvY2Vz
c0lkZW50aWZpZXIoKQoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb24ud2ViUHJvY2Vzc0lk
ZW50aWZpZXIoKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6Y29uZmlndXJhdGlvbigpCit7CisgICAgYXV0byYgc2Vzc2lvbiA9
IGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXNzaW9uKCk7CisgICAgcmV0dXJuIHsKKyAgICAgICAg
c2Vzc2lvbi5jYXRlZ29yeSgpLAorICAgICAgICBzZXNzaW9uLnJvdXRlU2hhcmluZ1BvbGljeSgp
LAorICAgICAgICBzZXNzaW9uLnJvdXRpbmdDb250ZXh0VUlEKCksCisgICAgICAgIHNlc3Npb24u
c2FtcGxlUmF0ZSgpLAorICAgICAgICBzZXNzaW9uLmJ1ZmZlclNpemUoKSwKKyAgICAgICAgc2Vz
c2lvbi5udW1iZXJPZk91dHB1dENoYW5uZWxzKCksCisgICAgICAgIHNlc3Npb24ucHJlZmVycmVk
QnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNzaW9uLmlzTXV0ZWQoKSwKKyAgICAgICAgbV9hY3Rp
dmUKKyAgICB9OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpzZXRDYXRlZ29y
eShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSwgV2ViQ29yZTo6
Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBtX2NhdGVnb3J5ID0gY2F0ZWdvcnk7
CisgICAgbV9yb3V0ZVNoYXJpbmdQb2xpY3kgPSBwb2xpY3k7CisgICAgYXVkaW9TZXNzaW9uTWFu
YWdlcigpLnNldENhdGVnb3J5Rm9yUHJvY2VzcyhtX2dwdUNvbm5lY3Rpb24ud2ViUHJvY2Vzc0lk
ZW50aWZpZXIoKSwgY2F0ZWdvcnksIHBvbGljeSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUodWludDY0X3Qgc2l6ZSkKK3sKKyAgICBt
X3ByZWZlcnJlZEJ1ZmZlclNpemUgPSBzaXplOworICAgIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5z
ZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2VzcyhtX2dwdUNvbm5lY3Rpb24ud2ViUHJvY2Vz
c0lkZW50aWZpZXIoKSwgc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6
OnRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlLCBTZXRBY3RpdmVDb21wbGV0aW9uJiYgY29tcGxl
dGlvbikKK3sKKyAgICBtX2FjdGl2ZSA9IGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS50cnlUb1NldEFj
dGl2ZUZvclByb2Nlc3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCksIGFj
dGl2ZSk7CisgICAgY29tcGxldGlvbihtX2FjdGl2ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OmJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6QmVnaW5JbnRlcnJ1cHRpb24odHlwZSksIHsgfSk7
Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmVuZEludGVycnVwdGlvbihXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit7
CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6RW5k
SW50ZXJydXB0aW9uKGZsYWdzKSwgeyB9KTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyJiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YXVkaW9TZXNzaW9uTWFuYWdlcigpCit7
CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi5ncHVQcm9jZXNzKCkuYXVkaW9TZXNzaW9uTWFu
YWdlcigpOworfQorCitJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpj
b25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gbV9ncHVDb25uZWN0aW9uLmNvbm5lY3Rpb24oKTsK
K30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNkMmM2YzM3YzE3
OTY0ZTBiYzhkZmE3MjEzNjQ5OTIxZDg0OTNjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oCkBAIC0wLDAg
KzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVk
aWFTZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgorI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlv
bjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWFuYWdlcjsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkKKyAgICA6IHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5PiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4gY3JlYXRl
KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eSgpOworCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lk
ZW50aWZpZXIoKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIGNvbmZpZ3Vy
YXRpb24oKTsKKworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVn
b3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsgfTsKKyAgICBXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9yb3V0ZVNo
YXJpbmdQb2xpY3k7IH0KKyAgICBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJlZmVycmVkQnVmZmVyU2l6ZTsgfQorICAgIGJvb2wgaXNBY3RpdmUoKSBjb25z
dCB7IHJldHVybiBtX2FjdGl2ZTsgfQorCisgICAgdm9pZCBiZWdpbkludGVycnVwdGlvbihXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSk7CisgICAgdm9pZCBl
bmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVw
dGlvbkZsYWdzKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOworCitwcml2YXRlOgor
ICAgIGZyaWVuZCBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+IFdURjo6bWFrZVVu
aXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+KEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eShH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisKKyAgICAvLyBNZXNzYWdlcworICAgIHZvaWQg
c2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdlYkNvcmU6
OlJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHVp
bnQ2NF90KTsKKyAgICB1c2luZyBTZXRBY3RpdmVDb21wbGV0aW9uID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT47CisgICAgdm9pZCB0cnlUb1NldEFjdGl2ZShib29sLCBTZXRBY3RpdmVD
b21wbGV0aW9uJiYpOworCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyJiBhdWRp
b1Nlc3Npb25NYW5hZ2VyKCk7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCk7CisK
KyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb247CisgICAgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeTsKKyAgICBXZWJDb3Jl
OjpSb3V0ZVNoYXJpbmdQb2xpY3kgbV9yb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgc2l6ZV90IG1f
cHJlZmVycmVkQnVmZmVyU2l6ZSB7IDAgfTsKKyAgICBib29sIG1fYWN0aXZlIHsgZmFsc2UgfTsK
K307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTdmM2JhZTgyNDNmYWE1NDU1MmJiZmYwNGQ5YTZlYjg1MmI2MDYyMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKK21lc3NhZ2VzIC0+
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIFNldENhdGVnb3J5
KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSB0eXBlLCBl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKKyAgICBTZXRQ
cmVmZXJyZWRCdWZmZXJTaXplKHVpbnQ2NF90IHByZWZlcnJlZEJ1ZmZlclNpemUpCisgICAgVHJ5
VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpIC0+IChib29sIHN1Y2VlZGVkKSBTeW5jaHJvbm91cwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjE2YjRlZjIxMWYyYTM4MzA3MDU0YzUxMjYxYjcxNjFmYzdkMDhkYgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Np
b24uaD4KKyNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgYm9vbCBjYXRlZ29yeUNh
bk1peFdpdGhPdGhlcnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpCit7Cisg
ICAgcmV0dXJuIGNhdGVnb3J5ID09IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kOworfQorCitS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlcigpCisgICAgOiBtX3Nlc3Npb24oQXVkaW9TZXNzaW9uOjpjcmVhdGUoKSkKK3sKK30KKwor
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp+UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyKCkgPSBkZWZhdWx0OworCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
cjo6YWRkUHJveHkoV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4mJiBwcm94eSkKK3sK
KyAgICBhdXRvIGlkID0gcHJveHktPnByb2Nlc3NJZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKCFt
X3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3Byb3hpZXMuc2V0KGlkLCBXVEZNb3ZlKHBy
b3h5KSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpyZW1vdmVQ
cm94eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7CisgICAgQVNTRVJUKG1fcHJveGll
cy5jb250YWlucyhpZCkpOworICAgIG1fcHJveGllcy5yZW1vdmUoaWQpOworfQorCitSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eSogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpnZXRQcm94
eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7CisgICAgYXV0byByZXN1bHRzID0gbV9w
cm94aWVzLmZpbmQoaWQpOworICAgIGlmIChyZXN1bHRzICE9IG1fcHJveGllcy5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdHMtPnZhbHVlLmdldCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0Q2F0ZWdvcnlGb3JQ
cm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7CisgICAgQVNTRVJU
KG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIGF1dG8gcHJveHkgPSBnZXRQcm94eShpZCk7
CisgICAgaWYgKCFwcm94eSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHByb3h5LT5jYXRl
Z29yeSgpID09IGNhdGVnb3J5ICYmIHByb3h5LT5yb3V0ZVNoYXJpbmdQb2xpY3koKSA9PSBwb2xp
Y3kpCisgICAgICAgIHJldHVybjsKKworICAgIEhhc2hDb3VudGVkU2V0PEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlLCBXVEY6OkludEhhc2g8QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+LCBX
VEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPj4gY2F0
ZWdvcnlDb3VudHM7CisgICAgSGFzaENvdW50ZWRTZXQ8Um91dGVTaGFyaW5nUG9saWN5LCBXVEY6
OkludEhhc2g8Um91dGVTaGFyaW5nUG9saWN5PiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxS
b3V0ZVNoYXJpbmdQb2xpY3k+PiBwb2xpY3lDb3VudHM7CisgICAgZm9yIChhdXRvJiBvdGhlclBy
b3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAgICAgIGNhdGVnb3J5Q291bnRzLmFkZChv
dGhlclByb3h5LT5jYXRlZ29yeSgpKTsKKyAgICAgICAgcG9saWN5Q291bnRzLmFkZChvdGhlclBy
b3h5LT5yb3V0ZVNoYXJpbmdQb2xpY3koKSk7CisgICAgfQorCisgICAgaWYgKGNhdGVnb3J5Q291
bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCkpCisgICAgICAgIGNhdGVn
b3J5ID0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOworICAgIGVsc2UgaWYgKGNhdGVnb3J5
Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW8pKQorICAgICAgICBjYXRl
Z29yeSA9IEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW87CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlD
b3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrKSkKKyAgICAgICAgY2F0
ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7CisgICAgZWxzZSBpZiAoY2F0ZWdv
cnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpTb2xvQW1iaWVudFNvdW5kKSkKKyAgICAg
ICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQ7CisgICAgZWxzZSBp
ZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpBbWJpZW50U291bmQpKQor
ICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5kOworICAgIGVsc2Ug
aWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5n
KSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkF1ZGlvUHJvY2Vzc2luZzsKKyAg
ICBlbHNlCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpOb25lOworCisgICAgaWYg
KHBvbGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtVmlkZW8p
KQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdGb3JtVmlkZW87Cisg
ICAgZWxzZSBpZiAocG9saWN5Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmluZ1BvbGljeTo6TG9u
Z0Zvcm1BdWRpbykpCisgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zv
cm1BdWRpbzsKKyAgICBlbHNlIGlmIChwb2xpY3lDb3VudHMuY29udGFpbnMoUm91dGVTaGFyaW5n
UG9saWN5OjpJbmRlcGVuZGVudCkpCisgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGlj
eTo6SW5kZXBlbmRlbnQ7CisgICAgZWxzZQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQ
b2xpY3k6OkRlZmF1bHQ7CisKKyAgICBtX3Nlc3Npb24tPnNldENhdGVnb3J5KGNhdGVnb3J5LCBw
b2xpY3kpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlkLCBz
aXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSkKK3sKKyAgICBmb3IgKGF1dG8mIG90aGVyUHJveHkg
OiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5KQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhlclByb3h5LT5wcmVmZXJyZWRCdWZmZXJT
aXplKCkgPCBwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcHJlZmVycmVkQnVmZmVy
U2l6ZSA9IG90aGVyUHJveHktPnByZWZlcnJlZEJ1ZmZlclNpemUoKTsKKyAgICB9CisKKyAgICBt
X3Nlc3Npb24tPnNldFByZWZlcnJlZEJ1ZmZlclNpemUocHJlZmVycmVkQnVmZmVyU2l6ZSk7Cit9
CisKK2Jvb2wgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlUb1NldEFjdGl2ZUZv
clByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlkLCBib29sIGFjdGl2ZSkKK3sKKyAg
ICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7CisgICAgYXV0byBwcm94eSA9IGdldFBy
b3h5KGlkKTsKKyAgICBpZiAoIXByb3h5KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBz
aXplX3QgYWN0aXZlUHJveHlDb3VudCB7IDAgfTsKKyAgICBmb3IgKGF1dG8mIG90aGVyUHJveHkg
OiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5KQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhlclByb3h5LT5pc0FjdGl2ZSgpKQorICAg
ICAgICAgICAgKythY3RpdmVQcm94eUNvdW50OworICAgIH0KKworICAgIGlmICghYWN0aXZlICYm
IGFjdGl2ZVByb3h5Q291bnQgPiAxKSB7CisgICAgICAgIC8vIFRoaXMgcHJveHkgd2FudHMgdG8g
ZGUtYWN0aXZhdGUsIGJ1dCBvdGhlciBwcm94aWVzIGFyZSBzdGlsbAorICAgICAgICAvLyBhY3Rp
dmUuIE5vLW9wLCBhbmQgcmV0dXJuIGRlYWN0aXZhdGlvbiB3YXMgc3VjZXNzZnVsLgorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIWFjdGl2ZSkgeworICAgICAgICAvLyBU
aGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBhbmQgaXMgdGhlIGxhc3QgcmVtYWluaW5n
IGFjdGl2ZQorICAgICAgICAvLyBwcm94eS4gRGVhY3RpdmF0ZSB0aGUgc2Vzc2lvbiwgYW5kIHJl
dHVybiB3aGV0aGVyIHRoYXQgZGVhY3RpdmF0aW9uCisgICAgICAgIC8vIHdhcyBzdWNlc3NmdWw7
CisgICAgICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGZhbHNlKTsKKyAgICB9
CisKKyAgICBpZiAoYWN0aXZlICYmICFhY3RpdmVQcm94eUNvdW50KSB7CisgICAgICAgIC8vIFRo
aXMgcHJveHkgYW5kIG9ubHkgdGhpcyBwcm94eSB3YW50cyB0byBiZWNvbWUgYWN0aXZlLiBBY3Rp
dmF0ZQorICAgICAgICAvLyB0aGUgc2Vzc2lvbiwgYW5kIHJldHVybiB3aGV0aGVyIHRoYXQgYWN0
aXZhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIG1fc2Vzc2lvbi0+dHJ5VG9T
ZXRBY3RpdmUoYWN0aXZlKTsKKyAgICB9CisKKyAgICAvLyBJZiB0aGlzIHByb3h5IGlzIEFtYmll
bnQsIGFuZCB0aGUgc2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZSwgdGhpcworICAgIC8vIHByb3h5
IHdpbGwgbWl4IHdpdGggdGhlIGFjdGl2ZSBwcm94aWVzLiBOby1vcCwgYW5kIHJldHVybiBhY3Rp
dmF0aW9uCisgICAgLy8gd2FzIHN1Y2Vzc2Z1bC4KKyAgICBpZiAoY2F0ZWdvcnlDYW5NaXhXaXRo
T3RoZXJzKHByb3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIE90aGVyd2lzZSwgdGhpcyBwcm94eSB3YW50cyB0
byBiZWNvbWUgYWN0aXZlLCBidXQgdGhlcmUgYXJlIG90aGVyCisgICAgLy8gcHJveGllcyB3aG8g
YXJlIGFscmVhZHkgYWN0aXZlLiBXYWxrIG92ZXIgdGhlIHByb3hpZXMsIGFuZCBpbnRlcnJ1cHQK
KyAgICAvLyB0aG9zZSBwcm94aWVzIHdob3NlIGNhdGVvZ3JpZXMgaW5kaWNhdGUgdGhleSBjYW5u
b3QgbWl4IHdpdGggb3RoZXJzLgorICAgIGZvciAoYXV0byYgb3RoZXJQcm94eSA6IG1fcHJveGll
cy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoIW90aGVyUHJveHkpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5LT5pc0FjdGl2ZSgpKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgaWYgKGNhdGVnb3J5Q2FuTWl4V2l0aE90aGVycyhvdGhlclBy
b3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIG90aGVy
UHJveHktPmJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRp
b25UeXBlOjpTeXN0ZW1JbnRlcnJ1cHRpb24pOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJu
IHRydWU7CisKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iMDA0NTU3MTJmNWE4NjAxOTk5MzIzNzU3M2UzOWMyODRjOGY2YzIzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlci5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04p
CisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UHJvY2Vzc0lkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5OworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXIKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBSZW1v
dGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKTsKKyAgICB+UmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGFkZFByb3h5KFdlYWtQdHI8UmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk+JiYpOworICAgIHZvaWQgcmVtb3ZlUHJveHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXImKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSogZ2V0UHJveHkoY29u
c3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKKworICAgIHZvaWQgc2V0Q2F0ZWdvcnlG
b3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJiwgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSk7Cisg
ICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllciYsIHNpemVfdCk7CisKKyAgICBib29sIHRyeVRvU2V0QWN0aXZlRm9y
UHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIGJvb2wpOworCisgICAg
Y29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uJiBzZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXNzaW9uOyB9CisKK3ByaXZhdGU6CisgICAgVW5pcXVlUmVmPFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bj4gbV9zZXNzaW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFdl
YWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+PiBtX3Byb3hpZXM7Cit9OworCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDRiM2RlYzdjZDM5ZDAxMDJiODVmMGY5NWRmNGU0MzBmOWFlMTNmZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDI1NmRjOTkw
NWJmNDQ2NmQwYzJhZDU3NGQ4YzM2OGExNGJlNjk2M2EuLjRiYTE0ZGJhZjI0YjI0MWU1OWRiMGE3
ZjIwODBkMDJkMDI3YzNiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQpAQCAtMjM0LDYgKzIzNCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJk
X2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyJywKKyAgICAg
ICAgJ1dlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJL
aXQ6OlJlbW90ZUNETUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JbnN0
YW5jZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZVNlc3Np
b25JZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA0MzZiYzI2MzRmMTBkZDAzYmQ5MWYyNTJmOTdjMjY4
N2YwNWY3OWI1Li4yNTJjOGZhZGFmZTFlYmEwMzkzNmY5YTkyY2RiZWViZGY5NDI1ODVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCkBAIC0xMjQsNiArMTI0LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMgewogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtZW1vcnlDYWNoZURpc2FibGVkIHsgZmFsc2UgfTsKICAgICBib29sIGF0dHJTdHlsZUVu
YWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhIHsgZmFsc2Ug
fTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGJvb2wgaGFzSW1hZ2VTZXJ2
aWNlcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggOTI2OWIwYTNiYWY1OTRm
MzNjZGVkOWY1NGJlN2Y5MmZlZDBiNGU4OS4uZWQ5ZjQ0YmI5ZjIyZTNjMjRmMWQyZDk4MDU4MzIx
YTgxMGY3OWQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjU2LDYgKzY1Niw4IEBAIExp
YldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzTWVz
c2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CitSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGU4OWRlNjk4OTQ3NGJmODkxYjI2MTE2MTE2YzFkYjBkNmFmOTlkMDQu
LjYyMWZiMWM5ZWUwOTMyZDUyYjRmMWQ1MmQyYjViMGYzZTMwNjM3NjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc0NSw2ICsxNzQ1
LDcgQEAKIAkJQ0RBQzIwRjgyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RBQzIwRjUyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNl
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDREFDMjBGOTIzRkM3MjZDMDAyMURF
RTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQzIwRUMyM0ZD
MzgzODAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKIAkJQ0RBQzIwRkEyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETVBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEQUMyMEVGMjNGQzM4MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNEQkI0OUZEMjQwRDlBNzIwMDE3QzI5MiAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovOyB9OwogCQlDREMyODMxRDIwMUJENzlEMDBF
NkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMyODMxQjIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxs
c2NyZWVuU3RhY2tWaWV3LmggKi87IH07CiAJCUNEQ0E4NUM5MTMyQUJBNEUwMEU5NjFERiAvKiBX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5oICovOyB9OwogCQlDRTExQUQ1MjFDQkM0ODJGMDA2ODFFRTUg
LyogQ29kZVNpZ25pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENFMTFBRDUxMUNCQzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5oICovOyB9OwpA
QCAtNTEwMyw2ICs1MTA0LDE1IEBACiAJCUNEQUMyMEY0MjNGQzM4M0EwMDIxREVFMyAvKiBSZW1v
dGVDRE1Qcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZUNETVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RB
QzIwRjUyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ0RN
SW5zdGFuY2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEQUMyMEY2MjNGQzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5
TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RCQjQ5RjQyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0RCQjQ5RjUyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGNjI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjcyNDBEOEM5NTAwMTdD
MjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0RCQjQ5RjgyNDBEOEQ1MzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGOTI0MEQ5NjNDMDAxN0MyOTIgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlG
QTI0MEQ5NjNEMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZCMjQwRDk3NEEwMDE3QzI5MiAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U2Vzc2lvbklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5
RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREMyODMxQjIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxs
c2NyZWVuU3RhY2tWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRnVsbHNjcmVlblN0YWNrVmlldy5o
OyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzI4MzFDMjAxQkQ3OUQwMEU2RTc0NSAvKiBXS0Z1bGxz
Y3JlZW5TdGFja1ZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0Z1bGxzY3JlZW5TdGFj
a1ZpZXcubW07IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxzY3JlZW5TdGFja1ZpZXcubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzM4MkY3MTcyMTE1MDYwMDhBMkZDMyAv
KiBDRk5ldHdvcmsuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDRk5ldHdvcmsuZnJhbWV3
b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ0ZOZXR3b3JrLmZyYW1ld29y
azsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKQEAgLTUxMTAsNiArNTEyMCwxNyBAQAog
CQlDRENBODVDNjEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4
NUM3MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1RDQxMzJBQzJCMzAwRTk2
MURGIC8qIElPS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gSU9LaXQuZnJhbWV3b3Jr
OyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3b3JrOyBzb3Vy
Y2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQlDREQ1MzU2RjI0MEREMzQzMDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbi5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzAyNDBERDRF
RjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcxMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNERDUzNTcyMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzMyNDBE
REUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1
MzU3NDI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3NTI0MERERTA3MDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9T
ZXNzaW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzYy
NDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3NzI0MERERTA3MDBGN0I4QzQg
LyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzgyNDBEREUwODAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNERDUzNTc5MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNFMTFBRDRGMUNCQzQ3RjgwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvZGVTaWduaW5nLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRTExQUQ1MTFDQkM0ODJGMDA2ODFFRTUgLyogQ29kZVNpZ25p
bmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29kZVNpZ25pbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UxQTBCQ0MxQTQ4RTZDNjAwNTRFRjc0IC8qIEFz
c2VydGlvblNlcnZpY2VzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFz
c2VydGlvblNlcnZpY2VzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01Mzg5
LDYgKzU0MTAsMTEgQEAKIAkJCQk5QjVCRUMyOTI0MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5LmNwcCAqLywKIAkJCQk5QjVCRUMyODI0MDEwMTU4MDA3MEM2RUYg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggKi8sCiAJCQkJOUI1QkVDMkUyNDAxMDE4
QzAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbiAqLywK
KwkJCQlDREJCNDlGNTI0MEQ4QUM2MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uLmNwcCAq
LywKKwkJCQlDREJCNDlGNDI0MEQ4QUM2MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uLmgg
Ki8sCisJCQkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5t
ZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVk
aW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovLAorCQkJCUNEQkI0OUZCMjQwRDk3NEEwMDE3QzI5
MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8sCiAJCQkJQ0RBQzIwQkYyM0ZD
MkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETS5jcHAgKi8sCiAJCQkJQ0RBQzIwQkEyM0ZDMkY3NDAw
MjFERUUzIC8qIFJlbW90ZUNETS5oICovLAogCQkJCUNEQUMyMEI4MjNGQzJGNzMwMDIxREVFMyAv
KiBSZW1vdGVDRE1Db25maWd1cmF0aW9uLmggKi8sCkBAIC01NDMxLDYgKzU0NTcsMTIgQEAKIAkJ
CQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuY3BwICovLAogCQkJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5oICovLAogCQkJCTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1MSAvKiBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlG
NzI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwICovLAorCQkJ
CUNEQkI0OUY2MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oICov
LAorCQkJCUNEQkI0OUY4MjQwRDhENTMwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eS5tZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlGQTI0MEQ5NjNEMDAxN0MyOTIgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcCAqLywKKwkJCQlDREJCNDlGOTI0MEQ5NjNDMDAx
N0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmggKi8sCisJCQkJQ0RENTM1
NzAyNDBERDRFRjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9U
cmFja1Byb3h5LmNwcCAqLywKIAkJCQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3Rl
QXVkaW9UcmFja1Byb3h5LmggKi8sCiAJCQkJQ0RBQzIwNzkyM0ZCMUUyMTAwMjFERUUzIC8qIFJl
bW90ZUNETUZhY3RvcnlQcm94eS5jcHAgKi8sCkBAIC05ODUwLDYgKzk4ODIsMTUgQEAKIAkJCQkx
QTA0M0I1QzEyNEQ1RTlEMDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAq
LywKIAkJCQkxQThFRkE2RTEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCTFBOEVGQTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94
eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1
ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJQ0RENTM1NzUyNDBEREUwNzAw
RjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzQy
NDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICov
LAorCQkJCUNERDUzNTczMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTc4MjQwRERFMDgwMEY3
QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJ
CUNERDUzNTc5MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUz
NTcyMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmgg
Ki8sCisJCQkJQ0RENTM1NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJQ0RBQzIwRjIyM0ZDMzgzQTAwMjFERUUzIC8q
IFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RBQzIw
RjMyM0ZDMzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VzLmggKi8s
CiAJCQkJQ0RBQzIwRUUyM0ZDMzgzOTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1l
c3NhZ2VzUmVwbGllcy5oICovLApAQCAtMTA3NzMsNiArMTA4MTQsNyBAQAogCQkJCTlCMTIyOUQy
MjNGRjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOUIxMjI5Q0QyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjVCRUMyQTI0MDEwMTU4
MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggaW4gSGVhZGVycyAqLywK
KwkJCQlDREJCNDlGRDI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmln
dXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzcyM0ZDMkY3NTAwMjFERUUzIC8q
IFJlbW90ZUNETS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzUyM0ZDMkY3NTAwMjFERUUz
IC8qIFJlbW90ZUNETUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQUMyMENE
MjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5LmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9T
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVk
aW9TZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmU1Y2VjOGVhMWI2ODdkNWJkZDcxN2RjZGMzMzFj
NDYxYWRkNTUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5j
bHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiR1BV
UHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworVW5pcXVl
UmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4gUmVtb3RlQXVkaW9TZXNzaW9uOjpjcmVhdGUoV2ViUHJv
Y2VzcyYgcHJvY2VzcykKK3sKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIGNv
bmZpZ3VyYXRpb247CisgICAgcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
RW5zdXJlQXVkaW9TZXNzaW9uKCksIE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpFbnN1cmVBdWRpb1Nlc3Npb246OlJlcGx5KGNvbmZpZ3VyYXRpb24pLCB7IH0pOworICAgIHJl
dHVybiBtYWtlVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4ocHJvY2VzcywgV1RGTW92ZShj
b25maWd1cmF0aW9uKSk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvbjo6UmVtb3RlQXVkaW9TZXNz
aW9uKFdlYlByb2Nlc3MmIHByb2Nlc3MsIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCisgICAgLCBtX2NvbmZp
Z3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKK3sKK30KKworUmVtb3RlQXVkaW9TZXNz
aW9uOjp+UmVtb3RlQXVkaW9TZXNzaW9uKCkgPSBkZWZhdWx0OworCitJUEM6OkNvbm5lY3Rpb24m
IFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1fcHJvY2Vz
cy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKK30KKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSB0eXBlLCBSb3V0ZVNo
YXJpbmdQb2xpY3kgcG9saWN5KQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6U2V0Q2F0ZWdvcnkodHlwZSwgcG9saWN5KSwgeyB9KTsK
K30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6
ZV90IHNpemUpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5OjpTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemUpLCB7IH0pOworfQorCiti
b29sIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sIGFjdGl2
ZSkKK3sKKyAgICBib29sIHN1Y2NlZWRlZDsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVz
c2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpUcnlUb1NldEFjdGl2ZShhY3RpdmUpLCBN
ZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRyeVRvU2V0QWN0aXZlOjpSZXBseShz
dWNjZWVkZWQpLCB7IH0pOworICAgIHJldHVybiBzdWNjZWVkZWQ7Cit9CisKK3ZvaWQgUmVtb3Rl
QXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZChSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBib29sIG11dGVkU3RhdGVDaGFuZ2Vk
ID0gY29uZmlndXJhdGlvbi5pc011dGVkICE9IG1fY29uZmlndXJhdGlvbi5pc011dGVkOworCisg
ICAgbV9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsKKworICAgIGlmIChtdXRlZFN0YXRl
Q2hhbmdlZCkKKyAgICAgICAgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOworfQorCit2b2lkIFJl
bW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246
OkludGVycnVwdGlvblR5cGUgdHlwZSkKK3sKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNoYXJlZE1hbmFnZXIoKS5iZWdpbkludGVycnVwdGlvbih0eXBlKTsKK30KKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZW5kSW50ZXJydXB0aW9uKGZsYWdzKTsKK30KKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4ZjhkYzgyM2UzZjAxMDdjMTkzYmU5
NDhiZjdmYjk2OGJjZTc5ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCkBAIC0wLDAgKzEsODYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNF
KEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRl
ICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg+
CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgV2ViUHJvY2VzczsK
KworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uIGZpbmFsCisgICAgOiBwdWJsaWMgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uCisgICAgLCBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxSZW1vdGVBdWRp
b1Nlc3Npb24+IGNyZWF0ZShXZWJQcm9jZXNzJik7CisgICAgdmlydHVhbCB+UmVtb3RlQXVkaW9T
ZXNzaW9uKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nl
c3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UmVtb3RlQXVk
aW9TZXNzaW9uPihXZWJQcm9jZXNzJiwgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYm
KTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb24oV2ViUHJvY2VzcyYsIFJlbW90ZUF1ZGlvU2Vzc2lv
bkNvbmZpZ3VyYXRpb24mJik7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCk7CisK
KyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdl
cworICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmln
dXJhdGlvbiYmKTsKKyAgICB2b2lkIGJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlKTsKKyAgICB2b2lkIGVuZEludGVycnVwdGlv
bihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MpOwor
CisgICAgLy8gQXVkaW9TZXNzaW9uCisgICAgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUs
IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSkgZmluYWw7CisgICAgdm9pZCBzZXRQcmVmZXJy
ZWRCdWZmZXJTaXplKHNpemVfdCkgZmluYWw7CisgICAgYm9vbCB0cnlUb1NldEFjdGl2ZUludGVy
bmFsKGJvb2wpIGZpbmFsOworCisgICAgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmNhdGVnb3J5OyB9CisgICAgV2ViQ29yZTo6Um91
dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fY29uZmlndXJhdGlvbi5yb3V0ZVNoYXJpbmdQb2xpY3k7IH0KKyAgICBTdHJpbmcgcm91dGlu
Z0NvbnRleHRVSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24ucm91dGlu
Z0NvbnRleHRVSUQ7IH0KKyAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9jb25maWd1cmF0aW9uLnNhbXBsZVJhdGU7IH0KKyAgICBzaXplX3QgYnVmZmVyU2l6ZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5idWZmZXJTaXplOyB9CisgICAg
c2l6ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nv
bmZpZ3VyYXRpb24ubnVtYmVyT2ZPdXRwdXRDaGFubmVsczsgfQorICAgIHNpemVfdCBwcmVmZXJy
ZWRCdWZmZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnByZWZl
cnJlZEJ1ZmZlclNpemU7IH0KKyAgICBib29sIGlzTXV0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NvbmZpZ3VyYXRpb24uaXNNdXRlZDsgfQorICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uaXNBY3RpdmU7IH0KKworICAgIFdlYlByb2Nl
c3MmIG1fcHJvY2VzczsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uIG1fY29u
ZmlndXJhdGlvbjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA4OTYyOGY2NTdlZjdjZGJjZGJhNzc5ZDQxZGI5OWJjYTVkNDRi
MTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKK21l
c3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvbiBOb3RSZWZDb3VudGVkIHsKKyAgICBDb25maWd1
cmF0aW9uQ2hhbmdlZChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgQmVnaW5JbnRlcnJ1cHRpb24oZW51bTp1aW50OF90IFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCisgICAg
RW5kSW50ZXJydXB0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWU2MDI5MDQ2ODg1ZjVmZmZh
ODMwMjBhZmFjZTg4ZDQ3M2VlZjJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgKQEAg
LTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1
ZGlvU2Vzc2lvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFJlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24geworCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGUgY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6
Tm9uZSB9OworICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xp
Y3kgeyBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQgfTsKKyAgICBTdHJpbmcg
cm91dGluZ0NvbnRleHRVSUQ7CisgICAgZmxvYXQgc2FtcGxlUmF0ZSB7IDAgfTsKKyAgICB1aW50
NjRfdCBidWZmZXJTaXplIHsgMCB9OworICAgIHVpbnQ2NF90IG51bWJlck9mT3V0cHV0Q2hhbm5l
bHMgeyAwIH07CisgICAgdWludDY0X3QgcHJlZmVycmVkQnVmZmVyU2l6ZSB7IDAgfTsKKyAgICBi
b29sIGlzTXV0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNBY3RpdmUgeyBmYWxzZSB9OworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjYXRlZ29yeTsKKyAgICAgICAg
ZW5jb2RlciA8PCByb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgICAgIGVuY29kZXIgPDwgcm91dGlu
Z0NvbnRleHRVSUQ7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlUmF0ZTsKKyAgICAgICAgZW5j
b2RlciA8PCBidWZmZXJTaXplOworICAgICAgICBlbmNvZGVyIDw8IG51bWJlck9mT3V0cHV0Q2hh
bm5lbHM7CisgICAgICAgIGVuY29kZXIgPDwgcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAg
ZW5jb2RlciA8PCBpc011dGVkOworICAgICAgICBlbmNvZGVyIDw8IGlzQWN0aXZlOworICAgIH0K
KworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBPcHRpb25hbDxSZW1v
dGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAg
ICB7CisgICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
PiBjYXRlZ29yeTsKKyAgICAgICAgZGVjb2RlciA+PiBjYXRlZ29yeTsKKyAgICAgICAgaWYgKCFj
YXRlZ29yeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0
aW9uYWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiByb3V0ZVNoYXJpbmdQb2xpY3k7Cisg
ICAgICAgIGRlY29kZXIgPj4gcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBpZiAoIXJvdXRl
U2hhcmluZ1BvbGljeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8U3RyaW5nPiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgZGVjb2RlciA+
PiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgaWYgKCFyb3V0aW5nQ29udGV4dFVJRCkKKyAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8ZmxvYXQ+
IHNhbXBsZVJhdGU7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxlUmF0ZTsKKyAgICAgICAgaWYg
KCFzYW1wbGVSYXRlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBPcHRpb25hbDx1aW50NjRfdD4gYnVmZmVyU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+PiBidWZm
ZXJTaXplOworICAgICAgICBpZiAoIWJ1ZmZlclNpemUpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBudW1iZXJPZk91dHB1dENo
YW5uZWxzOworICAgICAgICBkZWNvZGVyID4+IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7CisgICAg
ICAgIGlmICghbnVtYmVyT2ZPdXRwdXRDaGFubmVscykKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IHByZWZlcnJlZEJ1ZmZlclNp
emU7CisgICAgICAgIGRlY29kZXIgPj4gcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAgICAgaWYg
KCFwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgICAgICBPcHRpb25hbDxib29sPiBpc011dGVkOworICAgICAgICBkZWNvZGVyID4+IGlz
TXV0ZWQ7CisgICAgICAgIGlmICghaXNNdXRlZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNBY3RpdmU7CisgICAgICAgIGRlY29k
ZXIgPj4gaXNBY3RpdmU7CisgICAgICAgIGlmICghaXNBY3RpdmUpCisgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAgICAgICAgV1RGTW92
ZSgqY2F0ZWdvcnkpLAorICAgICAgICAgICAgV1RGTW92ZSgqcm91dGVTaGFyaW5nUG9saWN5KSwK
KyAgICAgICAgICAgIFdURk1vdmUoKnJvdXRpbmdDb250ZXh0VUlEKSwKKyAgICAgICAgICAgICpz
YW1wbGVSYXRlLAorICAgICAgICAgICAgKmJ1ZmZlclNpemUsCisgICAgICAgICAgICAqbnVtYmVy
T2ZPdXRwdXRDaGFubmVscywKKyAgICAgICAgICAgICpwcmVmZXJyZWRCdWZmZXJTaXplLAorICAg
ICAgICAgICAgKmlzTXV0ZWQsCisgICAgICAgICAgICAqaXNBY3RpdmUsCisgICAgICAgIH19Owor
ICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25J
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTQ4MGM2OTRlMmIzZDk3YjU5NmUy
YTA3MzAzZDY3ZmIwZjk5YmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgKQEAgLTAsMCAr
MSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbW90ZUF1ZGlvU2Vzc2lvbklk
ZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIgPSBP
YmplY3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXJUeXBlPjsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDUxYzJmNWU1M2IzNDBjMjIwNWY3ODliNGIzNzNhMmU1MDdiYjZlYmIu
LjNlODY4OGZhZjEwMzRkNGQ3ZGI3MDc2MmM0ZTQxMDZjOWU1NGI3YzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJO
ZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCisjaW5j
bHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIK
ICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCkBAIC00
NzEsNiArNDcyLDggQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBXZWJSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2V0U2hvdWxkTG9nVXNlckludGVyYWN0aW9uKHBhcmFtZXRlcnMuc2hvdWxk
TG9nVXNlckludGVyYWN0aW9uKTsKICNlbmRpZgogCisgICAgc2V0VXNlR1BVUHJvY2Vzc0Zvck1l
ZGlhKHBhcmFtZXRlcnMudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKTsKKwogICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoUHJvY2VzcywgImluaXRpYWxpemVXZWJQcm9jZXNzOiBQcmVzZW50aW5nIHBy
b2Nlc3MgPSAlZCIsIFdlYkNvcmU6OnByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpKTsKIH0KIApA
QCAtMTk5Nyw2ICsyMDAwLDE4IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0U2hvdWxkQmxvY2tUaGly
ZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoVGhpcmRQYXJ0eUNvb2tpZUJsb2NrCiB9CiAjZW5kaWYK
IAordm9pZCBXZWJQcm9jZXNzOjpzZXRVc2VHUFVQcm9jZXNzRm9yTWVkaWEoYm9vbCB1c2VHUFVQ
cm9jZXNzRm9yTWVkaWEpCit7CisgICAgaWYgKHVzZUdQVVByb2Nlc3NGb3JNZWRpYSA9PSBtX3Vz
ZUdQVVByb2Nlc3NGb3JNZWRpYSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV91c2VHUFVQcm9j
ZXNzRm9yTWVkaWEgPSB1c2VHUFVQcm9jZXNzRm9yTWVkaWE7CisgICAgaWYgKHVzZUdQVVByb2Nl
c3NGb3JNZWRpYSkKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpzZXRTaGFyZWRTZXNzaW9uKFJlbW90
ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzKSk7CisgICAgZWxzZQorICAgICAgICBBdWRpb1Nl
c3Npb246OnNldFNoYXJlZFNlc3Npb24oQXVkaW9TZXNzaW9uOjpjcmVhdGUoKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggNjViZjA0MTdkNGY4YzFkYjUxZjll
OTc1MGJjYjk3ZjlhNWJjMmI5MC4uNjU1ZTc4ZGYwOGRmMDhhYzkyYTU2YmZjOWNjOGE3YTlkNTI1
NWQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC01MTcsNiArNTE3
LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgeyBy
ZXR1cm4gbV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRC0+aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2Vk
KCkgOiB0cnVlOyB9CiAKKyAgICB2b2lkIHNldFVzZUdQVVByb2Nlc3NGb3JNZWRpYShib29sKTsK
KwogICAgIFJlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IG1fd2ViQ29ubmVjdGlvbjsK
IAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJQYWdlPj4g
bV9wYWdlTWFwOwpAQCAtNjUzLDYgKzY1NSw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNhbmRi
b3hFeHRlbnNpb24+IG1fYXNzZXRTZXJ2aWNlRXh0ZW5zaW9uOwogICAgIFJlZlB0cjxTYW5kYm94
RXh0ZW5zaW9uPiBtX2Fzc2V0U2VydmljZVYyRXh0ZW5zaW9uOwogI2VuZGlmCisKKyAgICBib29s
IG1fdXNlR1BVUHJvY2Vzc0Zvck1lZGlhIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392584</attachid>
            <date>2020-03-05 09:21:36 -0800</date>
            <delta_ts>2020-03-05 09:30:13 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208583-20200305092135.patch</filename>
            <type>text/plain</type>
            <size>86654</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZmZTQ3YzEyYzgxMzExY2M4OWRkYmI5
NTE2MjE0MjU0ZGU5YTAxNjEuLjc3OWQ0ZGE1Y2JmNTQ4ZWJkMTAzNzg2MDQ5NGNjNDIyMjA4ZGMy
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRk
IFVuaXF1ZVJlZiB0byB0aGUgbGlzdCBvZiBmb3J3YXJkLWRlY2xhcmVkIHRlbXBsYXRlIHR5cGVz
LgorCisgICAgICAgICogd3RmL0ZvcndhcmQuaDoKKwogMjAyMC0wMy0wNCAgTWFyayBMYW0gIDxt
YXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgZXJy
b3Igd2hpbGUgY29uc3RydWN0aW5nIHRoZSBCeXRlY29kZUdlbmVyYXRvci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBmYmM4Njg2ZjZjNWU5NGViNTZkYzZjOTFmM2I5ZmJhMTkwZTUyZWQ4Li5kMDM1Mjk5YTI4NmIx
Y2EwNjJjNDRjOGJmMjViNDRmMDRhZDM0NmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAgIFJldmlld2VkIGJ5
IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUg
ZW51bWVyYXRpb25zIGluc2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1
ZGlvU2Vzc2lvbiBtZXRob2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4g
dGhlIGNhc2Ugd2hlcmUgdGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisKIDIwMjAtMDMtMDUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUgUGF0aDo6ZW5jb2RlIG9uIHBsYXRmb3Jt
cyB0aGF0IHN1cHBvcnQgQ0dQYXRoR2V0TnVtYmVyT2ZFbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlOWQz
OTlhYjZlMGZjYzRmZTc1N2Y5OGYxMjE5OTFiOWIxZDMwNDFiLi5hZDRjZTZhNDM0YmIzMjUyNDFk
YWExMTNjMmY1NGZmODA5YzliYTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIwLTAz
LTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBJ
bXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBhIHN1YmNsYXNzIG9mIEF1ZGlvU2Vzc2lvbiB3aGlj
aCwgaW5zdGVhZCBvZiBtb2RpZnlpbmcgdGhlIGF1ZGlvIGJlaGF2aW9yIG9mIHRoZSBjdXJyZW50
IHByb2Nlc3MsIG1vZGlmaWVzIHRoZQorICAgICAgICBhdWRpbyBiZWhhdmlvciBvZiB0aGUgR1BV
IFByb2Nlc3MuIEFuZCwgaW4gdGhlIEdQVSBQcm9jZXNzLCBzaW5jZSBpdCByZXByZXNlbnRzIHRo
ZSBhdWRpbyBiZWhhdmlvciBvZiBwb3RlbnRpYWxseQorICAgICAgICBtdWx0aXBsZSBzZXBhcmF0
ZSBXZWJDb250ZW50IHByb2Nlc3Nlcy4KKworICAgICAgICBPdmVycmlkZSB0aGUgZGVmYXVsdCBz
aGFyZWQgQXVkaW9TZXNzaW9uIGF0IFdlYlByb2Nlc3MgaW5pdGlhbGl6YXRpb24gdGltZS4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZSk6
CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmF1ZGlvU2Vzc2lv
blByb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5z
dXJlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6bGVnYWN5Q2RtRmFjdG9yeVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6Omlu
aXRpYWxpemVHUFVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6YXVkaW9T
ZXNzaW9uTWFuYWdlciBjb25zdCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6
OnByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
UHJveHk6OmNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eTo6c2V0Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eTo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1NldEFjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbkludGVycnVwdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjplbmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YXVkaW9TZXNzaW9uTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25uZWN0aW9uKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y2F0ZWdvcnkgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6cm91dGVTaGFy
aW5nUG9saWN5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHk6OnByZWZlcnJlZEJ1ZmZlclNpemUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXI6OmFkZFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpyZW1vdmVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6Z2V0UHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI6OnRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyk6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXNzaW9uIGNv
bnN0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6UmVtb3RlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmVJbnRlcm5hbCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmJlZ2luSW50ZXJydXB0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjplbmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmln
dXJhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29u
ZmlndXJhdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmg6CisKIDIwMjAtMDMtMDUgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEV4cG9ydCBOb3dQbGF5aW5n
IGNvbW1hbmRzIHRvIEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGluIEdQVVByb2Nlc3Mg
aXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNl
L1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThm
NzAzYThmMGQuLjZlOTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3
YXJkLmgKQEAgLTY4LDYgKzY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBE
dW1iUHRyVHJhaXRzPFQ+PiBjbGFzcyBSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSA9IER1bWJQdHJUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBj
bGFzcyBTdHJpbmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBj
bGFzcyBTdHJpbmdUeXBlQWRhcHRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1
ZVJlZjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5
cGVuYW1lPiBzdHJ1Y3QgRGVmYXVsdEhhc2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEy
NSw2ICsxMjYsNyBAQCB1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3Np
dGlvbjsKIHVzaW5nIFdURjo6VGV4dFN0cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RG
OjpVbmlxdWVSZWY7CiB1c2luZyBXVEY6OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKaW5kZXgg
YjVmYjU4MDY0OGY5Y2Y4ZWM0ZjE4NmZhZmE0OGUxM2ZkY2YyZjU3ZC4uZjM1ZmVhYmZlOTY3MTIw
OGQ0YTMwYjg2Mjc5MGI1MTNjYmVlZTc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCkBAIC0zMywxMCArMzMsMjUgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4mIHNoYXJlZEF1ZGlv
U2Vzc2lvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVuaXF1ZVJlZjxBdWRpb1Nl
c3Npb24+PiBzZXNzaW9uID0gQXVkaW9TZXNzaW9uOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gc2Vz
c2lvbi5nZXQoKTsKK30KKworVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4gQXVkaW9TZXNzaW9uOjpj
cmVhdGUoKQoreworICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4oKTsKK30K
KwogQXVkaW9TZXNzaW9uJiBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdWRpb1Nlc3Npb24+IHNlc3Npb247Ci0gICAgcmV0dXJuIHNl
c3Npb247CisgICAgcmV0dXJuIHNoYXJlZEF1ZGlvU2Vzc2lvbigpOworfQorCit2b2lkIEF1ZGlv
U2Vzc2lvbjo6c2V0U2hhcmVkU2Vzc2lvbihVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiYmIHNlc3Np
b24pCit7CisgICAgc2hhcmVkQXVkaW9TZXNzaW9uKCkgPSBXVEZNb3ZlKHNlc3Npb24pOwogfQog
CiBib29sIEF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCmluZGV4IDBkYTc1ZmRhNGEz
YTdjNzE3Nzc4NDQ1OGVkNjQyMDg2NjFjNzZiMzUuLmZhNDIxMmZkMDU5YWNhNjRhYzZjZDY5Nzkx
MjM0ZjlhMjY2M2NhZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
U2Vzc2lvbi5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDEzICs0NSwxOCBAQCBlbnVtIGNs
YXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3QgewogICAgIExvbmdGb3JtVmlkZW8KIH07
CiAKLWNsYXNzIEF1ZGlvU2Vzc2lvbiBmaW5hbCB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBBdWRp
b1Nlc3Npb24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEF1ZGlvU2Vzc2lvbik7CisgICAgZnJpZW5kIGNsYXNzIFVuaXF1ZVJlZjxBdWRp
b1Nlc3Npb24+OworICAgIGZyaWVuZCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBXVEY6Om1ha2VV
bmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPEF1ZGlvU2Vzc2lvbj4oKTsKIHB1YmxpYzoK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQXVkaW9TZXNzaW9uJiBzaGFyZWRTZXNzaW9uKCk7
CisgICAgc3RhdGljIFVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+IGNyZWF0ZSgpOworICAgIHN0YXRp
YyB2b2lkIHNldFNoYXJlZFNlc3Npb24oVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4mJik7CisgICAg
c3RhdGljIEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOworICAgIHZpcnR1YWwgfkF1ZGlv
U2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgeworICAgIGVudW0gQ2F0ZWdvcnlU
eXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAgIEFtYmllbnRTb3VuZCwKICAg
ICAgICAgU29sb0FtYmllbnRTb3VuZCwKQEAgLTU5LDIzICs2NSwyMyBAQCBwdWJsaWM6CiAgICAg
ICAgIFBsYXlBbmRSZWNvcmQsCiAgICAgICAgIEF1ZGlvUHJvY2Vzc2luZywKICAgICB9OwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJp
bmdQb2xpY3kpOwotICAgIFdFQkNPUkVfRVhQT1JUIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNv
bnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUsIFJvdXRlU2hh
cmluZ1BvbGljeSk7CisgICAgdmlydHVhbCBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdDsK
IAogICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUpOwogICAgIENhdGVn
b3J5VHlwZSBjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3Q7CiAKLSAgICBSb3V0ZVNoYXJpbmdQb2xp
Y3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7Ci0gICAgU3RyaW5nIHJvdXRpbmdDb250ZXh0
VUlEKCkgY29uc3Q7CisgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5n
UG9saWN5KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQoKSBj
b25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsKLSAg
ICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZk91dHB1dENo
YW5uZWxzKCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgc2l6ZV90
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAogICAgIGJvb2wgdHJ5VG9TZXRBY3Rp
dmUoYm9vbCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6
ZSgpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6
ZShzaXplX3QpOworICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAg
ICAgY2xhc3MgTXV0ZWRTdGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04NywxNyArOTMs
MTYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVP
YnNlcnZlciopOwogICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVP
YnNlcnZlciopOwogCi0gICAgYm9vbCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBoYW5kbGVN
dXRlZFN0YXRlQ2hhbmdlKCk7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9vbCBpc0Fj
dGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWN0
aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoK
ICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRp
b1Nlc3Npb24oKTsKLSAgICB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0
aXZlSW50ZXJuYWwoYm9vbCk7CisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJu
YWwoYm9vbCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0ZT4gbV9w
cml2YXRlOwogICAgIEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CkBA
IC0xMjAsNiArMTI1LDE5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
Um91dGVTaGFyaW5nUG9saWN5PiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGUsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUs
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZCwK
KyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3Vu
ZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFj
aywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8s
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQs
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2lu
ZworICAgID47Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgogc3RydWN0IExvZ0FyZ3Vt
ZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1N
ZWRpYVNlc3Npb24uaAppbmRleCBlMmIzOGEwMWQwYWE1YTY2ZDM3NzkxMWVkNDAxZTUyODkwNzg5
NzA4Li45MzA4NWIwZDQyN2FlYmU4NDEwZTVkMDcxOTM4YWIwNjAxNDQxYWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgK
QEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNl
c3Npb24oKTsKIAotICAgIGVudW0gY2xhc3MgTWVkaWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1l
ZGlhVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb25lID0gMCwKICAgICAgICAgVmlkZW8sCiAg
ICAgICAgIFZpZGVvQXVkaW8sCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5
cGUgbWVkaWFUeXBlKCkgY29uc3Q7CiAgICAgTWVkaWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBj
b25zdDsKIAotICAgIGVudW0gU3RhdGUgeworICAgIGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAg
ICAgICAgSWRsZSwKICAgICAgICAgQXV0b3BsYXlpbmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC04
MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhdGU7IH0KICAgICB2b2lkIHNldFN0YXRlKFN0YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0
aW9uVHlwZSB7CisgICAgZW51bSBJbnRlcnJ1cHRpb25UeXBlIDogdWludDhfdCB7CiAgICAgICAg
IE5vSW50ZXJydXB0aW9uLAogICAgICAgICBTeXN0ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdC
YWNrZ3JvdW5kLApAQCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1
cHRpb25UeXBlIGludGVycnVwdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlv
blR5cGU7IH0KIAotICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5k
SW50ZXJydXB0aW9uRmxhZ3MgOiB1aW50OF90IHsKICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAg
ICAgIE1heVJlc3VtZVBsYXlpbmcgPSAxIDw8IDAsCiAgICAgfTsKQEAgLTExOCw3ICsxMTgsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGRvdWJsZSBhc0RvdWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRB
cmd1bWVudDsKIAotICAgIGVudW0gUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVt
IFJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQs
CiAgICAgICAgIFBsYXlDb21tYW5kLAogICAgICAgICBQYXVzZUNvbW1hbmQsCkBAIC0xMzQsNyAr
MTM0LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5k
KFJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSwgY29uc3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBh
cmd1bWVudCA9IG51bGxwdHIpOwogICAgIGJvb2wgc3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAK
LSAgICBlbnVtIERpc3BsYXlUeXBlIHsKKyAgICBlbnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7
CiAgICAgICAgIE5vcm1hbCwKICAgICAgICAgRnVsbHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVk
LApAQCAtMjk3LDQgKzI5Nyw2NCBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZT4gewogICAgIH0KIH07CiAK
K3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpNZWRpYVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6VmlkZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6VmlkZW9BdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpXZWJBdWRpbworICAgID47Cit9OworCit0ZW1wbGF0ZSA8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6U3RhdGUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlN0YXRlOjpJZGxlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6
QXV0b3BsYXlpbmcsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQ
bGF5aW5nLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2Vk
LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQK
KyAgICA+OworfTsKKwordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJy
dXB0aW9uVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0
aW9uVHlwZTo6Tm9JbnRlcnJ1cHRpb24sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Np
b246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbVNsZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAg
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUlu
dGVycnVwdGlvbiwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0
aW9uVHlwZTo6U3VzcGVuZGVkVW5kZXJMb2NrLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpJbnZpc2libGVBdXRvcGxheSwKKyAgICBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZl
LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQ
bGF5YmFja1N1c3BlbmRlZAorICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1l
UGxheWluZworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7Cisg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAg
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6
UGxheUNvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNv
bnRyb2xDb21tYW5kVHlwZTo6UGF1c2VDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRv
Z2dsZVBsYXlQYXVzZUNvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAor
ICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5
cGU6OkVuZFNlZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENv
bW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZTo6RW5kU2Vla2luZ0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNr
UG9zaXRpb25Db21tYW5kCisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0K
aW5kZXggZDZjMDA3ZjQwYjVmYjc2MzcyMmQ1MzhhZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGEx
ZDBhYTYzODljM2RmODkzNjcxMGEzNTg5YTQ0NTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQz
LDE1IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBi
dWZmZXJTaXplKQogICAgIEFTU0VSVCghZXJyb3IpOwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6
aXNNdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vz
c2lvbjo6aGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVT
RShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDlmOTQ2Zjg0OTdhZjIzYjRh
ZmE1MWI3OTE4NDE4NTE4ODYwYWM1YjkuLmQ3NDliMmRiMDliOTY3NDZmNGEwZjFlMzRjMjE3NDJl
ZGY1M2U0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTE4LDYgKzE4LDggQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9j
ZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Q
cm94eS5tZXNzYWdlcy5pbgpAQCAtMTE2LDYgKzExOCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24u
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYTk2YzJjZmRkZDQ2
YjM1OTIzOGU5NjIzNDNhOTkyMjEwNGVlYTU5Yi4uOTk1MDM1MTJiYTU1OGIyYjQxMDA4ZjViMTY2
NTA0NjBhOTU0MTQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC0xMzcsNiArMTM3LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1Jl
cGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNz
aW9uTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBs
aWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0NWVlM2RiN2VkN2UxMzM3MmM4
YTc1YWQ1NTVhMTY1ODdmNjdkMDhhLi4xYzNkMWEyMGVlYTNiNzM4MDAxMDJlMWQzMTk4Mzc5MDNh
YTZjZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNDgsNiArMTQ4LDggQEAg
TUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUGx1Z2luUHJveHkgXAogICAgIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyIFwKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAor
ICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbiBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXAog
ICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGIwZTc4Yzc4N2ZhNTdlZDBkZTkzNDBm
MTk3YjVkNmUyMzQ1ZTdjOTIuLmNiNTc5MjhlY2YyZTI5Y2FiOWQzNmU0ZDBhZGE4MGI5NzJlY2Zh
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKQEAgLTc2LDYgKzc2LDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RN
UHJveHlNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVT
RShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisj
aW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMzMsNiArMTM4LDEwIEBAIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKIAogdm9p
ZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQog
eworICAgIGlmIChtX2F1ZGlvU2Vzc2lvblByb3h5KSB7CisgICAgICAgIGdwdVByb2Nlc3MoKS5h
dWRpb1Nlc3Npb25NYW5hZ2VyKCkucmVtb3ZlUHJveHkod2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7
CisgICAgICAgIG1fYXVkaW9TZXNzaW9uUHJveHkgPSBudWxscHRyOworICAgIH0KIH0KIAogTG9n
Z2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dnZXIoKQpAQCAtMjMxLDYgKzI0MCwx
NyBAQCBSZW1vdGVDRE1GYWN0b3J5UHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNk
bUZhY3RvcnlQcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
VVNFKEFVRElPX1NFU1NJT04pCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJveHkoKQoreworICAgIGlmICghbV9hdWRpb1Nl
c3Npb25Qcm94eSkgeworICAgICAgICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OmNyZWF0ZSgqdGhpcykubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGdw
dVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2VyKCkuYWRkUHJveHkobWFrZVdlYWtQdHIobV9h
dWRpb1Nlc3Npb25Qcm94eS5nZXQoKSkpOworICAgIH0KKyAgICByZXR1cm4gKm1fYXVkaW9TZXNz
aW9uUHJveHk7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
cmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHlNYXAuZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBb
Jl0oKSB7CkBAIC0yNTcsNiArMjc3LDEzIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6c2V0Tm93UGxheWluZ0luZm8oYm9vbCBzZXRBc05vd1BsYXlpbmdBcHBsaWNhdGlvCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCit2
b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1cmVB
dWRpb1Nlc3Npb25Db21wbGV0aW9uJiYgY29tcGxldGlvbikKK3sKKyAgICBjb21wbGV0aW9uKGF1
ZGlvU2Vzc2lvblByb3h5KCkuY29uZmlndXJhdGlvbigpKTsKK30KKyNlbmRpZgorCiBib29sIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKQEAgLTMzNCw2ICszNjEsMTIgQEAgYm9v
bCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEMKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogI2VuZGlm
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgYXVkaW9TZXNzaW9u
UHJveHkoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCiAKICAgICByZXR1cm4gbWVzc2FnZVJlY2VpdmVy
TWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQpAQCAtMzgxLDYg
KzQxNCwxMiBAQCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAg
ICBhdWRpb1Nlc3Npb25Qcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5k
aWYKIAogICAgIHJldHVybiBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAxODIy
NmE3YzM0OTkxOGFjYmJjNDViZmY1NGFmNmE3YmJmYzcwMWMzLi5iMDA3MWNjNjUyNjZmZTdhOTJh
YmMwNGYzYmZkOGM1YTQyM2Q2ODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCisjaW5jbHVkZSAiUmVt
b3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgpAQCAtNDgsMTIgKzQ5LDE1IEBA
IGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eTsKIGNsYXNzIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNYW5hZ2VyOworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7Citj
bGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVDRE1GYWN0
b3J5UHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXI7CiBjbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3Mg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKK3N0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uOwogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBw
dWJsaWMgUmVmQ291bnRlZDxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPgpAQCAtODgsMTEgKzky
LDE1IEBAIHB1YmxpYzoKICAgICBSZW1vdGVDRE1GYWN0b3J5UHJveHkmIGNkbUZhY3RvcnlQcm94
eSgpOwogI2VuZGlmCiAKKyAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVT
RShBVURJT19TRVNTSU9OKQorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVk
aW9TZXNzaW9uTWFuYWdlcigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXImIHJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7
Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5KCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAg
TGliV2ViUlRDQ29kZWNzUHJveHkmIGxpYldlYlJUQ0NvZGVjc1Byb3h5KCk7CiAjZW5kaWYKQEAg
LTEwNCw2ICsxMTIsMTEgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAjZW5kaWYK
ICNlbmRpZgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgYXVkaW9TZXNzaW9uUHJveHkoKTsKKyNlbmRp
ZgorCiAgICAgdm9pZCBjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKTsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTExMSw2ICsxMjQsMTEgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNldE5vd1BsYXlpbmdJbmZvKGJvb2wgc2V0QXNOb3dQbGF5aW5n
QXBwbGljYXRpb24sIGNvbnN0IFdlYkNvcmU6Ok5vd1BsYXlpbmdJbmZvJik7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgdXNpbmcg
RW5zdXJlQXVkaW9TZXNzaW9uQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYpPjsKKyAgICB2b2lkIGVuc3VyZUF1
ZGlvU2Vzc2lvbihFbnN1cmVBdWRpb1Nlc3Npb25Db21wbGV0aW9uJiYpOworI2VuZGlmCisKICAg
ICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25u
ZWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIGZpbmFsOwpAQCAtMTQ5LDYgKzE2Nyw5IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlQ0RNRmFjdG9yeVByb3h5PiBtX2NkbUZhY3RvcnlQcm94eTsKICNlbmRpZgorI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBtX2F1ZGlvU2Vzc2lvblByb3h5OworI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggOGQ5MWNlMmJjZGJkYWVjZmMyNTcxMDNjZGFjZTY5NjU0Y2M0OGQzOS4uNWFiNDE3
MmVkMzE0N2YyNmE5MDM3ZGJjOTg4NWE5N2YxZTgwOWNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTI5LDYgKzI5LDcgQEAgbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyBXYW50c0Rpc3BhdGNoTWVzc2FnZSB7CiAgICAgdm9pZCBDbGVhck5vd1BsYXlpbmdJ
bmZvKCk7CiAgICAgdm9pZCBTZXROb3dQbGF5aW5nSW5mbyhib29sIHNldEFzTm93UGxheWluZ0Fw
cGxpY2F0aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6Tm93UGxheWluZ0luZm8gbm93UGxheWluZ0luZm8p
OwogI2VuZGlmCisgICAgRW5zdXJlQXVkaW9TZXNzaW9uKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikgU3luY2hyb25vdXMK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLmNwcAppbmRleCAwZTdiZDA5YmVhNWQxMjNhNDA3ZWNmYjlkMzlmNzI0MGY1
YjNjN2I5Li41ZjI4OTQ0Yjc0MzIzODI2NzFlOGJiZmE1OTIxNmUzNjc5OTJmOWVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC01MSw2ICs1MSwxMCBAQAogI2lu
Y2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+
CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1
ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oIgorI2VuZGlmCisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTIxMiw2ICsyMTYsMTUg
QEAgY29uc3QgU3RyaW5nJiBHUFVQcm9jZXNzOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY28KIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlciYgR1BVUHJvY2Vzczo6YXVkaW9TZXNzaW9uTWFuYWdlcigpIGNvbnN0Cit7CisgICAgaWYg
KCFtX2F1ZGlvU2Vzc2lvbk1hbmFnZXIpCisgICAgICAgIG1fYXVkaW9TZXNzaW9uTWFuYWdlciA9
IFdURjo6bWFrZVVuaXF1ZTxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI+KCk7CisgICAg
cmV0dXJuICptX2F1ZGlvU2Vzc2lvbk1hbmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MuaAppbmRleCA2ZmEwMjAxNGI5NDc4MWVhOTllMDM1ZGIzYWQ3OWQ2
NWEyNGYyODdiLi40M2FhZTFhMTJiNWI4ODViMjZjNTZkZGYxNTI5NjBmMDIyN2M1MjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3Mg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIHN0cnVjdCBHUFVQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOwogc3RydWN0IEdQVVByb2Nlc3NTZXNzaW9uUGFyYW1ldGVyczsKIGNsYXNzIExheWVy
SG9zdGluZ0NvbnRleHQ7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CiAK
IGNsYXNzIEdQVVByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcywgcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPEdQVVByb2Nlc3M+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVUHJv
Y2Vzcz4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdQVVByb2Nlc3MpOwpAQCAtNjMsNiAr
NjQsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgbWVkaWFLZXlzU3RvcmFnZURpcmVj
dG9yeShQQUw6OlNlc3Npb25JRCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICB2b2lkIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwpOwogCkBAIC0xMDMsNiArMTA4LDkg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gbV9j
b250ZXh0Rm9yVmlzaWJpbGl0eVByb3BhZ2F0aW9uOwogICAgIGJvb2wgbV9jYW5TaG93V2hpbGVM
b2NrZWQgeyBmYWxzZSB9OwogI2VuZGlmCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0Uo
QVVESU9fU0VTU0lPTikKKyAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXI+IG1fYXVkaW9TZXNzaW9uTWFuYWdlcjsKKyNlbmRpZgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWZj
NDlkZTg5ZGUxYWNlNDZhYzE2N2Y4NTg0NjgwMzM2NTJkYzkwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNw
cApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lv
bk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgi
CisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGdwdUNvbm5lY3Rpb24pCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk+KGdwdUNvbm5lY3Rpb24pOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eTo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1
Q29ubmVjdGlvbikKKyAgICA6IG1fZ3B1Q29ubmVjdGlvbihncHVDb25uZWN0aW9uKQoreworfQor
CitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6flJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KCkgPSBk
ZWZhdWx0OworCitXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eTo6cHJvY2Vzc0lkZW50aWZpZXIoKQoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb24u
d2ViUHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29uZmlndXJhdGlvbigpCit7CisgICAgYXV0
byYgc2Vzc2lvbiA9IGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXNzaW9uKCk7CisgICAgcmV0dXJu
IHsKKyAgICAgICAgc2Vzc2lvbi5jYXRlZ29yeSgpLAorICAgICAgICBzZXNzaW9uLnJvdXRlU2hh
cmluZ1BvbGljeSgpLAorICAgICAgICBzZXNzaW9uLnJvdXRpbmdDb250ZXh0VUlEKCksCisgICAg
ICAgIHNlc3Npb24uc2FtcGxlUmF0ZSgpLAorICAgICAgICBzZXNzaW9uLmJ1ZmZlclNpemUoKSwK
KyAgICAgICAgc2Vzc2lvbi5udW1iZXJPZk91dHB1dENoYW5uZWxzKCksCisgICAgICAgIHNlc3Np
b24ucHJlZmVycmVkQnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNzaW9uLmlzTXV0ZWQoKSwKKyAg
ICAgICAgbV9hY3RpdmUKKyAgICB9OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
OjpzZXRDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29y
eSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBtX2NhdGVnb3J5
ID0gY2F0ZWdvcnk7CisgICAgbV9yb3V0ZVNoYXJpbmdQb2xpY3kgPSBwb2xpY3k7CisgICAgYXVk
aW9TZXNzaW9uTWFuYWdlcigpLnNldENhdGVnb3J5Rm9yUHJvY2VzcyhtX2dwdUNvbm5lY3Rpb24u
d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgY2F0ZWdvcnksIHBvbGljeSk7Cit9CisKK3ZvaWQgUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUodWludDY0X3Qgc2l6
ZSkKK3sKKyAgICBtX3ByZWZlcnJlZEJ1ZmZlclNpemUgPSBzaXplOworICAgIGF1ZGlvU2Vzc2lv
bk1hbmFnZXIoKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2VzcyhtX2dwdUNvbm5lY3Rp
b24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlLCBTZXRBY3RpdmVDb21wbGV0
aW9uJiYgY29tcGxldGlvbikKK3sKKyAgICBtX2FjdGl2ZSA9IGF1ZGlvU2Vzc2lvbk1hbmFnZXIo
KS50cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVu
dGlmaWVyKCksIGFjdGl2ZSk7CisgICAgY29tcGxldGlvbihtX2FjdGl2ZSk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCit7CisgICAgY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6QmVnaW5JbnRlcnJ1cHRpb24o
dHlwZSksIHsgfSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmVuZEludGVy
cnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxh
Z3MgZmxhZ3MpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
U2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uKGZsYWdzKSwgeyB9KTsKK30KKworUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyJiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YXVkaW9TZXNzaW9u
TWFuYWdlcigpCit7CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi5ncHVQcm9jZXNzKCkuYXVk
aW9TZXNzaW9uTWFuYWdlcigpOworfQorCitJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gbV9ncHVDb25uZWN0aW9uLmNv
bm5lY3Rpb24oKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWNkMmM2YzM3YzE3OTY0ZTBiYzhkZmE3MjEzNjQ5OTIxZDg0OTNjMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eS5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRp
Zmllci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xh
c3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkK
KyAgICA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgICwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFsIH5S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSgpOworCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIgcHJvY2Vzc0lkZW50aWZpZXIoKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb24oKTsKKworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIGNhdGVnb3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsgfTsKKyAgICBXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QgeyByZXR1
cm4gbV9yb3V0ZVNoYXJpbmdQb2xpY3k7IH0KKyAgICBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZmVycmVkQnVmZmVyU2l6ZTsgfQorICAgIGJvb2wgaXNB
Y3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZTsgfQorCisgICAgdm9pZCBiZWdpbkludGVy
cnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSk7
CisgICAgdm9pZCBlbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OkVuZEludGVycnVwdGlvbkZsYWdzKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+
IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk+KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisKKyAgICAvLyBNZXNzYWdl
cworICAgIHZvaWQgc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdm9pZCBzZXRQcmVmZXJyZWRC
dWZmZXJTaXplKHVpbnQ2NF90KTsKKyAgICB1c2luZyBTZXRBY3RpdmVDb21wbGV0aW9uID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT47CisgICAgdm9pZCB0cnlUb1NldEFjdGl2ZShib29s
LCBTZXRBY3RpdmVDb21wbGV0aW9uJiYpOworCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCk7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCk7CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rp
b247CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeTsK
KyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgbV9yb3V0ZVNoYXJpbmdQb2xpY3k7Cisg
ICAgc2l6ZV90IG1fcHJlZmVycmVkQnVmZmVyU2l6ZSB7IDAgfTsKKyAgICBib29sIG1fYWN0aXZl
IHsgZmFsc2UgfTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdmM2JhZTgyNDNmYWE1NDU1MmJiZmYwNGQ5YTZlYjg1MmI2
MDYyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisK
K21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5IE5vdFJlZkNvdW50ZWQgeworICAg
IFNldENhdGVnb3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSB0eXBlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGlj
eSkKKyAgICBTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHVpbnQ2NF90IHByZWZlcnJlZEJ1ZmZlclNp
emUpCisgICAgVHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpIC0+IChib29sIHN1Y2VlZGVkKSBT
eW5jaHJvbm91cworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjE2YjRlZjIxMWYyYTM4MzA3MDU0YzUxMjYxYjcxNjFmYzdkMDhkYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KworI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgYm9v
bCBjYXRlZ29yeUNhbk1peFdpdGhPdGhlcnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0
ZWdvcnkpCit7CisgICAgcmV0dXJuIGNhdGVnb3J5ID09IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNv
dW5kOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlcigpCisgICAgOiBtX3Nlc3Npb24oQXVkaW9TZXNzaW9uOjpjcmVhdGUo
KSkKK3sKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp+UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyKCkgPSBkZWZhdWx0OworCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlcjo6YWRkUHJveHkoV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4m
JiBwcm94eSkKK3sKKyAgICBhdXRvIGlkID0gcHJveHktPnByb2Nlc3NJZGVudGlmaWVyKCk7Cisg
ICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3Byb3hpZXMuc2V0KGlk
LCBXVEZNb3ZlKHByb3h5KSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyOjpyZW1vdmVQcm94eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7CisgICAgQVNT
RVJUKG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIG1fcHJveGllcy5yZW1vdmUoaWQpOwor
fQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyOjpnZXRQcm94eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7CisgICAgYXV0byBy
ZXN1bHRzID0gbV9wcm94aWVzLmZpbmQoaWQpOworICAgIGlmIChyZXN1bHRzICE9IG1fcHJveGll
cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdHMtPnZhbHVlLmdldCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0
Q2F0ZWdvcnlGb3JQcm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7
CisgICAgQVNTRVJUKG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIGF1dG8gcHJveHkgPSBn
ZXRQcm94eShpZCk7CisgICAgaWYgKCFwcm94eSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KHByb3h5LT5jYXRlZ29yeSgpID09IGNhdGVnb3J5ICYmIHByb3h5LT5yb3V0ZVNoYXJpbmdQb2xp
Y3koKSA9PSBwb2xpY3kpCisgICAgICAgIHJldHVybjsKKworICAgIEhhc2hDb3VudGVkU2V0PEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXVEY6OkludEhhc2g8QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGU+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlPj4gY2F0ZWdvcnlDb3VudHM7CisgICAgSGFzaENvdW50ZWRTZXQ8Um91dGVTaGFyaW5n
UG9saWN5LCBXVEY6OkludEhhc2g8Um91dGVTaGFyaW5nUG9saWN5PiwgV1RGOjpTdHJvbmdFbnVt
SGFzaFRyYWl0czxSb3V0ZVNoYXJpbmdQb2xpY3k+PiBwb2xpY3lDb3VudHM7CisgICAgZm9yIChh
dXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAgICAgIGNhdGVnb3J5
Q291bnRzLmFkZChvdGhlclByb3h5LT5jYXRlZ29yeSgpKTsKKyAgICAgICAgcG9saWN5Q291bnRz
LmFkZChvdGhlclByb3h5LT5yb3V0ZVNoYXJpbmdQb2xpY3koKSk7CisgICAgfQorCisgICAgaWYg
KGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCkpCisg
ICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOworICAgIGVsc2Ug
aWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW8pKQor
ICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW87CisgICAgZWxzZSBp
ZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrKSkK
KyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7CisgICAgZWxz
ZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpTb2xvQW1iaWVudFNv
dW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQ7
CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpBbWJp
ZW50U291bmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5k
OworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6QXVk
aW9Qcm9jZXNzaW5nKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkF1ZGlvUHJv
Y2Vzc2luZzsKKyAgICBlbHNlCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpOb25l
OworCisgICAgaWYgKHBvbGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6Okxv
bmdGb3JtVmlkZW8pKQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdG
b3JtVmlkZW87CisgICAgZWxzZSBpZiAocG9saWN5Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmlu
Z1BvbGljeTo6TG9uZ0Zvcm1BdWRpbykpCisgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1Bv
bGljeTo6TG9uZ0Zvcm1BdWRpbzsKKyAgICBlbHNlIGlmIChwb2xpY3lDb3VudHMuY29udGFpbnMo
Um91dGVTaGFyaW5nUG9saWN5OjpJbmRlcGVuZGVudCkpCisgICAgICAgIHBvbGljeSA9IFJvdXRl
U2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQ7CisgICAgZWxzZQorICAgICAgICBwb2xpY3kgPSBS
b3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQ7CisKKyAgICBtX3Nlc3Npb24tPnNldENhdGVnb3J5
KGNhdGVnb3J5LCBwb2xpY3kpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlcjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50
aWZpZXImIGlkLCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSkKK3sKKyAgICBmb3IgKGF1dG8m
IG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclBy
b3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhlclByb3h5LT5wcmVm
ZXJyZWRCdWZmZXJTaXplKCkgPCBwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcHJl
ZmVycmVkQnVmZmVyU2l6ZSA9IG90aGVyUHJveHktPnByZWZlcnJlZEJ1ZmZlclNpemUoKTsKKyAg
ICB9CisKKyAgICBtX3Nlc3Npb24tPnNldFByZWZlcnJlZEJ1ZmZlclNpemUocHJlZmVycmVkQnVm
ZmVyU2l6ZSk7Cit9CisKK2Jvb2wgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlU
b1NldEFjdGl2ZUZvclByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlkLCBib29sIGFj
dGl2ZSkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7CisgICAgYXV0byBw
cm94eSA9IGdldFByb3h5KGlkKTsKKyAgICBpZiAoIXByb3h5KQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBzaXplX3QgYWN0aXZlUHJveHlDb3VudCB7IDAgfTsKKyAgICBmb3IgKGF1dG8m
IG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclBy
b3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhlclByb3h5LT5pc0Fj
dGl2ZSgpKQorICAgICAgICAgICAgKythY3RpdmVQcm94eUNvdW50OworICAgIH0KKworICAgIGlm
ICghYWN0aXZlICYmIGFjdGl2ZVByb3h5Q291bnQgPiAxKSB7CisgICAgICAgIC8vIFRoaXMgcHJv
eHkgd2FudHMgdG8gZGUtYWN0aXZhdGUsIGJ1dCBvdGhlciBwcm94aWVzIGFyZSBzdGlsbAorICAg
ICAgICAvLyBhY3RpdmUuIE5vLW9wLCBhbmQgcmV0dXJuIGRlYWN0aXZhdGlvbiB3YXMgc3VjZXNz
ZnVsLgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIWFjdGl2ZSkgewor
ICAgICAgICAvLyBUaGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBhbmQgaXMgdGhlIGxh
c3QgcmVtYWluaW5nIGFjdGl2ZQorICAgICAgICAvLyBwcm94eS4gRGVhY3RpdmF0ZSB0aGUgc2Vz
c2lvbiwgYW5kIHJldHVybiB3aGV0aGVyIHRoYXQgZGVhY3RpdmF0aW9uCisgICAgICAgIC8vIHdh
cyBzdWNlc3NmdWw7CisgICAgICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGZh
bHNlKTsKKyAgICB9CisKKyAgICBpZiAoYWN0aXZlICYmICFhY3RpdmVQcm94eUNvdW50KSB7Cisg
ICAgICAgIC8vIFRoaXMgcHJveHkgYW5kIG9ubHkgdGhpcyBwcm94eSB3YW50cyB0byBiZWNvbWUg
YWN0aXZlLiBBY3RpdmF0ZQorICAgICAgICAvLyB0aGUgc2Vzc2lvbiwgYW5kIHJldHVybiB3aGV0
aGVyIHRoYXQgYWN0aXZhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIG1fc2Vz
c2lvbi0+dHJ5VG9TZXRBY3RpdmUoYWN0aXZlKTsKKyAgICB9CisKKyAgICAvLyBJZiB0aGlzIHBy
b3h5IGlzIEFtYmllbnQsIGFuZCB0aGUgc2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZSwgdGhpcwor
ICAgIC8vIHByb3h5IHdpbGwgbWl4IHdpdGggdGhlIGFjdGl2ZSBwcm94aWVzLiBOby1vcCwgYW5k
IHJldHVybiBhY3RpdmF0aW9uCisgICAgLy8gd2FzIHN1Y2Vzc2Z1bC4KKyAgICBpZiAoY2F0ZWdv
cnlDYW5NaXhXaXRoT3RoZXJzKHByb3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIE90aGVyd2lzZSwgdGhpcyBw
cm94eSB3YW50cyB0byBiZWNvbWUgYWN0aXZlLCBidXQgdGhlcmUgYXJlIG90aGVyCisgICAgLy8g
cHJveGllcyB3aG8gYXJlIGFscmVhZHkgYWN0aXZlLiBXYWxrIG92ZXIgdGhlIHByb3hpZXMsIGFu
ZCBpbnRlcnJ1cHQKKyAgICAvLyB0aG9zZSBwcm94aWVzIHdob3NlIGNhdGVvZ3JpZXMgaW5kaWNh
dGUgdGhleSBjYW5ub3QgbWl4IHdpdGggb3RoZXJzLgorICAgIGZvciAoYXV0byYgb3RoZXJQcm94
eSA6IG1fcHJveGllcy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoIW90aGVyUHJveHkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5LT5pc0FjdGl2ZSgpKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGNhdGVnb3J5Q2FuTWl4V2l0aE90
aGVycyhvdGhlclByb3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgIG90aGVyUHJveHktPmJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpJbnRlcnJ1cHRpb25UeXBlOjpTeXN0ZW1JbnRlcnJ1cHRpb24pOworICAgIH0KKyNlbmRpZgor
CisgICAgcmV0dXJuIHRydWU7CisKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDA0NTU3MTJmNWE4NjAxOTk5MzIzNzU3M2UzOWMyODRj
OGY2YzIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFV
RElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKTsKKyAgICB+UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGFkZFByb3h5KFdlYWtQdHI8UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk+JiYpOworICAgIHZvaWQgcmVtb3ZlUHJveHkoY29uc3QgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSog
Z2V0UHJveHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKKworICAgIHZvaWQg
c2V0Q2F0ZWdvcnlGb3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJiwg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmlu
Z1BvbGljeSk7CisgICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2Vzcyhjb25z
dCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIHNpemVfdCk7CisKKyAgICBib29sIHRyeVRv
U2V0QWN0aXZlRm9yUHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIGJv
b2wpOworCisgICAgY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uJiBzZXNzaW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uOyB9CisKK3ByaXZhdGU6CisgICAgVW5pcXVlUmVmPFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+PiBtX3Byb3hpZXM7Cit9
OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRiM2RlYzdjZDM5ZDAxMDJiODVmMGY5NWRmNGU0MzBmOWFl
MTNmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cmlu
ZGV4IDI1NmRjOTkwNWJmNDQ2NmQwYzJhZDU3NGQ4YzM2OGExNGJlNjk2M2EuLjRiYTE0ZGJhZjI0
YjI0MWU1OWRiMGE3ZjIwODBkMDJkMDI3YzNiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQpAQCAtMjM0LDYgKzIzNCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5v
dF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyJywKKyAgICAgICAgJ1dlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpS
ZW1vdGVDRE1JbnN0YW5jZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb25JZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA0MzZiYzI2MzRmMTBkZDAzYmQ5
MWYyNTJmOTdjMjY4N2YwNWY3OWI1Li4yNTJjOGZhZGFmZTFlYmEwMzkzNmY5YTkyY2RiZWViZGY5
NDI1ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCkBAIC0xMjQsNiArMTI0LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtZW1vcnlDYWNoZURpc2FibGVkIHsgZmFsc2UgfTsKICAgICBib29s
IGF0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1l
ZGlhIHsgZmFsc2UgfTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGJvb2wg
aGFzSW1hZ2VTZXJ2aWNlcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAwZmJhNTQ5OGFkZGVl
MDNjZThiOTU3ZDI4NWRjNDFkMTQ4N2M4NmRiLi5kYmUzZTg0ZmQ4MTU1NTllMzYxNDg5Yjc3OTAw
MjMzMmJmYmZkNGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI2LDYgKzI2LDggQEAgR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5jcHAKK0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkuY3BwCitHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5j
cHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUNETUluc3RhbmNlUHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggOTI2OWIwYTNi
YWY1OTRmMzNjZGVkOWY1NGJlN2Y5MmZlZDBiNGU4OS4uZWQ5ZjQ0YmI5ZjIyZTNjMjRmMWQyZDk4
MDU4MzIxYTgxMGY3OWQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjU2LDYgKzY1Niw4
IEBAIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogTGliV2ViUlRDQ29k
ZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwCitSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGU4OWRlNjk4OTQ3NGJmODkxYjI2MTE2MTE2YzFkYjBkNmFm
OTlkMDQuLjYyMWZiMWM5ZWUwOTMyZDUyYjRmMWQ1MmQyYjViMGYzZTMwNjM3NjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc0NSw2
ICsxNzQ1LDcgQEAKIAkJQ0RBQzIwRjgyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETUluc3Rh
bmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RBQzIwRjUyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUlu
c3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDREFDMjBGOTIzRkM3MjZD
MDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQzIw
RUMyM0ZDMzgzODAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0RBQzIwRkEyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90
ZUNETVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEVGMjNGQzM4MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUNEQkI0OUZEMjQwRDlBNzIwMDE3QzI5
MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIgLyog
UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovOyB9OwogCQlDREMyODMxRDIwMUJE
NzlEMDBFNkU3NDUgLyogV0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMyODMxQjIwMUJENzlEMDBFNkU3NDUgLyog
V0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggKi87IH07CiAJCUNEQ0E4NUM5MTMyQUJBNEUwMEU5NjFE
RiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICovOyB9OwogCQlDRTExQUQ1MjFDQkM0ODJGMDA2
ODFFRTUgLyogQ29kZVNpZ25pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENFMTFBRDUxMUNCQzQ4MkYwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5oICov
OyB9OwpAQCAtNTEwMyw2ICs1MTA0LDE1IEBACiAJCUNEQUMyMEY0MjNGQzM4M0EwMDIxREVFMyAv
KiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZUNETVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RBQzIwRjUyM0ZDMzgzQjAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlQ0RNSW5zdGFuY2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQUMyMEY2MjNGQzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5j
ZVByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZUNETUluc3RhbmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjQyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjUyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlv
U2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGNjI0MEQ4Qzk1MDAxN0MyOTIgLyog
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjcyNDBEOEM5
NTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RCQjQ5RjgyNDBEOEQ1MzAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGOTI0MEQ5NjNDMDAxN0MyOTIgLyog
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
REJCNDlGQTI0MEQ5NjNEMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUZCMjQwRDk3NEEwMDE3QzI5
MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREMyODMxQjIwMUJENzlEMDBFNkU3NDUgLyog
V0tGdWxsc2NyZWVuU3RhY2tWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRnVsbHNjcmVlblN0YWNr
Vmlldy5oOyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzI4MzFDMjAxQkQ3OUQwMEU2RTc0NSAvKiBX
S0Z1bGxzY3JlZW5TdGFja1ZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0Z1bGxzY3Jl
ZW5TdGFja1ZpZXcubW07IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9XS0Z1bGxzY3JlZW5TdGFja1Zp
ZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzM4MkY3MTcyMTE1MDYwMDhB
MkZDMyAvKiBDRk5ldHdvcmsuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDRk5ldHdvcmsu
ZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ0ZOZXR3b3JrLmZy
YW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKQEAgLTUxMTAsNiArNTEyMCwx
NyBAQAogCQlDRENBODVDNjEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEQ0E4NUM3MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1RDQxMzJBQzJC
MzAwRTk2MURGIC8qIElPS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gSU9LaXQuZnJh
bWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3b3Jr
OyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQlDREQ1MzU2RjI0MEREMzQzMDBGN0I4
QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vz
c2lvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzAy
NDBERDRFRjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcxMjQwRERFMDYwMEY3QjhDNCAvKiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcyMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1
NzMyNDBEREUwNjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDREQ1MzU3NDI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNS
ZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGll
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3NTI0MERERTA3MDBGN0I4
QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
QXVkaW9TZXNzaW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RE
NTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3NzI0MERERTA3MDBG
N0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzgyNDBEREUwODAwRjdCOEM0IC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNERDUzNTc5MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNFMTFBRDRGMUNCQzQ3RjgwMDY4MUVFNSAvKiBDb2RlU2lnbmluZy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvZGVTaWduaW5nLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTExQUQ1MTFDQkM0ODJGMDA2ODFFRTUgLyogQ29k
ZVNpZ25pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29kZVNpZ25pbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UxQTBCQ0MxQTQ4RTZDNjAwNTRFRjc0
IC8qIEFzc2VydGlvblNlcnZpY2VzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFzc2VydGlvblNlcnZpY2VzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01Mzg5LDYgKzU0MTAsMTEgQEAKIAkJCQk5QjVCRUMyOTI0MDEwMTU4MDA3MEM2RUYgLyogUmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCAqLywKIAkJCQk5QjVCRUMyODI0MDEwMTU4MDA3
MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggKi8sCiAJCQkJOUI1QkVDMkUy
NDAxMDE4QzAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5p
biAqLywKKwkJCQlDREJCNDlGNTI0MEQ4QUM2MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9u
LmNwcCAqLywKKwkJCQlDREJCNDlGNDI0MEQ4QUM2MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNz
aW9uLmggKi8sCisJCQkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvbi5tZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlGQzI0MEQ5QTcyMDAxN0MyOTIgLyogUmVt
b3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovLAorCQkJCUNEQkI0OUZCMjQwRDk3NEEw
MDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmggKi8sCiAJCQkJQ0RBQzIw
QkYyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETS5jcHAgKi8sCiAJCQkJQ0RBQzIwQkEyM0ZD
MkY3NDAwMjFERUUzIC8qIFJlbW90ZUNETS5oICovLAogCQkJCUNEQUMyMEI4MjNGQzJGNzMwMDIx
REVFMyAvKiBSZW1vdGVDRE1Db25maWd1cmF0aW9uLmggKi8sCkBAIC01NDMxLDYgKzU0NTcsMTIg
QEAKIAkJCQk5QjEyMjlDQzIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bk1hbmFnZXIuY3BwICovLAogCQkJCTlCMTIyOUNCMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oICovLAogCQkJCTlCMTIyOUNGMjNGRjI4MTQwMDhDQTc1
MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCQlD
REJCNDlGNzI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwICov
LAorCQkJCUNEQkI0OUY2MjQwRDhDOTUwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eS5oICovLAorCQkJCUNEQkI0OUY4MjQwRDhENTMwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQlDREJCNDlGQTI0MEQ5NjNEMDAxN0MyOTIgLyog
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcCAqLywKKwkJCQlDREJCNDlGOTI0MEQ5
NjNDMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmggKi8sCisJCQkJ
Q0RENTM1NzAyNDBERDRFRjAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdl
ci5tZXNzYWdlcy5pbiAqLywKIAkJCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3Rl
QXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJCQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0MgLyog
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8sCiAJCQkJQ0RBQzIwNzkyM0ZCMUUyMTAwMjFERUUz
IC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eS5jcHAgKi8sCkBAIC05ODUwLDYgKzk4ODIsMTUgQEAK
IAkJCQkxQTA0M0I1QzEyNEQ1RTlEMDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCAqLywKIAkJCQkxQThFRkE2RTEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBOEVGQTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVn
aW5Qcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJQ0RENTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJQ0RENTM1NzUyNDBE
REUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmggKi8sCisJCQkJQ0RE
NTM1NzQyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGll
cy5oICovLAorCQkJCUNERDUzNTczMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTc4MjQwRERF
MDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oICov
LAorCQkJCUNERDUzNTc5MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4
QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJ
CUNERDUzNTcyMjQwRERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3Nh
Z2VzLmggKi8sCisJCQkJQ0RENTM1NzcyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJQ0RBQzIwRjIyM0ZDMzgzQTAwMjFE
RUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
Q0RBQzIwRjMyM0ZDMzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQcm94eU1lc3NhZ2Vz
LmggKi8sCiAJCQkJQ0RBQzIwRUUyM0ZDMzgzOTAwMjFERUUzIC8qIFJlbW90ZUNETUZhY3RvcnlQ
cm94eU1lc3NhZ2VzUmVwbGllcy5oICovLApAQCAtMTA3NzMsNiArMTA4MTQsNyBAQAogCQkJCTlC
MTIyOUQyMjNGRjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmll
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUIxMjI5Q0QyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjVCRUMyQTI0
MDEwMTU4MDA3MEM2RUYgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDREJCNDlGRDI0MEQ5QTcyMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9u
Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzcyM0ZDMkY3NTAwMjFE
RUUzIC8qIFJlbW90ZUNETS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzUyM0ZDMkY3NTAw
MjFERUUzIC8qIFJlbW90ZUNETUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
QUMyMENEMjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5LmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlQXVkaW9TZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmU1Y2VjOGVhMWI2ODdkNWJkZDcxN2Rj
ZGMzMzFjNDYxYWRkNTUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNz
aW9uLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQor
CisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiR1BVUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
VW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4gUmVtb3RlQXVkaW9TZXNzaW9uOjpjcmVhdGUo
V2ViUHJvY2VzcyYgcHJvY2VzcykKK3sKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb247CisgICAgcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6RW5zdXJlQXVkaW9TZXNzaW9uKCksIE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpFbnN1cmVBdWRpb1Nlc3Npb246OlJlcGx5KGNvbmZpZ3VyYXRpb24pLCB7IH0pOwor
ICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvbj4ocHJvY2VzcywgV1RG
TW92ZShjb25maWd1cmF0aW9uKSk7Cit9CisKK1JlbW90ZUF1ZGlvU2Vzc2lvbjo6UmVtb3RlQXVk
aW9TZXNzaW9uKFdlYlByb2Nlc3MmIHByb2Nlc3MsIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3Vy
YXRpb24mJiBjb25maWd1cmF0aW9uKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCisgICAgLCBt
X2NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKK3sKK30KKworUmVtb3RlQXVk
aW9TZXNzaW9uOjp+UmVtb3RlQXVkaW9TZXNzaW9uKCkgPSBkZWZhdWx0OworCitJUEM6OkNvbm5l
Y3Rpb24mIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29ubmVjdGlvbigpCit7CisgICAgcmV0dXJuIG1f
cHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKK30KKwor
dm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSB0eXBlLCBS
b3V0ZVNoYXJpbmdQb2xpY3kgcG9saWN5KQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6U2V0Q2F0ZWdvcnkodHlwZSwgcG9saWN5KSwg
eyB9KTsKK30KKwordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNp
emUoc2l6ZV90IHNpemUpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5OjpTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemUpLCB7IH0pOwor
fQorCitib29sIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29s
IGFjdGl2ZSkKK3sKKyAgICBib29sIHN1Y2NlZWRlZDsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFN5
bmMoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpUcnlUb1NldEFjdGl2ZShhY3Rp
dmUpLCBNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRyeVRvU2V0QWN0aXZlOjpS
ZXBseShzdWNjZWVkZWQpLCB7IH0pOworICAgIHJldHVybiBzdWNjZWVkZWQ7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uOjpjb25maWd1cmF0aW9uQ2hhbmdlZChSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3sKKyAgICBib29sIG11dGVkU3RhdGVD
aGFuZ2VkID0gY29uZmlndXJhdGlvbi5pc011dGVkICE9IG1fY29uZmlndXJhdGlvbi5pc011dGVk
OworCisgICAgbV9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsKKworICAgIGlmIChtdXRl
ZFN0YXRlQ2hhbmdlZCkKKyAgICAgICAgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOworfQorCit2
b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6YmVnaW5JbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNl
c3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkKK3sKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5iZWdpbkludGVycnVwdGlvbih0eXBlKTsKK30KKwor
dm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OmVuZEludGVycnVwdGlvbihQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit7CisgICAgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuZW5kSW50ZXJydXB0aW9uKGZsYWdzKTsKK30K
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4ZjhkYzgyM2UzZjAxMDdj
MTkzYmU5NDhiZjdmYjk2OGJjZTc5ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCkBAIC0wLDAgKzEsODYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNp
bmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNz
aW9uLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgV2ViUHJv
Y2VzczsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uIGZpbmFsCisgICAgOiBwdWJsaWMgV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uCisgICAgLCBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxSZW1v
dGVBdWRpb1Nlc3Npb24+IGNyZWF0ZShXZWJQcm9jZXNzJik7CisgICAgdmlydHVhbCB+UmVtb3Rl
QXVkaW9TZXNzaW9uKCk7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxSZW1vdGVB
dWRpb1Nlc3Npb24+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UmVt
b3RlQXVkaW9TZXNzaW9uPihXZWJQcm9jZXNzJiwgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbiYmKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb24oV2ViUHJvY2VzcyYsIFJlbW90ZUF1ZGlv
U2Vzc2lvbkNvbmZpZ3VyYXRpb24mJik7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KCk7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBN
ZXNzYWdlcworICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9TZXNzaW9u
Q29uZmlndXJhdGlvbiYmKTsKKyAgICB2b2lkIGJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlKTsKKyAgICB2b2lkIGVuZEludGVy
cnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxh
Z3MpOworCisgICAgLy8gQXVkaW9TZXNzaW9uCisgICAgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29y
eVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSkgZmluYWw7CisgICAgdm9pZCBzZXRQ
cmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCkgZmluYWw7CisgICAgYm9vbCB0cnlUb1NldEFjdGl2
ZUludGVybmFsKGJvb2wpIGZpbmFsOworCisgICAgQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmNhdGVnb3J5OyB9CisgICAgV2ViQ29y
ZTo6Um91dGVTaGFyaW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fY29uZmlndXJhdGlvbi5yb3V0ZVNoYXJpbmdQb2xpY3k7IH0KKyAgICBTdHJpbmcg
cm91dGluZ0NvbnRleHRVSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24u
cm91dGluZ0NvbnRleHRVSUQ7IH0KKyAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnNhbXBsZVJhdGU7IH0KKyAgICBzaXplX3QgYnVmZmVy
U2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5idWZmZXJTaXplOyB9
CisgICAgc2l6ZV90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NvbmZpZ3VyYXRpb24ubnVtYmVyT2ZPdXRwdXRDaGFubmVsczsgfQorICAgIHNpemVfdCBw
cmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9u
LnByZWZlcnJlZEJ1ZmZlclNpemU7IH0KKyAgICBib29sIGlzTXV0ZWQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uaXNNdXRlZDsgfQorICAgIGJvb2wgaXNBY3RpdmUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uaXNBY3RpdmU7IH0KKworICAgIFdl
YlByb2Nlc3MmIG1fcHJvY2VzczsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
IG1fY29uZmlndXJhdGlvbjsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4OTYyOGY2NTdlZjdjZGJjZGJhNzc5ZDQxZGI5OWJj
YTVkNDRiMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04p
CisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvbiBOb3RSZWZDb3VudGVkIHsKKyAgICBD
b25maWd1cmF0aW9uQ2hhbmdlZChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Db25m
aWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCisgICAgQmVnaW5JbnRlcnJ1cHRpb24oZW51bTp1aW50
OF90IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUp
CisgICAgRW5kSW50ZXJydXB0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MgZmxhZ3MpCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWU2MDI5MDQ2ODg1
ZjVmZmZhODMwMjBhZmFjZTg4ZDQ3M2VlZjJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
LmgKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDxXZWJD
b3JlL0F1ZGlvU2Vzc2lvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFJlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24geworCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZTo6Tm9uZSB9OworICAgIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJp
bmdQb2xpY3kgeyBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQgfTsKKyAgICBT
dHJpbmcgcm91dGluZ0NvbnRleHRVSUQ7CisgICAgZmxvYXQgc2FtcGxlUmF0ZSB7IDAgfTsKKyAg
ICB1aW50NjRfdCBidWZmZXJTaXplIHsgMCB9OworICAgIHVpbnQ2NF90IG51bWJlck9mT3V0cHV0
Q2hhbm5lbHMgeyAwIH07CisgICAgdWludDY0X3QgcHJlZmVycmVkQnVmZmVyU2l6ZSB7IDAgfTsK
KyAgICBib29sIGlzTXV0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNBY3RpdmUgeyBmYWxzZSB9
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjYXRlZ29yeTsKKyAg
ICAgICAgZW5jb2RlciA8PCByb3V0ZVNoYXJpbmdQb2xpY3k7CisgICAgICAgIGVuY29kZXIgPDwg
cm91dGluZ0NvbnRleHRVSUQ7CisgICAgICAgIGVuY29kZXIgPDwgc2FtcGxlUmF0ZTsKKyAgICAg
ICAgZW5jb2RlciA8PCBidWZmZXJTaXplOworICAgICAgICBlbmNvZGVyIDw8IG51bWJlck9mT3V0
cHV0Q2hhbm5lbHM7CisgICAgICAgIGVuY29kZXIgPDwgcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAg
ICAgICAgZW5jb2RlciA8PCBpc011dGVkOworICAgICAgICBlbmNvZGVyIDw8IGlzQWN0aXZlOwor
ICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBPcHRpb25h
bDxSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlPiBjYXRlZ29yeTsKKyAgICAgICAgZGVjb2RlciA+PiBjYXRlZ29yeTsKKyAgICAgICAg
aWYgKCFjYXRlZ29yeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8V2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5PiByb3V0ZVNoYXJpbmdQb2xp
Y3k7CisgICAgICAgIGRlY29kZXIgPj4gcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBpZiAo
IXJvdXRlU2hhcmluZ1BvbGljeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICAgICAgT3B0aW9uYWw8U3RyaW5nPiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgZGVj
b2RlciA+PiByb3V0aW5nQ29udGV4dFVJRDsKKyAgICAgICAgaWYgKCFyb3V0aW5nQ29udGV4dFVJ
RCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8
ZmxvYXQ+IHNhbXBsZVJhdGU7CisgICAgICAgIGRlY29kZXIgPj4gc2FtcGxlUmF0ZTsKKyAgICAg
ICAgaWYgKCFzYW1wbGVSYXRlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgICAgICBPcHRpb25hbDx1aW50NjRfdD4gYnVmZmVyU2l6ZTsKKyAgICAgICAgZGVjb2RlciA+
PiBidWZmZXJTaXplOworICAgICAgICBpZiAoIWJ1ZmZlclNpemUpCisgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBudW1iZXJPZk91
dHB1dENoYW5uZWxzOworICAgICAgICBkZWNvZGVyID4+IG51bWJlck9mT3V0cHV0Q2hhbm5lbHM7
CisgICAgICAgIGlmICghbnVtYmVyT2ZPdXRwdXRDaGFubmVscykKKyAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IHByZWZlcnJlZEJ1
ZmZlclNpemU7CisgICAgICAgIGRlY29kZXIgPj4gcHJlZmVycmVkQnVmZmVyU2l6ZTsKKyAgICAg
ICAgaWYgKCFwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgICAgICBPcHRpb25hbDxib29sPiBpc011dGVkOworICAgICAgICBkZWNvZGVy
ID4+IGlzTXV0ZWQ7CisgICAgICAgIGlmICghaXNNdXRlZCkKKyAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNBY3RpdmU7CisgICAgICAg
IGRlY29kZXIgPj4gaXNBY3RpdmU7CisgICAgICAgIGlmICghaXNBY3RpdmUpCisgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAgICAgICAg
V1RGTW92ZSgqY2F0ZWdvcnkpLAorICAgICAgICAgICAgV1RGTW92ZSgqcm91dGVTaGFyaW5nUG9s
aWN5KSwKKyAgICAgICAgICAgIFdURk1vdmUoKnJvdXRpbmdDb250ZXh0VUlEKSwKKyAgICAgICAg
ICAgICpzYW1wbGVSYXRlLAorICAgICAgICAgICAgKmJ1ZmZlclNpemUsCisgICAgICAgICAgICAq
bnVtYmVyT2ZPdXRwdXRDaGFubmVscywKKyAgICAgICAgICAgICpwcmVmZXJyZWRCdWZmZXJTaXpl
LAorICAgICAgICAgICAgKmlzTXV0ZWQsCisgICAgICAgICAgICAqaXNBY3RpdmUsCisgICAgICAg
IH19OworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nl
c3Npb25JZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTQ4MGM2OTRlMmIzZDk3
YjU5NmUyYTA3MzAzZDY3ZmIwZjk5YmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmgKQEAg
LTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbW90ZUF1ZGlvU2Vz
c2lvbklkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZp
ZXIgPSBPYmplY3RJZGVudGlmaWVyPFJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZpZXJUeXBlPjsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCmluZGV4IDUxYzJmNWU1M2IzNDBjMjIwNWY3ODliNGIzNzNhMmU1MDdi
YjZlYmIuLjNlODY4OGZhZjEwMzRkNGQ3ZGI3MDc2MmM0ZTQxMDZjOWU1NGI3YzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNs
dWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgi
CisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0Rh
dGEuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgi
CkBAIC00NzEsNiArNDcyLDggQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vz
cyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBXZWJSZXNv
dXJjZUxvYWRPYnNlcnZlcjo6c2V0U2hvdWxkTG9nVXNlckludGVyYWN0aW9uKHBhcmFtZXRlcnMu
c2hvdWxkTG9nVXNlckludGVyYWN0aW9uKTsKICNlbmRpZgogCisgICAgc2V0VXNlR1BVUHJvY2Vz
c0Zvck1lZGlhKHBhcmFtZXRlcnMudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKTsKKwogICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoUHJvY2VzcywgImluaXRpYWxpemVXZWJQcm9jZXNzOiBQcmVzZW50
aW5nIHByb2Nlc3MgPSAlZCIsIFdlYkNvcmU6OnByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpKTsK
IH0KIApAQCAtMTk5Nyw2ICsyMDAwLDE4IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0U2hvdWxkQmxv
Y2tUaGlyZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoVGhpcmRQYXJ0eUNvb2tpZUJsb2NrCiB9CiAj
ZW5kaWYKIAordm9pZCBXZWJQcm9jZXNzOjpzZXRVc2VHUFVQcm9jZXNzRm9yTWVkaWEoYm9vbCB1
c2VHUFVQcm9jZXNzRm9yTWVkaWEpCit7CisgICAgaWYgKHVzZUdQVVByb2Nlc3NGb3JNZWRpYSA9
PSBtX3VzZUdQVVByb2Nlc3NGb3JNZWRpYSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV91c2VH
UFVQcm9jZXNzRm9yTWVkaWEgPSB1c2VHUFVQcm9jZXNzRm9yTWVkaWE7CisgICAgaWYgKHVzZUdQ
VVByb2Nlc3NGb3JNZWRpYSkKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpzZXRTaGFyZWRTZXNzaW9u
KFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzKSk7CisgICAgZWxzZQorICAgICAgICBB
dWRpb1Nlc3Npb246OnNldFNoYXJlZFNlc3Npb24oQXVkaW9TZXNzaW9uOjpjcmVhdGUoKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggNjViZjA0MTdkNGY4YzFk
YjUxZjllOTc1MGJjYjk3ZjlhNWJjMmI5MC4uNjU1ZTc4ZGYwOGRmMDhhYzkyYTU2YmZjOWNjOGE3
YTlkNTI1NWQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC01MTcs
NiArNTE3LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2Vk
KCkgeyByZXR1cm4gbV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRC0+aXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCkgOiB0cnVlOyB9CiAKKyAgICB2b2lkIHNldFVzZUdQVVByb2Nlc3NGb3JNZWRpYShi
b29sKTsKKwogICAgIFJlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IG1fd2ViQ29ubmVj
dGlvbjsKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJQ
YWdlPj4gbV9wYWdlTWFwOwpAQCAtNjUzLDYgKzY1NSw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PFNhbmRib3hFeHRlbnNpb24+IG1fYXNzZXRTZXJ2aWNlRXh0ZW5zaW9uOwogICAgIFJlZlB0cjxT
YW5kYm94RXh0ZW5zaW9uPiBtX2Fzc2V0U2VydmljZVYyRXh0ZW5zaW9uOwogI2VuZGlmCisKKyAg
ICBib29sIG1fdXNlR1BVUHJvY2Vzc0Zvck1lZGlhIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392585</attachid>
            <date>2020-03-05 09:30:15 -0800</date>
            <delta_ts>2020-03-05 10:58:09 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208583-20200305093014.patch</filename>
            <type>text/plain</type>
            <size>87048</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZmZTQ3YzEyYzgxMzExY2M4OWRkYmI5
NTE2MjE0MjU0ZGU5YTAxNjEuLjc3OWQ0ZGE1Y2JmNTQ4ZWJkMTAzNzg2MDQ5NGNjNDIyMjA4ZGMy
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRk
IFVuaXF1ZVJlZiB0byB0aGUgbGlzdCBvZiBmb3J3YXJkLWRlY2xhcmVkIHRlbXBsYXRlIHR5cGVz
LgorCisgICAgICAgICogd3RmL0ZvcndhcmQuaDoKKwogMjAyMC0wMy0wNCAgTWFyayBMYW0gIDxt
YXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgZXJy
b3Igd2hpbGUgY29uc3RydWN0aW5nIHRoZSBCeXRlY29kZUdlbmVyYXRvci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBmYmM4Njg2ZjZjNWU5NGViNTZkYzZjOTFmM2I5ZmJhMTkwZTUyZWQ4Li5kMDM1Mjk5YTI4NmIx
Y2EwNjJjNDRjOGJmMjViNDRmMDRhZDM0NmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAgIFJldmlld2VkIGJ5
IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUg
ZW51bWVyYXRpb25zIGluc2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1
ZGlvU2Vzc2lvbiBtZXRob2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4g
dGhlIGNhc2Ugd2hlcmUgdGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisKIDIwMjAtMDMtMDUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUgUGF0aDo6ZW5jb2RlIG9uIHBsYXRmb3Jt
cyB0aGF0IHN1cHBvcnQgQ0dQYXRoR2V0TnVtYmVyT2ZFbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlOWQz
OTlhYjZlMGZjYzRmZTc1N2Y5OGYxMjE5OTFiOWIxZDMwNDFiLi5hZDRjZTZhNDM0YmIzMjUyNDFk
YWExMTNjMmY1NGZmODA5YzliYTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIwLTAz
LTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBJ
bXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBhIHN1YmNsYXNzIG9mIEF1ZGlvU2Vzc2lvbiB3aGlj
aCwgaW5zdGVhZCBvZiBtb2RpZnlpbmcgdGhlIGF1ZGlvIGJlaGF2aW9yIG9mIHRoZSBjdXJyZW50
IHByb2Nlc3MsIG1vZGlmaWVzIHRoZQorICAgICAgICBhdWRpbyBiZWhhdmlvciBvZiB0aGUgR1BV
IFByb2Nlc3MuIEFuZCwgaW4gdGhlIEdQVSBQcm9jZXNzLCBzaW5jZSBpdCByZXByZXNlbnRzIHRo
ZSBhdWRpbyBiZWhhdmlvciBvZiBwb3RlbnRpYWxseQorICAgICAgICBtdWx0aXBsZSBzZXBhcmF0
ZSBXZWJDb250ZW50IHByb2Nlc3Nlcy4KKworICAgICAgICBPdmVycmlkZSB0aGUgZGVmYXVsdCBz
aGFyZWQgQXVkaW9TZXNzaW9uIGF0IFdlYlByb2Nlc3MgaW5pdGlhbGl6YXRpb24gdGltZS4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZSk6
CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmF1ZGlvU2Vzc2lv
blByb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5z
dXJlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6bGVnYWN5Q2RtRmFjdG9yeVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6Omlu
aXRpYWxpemVHUFVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6YXVkaW9T
ZXNzaW9uTWFuYWdlciBjb25zdCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6
OnByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
UHJveHk6OmNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eTo6c2V0Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eTo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1NldEFjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbkludGVycnVwdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjplbmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YXVkaW9TZXNzaW9uTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25uZWN0aW9uKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y2F0ZWdvcnkgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6cm91dGVTaGFy
aW5nUG9saWN5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHk6OnByZWZlcnJlZEJ1ZmZlclNpemUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXI6OmFkZFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpyZW1vdmVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6Z2V0UHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI6OnRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyk6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXNzaW9uIGNv
bnN0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6UmVtb3RlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmVJbnRlcm5hbCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmJlZ2luSW50ZXJydXB0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjplbmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmln
dXJhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29u
ZmlndXJhdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmg6CisKIDIwMjAtMDMtMDUgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEV4cG9ydCBOb3dQbGF5aW5n
IGNvbW1hbmRzIHRvIEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGluIEdQVVByb2Nlc3Mg
aXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNl
L1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThm
NzAzYThmMGQuLjZlOTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3
YXJkLmgKQEAgLTY4LDYgKzY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBE
dW1iUHRyVHJhaXRzPFQ+PiBjbGFzcyBSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSA9IER1bWJQdHJUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBj
bGFzcyBTdHJpbmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBj
bGFzcyBTdHJpbmdUeXBlQWRhcHRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1
ZVJlZjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5
cGVuYW1lPiBzdHJ1Y3QgRGVmYXVsdEhhc2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEy
NSw2ICsxMjYsNyBAQCB1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3Np
dGlvbjsKIHVzaW5nIFdURjo6VGV4dFN0cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RG
OjpVbmlxdWVSZWY7CiB1c2luZyBXVEY6OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKaW5kZXgg
YjVmYjU4MDY0OGY5Y2Y4ZWM0ZjE4NmZhZmE0OGUxM2ZkY2YyZjU3ZC4uZjM1ZmVhYmZlOTY3MTIw
OGQ0YTMwYjg2Mjc5MGI1MTNjYmVlZTc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCkBAIC0zMywxMCArMzMsMjUgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4mIHNoYXJlZEF1ZGlv
U2Vzc2lvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVuaXF1ZVJlZjxBdWRpb1Nl
c3Npb24+PiBzZXNzaW9uID0gQXVkaW9TZXNzaW9uOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gc2Vz
c2lvbi5nZXQoKTsKK30KKworVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4gQXVkaW9TZXNzaW9uOjpj
cmVhdGUoKQoreworICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4oKTsKK30K
KwogQXVkaW9TZXNzaW9uJiBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdWRpb1Nlc3Npb24+IHNlc3Npb247Ci0gICAgcmV0dXJuIHNl
c3Npb247CisgICAgcmV0dXJuIHNoYXJlZEF1ZGlvU2Vzc2lvbigpOworfQorCit2b2lkIEF1ZGlv
U2Vzc2lvbjo6c2V0U2hhcmVkU2Vzc2lvbihVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiYmIHNlc3Np
b24pCit7CisgICAgc2hhcmVkQXVkaW9TZXNzaW9uKCkgPSBXVEZNb3ZlKHNlc3Npb24pOwogfQog
CiBib29sIEF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCmluZGV4IDBkYTc1ZmRhNGEz
YTdjNzE3Nzc4NDQ1OGVkNjQyMDg2NjFjNzZiMzUuLmZhNDIxMmZkMDU5YWNhNjRhYzZjZDY5Nzkx
MjM0ZjlhMjY2M2NhZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
U2Vzc2lvbi5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDEzICs0NSwxOCBAQCBlbnVtIGNs
YXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3QgewogICAgIExvbmdGb3JtVmlkZW8KIH07
CiAKLWNsYXNzIEF1ZGlvU2Vzc2lvbiBmaW5hbCB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBBdWRp
b1Nlc3Npb24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEF1ZGlvU2Vzc2lvbik7CisgICAgZnJpZW5kIGNsYXNzIFVuaXF1ZVJlZjxBdWRp
b1Nlc3Npb24+OworICAgIGZyaWVuZCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBXVEY6Om1ha2VV
bmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPEF1ZGlvU2Vzc2lvbj4oKTsKIHB1YmxpYzoK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQXVkaW9TZXNzaW9uJiBzaGFyZWRTZXNzaW9uKCk7
CisgICAgc3RhdGljIFVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+IGNyZWF0ZSgpOworICAgIHN0YXRp
YyB2b2lkIHNldFNoYXJlZFNlc3Npb24oVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4mJik7CisgICAg
c3RhdGljIEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOworICAgIHZpcnR1YWwgfkF1ZGlv
U2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgeworICAgIGVudW0gQ2F0ZWdvcnlU
eXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAgIEFtYmllbnRTb3VuZCwKICAg
ICAgICAgU29sb0FtYmllbnRTb3VuZCwKQEAgLTU5LDIzICs2NSwyMyBAQCBwdWJsaWM6CiAgICAg
ICAgIFBsYXlBbmRSZWNvcmQsCiAgICAgICAgIEF1ZGlvUHJvY2Vzc2luZywKICAgICB9OwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJp
bmdQb2xpY3kpOwotICAgIFdFQkNPUkVfRVhQT1JUIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNv
bnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUsIFJvdXRlU2hh
cmluZ1BvbGljeSk7CisgICAgdmlydHVhbCBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdDsK
IAogICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUpOwogICAgIENhdGVn
b3J5VHlwZSBjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3Q7CiAKLSAgICBSb3V0ZVNoYXJpbmdQb2xp
Y3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7Ci0gICAgU3RyaW5nIHJvdXRpbmdDb250ZXh0
VUlEKCkgY29uc3Q7CisgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5n
UG9saWN5KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQoKSBj
b25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsKLSAg
ICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZk91dHB1dENo
YW5uZWxzKCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgc2l6ZV90
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAogICAgIGJvb2wgdHJ5VG9TZXRBY3Rp
dmUoYm9vbCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6
ZSgpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6
ZShzaXplX3QpOworICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAg
ICAgY2xhc3MgTXV0ZWRTdGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04NywxNyArOTMs
MTYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVP
YnNlcnZlciopOwogICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVP
YnNlcnZlciopOwogCi0gICAgYm9vbCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBoYW5kbGVN
dXRlZFN0YXRlQ2hhbmdlKCk7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9vbCBpc0Fj
dGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWN0
aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoK
ICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRp
b1Nlc3Npb24oKTsKLSAgICB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0
aXZlSW50ZXJuYWwoYm9vbCk7CisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJu
YWwoYm9vbCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0ZT4gbV9w
cml2YXRlOwogICAgIEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CkBA
IC0xMjAsNiArMTI1LDE5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
Um91dGVTaGFyaW5nUG9saWN5PiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGUsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUs
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZCwK
KyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3Vu
ZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFj
aywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8s
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQs
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2lu
ZworICAgID47Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgogc3RydWN0IExvZ0FyZ3Vt
ZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1N
ZWRpYVNlc3Npb24uaAppbmRleCBlMmIzOGEwMWQwYWE1YTY2ZDM3NzkxMWVkNDAxZTUyODkwNzg5
NzA4Li45MzA4NWIwZDQyN2FlYmU4NDEwZTVkMDcxOTM4YWIwNjAxNDQxYWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgK
QEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNl
c3Npb24oKTsKIAotICAgIGVudW0gY2xhc3MgTWVkaWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1l
ZGlhVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb25lID0gMCwKICAgICAgICAgVmlkZW8sCiAg
ICAgICAgIFZpZGVvQXVkaW8sCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5
cGUgbWVkaWFUeXBlKCkgY29uc3Q7CiAgICAgTWVkaWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBj
b25zdDsKIAotICAgIGVudW0gU3RhdGUgeworICAgIGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAg
ICAgICAgSWRsZSwKICAgICAgICAgQXV0b3BsYXlpbmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC04
MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhdGU7IH0KICAgICB2b2lkIHNldFN0YXRlKFN0YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0
aW9uVHlwZSB7CisgICAgZW51bSBJbnRlcnJ1cHRpb25UeXBlIDogdWludDhfdCB7CiAgICAgICAg
IE5vSW50ZXJydXB0aW9uLAogICAgICAgICBTeXN0ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdC
YWNrZ3JvdW5kLApAQCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1
cHRpb25UeXBlIGludGVycnVwdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlv
blR5cGU7IH0KIAotICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5k
SW50ZXJydXB0aW9uRmxhZ3MgOiB1aW50OF90IHsKICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAg
ICAgIE1heVJlc3VtZVBsYXlpbmcgPSAxIDw8IDAsCiAgICAgfTsKQEAgLTExOCw3ICsxMTgsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGRvdWJsZSBhc0RvdWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRB
cmd1bWVudDsKIAotICAgIGVudW0gUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVt
IFJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQs
CiAgICAgICAgIFBsYXlDb21tYW5kLAogICAgICAgICBQYXVzZUNvbW1hbmQsCkBAIC0xMzQsNyAr
MTM0LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5k
KFJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSwgY29uc3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBh
cmd1bWVudCA9IG51bGxwdHIpOwogICAgIGJvb2wgc3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAK
LSAgICBlbnVtIERpc3BsYXlUeXBlIHsKKyAgICBlbnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7
CiAgICAgICAgIE5vcm1hbCwKICAgICAgICAgRnVsbHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVk
LApAQCAtMjk3LDQgKzI5Nyw2NCBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZT4gewogICAgIH0KIH07CiAK
K3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpNZWRpYVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6VmlkZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6VmlkZW9BdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpXZWJBdWRpbworICAgID47Cit9OworCit0ZW1wbGF0ZSA8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6U3RhdGUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlN0YXRlOjpJZGxlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6
QXV0b3BsYXlpbmcsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQ
bGF5aW5nLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2Vk
LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQK
KyAgICA+OworfTsKKwordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJy
dXB0aW9uVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0
aW9uVHlwZTo6Tm9JbnRlcnJ1cHRpb24sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Np
b246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbVNsZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAg
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUlu
dGVycnVwdGlvbiwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0
aW9uVHlwZTo6U3VzcGVuZGVkVW5kZXJMb2NrLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpJbnZpc2libGVBdXRvcGxheSwKKyAgICBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZl
LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQ
bGF5YmFja1N1c3BlbmRlZAorICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1l
UGxheWluZworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7Cisg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAg
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6
UGxheUNvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNv
bnRyb2xDb21tYW5kVHlwZTo6UGF1c2VDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRv
Z2dsZVBsYXlQYXVzZUNvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAor
ICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5
cGU6OkVuZFNlZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENv
bW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZTo6RW5kU2Vla2luZ0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNr
UG9zaXRpb25Db21tYW5kCisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0K
aW5kZXggZDZjMDA3ZjQwYjVmYjc2MzcyMmQ1MzhhZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGEx
ZDBhYTYzODljM2RmODkzNjcxMGEzNTg5YTQ0NTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQz
LDE1IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBi
dWZmZXJTaXplKQogICAgIEFTU0VSVCghZXJyb3IpOwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6
aXNNdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vz
c2lvbjo6aGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVT
RShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDlmOTQ2Zjg0OTdhZjIzYjRh
ZmE1MWI3OTE4NDE4NTE4ODYwYWM1YjkuLmQ3NDliMmRiMDliOTY3NDZmNGEwZjFlMzRjMjE3NDJl
ZGY1M2U0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTE4LDYgKzE4LDggQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9j
ZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Q
cm94eS5tZXNzYWdlcy5pbgpAQCAtMTE2LDYgKzExOCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24u
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYTk2YzJjZmRkZDQ2
YjM1OTIzOGU5NjIzNDNhOTkyMjEwNGVlYTU5Yi4uOTk1MDM1MTJiYTU1OGIyYjQxMDA4ZjViMTY2
NTA0NjBhOTU0MTQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC0xMzcsNiArMTM3LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1Jl
cGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNz
aW9uTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBs
aWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0NWVlM2RiN2VkN2UxMzM3MmM4
YTc1YWQ1NTVhMTY1ODdmNjdkMDhhLi4xYzNkMWEyMGVlYTNiNzM4MDAxMDJlMWQzMTk4Mzc5MDNh
YTZjZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNDgsNiArMTQ4LDggQEAg
TUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUGx1Z2luUHJveHkgXAogICAgIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyIFwKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAor
ICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbiBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXAog
ICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGIwZTc4Yzc4N2ZhNTdlZDBkZTkzNDBm
MTk3YjVkNmUyMzQ1ZTdjOTIuLmNiNTc5MjhlY2YyZTI5Y2FiOWQzNmU0ZDBhZGE4MGI5NzJlY2Zh
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKQEAgLTc2LDYgKzc2LDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RN
UHJveHlNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVT
RShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisj
aW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMzMsNiArMTM4LDEwIEBAIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKIAogdm9p
ZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQog
eworICAgIGlmIChtX2F1ZGlvU2Vzc2lvblByb3h5KSB7CisgICAgICAgIGdwdVByb2Nlc3MoKS5h
dWRpb1Nlc3Npb25NYW5hZ2VyKCkucmVtb3ZlUHJveHkod2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7
CisgICAgICAgIG1fYXVkaW9TZXNzaW9uUHJveHkgPSBudWxscHRyOworICAgIH0KIH0KIAogTG9n
Z2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dnZXIoKQpAQCAtMjMxLDYgKzI0MCwx
NyBAQCBSZW1vdGVDRE1GYWN0b3J5UHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNk
bUZhY3RvcnlQcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
VVNFKEFVRElPX1NFU1NJT04pCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJveHkoKQoreworICAgIGlmICghbV9hdWRpb1Nl
c3Npb25Qcm94eSkgeworICAgICAgICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OmNyZWF0ZSgqdGhpcykubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGdw
dVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2VyKCkuYWRkUHJveHkobWFrZVdlYWtQdHIobV9h
dWRpb1Nlc3Npb25Qcm94eS5nZXQoKSkpOworICAgIH0KKyAgICByZXR1cm4gKm1fYXVkaW9TZXNz
aW9uUHJveHk7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
cmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHlNYXAuZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBb
Jl0oKSB7CkBAIC0yNTcsNiArMjc3LDEzIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6c2V0Tm93UGxheWluZ0luZm8oYm9vbCBzZXRBc05vd1BsYXlpbmdBcHBsaWNhdGlvCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCit2
b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1cmVB
dWRpb1Nlc3Npb25Db21wbGV0aW9uJiYgY29tcGxldGlvbikKK3sKKyAgICBjb21wbGV0aW9uKGF1
ZGlvU2Vzc2lvblByb3h5KCkuY29uZmlndXJhdGlvbigpKTsKK30KKyNlbmRpZgorCiBib29sIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKQEAgLTMzNCw2ICszNjEsMTIgQEAgYm9v
bCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEMKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogI2VuZGlm
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgYXVkaW9TZXNzaW9u
UHJveHkoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCiAKICAgICByZXR1cm4gbWVzc2FnZVJlY2VpdmVy
TWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQpAQCAtMzgxLDYg
KzQxNCwxMiBAQCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAg
ICBhdWRpb1Nlc3Npb25Qcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5k
aWYKIAogICAgIHJldHVybiBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAxODIy
NmE3YzM0OTkxOGFjYmJjNDViZmY1NGFmNmE3YmJmYzcwMWMzLi5iMDA3MWNjNjUyNjZmZTdhOTJh
YmMwNGYzYmZkOGM1YTQyM2Q2ODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCisjaW5jbHVkZSAiUmVt
b3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgpAQCAtNDgsMTIgKzQ5LDE1IEBA
IGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eTsKIGNsYXNzIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNYW5hZ2VyOworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7Citj
bGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVDRE1GYWN0
b3J5UHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXI7CiBjbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3Mg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKK3N0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uOwogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBw
dWJsaWMgUmVmQ291bnRlZDxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPgpAQCAtODgsMTEgKzky
LDE1IEBAIHB1YmxpYzoKICAgICBSZW1vdGVDRE1GYWN0b3J5UHJveHkmIGNkbUZhY3RvcnlQcm94
eSgpOwogI2VuZGlmCiAKKyAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVT
RShBVURJT19TRVNTSU9OKQorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVk
aW9TZXNzaW9uTWFuYWdlcigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXImIHJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7
Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5KCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAg
TGliV2ViUlRDQ29kZWNzUHJveHkmIGxpYldlYlJUQ0NvZGVjc1Byb3h5KCk7CiAjZW5kaWYKQEAg
LTEwNCw2ICsxMTIsMTEgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAjZW5kaWYK
ICNlbmRpZgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgYXVkaW9TZXNzaW9uUHJveHkoKTsKKyNlbmRp
ZgorCiAgICAgdm9pZCBjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKTsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTExMSw2ICsxMjQsMTEgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNldE5vd1BsYXlpbmdJbmZvKGJvb2wgc2V0QXNOb3dQbGF5aW5n
QXBwbGljYXRpb24sIGNvbnN0IFdlYkNvcmU6Ok5vd1BsYXlpbmdJbmZvJik7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgdXNpbmcg
RW5zdXJlQXVkaW9TZXNzaW9uQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYpPjsKKyAgICB2b2lkIGVuc3VyZUF1
ZGlvU2Vzc2lvbihFbnN1cmVBdWRpb1Nlc3Npb25Db21wbGV0aW9uJiYpOworI2VuZGlmCisKICAg
ICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25u
ZWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIGZpbmFsOwpAQCAtMTQ5LDYgKzE2Nyw5IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlQ0RNRmFjdG9yeVByb3h5PiBtX2NkbUZhY3RvcnlQcm94eTsKICNlbmRpZgorI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBtX2F1ZGlvU2Vzc2lvblByb3h5OworI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggOGQ5MWNlMmJjZGJkYWVjZmMyNTcxMDNjZGFjZTY5NjU0Y2M0OGQzOS4uNWFiNDE3
MmVkMzE0N2YyNmE5MDM3ZGJjOTg4NWE5N2YxZTgwOWNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTI5LDYgKzI5LDcgQEAgbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyBXYW50c0Rpc3BhdGNoTWVzc2FnZSB7CiAgICAgdm9pZCBDbGVhck5vd1BsYXlpbmdJ
bmZvKCk7CiAgICAgdm9pZCBTZXROb3dQbGF5aW5nSW5mbyhib29sIHNldEFzTm93UGxheWluZ0Fw
cGxpY2F0aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6Tm93UGxheWluZ0luZm8gbm93UGxheWluZ0luZm8p
OwogI2VuZGlmCisgICAgRW5zdXJlQXVkaW9TZXNzaW9uKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikgU3luY2hyb25vdXMK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLmNwcAppbmRleCAwZTdiZDA5YmVhNWQxMjNhNDA3ZWNmYjlkMzlmNzI0MGY1
YjNjN2I5Li41ZjI4OTQ0Yjc0MzIzODI2NzFlOGJiZmE1OTIxNmUzNjc5OTJmOWVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC01MSw2ICs1MSwxMCBAQAogI2lu
Y2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+
CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1
ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oIgorI2VuZGlmCisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTIxMiw2ICsyMTYsMTUg
QEAgY29uc3QgU3RyaW5nJiBHUFVQcm9jZXNzOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY28KIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlciYgR1BVUHJvY2Vzczo6YXVkaW9TZXNzaW9uTWFuYWdlcigpIGNvbnN0Cit7CisgICAgaWYg
KCFtX2F1ZGlvU2Vzc2lvbk1hbmFnZXIpCisgICAgICAgIG1fYXVkaW9TZXNzaW9uTWFuYWdlciA9
IFdURjo6bWFrZVVuaXF1ZTxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI+KCk7CisgICAg
cmV0dXJuICptX2F1ZGlvU2Vzc2lvbk1hbmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MuaAppbmRleCA2ZmEwMjAxNGI5NDc4MWVhOTllMDM1ZGIzYWQ3OWQ2
NWEyNGYyODdiLi40M2FhZTFhMTJiNWI4ODViMjZjNTZkZGYxNTI5NjBmMDIyN2M1MjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3Mg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIHN0cnVjdCBHUFVQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOwogc3RydWN0IEdQVVByb2Nlc3NTZXNzaW9uUGFyYW1ldGVyczsKIGNsYXNzIExheWVy
SG9zdGluZ0NvbnRleHQ7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CiAK
IGNsYXNzIEdQVVByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcywgcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPEdQVVByb2Nlc3M+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVUHJv
Y2Vzcz4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdQVVByb2Nlc3MpOwpAQCAtNjMsNiAr
NjQsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgbWVkaWFLZXlzU3RvcmFnZURpcmVj
dG9yeShQQUw6OlNlc3Npb25JRCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICB2b2lkIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwpOwogCkBAIC0xMDMsNiArMTA4LDkg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gbV9j
b250ZXh0Rm9yVmlzaWJpbGl0eVByb3BhZ2F0aW9uOwogICAgIGJvb2wgbV9jYW5TaG93V2hpbGVM
b2NrZWQgeyBmYWxzZSB9OwogI2VuZGlmCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0Uo
QVVESU9fU0VTU0lPTikKKyAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXI+IG1fYXVkaW9TZXNzaW9uTWFuYWdlcjsKKyNlbmRpZgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWZj
NDlkZTg5ZGUxYWNlNDZhYzE2N2Y4NTg0NjgwMzM2NTJkYzkwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNw
cApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lv
bk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgi
CisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGdwdUNvbm5lY3Rpb24pCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk+KGdwdUNvbm5lY3Rpb24pOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eTo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1
Q29ubmVjdGlvbikKKyAgICA6IG1fZ3B1Q29ubmVjdGlvbihncHVDb25uZWN0aW9uKQoreworfQor
CitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6flJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KCkgPSBk
ZWZhdWx0OworCitXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eTo6cHJvY2Vzc0lkZW50aWZpZXIoKQoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb24u
d2ViUHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29uZmlndXJhdGlvbigpCit7CisgICAgYXV0
byYgc2Vzc2lvbiA9IGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXNzaW9uKCk7CisgICAgcmV0dXJu
IHsKKyAgICAgICAgc2Vzc2lvbi5jYXRlZ29yeSgpLAorICAgICAgICBzZXNzaW9uLnJvdXRlU2hh
cmluZ1BvbGljeSgpLAorICAgICAgICBzZXNzaW9uLnJvdXRpbmdDb250ZXh0VUlEKCksCisgICAg
ICAgIHNlc3Npb24uc2FtcGxlUmF0ZSgpLAorICAgICAgICBzZXNzaW9uLmJ1ZmZlclNpemUoKSwK
KyAgICAgICAgc2Vzc2lvbi5udW1iZXJPZk91dHB1dENoYW5uZWxzKCksCisgICAgICAgIHNlc3Np
b24ucHJlZmVycmVkQnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNzaW9uLmlzTXV0ZWQoKSwKKyAg
ICAgICAgbV9hY3RpdmUKKyAgICB9OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
OjpzZXRDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29y
eSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBtX2NhdGVnb3J5
ID0gY2F0ZWdvcnk7CisgICAgbV9yb3V0ZVNoYXJpbmdQb2xpY3kgPSBwb2xpY3k7CisgICAgYXVk
aW9TZXNzaW9uTWFuYWdlcigpLnNldENhdGVnb3J5Rm9yUHJvY2VzcyhtX2dwdUNvbm5lY3Rpb24u
d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgY2F0ZWdvcnksIHBvbGljeSk7Cit9CisKK3ZvaWQgUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUodWludDY0X3Qgc2l6
ZSkKK3sKKyAgICBtX3ByZWZlcnJlZEJ1ZmZlclNpemUgPSBzaXplOworICAgIGF1ZGlvU2Vzc2lv
bk1hbmFnZXIoKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2VzcyhtX2dwdUNvbm5lY3Rp
b24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlLCBTZXRBY3RpdmVDb21wbGV0
aW9uJiYgY29tcGxldGlvbikKK3sKKyAgICBtX2FjdGl2ZSA9IGF1ZGlvU2Vzc2lvbk1hbmFnZXIo
KS50cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVu
dGlmaWVyKCksIGFjdGl2ZSk7CisgICAgY29tcGxldGlvbihtX2FjdGl2ZSk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCit7CisgICAgY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6QmVnaW5JbnRlcnJ1cHRpb24o
dHlwZSksIHsgfSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmVuZEludGVy
cnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxh
Z3MgZmxhZ3MpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
U2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uKGZsYWdzKSwgeyB9KTsKK30KKworUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyJiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YXVkaW9TZXNzaW9u
TWFuYWdlcigpCit7CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi5ncHVQcm9jZXNzKCkuYXVk
aW9TZXNzaW9uTWFuYWdlcigpOworfQorCitJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gbV9ncHVDb25uZWN0aW9uLmNv
bm5lY3Rpb24oKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWNkMmM2YzM3YzE3OTY0ZTBiYzhkZmE3MjEzNjQ5OTIxZDg0OTNjMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eS5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRp
Zmllci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xh
c3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkK
KyAgICA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgICwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFsIH5S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSgpOworCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIgcHJvY2Vzc0lkZW50aWZpZXIoKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb24oKTsKKworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIGNhdGVnb3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsgfTsKKyAgICBXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QgeyByZXR1
cm4gbV9yb3V0ZVNoYXJpbmdQb2xpY3k7IH0KKyAgICBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZmVycmVkQnVmZmVyU2l6ZTsgfQorICAgIGJvb2wgaXNB
Y3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZTsgfQorCisgICAgdm9pZCBiZWdpbkludGVy
cnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSk7
CisgICAgdm9pZCBlbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OkVuZEludGVycnVwdGlvbkZsYWdzKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+
IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk+KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisKKyAgICAvLyBNZXNzYWdl
cworICAgIHZvaWQgc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdm9pZCBzZXRQcmVmZXJyZWRC
dWZmZXJTaXplKHVpbnQ2NF90KTsKKyAgICB1c2luZyBTZXRBY3RpdmVDb21wbGV0aW9uID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT47CisgICAgdm9pZCB0cnlUb1NldEFjdGl2ZShib29s
LCBTZXRBY3RpdmVDb21wbGV0aW9uJiYpOworCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCk7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCk7CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rp
b247CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeTsK
KyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgbV9yb3V0ZVNoYXJpbmdQb2xpY3k7Cisg
ICAgc2l6ZV90IG1fcHJlZmVycmVkQnVmZmVyU2l6ZSB7IDAgfTsKKyAgICBib29sIG1fYWN0aXZl
IHsgZmFsc2UgfTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdmM2JhZTgyNDNmYWE1NDU1MmJiZmYwNGQ5YTZlYjg1MmI2
MDYyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisK
K21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5IE5vdFJlZkNvdW50ZWQgeworICAg
IFNldENhdGVnb3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSB0eXBlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGlj
eSkKKyAgICBTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHVpbnQ2NF90IHByZWZlcnJlZEJ1ZmZlclNp
emUpCisgICAgVHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpIC0+IChib29sIHN1Y2VlZGVkKSBT
eW5jaHJvbm91cworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjE2YjRlZjIxMWYyYTM4MzA3MDU0YzUxMjYxYjcxNjFmYzdkMDhkYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KworI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgYm9v
bCBjYXRlZ29yeUNhbk1peFdpdGhPdGhlcnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0
ZWdvcnkpCit7CisgICAgcmV0dXJuIGNhdGVnb3J5ID09IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNv
dW5kOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlcigpCisgICAgOiBtX3Nlc3Npb24oQXVkaW9TZXNzaW9uOjpjcmVhdGUo
KSkKK3sKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp+UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyKCkgPSBkZWZhdWx0OworCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlcjo6YWRkUHJveHkoV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4m
JiBwcm94eSkKK3sKKyAgICBhdXRvIGlkID0gcHJveHktPnByb2Nlc3NJZGVudGlmaWVyKCk7Cisg
ICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3Byb3hpZXMuc2V0KGlk
LCBXVEZNb3ZlKHByb3h5KSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyOjpyZW1vdmVQcm94eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7CisgICAgQVNT
RVJUKG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIG1fcHJveGllcy5yZW1vdmUoaWQpOwor
fQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyOjpnZXRQcm94eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7CisgICAgYXV0byBy
ZXN1bHRzID0gbV9wcm94aWVzLmZpbmQoaWQpOworICAgIGlmIChyZXN1bHRzICE9IG1fcHJveGll
cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdHMtPnZhbHVlLmdldCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0
Q2F0ZWdvcnlGb3JQcm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7
CisgICAgQVNTRVJUKG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIGF1dG8gcHJveHkgPSBn
ZXRQcm94eShpZCk7CisgICAgaWYgKCFwcm94eSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KHByb3h5LT5jYXRlZ29yeSgpID09IGNhdGVnb3J5ICYmIHByb3h5LT5yb3V0ZVNoYXJpbmdQb2xp
Y3koKSA9PSBwb2xpY3kpCisgICAgICAgIHJldHVybjsKKworICAgIEhhc2hDb3VudGVkU2V0PEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXVEY6OkludEhhc2g8QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGU+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlPj4gY2F0ZWdvcnlDb3VudHM7CisgICAgSGFzaENvdW50ZWRTZXQ8Um91dGVTaGFyaW5n
UG9saWN5LCBXVEY6OkludEhhc2g8Um91dGVTaGFyaW5nUG9saWN5PiwgV1RGOjpTdHJvbmdFbnVt
SGFzaFRyYWl0czxSb3V0ZVNoYXJpbmdQb2xpY3k+PiBwb2xpY3lDb3VudHM7CisgICAgZm9yIChh
dXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAgICAgIGNhdGVnb3J5
Q291bnRzLmFkZChvdGhlclByb3h5LT5jYXRlZ29yeSgpKTsKKyAgICAgICAgcG9saWN5Q291bnRz
LmFkZChvdGhlclByb3h5LT5yb3V0ZVNoYXJpbmdQb2xpY3koKSk7CisgICAgfQorCisgICAgaWYg
KGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCkpCisg
ICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOworICAgIGVsc2Ug
aWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW8pKQor
ICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW87CisgICAgZWxzZSBp
ZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrKSkK
KyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7CisgICAgZWxz
ZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpTb2xvQW1iaWVudFNv
dW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQ7
CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpBbWJp
ZW50U291bmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5k
OworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6QXVk
aW9Qcm9jZXNzaW5nKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkF1ZGlvUHJv
Y2Vzc2luZzsKKyAgICBlbHNlCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpOb25l
OworCisgICAgaWYgKHBvbGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6Okxv
bmdGb3JtVmlkZW8pKQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdG
b3JtVmlkZW87CisgICAgZWxzZSBpZiAocG9saWN5Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmlu
Z1BvbGljeTo6TG9uZ0Zvcm1BdWRpbykpCisgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1Bv
bGljeTo6TG9uZ0Zvcm1BdWRpbzsKKyAgICBlbHNlIGlmIChwb2xpY3lDb3VudHMuY29udGFpbnMo
Um91dGVTaGFyaW5nUG9saWN5OjpJbmRlcGVuZGVudCkpCisgICAgICAgIHBvbGljeSA9IFJvdXRl
U2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQ7CisgICAgZWxzZQorICAgICAgICBwb2xpY3kgPSBS
b3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQ7CisKKyAgICBtX3Nlc3Npb24tPnNldENhdGVnb3J5
KGNhdGVnb3J5LCBwb2xpY3kpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlcjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50
aWZpZXImIGlkLCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSkKK3sKKyAgICBmb3IgKGF1dG8m
IG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclBy
b3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhlclByb3h5LT5wcmVm
ZXJyZWRCdWZmZXJTaXplKCkgPCBwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcHJl
ZmVycmVkQnVmZmVyU2l6ZSA9IG90aGVyUHJveHktPnByZWZlcnJlZEJ1ZmZlclNpemUoKTsKKyAg
ICB9CisKKyAgICBtX3Nlc3Npb24tPnNldFByZWZlcnJlZEJ1ZmZlclNpemUocHJlZmVycmVkQnVm
ZmVyU2l6ZSk7Cit9CisKK2Jvb2wgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlU
b1NldEFjdGl2ZUZvclByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlkLCBib29sIGFj
dGl2ZSkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7CisgICAgYXV0byBw
cm94eSA9IGdldFByb3h5KGlkKTsKKyAgICBpZiAoIXByb3h5KQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBzaXplX3QgYWN0aXZlUHJveHlDb3VudCB7IDAgfTsKKyAgICBmb3IgKGF1dG8m
IG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclBy
b3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhlclByb3h5LT5pc0Fj
dGl2ZSgpKQorICAgICAgICAgICAgKythY3RpdmVQcm94eUNvdW50OworICAgIH0KKworICAgIGlm
ICghYWN0aXZlICYmIGFjdGl2ZVByb3h5Q291bnQgPiAxKSB7CisgICAgICAgIC8vIFRoaXMgcHJv
eHkgd2FudHMgdG8gZGUtYWN0aXZhdGUsIGJ1dCBvdGhlciBwcm94aWVzIGFyZSBzdGlsbAorICAg
ICAgICAvLyBhY3RpdmUuIE5vLW9wLCBhbmQgcmV0dXJuIGRlYWN0aXZhdGlvbiB3YXMgc3VjZXNz
ZnVsLgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIWFjdGl2ZSkgewor
ICAgICAgICAvLyBUaGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBhbmQgaXMgdGhlIGxh
c3QgcmVtYWluaW5nIGFjdGl2ZQorICAgICAgICAvLyBwcm94eS4gRGVhY3RpdmF0ZSB0aGUgc2Vz
c2lvbiwgYW5kIHJldHVybiB3aGV0aGVyIHRoYXQgZGVhY3RpdmF0aW9uCisgICAgICAgIC8vIHdh
cyBzdWNlc3NmdWw7CisgICAgICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGZh
bHNlKTsKKyAgICB9CisKKyAgICBpZiAoYWN0aXZlICYmICFhY3RpdmVQcm94eUNvdW50KSB7Cisg
ICAgICAgIC8vIFRoaXMgcHJveHkgYW5kIG9ubHkgdGhpcyBwcm94eSB3YW50cyB0byBiZWNvbWUg
YWN0aXZlLiBBY3RpdmF0ZQorICAgICAgICAvLyB0aGUgc2Vzc2lvbiwgYW5kIHJldHVybiB3aGV0
aGVyIHRoYXQgYWN0aXZhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIG1fc2Vz
c2lvbi0+dHJ5VG9TZXRBY3RpdmUoYWN0aXZlKTsKKyAgICB9CisKKyAgICAvLyBJZiB0aGlzIHBy
b3h5IGlzIEFtYmllbnQsIGFuZCB0aGUgc2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZSwgdGhpcwor
ICAgIC8vIHByb3h5IHdpbGwgbWl4IHdpdGggdGhlIGFjdGl2ZSBwcm94aWVzLiBOby1vcCwgYW5k
IHJldHVybiBhY3RpdmF0aW9uCisgICAgLy8gd2FzIHN1Y2Vzc2Z1bC4KKyAgICBpZiAoY2F0ZWdv
cnlDYW5NaXhXaXRoT3RoZXJzKHByb3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIE90aGVyd2lzZSwgdGhpcyBw
cm94eSB3YW50cyB0byBiZWNvbWUgYWN0aXZlLCBidXQgdGhlcmUgYXJlIG90aGVyCisgICAgLy8g
cHJveGllcyB3aG8gYXJlIGFscmVhZHkgYWN0aXZlLiBXYWxrIG92ZXIgdGhlIHByb3hpZXMsIGFu
ZCBpbnRlcnJ1cHQKKyAgICAvLyB0aG9zZSBwcm94aWVzIHdob3NlIGNhdGVvZ3JpZXMgaW5kaWNh
dGUgdGhleSBjYW5ub3QgbWl4IHdpdGggb3RoZXJzLgorICAgIGZvciAoYXV0byYgb3RoZXJQcm94
eSA6IG1fcHJveGllcy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoIW90aGVyUHJveHkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5LT5pc0FjdGl2ZSgpKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGNhdGVnb3J5Q2FuTWl4V2l0aE90
aGVycyhvdGhlclByb3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgIG90aGVyUHJveHktPmJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpJbnRlcnJ1cHRpb25UeXBlOjpTeXN0ZW1JbnRlcnJ1cHRpb24pOworICAgIH0KKyNlbmRpZgor
CisgICAgcmV0dXJuIHRydWU7CisKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDA0NTU3MTJmNWE4NjAxOTk5MzIzNzU3M2UzOWMyODRj
OGY2YzIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFV
RElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKTsKKyAgICB+UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGFkZFByb3h5KFdlYWtQdHI8UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk+JiYpOworICAgIHZvaWQgcmVtb3ZlUHJveHkoY29uc3QgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSog
Z2V0UHJveHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKKworICAgIHZvaWQg
c2V0Q2F0ZWdvcnlGb3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJiwg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmlu
Z1BvbGljeSk7CisgICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2Vzcyhjb25z
dCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIHNpemVfdCk7CisKKyAgICBib29sIHRyeVRv
U2V0QWN0aXZlRm9yUHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIGJv
b2wpOworCisgICAgY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uJiBzZXNzaW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uOyB9CisKK3ByaXZhdGU6CisgICAgVW5pcXVlUmVmPFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+PiBtX3Byb3hpZXM7Cit9
OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRiM2RlYzdjZDM5ZDAxMDJiODVmMGY5NWRmNGU0MzBmOWFl
MTNmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cmlu
ZGV4IDI1NmRjOTkwNWJmNDQ2NmQwYzJhZDU3NGQ4YzM2OGExNGJlNjk2M2EuLjRiYTE0ZGJhZjI0
YjI0MWU1OWRiMGE3ZjIwODBkMDJkMDI3YzNiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQpAQCAtMjM0LDYgKzIzNCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5v
dF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyJywKKyAgICAgICAgJ1dlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpS
ZW1vdGVDRE1JbnN0YW5jZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb25JZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA0MzZiYzI2MzRmMTBkZDAzYmQ5
MWYyNTJmOTdjMjY4N2YwNWY3OWI1Li4yNTJjOGZhZGFmZTFlYmEwMzkzNmY5YTkyY2RiZWViZGY5
NDI1ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCkBAIC0xMjQsNiArMTI0LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtZW1vcnlDYWNoZURpc2FibGVkIHsgZmFsc2UgfTsKICAgICBib29s
IGF0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1l
ZGlhIHsgZmFsc2UgfTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGJvb2wg
aGFzSW1hZ2VTZXJ2aWNlcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAwZmJhNTQ5OGFkZGVl
MDNjZThiOTU3ZDI4NWRjNDFkMTQ4N2M4NmRiLi4xMDU2YjllZGU1NGJhYWFlMmIyOWEwNTY3YTg1
ZjZhMTk0ODhiZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI2LDYgKzI2LDggQEAgR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5jcHAKK0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkuY3BwCitHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5j
cHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUNETUluc3RhbmNlUHJveHkuY3BwCkBAIC01NDcsNiArNTQ5LDcgQEAgV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlh
L0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNLmNwcAogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUNETUluc3RhbmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDkyNjliMGEzYmFmNTk0
ZjMzY2RlZDlmNTRiZTdmOTJmZWQwYjRlODkuLmVkOWY0NGJiOWYyMmUzYzI0ZjFkMmQ5ODA1ODMy
MWE4MTBmNzlkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTY1Niw2ICs2NTYsOCBAQCBM
aWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc01l
c3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAorUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBlODlkZTY5ODk0NzRiZjg5MWIyNjExNjExNmMxZGIwZDZhZjk5ZDA0
Li42MjFmYjFjOWVlMDkzMmQ1MmI0ZjFkNTJkMmI1YjBmM2UzMDYzNzY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NDUsNiArMTc0
NSw3IEBACiAJCUNEQUMyMEY4MjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEQUMyMEY1MjNGQzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5j
ZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0RBQzIwRjkyM0ZDNzI2QzAwMjFE
RUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEVDMjNG
QzM4MzgwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CiAJCUNEQUMyMEZBMjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREFDMjBFRjIzRkMzODM5MDAyMURFRTMgLyogUmVtb3RlQ0RNUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDREJCNDlGRDI0MEQ5QTcyMDAxN0MyOTIgLyog
UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAqLzsgfTsKIAkJQ0RDMjgzMUQyMDFCRDc5RDAw
RTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDMjgzMUIyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVs
bHNjcmVlblN0YWNrVmlldy5oICovOyB9OwogCQlDRENBODVDOTEzMkFCQTRFMDBFOTYxREYgLyog
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDQTg1QzcxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0UxMUFENTIxQ0JDNDgyRjAwNjgxRUU1
IC8qIENvZGVTaWduaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRTExQUQ1MTFDQkM0ODJGMDA2ODFFRTUgLyogQ29kZVNpZ25pbmcuaCAqLzsgfTsK
QEAgLTUxMDMsNiArNTEwNCwxNSBAQAogCQlDREFDMjBGNDIzRkMzODNBMDAyMURFRTMgLyogUmVt
b3RlQ0RNUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVDRE1Qcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
QUMyMEY1MjNGQzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNE
TUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREFDMjBGNjIzRkMzODNCMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VQcm94
eU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEQkI0OUY0MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEQkI0OUY1MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjYyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY3MjQwRDhDOTUwMDE3
QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEQkI0OUY4MjQwRDhENTMwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5
RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyog
UmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRp
b1Nlc3Npb25JZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0
OUZDMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDMjgzMUIyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVs
bHNjcmVlblN0YWNrVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcu
aDsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbHNjcmVlblN0YWNrVmlldy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREMyODMxQzIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxs
c2NyZWVuU3RhY2tWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGdWxsc2NyZWVuU3Rh
Y2tWaWV3Lm1tOyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREMzODJGNzE3MjExNTA2MDA4QTJGQzMg
LyogQ0ZOZXR3b3JrLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ0ZOZXR3b3JrLmZyYW1l
d29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NGTmV0d29yay5mcmFtZXdv
cms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CkBAIC01MTEwLDYgKzUxMjAsMTcgQEAK
IAkJQ0RDQTg1QzYxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENB
ODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5
NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IElPS2l0LmZyYW1ld29y
azsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0lPS2l0LmZyYW1ld29yazsgc291
cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKKwkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8q
IFJlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24u
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcwMjQwREQ0
RUYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDREQ1MzU3MjI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTczMjQw
RERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RE
NTM1NzQyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8q
IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U2Vzc2lvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc2
MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzcyNDBEREUwNzAwRjdCOEM0
IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDREQ1MzU3OTI0MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRTExQUQ0RjFDQkM0N0Y4MDA2ODFFRTUgLyogQ29kZVNpZ25pbmcubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb2RlU2lnbmluZy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UxMUFENTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWdu
aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvZGVTaWduaW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFMUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBB
c3NlcnRpb25TZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
c3NlcnRpb25TZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTM4
OSw2ICs1NDEwLDExIEBACiAJCQkJOUI1QkVDMjkyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgKi8sCiAJCQkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVG
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oICovLAogCQkJCTlCNUJFQzJFMjQwMTAx
OEMwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4gKi8s
CisJCQkJQ0RCQjQ5RjUyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAg
Ki8sCisJCQkJQ0RCQjQ5RjQyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5o
ICovLAorCQkJCUNERDUzNTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24u
bWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAqLywKKwkJCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0My
OTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oICovLAogCQkJCUNEQUMyMEJGMjNG
QzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE0uY3BwICovLAogCQkJCUNEQUMyMEJBMjNGQzJGNzQw
MDIxREVFMyAvKiBSZW1vdGVDRE0uaCAqLywKIAkJCQlDREFDMjBCODIzRkMyRjczMDAyMURFRTMg
LyogUmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oICovLApAQCAtNTQzMSw2ICs1NDU3LDEyIEBACiAJ
CQkJOUIxMjI5Q0MyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmNwcCAqLywKIAkJCQk5QjEyMjlDQjIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIuaCAqLywKIAkJCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEgLyog
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5
RjcyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCAqLywKKwkJ
CQlDREJCNDlGNjI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCAq
LywKKwkJCQlDREJCNDlGODI0MEQ4RDUzMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAgKi8sCisJCQkJQ0RCQjQ5RjkyNDBEOTYzQzAw
MTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oICovLAorCQkJCUNERDUz
NTcwMjQwREQ0RUYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVz
c2FnZXMuaW4gKi8sCiAJCQkJMDcxQkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlv
VHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90
ZUF1ZGlvVHJhY2tQcm94eS5oICovLAogCQkJCUNEQUMyMDc5MjNGQjFFMjEwMDIxREVFMyAvKiBS
ZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwICovLApAQCAtOTg1MCw2ICs5ODgyLDE1IEBACiAJCQkJ
MUEwNDNCNUMxMjRENUU5RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmgg
Ki8sCiAJCQkJMUE4RUZBNkUxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKIAkJCQkxQThFRkE2RjEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJv
eHlNZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTc1MjQwRERFMDcw
MEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc0
MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAq
LywKKwkJCQlDREQ1MzU3MzI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDREQ1MzU3ODI0MERERTA4MDBG
N0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJ
CQlDREQ1MzU3OTI0MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJQ0RENTM1NzEyNDBEREUwNjAwRjdCOEM0IC8q
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDREQ1
MzU3MjI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5o
ICovLAorCQkJCUNERDUzNTc3MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCUNEQUMyMEYyMjNGQzM4M0EwMDIxREVFMyAv
KiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQUMy
MEYzMjNGQzM4M0EwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oICov
LAogCQkJCUNEQUMyMEVFMjNGQzM4MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlN
ZXNzYWdlc1JlcGxpZXMuaCAqLywKQEAgLTEwNzczLDYgKzEwODE0LDcgQEAKIAkJCQk5QjEyMjlE
MjIzRkYyQkNDMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUI1QkVDMkEyNDAxMDE1
ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0RCQjQ5RkQyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQUMyMEM3MjNGQzJGNzUwMDIxREVFMyAv
KiBSZW1vdGVDRE0uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQUMyMEM1MjNGQzJGNzUwMDIxREVF
MyAvKiBSZW1vdGVDRE1Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBD
RDIzRkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2JlNWNlYzhlYTFiNjg3ZDViZGQ3MTdkY2RjMzMx
YzQ2MWFkZDU1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcApAQCAtMCwwICsxLDk5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2lu
Y2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkdQ
VVByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1VuaXF1
ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb24+IFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKFdlYlBy
b2Nlc3MmIHByb2Nlc3MpCit7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBj
b25maWd1cmF0aW9uOworICAgIHByb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OkVuc3VyZUF1ZGlvU2Vzc2lvbigpLCBNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6RW5zdXJlQXVkaW9TZXNzaW9uOjpSZXBseShjb25maWd1cmF0aW9uKSwgeyB9KTsKKyAgICBy
ZXR1cm4gbWFrZVVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb24+KHByb2Nlc3MsIFdURk1vdmUo
Y29uZmlndXJhdGlvbikpOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb246OlJlbW90ZUF1ZGlvU2Vz
c2lvbihXZWJQcm9jZXNzJiBwcm9jZXNzLCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
JiYgY29uZmlndXJhdGlvbikKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQorICAgICwgbV9jb25m
aWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vz
c2lvbjo6flJlbW90ZUF1ZGlvU2Vzc2lvbigpID0gZGVmYXVsdDsKKworSVBDOjpDb25uZWN0aW9u
JiBSZW1vdGVBdWRpb1Nlc3Npb246OmNvbm5lY3Rpb24oKQoreworICAgIHJldHVybiBtX3Byb2Nl
c3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgdHlwZSwgUm91dGVT
aGFyaW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlNldENhdGVnb3J5KHR5cGUsIHBvbGljeSksIHsgfSk7
Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNp
emVfdCBzaXplKQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eTo6U2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplKSwgeyB9KTsKK30KKwor
Ym9vbCBSZW1vdGVBdWRpb1Nlc3Npb246OnRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCBhY3Rp
dmUpCit7CisgICAgYm9vbCBzdWNjZWVkZWQ7CisgICAgY29ubmVjdGlvbigpLnNlbmRTeW5jKE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6VHJ5VG9TZXRBY3RpdmUoYWN0aXZlKSwg
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpUcnlUb1NldEFjdGl2ZTo6UmVwbHko
c3VjY2VlZGVkKSwgeyB9KTsKKyAgICByZXR1cm4gc3VjY2VlZGVkOworfQorCit2b2lkIFJlbW90
ZUF1ZGlvU2Vzc2lvbjo6Y29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9TZXNzaW9uQ29u
ZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgYm9vbCBtdXRlZFN0YXRlQ2hhbmdl
ZCA9IGNvbmZpZ3VyYXRpb24uaXNNdXRlZCAhPSBtX2NvbmZpZ3VyYXRpb24uaXNNdXRlZDsKKwor
ICAgIG1fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247CisKKyAgICBpZiAobXV0ZWRTdGF0
ZUNoYW5nZWQpCisgICAgICAgIGhhbmRsZU11dGVkU3RhdGVDaGFuZ2UoKTsKK30KKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb246OmJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpzaGFyZWRNYW5hZ2VyKCkuYmVnaW5JbnRlcnJ1cHRpb24odHlwZSk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uOjplbmRJbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246
OkVuZEludGVycnVwdGlvbkZsYWdzIGZsYWdzKQoreworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmVuZEludGVycnVwdGlvbihmbGFncyk7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGY4ZGM4MjNlM2YwMTA3YzE5M2Jl
OTQ4YmY3ZmI5NjhiY2U3OWY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaApAQCAtMCwwICsxLDg2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVT
RShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
QXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
PgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlvbjsKK2NsYXNzIFdlYlByb2Nlc3M7
CisKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvbiBmaW5hbAorICAgIDogcHVibGljIFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbgorICAgICwgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8UmVtb3RlQXVk
aW9TZXNzaW9uPiBjcmVhdGUoV2ViUHJvY2VzcyYpOworICAgIHZpcnR1YWwgflJlbW90ZUF1ZGlv
U2Vzc2lvbigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBVbmlxdWVSZWY8UmVtb3RlQXVkaW9T
ZXNzaW9uPiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPFJlbW90ZUF1
ZGlvU2Vzc2lvbj4oV2ViUHJvY2VzcyYsIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24m
Jik7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uKFdlYlByb2Nlc3MmLCBSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uJiYpOworICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOwor
CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2Fn
ZXMKKyAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24mJik7CisgICAgdm9pZCBiZWdpbkludGVycnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSk7CisgICAgdm9pZCBlbmRJbnRlcnJ1cHRp
b24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzKTsK
KworICAgIC8vIEF1ZGlvU2Vzc2lvbgorICAgIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBl
LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpIGZpbmFsOworICAgIHZvaWQgc2V0UHJlZmVy
cmVkQnVmZmVyU2l6ZShzaXplX3QpIGZpbmFsOworICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVJbnRl
cm5hbChib29sKSBmaW5hbDsKKworICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5jYXRlZ29yeTsgfQorICAgIFdlYkNvcmU6OlJv
dXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NvbmZpZ3VyYXRpb24ucm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAgU3RyaW5nIHJvdXRp
bmdDb250ZXh0VUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnJvdXRp
bmdDb250ZXh0VUlEOyB9CisgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fY29uZmlndXJhdGlvbi5zYW1wbGVSYXRlOyB9CisgICAgc2l6ZV90IGJ1ZmZlclNpemUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYnVmZmVyU2l6ZTsgfQorICAg
IHNpemVfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9j
b25maWd1cmF0aW9uLm51bWJlck9mT3V0cHV0Q2hhbm5lbHM7IH0KKyAgICBzaXplX3QgcHJlZmVy
cmVkQnVmZmVyU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5wcmVm
ZXJyZWRCdWZmZXJTaXplOyB9CisgICAgYm9vbCBpc011dGVkKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9jb25maWd1cmF0aW9uLmlzTXV0ZWQ7IH0KKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmlzQWN0aXZlOyB9CisKKyAgICBXZWJQcm9j
ZXNzJiBtX3Byb2Nlc3M7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBtX2Nv
bmZpZ3VyYXRpb247Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNz
YWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wODk2MjhmNjU3ZWY3Y2RiY2RiYTc3OWQ0MWRiOTliY2E1ZDQ0
YjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCitt
ZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb24gTm90UmVmQ291bnRlZCB7CisgICAgQ29uZmln
dXJhdGlvbkNoYW5nZWQoc3RydWN0IFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uKQorICAgIEJlZ2luSW50ZXJydXB0aW9uKGVudW06dWludDhfdCBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQorICAg
IEVuZEludGVycnVwdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Np
b246OkVuZEludGVycnVwdGlvbkZsYWdzIGZsYWdzKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29u
ZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTVlNjAyOTA0Njg4NWY1ZmZm
YTgzMDIwYWZhY2U4OGQ0NzNlZWYyZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCkBA
IC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb1Nlc3Npb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBSZW1vdGVBdWRp
b1Nlc3Npb25Db25maWd1cmF0aW9uIHsKKworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlIGNhdGVnb3J5IHsgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok5vbmUgfTsKKyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9s
aWN5IHsgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0IH07CisgICAgU3RyaW5n
IHJvdXRpbmdDb250ZXh0VUlEOworICAgIGZsb2F0IHNhbXBsZVJhdGUgeyAwIH07CisgICAgdWlu
dDY0X3QgYnVmZmVyU2l6ZSB7IDAgfTsKKyAgICB1aW50NjRfdCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzIHsgMCB9OworICAgIHVpbnQ2NF90IHByZWZlcnJlZEJ1ZmZlclNpemUgeyAwIH07CisgICAg
Ym9vbCBpc011dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIGlzQWN0aXZlIHsgZmFsc2UgfTsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgY2F0ZWdvcnk7CisgICAgICAg
IGVuY29kZXIgPDwgcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBlbmNvZGVyIDw8IHJvdXRp
bmdDb250ZXh0VUlEOworICAgICAgICBlbmNvZGVyIDw8IHNhbXBsZVJhdGU7CisgICAgICAgIGVu
Y29kZXIgPDwgYnVmZmVyU2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBudW1iZXJPZk91dHB1dENo
YW5uZWxzOworICAgICAgICBlbmNvZGVyIDw8IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgICAg
IGVuY29kZXIgPDwgaXNNdXRlZDsKKyAgICAgICAgZW5jb2RlciA8PCBpc0FjdGl2ZTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9uYWw8UmVt
b3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisg
ICAgeworICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZT4gY2F0ZWdvcnk7CisgICAgICAgIGRlY29kZXIgPj4gY2F0ZWdvcnk7CisgICAgICAgIGlmICgh
Y2F0ZWdvcnkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9w
dGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gcm91dGVTaGFyaW5nUG9saWN5Owor
ICAgICAgICBkZWNvZGVyID4+IHJvdXRlU2hhcmluZ1BvbGljeTsKKyAgICAgICAgaWYgKCFyb3V0
ZVNoYXJpbmdQb2xpY3kpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
ICAgIE9wdGlvbmFsPFN0cmluZz4gcm91dGluZ0NvbnRleHRVSUQ7CisgICAgICAgIGRlY29kZXIg
Pj4gcm91dGluZ0NvbnRleHRVSUQ7CisgICAgICAgIGlmICghcm91dGluZ0NvbnRleHRVSUQpCisg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGZsb2F0
PiBzYW1wbGVSYXRlOworICAgICAgICBkZWNvZGVyID4+IHNhbXBsZVJhdGU7CisgICAgICAgIGlm
ICghc2FtcGxlUmF0ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8dWludDY0X3Q+IGJ1ZmZlclNpemU7CisgICAgICAgIGRlY29kZXIgPj4gYnVm
ZmVyU2l6ZTsKKyAgICAgICAgaWYgKCFidWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDx1aW50NjRfdD4gbnVtYmVyT2ZPdXRwdXRD
aGFubmVsczsKKyAgICAgICAgZGVjb2RlciA+PiBudW1iZXJPZk91dHB1dENoYW5uZWxzOworICAg
ICAgICBpZiAoIW51bWJlck9mT3V0cHV0Q2hhbm5lbHMpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBwcmVmZXJyZWRCdWZmZXJT
aXplOworICAgICAgICBkZWNvZGVyID4+IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgICAgIGlm
ICghcHJlZmVycmVkQnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNNdXRlZDsKKyAgICAgICAgZGVjb2RlciA+PiBp
c011dGVkOworICAgICAgICBpZiAoIWlzTXV0ZWQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGlzQWN0aXZlOworICAgICAgICBkZWNv
ZGVyID4+IGlzQWN0aXZlOworICAgICAgICBpZiAoIWlzQWN0aXZlKQorICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4ge3sKKyAgICAgICAgICAgIFdURk1v
dmUoKmNhdGVnb3J5KSwKKyAgICAgICAgICAgIFdURk1vdmUoKnJvdXRlU2hhcmluZ1BvbGljeSks
CisgICAgICAgICAgICBXVEZNb3ZlKCpyb3V0aW5nQ29udGV4dFVJRCksCisgICAgICAgICAgICAq
c2FtcGxlUmF0ZSwKKyAgICAgICAgICAgICpidWZmZXJTaXplLAorICAgICAgICAgICAgKm51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsCisgICAgICAgICAgICAqcHJlZmVycmVkQnVmZmVyU2l6ZSwKKyAg
ICAgICAgICAgICppc011dGVkLAorICAgICAgICAgICAgKmlzQWN0aXZlLAorICAgICAgICB9fTsK
KyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
SWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25JZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzE0ODBjNjk0ZTJiM2Q5N2I1OTZl
MmEwNzMwM2Q2N2ZiMGY5OWJkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oCkBAIC0wLDAg
KzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRp
Zmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBSZW1vdGVBdWRpb1Nlc3Npb25J
ZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyID0g
T2JqZWN0SWRlbnRpZmllcjxSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyVHlwZT47CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAppbmRleCA1MWMyZjVlNTNiMzQwYzIyMDVmNzg5YjRiMzczYTJlNTA3YmI2ZWJi
Li4zZTg2ODhmYWYxMDM0ZDRkN2RiNzA3NjJjNGU0MTA2YzllNTRiN2M1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAi
TmV0d29ya1Nlc3Npb24uaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgorI2lu
Y2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgi
CiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgpAQCAt
NDcxLDYgKzQ3Miw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgV2ViUmVzb3VyY2VM
b2FkT2JzZXJ2ZXI6OnNldFNob3VsZExvZ1VzZXJJbnRlcmFjdGlvbihwYXJhbWV0ZXJzLnNob3Vs
ZExvZ1VzZXJJbnRlcmFjdGlvbik7CiAjZW5kaWYKIAorICAgIHNldFVzZUdQVVByb2Nlc3NGb3JN
ZWRpYShwYXJhbWV0ZXJzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSk7CisKICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKFByb2Nlc3MsICJpbml0aWFsaXplV2ViUHJvY2VzczogUHJlc2VudGluZyBw
cm9jZXNzID0gJWQiLCBXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKSk7CiB9CiAK
QEAgLTE5OTcsNiArMjAwMCwxOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFNob3VsZEJsb2NrVGhp
cmRQYXJ0eUNvb2tpZXNGb3JUZXN0aW5nKFRoaXJkUGFydHlDb29raWVCbG9jawogfQogI2VuZGlm
CiAKK3ZvaWQgV2ViUHJvY2Vzczo6c2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKGJvb2wgdXNlR1BV
UHJvY2Vzc0Zvck1lZGlhKQoreworICAgIGlmICh1c2VHUFVQcm9jZXNzRm9yTWVkaWEgPT0gbV91
c2VHUFVQcm9jZXNzRm9yTWVkaWEpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdXNlR1BVUHJv
Y2Vzc0Zvck1lZGlhID0gdXNlR1BVUHJvY2Vzc0Zvck1lZGlhOworICAgIGlmICh1c2VHUFVQcm9j
ZXNzRm9yTWVkaWEpCisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2V0U2hhcmVkU2Vzc2lvbihSZW1v
dGVBdWRpb1Nlc3Npb246OmNyZWF0ZSgqdGhpcykpOworICAgIGVsc2UKKyAgICAgICAgQXVkaW9T
ZXNzaW9uOjpzZXRTaGFyZWRTZXNzaW9uKEF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCkpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX1NFU1NJT05fSUQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDY1YmYwNDE3ZDRmOGMxZGI1MWY5
ZTk3NTBiY2I5N2Y5YTViYzJiOTAuLjY1NWU3OGRmMDhkZjA4YWM5MmE1NmJmYzljYzhhN2E5ZDUy
NTVkM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNTE3LDYgKzUx
Nyw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIHsg
cmV0dXJuIG1fc2Vzc2lvbklEID8gbV9zZXNzaW9uSUQtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dl
ZCgpIDogdHJ1ZTsgfQogCisgICAgdm9pZCBzZXRVc2VHUFVQcm9jZXNzRm9yTWVkaWEoYm9vbCk7
CisKICAgICBSZWZQdHI8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBtX3dlYkNvbm5lY3Rpb247
CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8V2ViUGFnZT4+
IG1fcGFnZU1hcDsKQEAgLTY1Myw2ICs2NTUsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTYW5k
Ym94RXh0ZW5zaW9uPiBtX2Fzc2V0U2VydmljZUV4dGVuc2lvbjsKICAgICBSZWZQdHI8U2FuZGJv
eEV4dGVuc2lvbj4gbV9hc3NldFNlcnZpY2VWMkV4dGVuc2lvbjsKICNlbmRpZgorCisgICAgYm9v
bCBtX3VzZUdQVVByb2Nlc3NGb3JNZWRpYSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392600</attachid>
            <date>2020-03-05 10:58:11 -0800</date>
            <delta_ts>2020-03-05 11:43:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208583-20200305105811.patch</filename>
            <type>text/plain</type>
            <size>87082</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZmZTQ3YzEyYzgxMzExY2M4OWRkYmI5
NTE2MjE0MjU0ZGU5YTAxNjEuLjc3OWQ0ZGE1Y2JmNTQ4ZWJkMTAzNzg2MDQ5NGNjNDIyMjA4ZGMy
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRk
IFVuaXF1ZVJlZiB0byB0aGUgbGlzdCBvZiBmb3J3YXJkLWRlY2xhcmVkIHRlbXBsYXRlIHR5cGVz
LgorCisgICAgICAgICogd3RmL0ZvcndhcmQuaDoKKwogMjAyMC0wMy0wNCAgTWFyayBMYW0gIDxt
YXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgSGFuZGxlIGFuIG91dCBvZiBtZW1vcnkgZXJy
b3Igd2hpbGUgY29uc3RydWN0aW5nIHRoZSBCeXRlY29kZUdlbmVyYXRvci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBmYmM4Njg2ZjZjNWU5NGViNTZkYzZjOTFmM2I5ZmJhMTkwZTUyZWQ4Li5kMDM1Mjk5YTI4NmIx
Y2EwNjJjNDRjOGJmMjViNDRmMDRhZDM0NmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMjAtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0dQVVBdIEltcGxlbWVudCBSZW1vdGVBdWRpb1Nlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODU4MworCisgICAgICAgIFJldmlld2VkIGJ5
IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRkIEVudW1UcmFpdHMgZm9yIGFsbCB0aGUg
ZW51bWVyYXRpb25zIGluc2lkZSBBdWRpb1Nlc3Npb24uCisKKyAgICAgICAgTWFrZSBtYW55IEF1
ZGlvU2Vzc2lvbiBtZXRob2RzIHZpcnR1YWwsIHNvIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gaW4g
dGhlIGNhc2Ugd2hlcmUgdGhlCisgICAgICAgIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmg6CisKIDIwMjAtMDMtMDUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUgUGF0aDo6ZW5jb2RlIG9uIHBsYXRmb3Jt
cyB0aGF0IHN1cHBvcnQgQ0dQYXRoR2V0TnVtYmVyT2ZFbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlOWQz
OTlhYjZlMGZjYzRmZTc1N2Y5OGYxMjE5OTFiOWIxZDMwNDFiLi5hZDRjZTZhNDM0YmIzMjUyNDFk
YWExMTNjMmY1NGZmODA5YzliYTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIwLTAz
LTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBJ
bXBsZW1lbnQgUmVtb3RlQXVkaW9TZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBhIHN1YmNsYXNzIG9mIEF1ZGlvU2Vzc2lvbiB3aGlj
aCwgaW5zdGVhZCBvZiBtb2RpZnlpbmcgdGhlIGF1ZGlvIGJlaGF2aW9yIG9mIHRoZSBjdXJyZW50
IHByb2Nlc3MsIG1vZGlmaWVzIHRoZQorICAgICAgICBhdWRpbyBiZWhhdmlvciBvZiB0aGUgR1BV
IFByb2Nlc3MuIEFuZCwgaW4gdGhlIEdQVSBQcm9jZXNzLCBzaW5jZSBpdCByZXByZXNlbnRzIHRo
ZSBhdWRpbyBiZWhhdmlvciBvZiBwb3RlbnRpYWxseQorICAgICAgICBtdWx0aXBsZSBzZXBhcmF0
ZSBXZWJDb250ZW50IHByb2Nlc3Nlcy4KKworICAgICAgICBPdmVycmlkZSB0aGUgZGVmYXVsdCBz
aGFyZWQgQXVkaW9TZXNzaW9uIGF0IFdlYlByb2Nlc3MgaW5pdGlhbGl6YXRpb24gdGltZS4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZSk6
CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmF1ZGlvU2Vzc2lv
blByb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5z
dXJlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6bGVnYWN5Q2RtRmFjdG9yeVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6R1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6Omlu
aXRpYWxpemVHUFVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6YXVkaW9T
ZXNzaW9uTWFuYWdlciBjb25zdCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlJlbW90ZUF1ZGlv
U2Vzc2lvblByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6
OnByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9u
UHJveHk6OmNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eTo6c2V0Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eTo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5Ojp0cnlUb1NldEFjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpiZWdpbkludGVycnVwdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjplbmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YXVkaW9TZXNzaW9uTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Ojpjb25uZWN0aW9uKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y2F0ZWdvcnkgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6cm91dGVTaGFy
aW5nUG9saWN5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHk6OnByZWZlcnJlZEJ1ZmZlclNpemUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eTo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpSZW1vdGVB
dWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXI6OmFkZFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpyZW1vdmVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6Z2V0UHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OnNldENhdGVnb3J5Rm9yUHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXI6OnRyeVRvU2V0QWN0aXZlRm9yUHJvY2Vzcyk6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuaDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjpzZXNzaW9uIGNv
bnN0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6UmVtb3RlQXVkaW9TZXNzaW9uKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmVJbnRlcm5hbCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmJlZ2luSW50ZXJydXB0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjplbmRJbnRlcnJ1cHRpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmln
dXJhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29u
ZmlndXJhdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9T
ZXNzaW9uQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyLmg6CisKIDIwMjAtMDMtMDUgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEV4cG9ydCBOb3dQbGF5aW5n
IGNvbW1hbmRzIHRvIEdQVVByb2Nlc3Mgd2hlbiBtZWRpYSBwbGF5aW5nIGluIEdQVVByb2Nlc3Mg
aXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNl
L1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDcwZGRiOTE2ZTUwYzZlMjg1MmI3ZjllNGUwZTNhNThm
NzAzYThmMGQuLjZlOTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3
YXJkLmgKQEAgLTY4LDYgKzY4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBE
dW1iUHRyVHJhaXRzPFQ+PiBjbGFzcyBSZWY7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSA9IER1bWJQdHJUcmFpdHM8VD4+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBj
bGFzcyBTdHJpbmdCdWZmZXI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBj
bGFzcyBTdHJpbmdUeXBlQWRhcHRlcjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFVuaXF1
ZVJlZjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CiAKIHRlbXBsYXRlPHR5
cGVuYW1lPiBzdHJ1Y3QgRGVmYXVsdEhhc2ggeyB1c2luZyBIYXNoID0gdm9pZDsgfTsKQEAgLTEy
NSw2ICsxMjYsNyBAQCB1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlRleHRQb3Np
dGlvbjsKIHVzaW5nIFdURjo6VGV4dFN0cmVhbTsKIHVzaW5nIFdURjo6VVJMOwordXNpbmcgV1RG
OjpVbmlxdWVSZWY7CiB1c2luZyBXVEY6OlZhcmlhbnQ7CiB1c2luZyBXVEY6OlZlY3RvcjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKaW5kZXgg
YjVmYjU4MDY0OGY5Y2Y4ZWM0ZjE4NmZhZmE0OGUxM2ZkY2YyZjU3ZC4uZjM1ZmVhYmZlOTY3MTIw
OGQ0YTMwYjg2Mjc5MGI1MTNjYmVlZTc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCkBAIC0zMywxMCArMzMsMjUgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitzdGF0aWMgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4mIHNoYXJlZEF1ZGlv
U2Vzc2lvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVuaXF1ZVJlZjxBdWRpb1Nl
c3Npb24+PiBzZXNzaW9uID0gQXVkaW9TZXNzaW9uOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gc2Vz
c2lvbi5nZXQoKTsKK30KKworVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4gQXVkaW9TZXNzaW9uOjpj
cmVhdGUoKQoreworICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4oKTsKK30K
KwogQXVkaW9TZXNzaW9uJiBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdWRpb1Nlc3Npb24+IHNlc3Npb247Ci0gICAgcmV0dXJuIHNl
c3Npb247CisgICAgcmV0dXJuIHNoYXJlZEF1ZGlvU2Vzc2lvbigpOworfQorCit2b2lkIEF1ZGlv
U2Vzc2lvbjo6c2V0U2hhcmVkU2Vzc2lvbihVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiYmIHNlc3Np
b24pCit7CisgICAgc2hhcmVkQXVkaW9TZXNzaW9uKCkgPSBXVEZNb3ZlKHNlc3Npb24pOwogfQog
CiBib29sIEF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCmluZGV4IDBkYTc1ZmRhNGEz
YTdjNzE3Nzc4NDQ1OGVkNjQyMDg2NjFjNzZiMzUuLmZhNDIxMmZkMDU5YWNhNjRhYzZjZDY5Nzkx
MjM0ZjlhMjY2M2NhZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
U2Vzc2lvbi5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDEzICs0NSwxOCBAQCBlbnVtIGNs
YXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3QgewogICAgIExvbmdGb3JtVmlkZW8KIH07
CiAKLWNsYXNzIEF1ZGlvU2Vzc2lvbiBmaW5hbCB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBBdWRp
b1Nlc3Npb24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEF1ZGlvU2Vzc2lvbik7CisgICAgZnJpZW5kIGNsYXNzIFVuaXF1ZVJlZjxBdWRp
b1Nlc3Npb24+OworICAgIGZyaWVuZCBVbmlxdWVSZWY8QXVkaW9TZXNzaW9uPiBXVEY6Om1ha2VV
bmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPEF1ZGlvU2Vzc2lvbj4oKTsKIHB1YmxpYzoK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQXVkaW9TZXNzaW9uJiBzaGFyZWRTZXNzaW9uKCk7
CisgICAgc3RhdGljIFVuaXF1ZVJlZjxBdWRpb1Nlc3Npb24+IGNyZWF0ZSgpOworICAgIHN0YXRp
YyB2b2lkIHNldFNoYXJlZFNlc3Npb24oVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvbj4mJik7CisgICAg
c3RhdGljIEF1ZGlvU2Vzc2lvbiYgc2hhcmVkU2Vzc2lvbigpOworICAgIHZpcnR1YWwgfkF1ZGlv
U2Vzc2lvbigpOwogCi0gICAgZW51bSBDYXRlZ29yeVR5cGUgeworICAgIGVudW0gQ2F0ZWdvcnlU
eXBlIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUsCiAgICAgICAgIEFtYmllbnRTb3VuZCwKICAg
ICAgICAgU29sb0FtYmllbnRTb3VuZCwKQEAgLTU5LDIzICs2NSwyMyBAQCBwdWJsaWM6CiAgICAg
ICAgIFBsYXlBbmRSZWNvcmQsCiAgICAgICAgIEF1ZGlvUHJvY2Vzc2luZywKICAgICB9OwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBSb3V0ZVNoYXJp
bmdQb2xpY3kpOwotICAgIFdFQkNPUkVfRVhQT1JUIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNv
bnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUsIFJvdXRlU2hh
cmluZ1BvbGljeSk7CisgICAgdmlydHVhbCBDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdDsK
IAogICAgIHZvaWQgc2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUpOwogICAgIENhdGVn
b3J5VHlwZSBjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3Q7CiAKLSAgICBSb3V0ZVNoYXJpbmdQb2xp
Y3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3Q7Ci0gICAgU3RyaW5nIHJvdXRpbmdDb250ZXh0
VUlEKCkgY29uc3Q7CisgICAgdmlydHVhbCBSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5n
UG9saWN5KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQoKSBj
b25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdDsKLSAg
ICBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZk91dHB1dENo
YW5uZWxzKCkgY29uc3Q7CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBzaXplX3QgYnVmZmVyU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgc2l6ZV90
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdDsKIAogICAgIGJvb2wgdHJ5VG9TZXRBY3Rp
dmUoYm9vbCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6
ZSgpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6
ZShzaXplX3QpOworICAgIHZpcnR1YWwgc2l6ZV90IHByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpOwogCiAg
ICAgY2xhc3MgTXV0ZWRTdGF0ZU9ic2VydmVyIHsKICAgICBwdWJsaWM6CkBAIC04NywxNyArOTMs
MTYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVP
YnNlcnZlciopOwogICAgIHZvaWQgcmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVP
YnNlcnZlciopOwogCi0gICAgYm9vbCBpc011dGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBoYW5kbGVN
dXRlZFN0YXRlQ2hhbmdlKCk7CisgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwogCi0gICAgYm9vbCBpc0Fj
dGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgdmlydHVhbCBib29sIGlzQWN0
aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoK
ICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRp
b1Nlc3Npb24oKTsKLSAgICB+QXVkaW9TZXNzaW9uKCk7CiAKLSAgICBib29sIHRyeVRvU2V0QWN0
aXZlSW50ZXJuYWwoYm9vbCk7CisgICAgdmlydHVhbCBib29sIHRyeVRvU2V0QWN0aXZlSW50ZXJu
YWwoYm9vbCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUHJpdmF0ZT4gbV9w
cml2YXRlOwogICAgIEhhc2hTZXQ8TXV0ZWRTdGF0ZU9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CkBA
IC0xMjAsNiArMTI1LDE5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
Um91dGVTaGFyaW5nUG9saWN5PiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGUsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6Ok5vbmUs
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkFtYmllbnRTb3VuZCwK
KyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6U29sb0FtYmllbnRTb3Vu
ZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6TWVkaWFQbGF5YmFj
aywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZTo6UmVjb3JkQXVkaW8s
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OlBsYXlBbmRSZWNvcmQs
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6OkF1ZGlvUHJvY2Vzc2lu
ZworICAgID47Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgogc3RydWN0IExvZ0FyZ3Vt
ZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1N
ZWRpYVNlc3Npb24uaAppbmRleCBlMmIzOGEwMWQwYWE1YTY2ZDM3NzkxMWVkNDAxZTUyODkwNzg5
NzA4Li45MzA4NWIwZDQyN2FlYmU4NDEwZTVkMDcxOTM4YWIwNjAxNDQxYWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgK
QEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNl
c3Npb24oKTsKIAotICAgIGVudW0gY2xhc3MgTWVkaWFUeXBlIHsKKyAgICBlbnVtIGNsYXNzIE1l
ZGlhVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb25lID0gMCwKICAgICAgICAgVmlkZW8sCiAg
ICAgICAgIFZpZGVvQXVkaW8sCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVR5
cGUgbWVkaWFUeXBlKCkgY29uc3Q7CiAgICAgTWVkaWFUeXBlIHByZXNlbnRhdGlvblR5cGUoKSBj
b25zdDsKIAotICAgIGVudW0gU3RhdGUgeworICAgIGVudW0gU3RhdGUgOiB1aW50OF90IHsKICAg
ICAgICAgSWRsZSwKICAgICAgICAgQXV0b3BsYXlpbmcsCiAgICAgICAgIFBsYXlpbmcsCkBAIC04
MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhdGU7IH0KICAgICB2b2lkIHNldFN0YXRlKFN0YXRlKTsKIAotICAgIGVudW0gSW50ZXJydXB0
aW9uVHlwZSB7CisgICAgZW51bSBJbnRlcnJ1cHRpb25UeXBlIDogdWludDhfdCB7CiAgICAgICAg
IE5vSW50ZXJydXB0aW9uLAogICAgICAgICBTeXN0ZW1TbGVlcCwKICAgICAgICAgRW50ZXJpbmdC
YWNrZ3JvdW5kLApAQCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBJbnRlcnJ1
cHRpb25UeXBlIGludGVycnVwdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBtX2ludGVycnVwdGlv
blR5cGU7IH0KIAotICAgIGVudW0gRW5kSW50ZXJydXB0aW9uRmxhZ3MgeworICAgIGVudW0gRW5k
SW50ZXJydXB0aW9uRmxhZ3MgOiB1aW50OF90IHsKICAgICAgICAgTm9GbGFncyA9IDAsCiAgICAg
ICAgIE1heVJlc3VtZVBsYXlpbmcgPSAxIDw8IDAsCiAgICAgfTsKQEAgLTExOCw3ICsxMTgsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGRvdWJsZSBhc0RvdWJsZTsKICAgICB9IFJlbW90ZUNvbW1hbmRB
cmd1bWVudDsKIAotICAgIGVudW0gUmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHsKKyAgICBlbnVt
IFJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb0NvbW1hbmQs
CiAgICAgICAgIFBsYXlDb21tYW5kLAogICAgICAgICBQYXVzZUNvbW1hbmQsCkBAIC0xMzQsNyAr
MTM0LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5k
KFJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSwgY29uc3QgUmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBh
cmd1bWVudCA9IG51bGxwdHIpOwogICAgIGJvb2wgc3VwcG9ydHNTZWVraW5nKCkgY29uc3Q7CiAK
LSAgICBlbnVtIERpc3BsYXlUeXBlIHsKKyAgICBlbnVtIERpc3BsYXlUeXBlIDogdWludDhfdCB7
CiAgICAgICAgIE5vcm1hbCwKICAgICAgICAgRnVsbHNjcmVlbiwKICAgICAgICAgT3B0aW1pemVk
LApAQCAtMjk3LDQgKzI5Nyw2NCBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZT4gewogICAgIH0KIH07CiAK
K3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpNZWRpYVR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlLAorICAgIFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6Ok5vbmUsCisgICAgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6VmlkZW8sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6VmlkZW9BdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6TWVkaWFUeXBlOjpXZWJBdWRpbworICAgID47Cit9OworCit0ZW1wbGF0ZSA8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6U3RhdGUsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlN0YXRlOjpJZGxlLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6
QXV0b3BsYXlpbmcsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQ
bGF5aW5nLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2Vk
LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQK
KyAgICA+OworfTsKKwordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJy
dXB0aW9uVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0
aW9uVHlwZTo6Tm9JbnRlcnJ1cHRpb24sCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Np
b246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbVNsZWVwLAorICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpFbnRlcmluZ0JhY2tncm91bmQsCisgICAg
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGU6OlN5c3RlbUlu
dGVycnVwdGlvbiwKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0
aW9uVHlwZTo6U3VzcGVuZGVkVW5kZXJMb2NrLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpJbnZpc2libGVBdXRvcGxheSwKKyAgICBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6UHJvY2Vzc0luYWN0aXZl
LAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpQ
bGF5YmFja1N1c3BlbmRlZAorICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3M+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxhZ3MsCisgICAgV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzLAorICAgIFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFnczo6TWF5UmVzdW1l
UGxheWluZworICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiB7Cisg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSwKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlOjpOb0NvbW1hbmQsCisgICAg
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6
UGxheUNvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNv
bnRyb2xDb21tYW5kVHlwZTo6UGF1c2VDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlN0b3BDb21tYW5kLAorICAgIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlRv
Z2dsZVBsYXlQYXVzZUNvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAor
ICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5
cGU6OkVuZFNlZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZTo6QmVnaW5TZWVraW5nRm9yd2FyZENv
bW1hbmQsCisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZTo6RW5kU2Vla2luZ0ZvcndhcmRDb21tYW5kLAorICAgIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6OlNlZWtUb1BsYXliYWNr
UG9zaXRpb25Db21tYW5kCisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0K
aW5kZXggZDZjMDA3ZjQwYjVmYjc2MzcyMmQ1MzhhZGVkMDJkMWI4MWExODg1NC4uODNkMjQwMGEx
ZDBhYTYzODljM2RmODkzNjcxMGEzNTg5YTQ0NTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBAIC0yNDMsNiArMjQz
LDE1IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBi
dWZmZXJTaXplKQogICAgIEFTU0VSVCghZXJyb3IpOwogfQogCitib29sIEF1ZGlvU2Vzc2lvbjo6
aXNNdXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1ZGlvU2Vz
c2lvbjo6aGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVT
RShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDlmOTQ2Zjg0OTdhZjIzYjRh
ZmE1MWI3OTE4NDE4NTE4ODYwYWM1YjkuLmQ3NDliMmRiMDliOTY3NDZmNGEwZjFlMzRjMjE3NDJl
ZGY1M2U0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTE4LDYgKzE4LDggQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9j
ZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Q
cm94eS5tZXNzYWdlcy5pbgpAQCAtMTE2LDYgKzExOCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24u
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYTk2YzJjZmRkZDQ2
YjM1OTIzOGU5NjIzNDNhOTkyMjEwNGVlYTU5Yi4uOTk1MDM1MTJiYTU1OGIyYjQxMDA4ZjViMTY2
NTA0NjBhOTU0MTQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC0xMzcsNiArMTM3LDE1IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1Jl
cGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9TZXNz
aW9uTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNRmFjdG9yeVByb3h5TWVzc2FnZXNSZXBs
aWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0NWVlM2RiN2VkN2UxMzM3MmM4
YTc1YWQ1NTVhMTY1ODdmNjdkMDhhLi4xYzNkMWEyMGVlYTNiNzM4MDAxMDJlMWQzMTk4Mzc5MDNh
YTZjZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNDgsNiArMTQ4LDggQEAg
TUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUGx1Z2luUHJveHkgXAogICAgIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyIFwKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgXAor
ICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbiBcCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXAog
ICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCiAgICAgUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGIwZTc4Yzc4N2ZhNTdlZDBkZTkzNDBm
MTk3YjVkNmUyMzQ1ZTdjOTIuLmNiNTc5MjhlY2YyZTI5Y2FiOWQzNmU0ZDBhZGE4MGI5NzJlY2Zh
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKQEAgLTc2LDYgKzc2LDExIEBACiAjaW5jbHVkZSAiUmVtb3RlQ0RN
UHJveHlNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVT
RShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisj
aW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMzMsNiArMTM4LDEwIEBAIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKIAogdm9p
ZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQog
eworICAgIGlmIChtX2F1ZGlvU2Vzc2lvblByb3h5KSB7CisgICAgICAgIGdwdVByb2Nlc3MoKS5h
dWRpb1Nlc3Npb25NYW5hZ2VyKCkucmVtb3ZlUHJveHkod2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7
CisgICAgICAgIG1fYXVkaW9TZXNzaW9uUHJveHkgPSBudWxscHRyOworICAgIH0KIH0KIAogTG9n
Z2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dnZXIoKQpAQCAtMjMxLDYgKzI0MCwx
NyBAQCBSZW1vdGVDRE1GYWN0b3J5UHJveHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNk
bUZhY3RvcnlQcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
VVNFKEFVRElPX1NFU1NJT04pCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJveHkoKQoreworICAgIGlmICghbV9hdWRpb1Nl
c3Npb25Qcm94eSkgeworICAgICAgICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OmNyZWF0ZSgqdGhpcykubW92ZVRvVW5pcXVlUHRyKCk7CisgICAgICAgIGdw
dVByb2Nlc3MoKS5hdWRpb1Nlc3Npb25NYW5hZ2VyKCkuYWRkUHJveHkobWFrZVdlYWtQdHIobV9h
dWRpb1Nlc3Npb25Qcm94eS5nZXQoKSkpOworICAgIH0KKyAgICByZXR1cm4gKm1fYXVkaW9TZXNz
aW9uUHJveHk7Cit9CisjZW5kaWYKKwogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
cmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIHJlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHlNYXAuZW5zdXJlKHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCBb
Jl0oKSB7CkBAIC0yNTcsNiArMjc3LDEzIEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6c2V0Tm93UGxheWluZ0luZm8oYm9vbCBzZXRBc05vd1BsYXlpbmdBcHBsaWNhdGlvCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCit2
b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuc3VyZUF1ZGlvU2Vzc2lvbihFbnN1cmVB
dWRpb1Nlc3Npb25Db21wbGV0aW9uJiYgY29tcGxldGlvbikKK3sKKyAgICBjb21wbGV0aW9uKGF1
ZGlvU2Vzc2lvblByb3h5KCkuY29uZmlndXJhdGlvbigpKTsKK30KKyNlbmRpZgorCiBib29sIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKQEAgLTMzNCw2ICszNjEsMTIgQEAgYm9v
bCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEMKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogI2VuZGlm
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgYXVkaW9TZXNzaW9u
UHJveHkoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCiAKICAgICByZXR1cm4gbWVzc2FnZVJlY2VpdmVy
TWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQpAQCAtMzgxLDYg
KzQxNCwxMiBAQCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAg
ICBhdWRpb1Nlc3Npb25Qcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyLCByZXBseUVuY29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5k
aWYKIAogICAgIHJldHVybiBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAxODIy
NmE3YzM0OTkxOGFjYmJjNDViZmY1NGFmNmE3YmJmYzcwMWMzLi5iMDA3MWNjNjUyNjZmZTdhOTJh
YmMwNGYzYmZkOGM1YTQyM2Q2ODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCisjaW5jbHVkZSAiUmVt
b3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgpAQCAtNDgsMTIgKzQ5LDE1IEBA
IGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eTsKIGNsYXNzIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNYW5hZ2VyOworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7Citj
bGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVDRE1GYWN0
b3J5UHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXI7CiBjbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3Mg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKK3N0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uOwogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBw
dWJsaWMgUmVmQ291bnRlZDxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPgpAQCAtODgsMTEgKzky
LDE1IEBAIHB1YmxpYzoKICAgICBSZW1vdGVDRE1GYWN0b3J5UHJveHkmIGNkbUZhY3RvcnlQcm94
eSgpOwogI2VuZGlmCiAKKyAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVT
RShBVURJT19TRVNTSU9OKQorICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVk
aW9TZXNzaW9uTWFuYWdlcigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXImIHJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKCk7
Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5KCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAg
TGliV2ViUlRDQ29kZWNzUHJveHkmIGxpYldlYlJUQ0NvZGVjc1Byb3h5KCk7CiAjZW5kaWYKQEAg
LTEwNCw2ICsxMTIsMTEgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAjZW5kaWYK
ICNlbmRpZgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgYXVkaW9TZXNzaW9uUHJveHkoKTsKKyNlbmRp
ZgorCiAgICAgdm9pZCBjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdCYWNrZW5kKFJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKTsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTExMSw2ICsxMjQsMTEgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNldE5vd1BsYXlpbmdJbmZvKGJvb2wgc2V0QXNOb3dQbGF5aW5n
QXBwbGljYXRpb24sIGNvbnN0IFdlYkNvcmU6Ok5vd1BsYXlpbmdJbmZvJik7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgdXNpbmcg
RW5zdXJlQXVkaW9TZXNzaW9uQ29tcGxldGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYpPjsKKyAgICB2b2lkIGVuc3VyZUF1
ZGlvU2Vzc2lvbihFbnN1cmVBdWRpb1Nlc3Npb25Db21wbGV0aW9uJiYpOworI2VuZGlmCisKICAg
ICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25u
ZWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIGZpbmFsOwpAQCAtMTQ5LDYgKzE2Nyw5IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlQ0RNRmFjdG9yeVByb3h5PiBtX2NkbUZhY3RvcnlQcm94eTsKICNlbmRpZgorI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBtX2F1ZGlvU2Vzc2lvblByb3h5OworI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggOGQ5MWNlMmJjZGJkYWVjZmMyNTcxMDNjZGFjZTY5NjU0Y2M0OGQzOS4uNWFiNDE3
MmVkMzE0N2YyNmE5MDM3ZGJjOTg4NWE5N2YxZTgwOWNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTI5LDYgKzI5LDcgQEAgbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyBXYW50c0Rpc3BhdGNoTWVzc2FnZSB7CiAgICAgdm9pZCBDbGVhck5vd1BsYXlpbmdJ
bmZvKCk7CiAgICAgdm9pZCBTZXROb3dQbGF5aW5nSW5mbyhib29sIHNldEFzTm93UGxheWluZ0Fw
cGxpY2F0aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6Tm93UGxheWluZ0luZm8gbm93UGxheWluZ0luZm8p
OwogI2VuZGlmCisgICAgRW5zdXJlQXVkaW9TZXNzaW9uKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OlJl
bW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikgU3luY2hyb25vdXMK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLmNwcAppbmRleCAwZTdiZDA5YmVhNWQxMjNhNDA3ZWNmYjlkMzlmNzI0MGY1
YjNjN2I5Li41ZjI4OTQ0Yjc0MzIzODI2NzFlOGJiZmE1OTIxNmUzNjc5OTJmOWVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC01MSw2ICs1MSwxMCBAQAogI2lu
Y2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+
CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1
ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oIgorI2VuZGlmCisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTIxMiw2ICsyMTYsMTUg
QEAgY29uc3QgU3RyaW5nJiBHUFVQcm9jZXNzOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY28KIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKK1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlciYgR1BVUHJvY2Vzczo6YXVkaW9TZXNzaW9uTWFuYWdlcigpIGNvbnN0Cit7CisgICAgaWYg
KCFtX2F1ZGlvU2Vzc2lvbk1hbmFnZXIpCisgICAgICAgIG1fYXVkaW9TZXNzaW9uTWFuYWdlciA9
IFdURjo6bWFrZVVuaXF1ZTxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI+KCk7CisgICAg
cmV0dXJuICptX2F1ZGlvU2Vzc2lvbk1hbmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MuaAppbmRleCA2ZmEwMjAxNGI5NDc4MWVhOTllMDM1ZGIzYWQ3OWQ2
NWEyNGYyODdiLi40M2FhZTFhMTJiNWI4ODViMjZjNTZkZGYxNTI5NjBmMDIyN2M1MjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3Mg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIHN0cnVjdCBHUFVQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOwogc3RydWN0IEdQVVByb2Nlc3NTZXNzaW9uUGFyYW1ldGVyczsKIGNsYXNzIExheWVy
SG9zdGluZ0NvbnRleHQ7CitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CiAK
IGNsYXNzIEdQVVByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcywgcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPEdQVVByb2Nlc3M+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVUHJv
Y2Vzcz4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdQVVByb2Nlc3MpOwpAQCAtNjMsNiAr
NjQsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgbWVkaWFLZXlzU3RvcmFnZURpcmVj
dG9yeShQQUw6OlNlc3Npb25JRCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCkgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICB2b2lkIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwpOwogCkBAIC0xMDMsNiArMTA4LDkg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gbV9j
b250ZXh0Rm9yVmlzaWJpbGl0eVByb3BhZ2F0aW9uOwogICAgIGJvb2wgbV9jYW5TaG93V2hpbGVM
b2NrZWQgeyBmYWxzZSB9OwogI2VuZGlmCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0Uo
QVVESU9fU0VTU0lPTikKKyAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXI+IG1fYXVkaW9TZXNzaW9uTWFuYWdlcjsKKyNlbmRpZgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWZj
NDlkZTg5ZGUxYWNlNDZhYzE2N2Y4NTg0NjgwMzM2NTJkYzkwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNw
cApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lv
bk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmgi
CisjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworVW5pcXVlUmVmPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGdwdUNvbm5lY3Rpb24pCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk+KGdwdUNvbm5lY3Rpb24pOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eTo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1
Q29ubmVjdGlvbikKKyAgICA6IG1fZ3B1Q29ubmVjdGlvbihncHVDb25uZWN0aW9uKQoreworfQor
CitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6flJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5KCkgPSBk
ZWZhdWx0OworCitXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eTo6cHJvY2Vzc0lkZW50aWZpZXIoKQoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb24u
d2ViUHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6Y29uZmlndXJhdGlvbigpCit7CisgICAgYXV0
byYgc2Vzc2lvbiA9IGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKS5zZXNzaW9uKCk7CisgICAgcmV0dXJu
IHsKKyAgICAgICAgc2Vzc2lvbi5jYXRlZ29yeSgpLAorICAgICAgICBzZXNzaW9uLnJvdXRlU2hh
cmluZ1BvbGljeSgpLAorICAgICAgICBzZXNzaW9uLnJvdXRpbmdDb250ZXh0VUlEKCksCisgICAg
ICAgIHNlc3Npb24uc2FtcGxlUmF0ZSgpLAorICAgICAgICBzZXNzaW9uLmJ1ZmZlclNpemUoKSwK
KyAgICAgICAgc2Vzc2lvbi5udW1iZXJPZk91dHB1dENoYW5uZWxzKCksCisgICAgICAgIHNlc3Np
b24ucHJlZmVycmVkQnVmZmVyU2l6ZSgpLAorICAgICAgICBzZXNzaW9uLmlzTXV0ZWQoKSwKKyAg
ICAgICAgbV9hY3RpdmUKKyAgICB9OworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
OjpzZXRDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29y
eSwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBtX2NhdGVnb3J5
ID0gY2F0ZWdvcnk7CisgICAgbV9yb3V0ZVNoYXJpbmdQb2xpY3kgPSBwb2xpY3k7CisgICAgYXVk
aW9TZXNzaW9uTWFuYWdlcigpLnNldENhdGVnb3J5Rm9yUHJvY2VzcyhtX2dwdUNvbm5lY3Rpb24u
d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgY2F0ZWdvcnksIHBvbGljeSk7Cit9CisKK3ZvaWQgUmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk6OnNldFByZWZlcnJlZEJ1ZmZlclNpemUodWludDY0X3Qgc2l6
ZSkKK3sKKyAgICBtX3ByZWZlcnJlZEJ1ZmZlclNpemUgPSBzaXplOworICAgIGF1ZGlvU2Vzc2lv
bk1hbmFnZXIoKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2VzcyhtX2dwdUNvbm5lY3Rp
b24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSwgc2l6ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OnRyeVRvU2V0QWN0aXZlKGJvb2wgYWN0aXZlLCBTZXRBY3RpdmVDb21wbGV0
aW9uJiYgY29tcGxldGlvbikKK3sKKyAgICBtX2FjdGl2ZSA9IGF1ZGlvU2Vzc2lvbk1hbmFnZXIo
KS50cnlUb1NldEFjdGl2ZUZvclByb2Nlc3MobV9ncHVDb25uZWN0aW9uLndlYlByb2Nlc3NJZGVu
dGlmaWVyKCksIGFjdGl2ZSk7CisgICAgY29tcGxldGlvbihtX2FjdGl2ZSk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmJlZ2luSW50ZXJydXB0aW9uKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCit7CisgICAgY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6QmVnaW5JbnRlcnJ1cHRpb24o
dHlwZSksIHsgfSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OmVuZEludGVy
cnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uRmxh
Z3MgZmxhZ3MpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlv
U2Vzc2lvbjo6RW5kSW50ZXJydXB0aW9uKGZsYWdzKSwgeyB9KTsKK30KKworUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyJiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6YXVkaW9TZXNzaW9u
TWFuYWdlcigpCit7CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvbi5ncHVQcm9jZXNzKCkuYXVk
aW9TZXNzaW9uTWFuYWdlcigpOworfQorCitJUEM6OkNvbm5lY3Rpb24mIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5Ojpjb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gbV9ncHVDb25uZWN0aW9uLmNv
bm5lY3Rpb24oKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWNkMmM2YzM3YzE3OTY0ZTBiYzhkZmE3MjEzNjQ5OTIxZDg0OTNjMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eS5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRp
Zmllci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xh
c3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1
ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjsKKworY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkK
KyAgICA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgICwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5PiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFsIH5S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSgpOworCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIgcHJvY2Vzc0lkZW50aWZpZXIoKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb24oKTsKKworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIGNhdGVnb3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsgfTsKKyAgICBXZWJD
b3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QgeyByZXR1
cm4gbV9yb3V0ZVNoYXJpbmdQb2xpY3k7IH0KKyAgICBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZmVycmVkQnVmZmVyU2l6ZTsgfQorICAgIGJvb2wgaXNB
Y3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZTsgfQorCisgICAgdm9pZCBiZWdpbkludGVy
cnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSk7
CisgICAgdm9pZCBlbmRJbnRlcnJ1cHRpb24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246
OkVuZEludGVycnVwdGlvbkZsYWdzKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+
IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UmVtb3RlQXVkaW9TZXNz
aW9uUHJveHk+KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisKKyAgICAvLyBNZXNzYWdl
cworICAgIHZvaWQgc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSk7CisgICAgdm9pZCBzZXRQcmVmZXJyZWRC
dWZmZXJTaXplKHVpbnQ2NF90KTsKKyAgICB1c2luZyBTZXRBY3RpdmVDb21wbGV0aW9uID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT47CisgICAgdm9pZCB0cnlUb1NldEFjdGl2ZShib29s
LCBTZXRBY3RpdmVDb21wbGV0aW9uJiYpOworCisgICAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCk7CisgICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCk7CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rp
b247CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeTsK
KyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgbV9yb3V0ZVNoYXJpbmdQb2xpY3k7Cisg
ICAgc2l6ZV90IG1fcHJlZmVycmVkQnVmZmVyU2l6ZSB7IDAgfTsKKyAgICBib29sIG1fYWN0aXZl
IHsgZmFsc2UgfTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdmM2JhZTgyNDNmYWE1NDU1MmJiZmYwNGQ5YTZlYjg1MmI2
MDYyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisK
K21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5IE5vdFJlZkNvdW50ZWQgeworICAg
IFNldENhdGVnb3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSB0eXBlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5IHBvbGlj
eSkKKyAgICBTZXRQcmVmZXJyZWRCdWZmZXJTaXplKHVpbnQ2NF90IHByZWZlcnJlZEJ1ZmZlclNp
emUpCisgICAgVHJ5VG9TZXRBY3RpdmUoYm9vbCBhY3RpdmUpIC0+IChib29sIHN1Y2VlZGVkKSBT
eW5jaHJvbm91cworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjE2YjRlZjIxMWYyYTM4MzA3MDU0YzUxMjYxYjcxNjFmYzdkMDhkYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikK
KworI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgYm9v
bCBjYXRlZ29yeUNhbk1peFdpdGhPdGhlcnMoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0
ZWdvcnkpCit7CisgICAgcmV0dXJuIGNhdGVnb3J5ID09IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNv
dW5kOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlcigpCisgICAgOiBtX3Nlc3Npb24oQXVkaW9TZXNzaW9uOjpjcmVhdGUo
KSkKK3sKK30KKworUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp+UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNYW5hZ2VyKCkgPSBkZWZhdWx0OworCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlcjo6YWRkUHJveHkoV2Vha1B0cjxSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eT4m
JiBwcm94eSkKK3sKKyAgICBhdXRvIGlkID0gcHJveHktPnByb2Nlc3NJZGVudGlmaWVyKCk7Cisg
ICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKKyAgICBtX3Byb3hpZXMuc2V0KGlk
LCBXVEZNb3ZlKHByb3h5KSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyOjpyZW1vdmVQcm94eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7CisgICAgQVNT
RVJUKG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIG1fcHJveGllcy5yZW1vdmUoaWQpOwor
fQorCitSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyOjpnZXRQcm94eShjb25zdCBQcm9jZXNzSWRlbnRpZmllciYgaWQpCit7CisgICAgYXV0byBy
ZXN1bHRzID0gbV9wcm94aWVzLmZpbmQoaWQpOworICAgIGlmIChyZXN1bHRzICE9IG1fcHJveGll
cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdHMtPnZhbHVlLmdldCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlcjo6c2V0
Q2F0ZWdvcnlGb3JQcm9jZXNzKGNvbnN0IFByb2Nlc3NJZGVudGlmaWVyJiBpZCwgQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCit7
CisgICAgQVNTRVJUKG1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgIGF1dG8gcHJveHkgPSBn
ZXRQcm94eShpZCk7CisgICAgaWYgKCFwcm94eSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KHByb3h5LT5jYXRlZ29yeSgpID09IGNhdGVnb3J5ICYmIHByb3h5LT5yb3V0ZVNoYXJpbmdQb2xp
Y3koKSA9PSBwb2xpY3kpCisgICAgICAgIHJldHVybjsKKworICAgIEhhc2hDb3VudGVkU2V0PEF1
ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBXVEY6OkludEhhc2g8QXVkaW9TZXNzaW9uOjpDYXRl
Z29yeVR5cGU+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlPj4gY2F0ZWdvcnlDb3VudHM7CisgICAgSGFzaENvdW50ZWRTZXQ8Um91dGVTaGFyaW5n
UG9saWN5LCBXVEY6OkludEhhc2g8Um91dGVTaGFyaW5nUG9saWN5PiwgV1RGOjpTdHJvbmdFbnVt
SGFzaFRyYWl0czxSb3V0ZVNoYXJpbmdQb2xpY3k+PiBwb2xpY3lDb3VudHM7CisgICAgZm9yIChh
dXRvJiBvdGhlclByb3h5IDogbV9wcm94aWVzLnZhbHVlcygpKSB7CisgICAgICAgIGNhdGVnb3J5
Q291bnRzLmFkZChvdGhlclByb3h5LT5jYXRlZ29yeSgpKTsKKyAgICAgICAgcG9saWN5Q291bnRz
LmFkZChvdGhlclByb3h5LT5yb3V0ZVNoYXJpbmdQb2xpY3koKSk7CisgICAgfQorCisgICAgaWYg
KGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCkpCisg
ICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkOworICAgIGVsc2Ug
aWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW8pKQor
ICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW87CisgICAgZWxzZSBp
ZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrKSkK
KyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s7CisgICAgZWxz
ZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpTb2xvQW1iaWVudFNv
dW5kKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OlNvbG9BbWJpZW50U291bmQ7
CisgICAgZWxzZSBpZiAoY2F0ZWdvcnlDb3VudHMuY29udGFpbnMoQXVkaW9TZXNzaW9uOjpBbWJp
ZW50U291bmQpKQorICAgICAgICBjYXRlZ29yeSA9IEF1ZGlvU2Vzc2lvbjo6QW1iaWVudFNvdW5k
OworICAgIGVsc2UgaWYgKGNhdGVnb3J5Q291bnRzLmNvbnRhaW5zKEF1ZGlvU2Vzc2lvbjo6QXVk
aW9Qcm9jZXNzaW5nKSkKKyAgICAgICAgY2F0ZWdvcnkgPSBBdWRpb1Nlc3Npb246OkF1ZGlvUHJv
Y2Vzc2luZzsKKyAgICBlbHNlCisgICAgICAgIGNhdGVnb3J5ID0gQXVkaW9TZXNzaW9uOjpOb25l
OworCisgICAgaWYgKHBvbGljeUNvdW50cy5jb250YWlucyhSb3V0ZVNoYXJpbmdQb2xpY3k6Okxv
bmdGb3JtVmlkZW8pKQorICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xpY3k6OkxvbmdG
b3JtVmlkZW87CisgICAgZWxzZSBpZiAocG9saWN5Q291bnRzLmNvbnRhaW5zKFJvdXRlU2hhcmlu
Z1BvbGljeTo6TG9uZ0Zvcm1BdWRpbykpCisgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1Bv
bGljeTo6TG9uZ0Zvcm1BdWRpbzsKKyAgICBlbHNlIGlmIChwb2xpY3lDb3VudHMuY29udGFpbnMo
Um91dGVTaGFyaW5nUG9saWN5OjpJbmRlcGVuZGVudCkpCisgICAgICAgIHBvbGljeSA9IFJvdXRl
U2hhcmluZ1BvbGljeTo6SW5kZXBlbmRlbnQ7CisgICAgZWxzZQorICAgICAgICBwb2xpY3kgPSBS
b3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQ7CisKKyAgICBtX3Nlc3Npb24tPnNldENhdGVnb3J5
KGNhdGVnb3J5LCBwb2xpY3kpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFu
YWdlcjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZUZvclByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50
aWZpZXImIGlkLCBzaXplX3QgcHJlZmVycmVkQnVmZmVyU2l6ZSkKK3sKKyAgICBmb3IgKGF1dG8m
IG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclBy
b3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhlclByb3h5LT5wcmVm
ZXJyZWRCdWZmZXJTaXplKCkgPCBwcmVmZXJyZWRCdWZmZXJTaXplKQorICAgICAgICAgICAgcHJl
ZmVycmVkQnVmZmVyU2l6ZSA9IG90aGVyUHJveHktPnByZWZlcnJlZEJ1ZmZlclNpemUoKTsKKyAg
ICB9CisKKyAgICBtX3Nlc3Npb24tPnNldFByZWZlcnJlZEJ1ZmZlclNpemUocHJlZmVycmVkQnVm
ZmVyU2l6ZSk7Cit9CisKK2Jvb2wgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyOjp0cnlU
b1NldEFjdGl2ZUZvclByb2Nlc3MoY29uc3QgUHJvY2Vzc0lkZW50aWZpZXImIGlkLCBib29sIGFj
dGl2ZSkKK3sKKyAgICBBU1NFUlQobV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7CisgICAgYXV0byBw
cm94eSA9IGdldFByb3h5KGlkKTsKKyAgICBpZiAoIXByb3h5KQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBzaXplX3QgYWN0aXZlUHJveHlDb3VudCB7IDAgfTsKKyAgICBmb3IgKGF1dG8m
IG90aGVyUHJveHkgOiBtX3Byb3hpZXMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFvdGhlclBy
b3h5KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChvdGhlclByb3h5LT5pc0Fj
dGl2ZSgpKQorICAgICAgICAgICAgKythY3RpdmVQcm94eUNvdW50OworICAgIH0KKworICAgIGlm
ICghYWN0aXZlICYmIGFjdGl2ZVByb3h5Q291bnQgPiAxKSB7CisgICAgICAgIC8vIFRoaXMgcHJv
eHkgd2FudHMgdG8gZGUtYWN0aXZhdGUsIGJ1dCBvdGhlciBwcm94aWVzIGFyZSBzdGlsbAorICAg
ICAgICAvLyBhY3RpdmUuIE5vLW9wLCBhbmQgcmV0dXJuIGRlYWN0aXZhdGlvbiB3YXMgc3VjZXNz
ZnVsLgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIWFjdGl2ZSkgewor
ICAgICAgICAvLyBUaGlzIHByb3h5IHdhbnRzIHRvIGRlLWFjdGl2YXRlLCBhbmQgaXMgdGhlIGxh
c3QgcmVtYWluaW5nIGFjdGl2ZQorICAgICAgICAvLyBwcm94eS4gRGVhY3RpdmF0ZSB0aGUgc2Vz
c2lvbiwgYW5kIHJldHVybiB3aGV0aGVyIHRoYXQgZGVhY3RpdmF0aW9uCisgICAgICAgIC8vIHdh
cyBzdWNlc3NmdWw7CisgICAgICAgIHJldHVybiBtX3Nlc3Npb24tPnRyeVRvU2V0QWN0aXZlKGZh
bHNlKTsKKyAgICB9CisKKyAgICBpZiAoYWN0aXZlICYmICFhY3RpdmVQcm94eUNvdW50KSB7Cisg
ICAgICAgIC8vIFRoaXMgcHJveHkgYW5kIG9ubHkgdGhpcyBwcm94eSB3YW50cyB0byBiZWNvbWUg
YWN0aXZlLiBBY3RpdmF0ZQorICAgICAgICAvLyB0aGUgc2Vzc2lvbiwgYW5kIHJldHVybiB3aGV0
aGVyIHRoYXQgYWN0aXZhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICAgcmV0dXJuIG1fc2Vz
c2lvbi0+dHJ5VG9TZXRBY3RpdmUoYWN0aXZlKTsKKyAgICB9CisKKyAgICAvLyBJZiB0aGlzIHBy
b3h5IGlzIEFtYmllbnQsIGFuZCB0aGUgc2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZSwgdGhpcwor
ICAgIC8vIHByb3h5IHdpbGwgbWl4IHdpdGggdGhlIGFjdGl2ZSBwcm94aWVzLiBOby1vcCwgYW5k
IHJldHVybiBhY3RpdmF0aW9uCisgICAgLy8gd2FzIHN1Y2Vzc2Z1bC4KKyAgICBpZiAoY2F0ZWdv
cnlDYW5NaXhXaXRoT3RoZXJzKHByb3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIE90aGVyd2lzZSwgdGhpcyBw
cm94eSB3YW50cyB0byBiZWNvbWUgYWN0aXZlLCBidXQgdGhlcmUgYXJlIG90aGVyCisgICAgLy8g
cHJveGllcyB3aG8gYXJlIGFscmVhZHkgYWN0aXZlLiBXYWxrIG92ZXIgdGhlIHByb3hpZXMsIGFu
ZCBpbnRlcnJ1cHQKKyAgICAvLyB0aG9zZSBwcm94aWVzIHdob3NlIGNhdGVvZ3JpZXMgaW5kaWNh
dGUgdGhleSBjYW5ub3QgbWl4IHdpdGggb3RoZXJzLgorICAgIGZvciAoYXV0byYgb3RoZXJQcm94
eSA6IG1fcHJveGllcy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoIW90aGVyUHJveHkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKCFvdGhlclByb3h5LT5pc0FjdGl2ZSgpKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGNhdGVnb3J5Q2FuTWl4V2l0aE90
aGVycyhvdGhlclByb3h5LT5jYXRlZ29yeSgpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgIG90aGVyUHJveHktPmJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpJbnRlcnJ1cHRpb25UeXBlOjpTeXN0ZW1JbnRlcnJ1cHRpb24pOworICAgIH0KKyNlbmRpZgor
CisgICAgcmV0dXJuIHRydWU7CisKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDA0NTU3MTJmNWE4NjAxOTk5MzIzNzU3M2UzOWMyODRj
OGY2YzIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFV
RElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OworCitjbGFzcyBSZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIoKTsKKyAgICB+UmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGFkZFByb3h5KFdlYWtQdHI8UmVt
b3RlQXVkaW9TZXNzaW9uUHJveHk+JiYpOworICAgIHZvaWQgcmVtb3ZlUHJveHkoY29uc3QgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKKyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSog
Z2V0UHJveHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKKworICAgIHZvaWQg
c2V0Q2F0ZWdvcnlGb3JQcm9jZXNzKGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJiwg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIFdlYkNvcmU6OlJvdXRlU2hhcmlu
Z1BvbGljeSk7CisgICAgdm9pZCBzZXRQcmVmZXJyZWRCdWZmZXJTaXplRm9yUHJvY2Vzcyhjb25z
dCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIHNpemVfdCk7CisKKyAgICBib29sIHRyeVRv
U2V0QWN0aXZlRm9yUHJvY2Vzcyhjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYsIGJv
b2wpOworCisgICAgY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uJiBzZXNzaW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uOyB9CisKK3ByaXZhdGU6CisgICAgVW5pcXVlUmVmPFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk+PiBtX3Byb3hpZXM7Cit9
OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRiM2RlYzdjZDM5ZDAxMDJiODVmMGY5NWRmNGU0MzBmOWFl
MTNmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cmlu
ZGV4IDI1NmRjOTkwNWJmNDQ2NmQwYzJhZDU3NGQ4YzM2OGExNGJlNjk2M2EuLjRiYTE0ZGJhZjI0
YjI0MWU1OWRiMGE3ZjIwODBkMDJkMDI3YzNiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQpAQCAtMjM0LDYgKzIzNCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5v
dF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyJywKKyAgICAgICAgJ1dlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJLaXQ6OlJlbW90ZUNETUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpS
ZW1vdGVDRE1JbnN0YW5jZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb25JZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA0MzZiYzI2MzRmMTBkZDAzYmQ5
MWYyNTJmOTdjMjY4N2YwNWY3OWI1Li4yNTJjOGZhZGFmZTFlYmEwMzkzNmY5YTkyY2RiZWViZGY5
NDI1ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCkBAIC0xMjQsNiArMTI0LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtZW1vcnlDYWNoZURpc2FibGVkIHsgZmFsc2UgfTsKICAgICBib29s
IGF0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1l
ZGlhIHsgZmFsc2UgfTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGJvb2wg
aGFzSW1hZ2VTZXJ2aWNlcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAwZmJhNTQ5OGFkZGVl
MDNjZThiOTU3ZDI4NWRjNDFkMTQ4N2M4NmRiLi4xMDU2YjllZGU1NGJhYWFlMmIyOWEwNTY3YTg1
ZjZhMTk0ODhiZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI2LDYgKzI2LDggQEAgR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5jcHAKK0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkuY3BwCitHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5j
cHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUNETUluc3RhbmNlUHJveHkuY3BwCkBAIC01NDcsNiArNTQ5LDcgQEAgV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlh
L0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNz
aW9uLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNLmNwcAogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUNETUluc3RhbmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDkyNjliMGEzYmFmNTk0
ZjMzY2RlZDlmNTRiZTdmOTJmZWQwYjRlODkuLmVkOWY0NGJiOWYyMmUzYzI0ZjFkMmQ5ODA1ODMy
MWE4MTBmNzlkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTY1Niw2ICs2NTYsOCBAQCBM
aWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc01l
c3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAorUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9TZXNz
aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBlODlkZTY5ODk0NzRiZjg5MWIyNjExNjExNmMxZGIwZDZhZjk5ZDA0
Li42MjFmYjFjOWVlMDkzMmQ1MmI0ZjFkNTJkMmI1YjBmM2UzMDYzNzY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NDUsNiArMTc0
NSw3IEBACiAJCUNEQUMyMEY4MjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEQUMyMEY1MjNGQzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5j
ZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0RBQzIwRjkyM0ZDNzI2QzAwMjFE
RUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUMyMEVDMjNG
QzM4MzgwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CiAJCUNEQUMyMEZBMjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREFDMjBFRjIzRkMzODM5MDAyMURFRTMgLyogUmVtb3RlQ0RNUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDREJCNDlGRDI0MEQ5QTcyMDAxN0MyOTIgLyog
UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAqLzsgfTsKIAkJQ0RDMjgzMUQyMDFCRDc5RDAw
RTZFNzQ1IC8qIFdLRnVsbHNjcmVlblN0YWNrVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDMjgzMUIyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVs
bHNjcmVlblN0YWNrVmlldy5oICovOyB9OwogCQlDRENBODVDOTEzMkFCQTRFMDBFOTYxREYgLyog
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDQTg1QzcxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0UxMUFENTIxQ0JDNDgyRjAwNjgxRUU1
IC8qIENvZGVTaWduaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRTExQUQ1MTFDQkM0ODJGMDA2ODFFRTUgLyogQ29kZVNpZ25pbmcuaCAqLzsgfTsK
QEAgLTUxMDMsNiArNTEwNCwxNSBAQAogCQlDREFDMjBGNDIzRkMzODNBMDAyMURFRTMgLyogUmVt
b3RlQ0RNUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVDRE1Qcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
QUMyMEY1MjNGQzM4M0IwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNE
TUluc3RhbmNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREFDMjBGNjIzRkMzODNCMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VQcm94
eU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVDRE1JbnN0YW5jZVByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEQkI0OUY0MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEQkI0OUY1MjQwRDhBQzYwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Np
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjYyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblBy
b3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0OUY3MjQwRDhDOTUwMDE3
QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEQkI0OUY4MjQwRDhENTMwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5RjkyNDBEOTYzQzAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nl
c3Npb25Qcm94eU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RCQjQ5
RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0MyOTIgLyog
UmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRp
b1Nlc3Npb25JZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQkI0
OUZDMjQwRDlBNzIwMDE3QzI5MiAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDMjgzMUIyMDFCRDc5RDAwRTZFNzQ1IC8qIFdLRnVs
bHNjcmVlblN0YWNrVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Z1bGxzY3JlZW5TdGFja1ZpZXcu
aDsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL1dLRnVsbHNjcmVlblN0YWNrVmlldy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREMyODMxQzIwMUJENzlEMDBFNkU3NDUgLyogV0tGdWxs
c2NyZWVuU3RhY2tWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGdWxsc2NyZWVuU3Rh
Y2tWaWV3Lm1tOyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vV0tGdWxsc2NyZWVuU3RhY2tWaWV3Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREMzODJGNzE3MjExNTA2MDA4QTJGQzMg
LyogQ0ZOZXR3b3JrLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ0ZOZXR3b3JrLmZyYW1l
d29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NGTmV0d29yay5mcmFtZXdv
cms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CkBAIC01MTEwLDYgKzUxMjAsMTcgQEAK
IAkJQ0RDQTg1QzYxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENB
ODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5
NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IElPS2l0LmZyYW1ld29y
azsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0lPS2l0LmZyYW1ld29yazsgc291
cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKKwkJQ0RENTM1NkYyNDBERDM0MzAwRjdCOEM0IC8q
IFJlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb24u
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTcwMjQwREQ0
RUYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREQ1MzU3MTI0MERERTA2MDBGN0I4QzQgLyogUmVtb3Rl
QXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDREQ1MzU3MjI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTczMjQw
RERFMDYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RE
NTM1NzQyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8q
IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
U2Vzc2lvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc2
MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RENTM1NzcyNDBEREUwNzAwRjdCOEM0
IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNERDUzNTc4MjQwRERFMDgwMEY3QjhDNCAvKiBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDREQ1MzU3OTI0MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvU2Vzc2lv
blByb3h5TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRTExQUQ0RjFDQkM0N0Y4MDA2ODFFRTUgLyogQ29kZVNpZ25pbmcubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb2RlU2lnbmluZy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UxMUFENTExQ0JDNDgyRjAwNjgxRUU1IC8qIENvZGVTaWdu
aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvZGVTaWduaW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFMUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBB
c3NlcnRpb25TZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
c3NlcnRpb25TZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTM4
OSw2ICs1NDEwLDExIEBACiAJCQkJOUI1QkVDMjkyNDAxMDE1ODAwNzBDNkVGIC8qIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgKi8sCiAJCQkJOUI1QkVDMjgyNDAxMDE1ODAwNzBDNkVG
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oICovLAogCQkJCTlCNUJFQzJFMjQwMTAx
OEMwMDcwQzZFRiAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkubWVzc2FnZXMuaW4gKi8s
CisJCQkJQ0RCQjQ5RjUyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAg
Ki8sCisJCQkJQ0RCQjQ5RjQyNDBEOEFDNjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbi5o
ICovLAorCQkJCUNERDUzNTZGMjQwREQzNDMwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb24u
bWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RkMyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1
ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAqLywKKwkJCQlDREJCNDlGQjI0MEQ5NzRBMDAxN0My
OTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oICovLAogCQkJCUNEQUMyMEJGMjNG
QzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE0uY3BwICovLAogCQkJCUNEQUMyMEJBMjNGQzJGNzQw
MDIxREVFMyAvKiBSZW1vdGVDRE0uaCAqLywKIAkJCQlDREFDMjBCODIzRkMyRjczMDAyMURFRTMg
LyogUmVtb3RlQ0RNQ29uZmlndXJhdGlvbi5oICovLApAQCAtNTQzMSw2ICs1NDU3LDEyIEBACiAJ
CQkJOUIxMjI5Q0MyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmNwcCAqLywKIAkJCQk5QjEyMjlDQjIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIuaCAqLywKIAkJCQk5QjEyMjlDRjIzRkYyODE0MDA4Q0E3NTEgLyog
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5
RjcyNDBEOEM5NTAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcCAqLywKKwkJ
CQlDREJCNDlGNjI0MEQ4Qzk1MDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuaCAq
LywKKwkJCQlDREJCNDlGODI0MEQ4RDUzMDAxN0MyOTIgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkubWVzc2FnZXMuaW4gKi8sCisJCQkJQ0RCQjQ5RkEyNDBEOTYzRDAwMTdDMjkyIC8qIFJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAgKi8sCisJCQkJQ0RCQjQ5RjkyNDBEOTYzQzAw
MTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5oICovLAorCQkJCUNERDUz
NTcwMjQwREQ0RUYwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIubWVz
c2FnZXMuaW4gKi8sCiAJCQkJMDcxQkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlv
VHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90
ZUF1ZGlvVHJhY2tQcm94eS5oICovLAogCQkJCUNEQUMyMDc5MjNGQjFFMjEwMDIxREVFMyAvKiBS
ZW1vdGVDRE1GYWN0b3J5UHJveHkuY3BwICovLApAQCAtOTg1MCw2ICs5ODgyLDE1IEBACiAJCQkJ
MUEwNDNCNUMxMjRENUU5RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmgg
Ki8sCiAJCQkJMUE4RUZBNkUxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKIAkJCQkxQThFRkE2RjEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJv
eHlNZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVB
dWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNERDUzNTc1MjQwRERFMDcw
MEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oICovLAorCQkJCUNERDUzNTc0
MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAq
LywKKwkJCQlDREQ1MzU3MzI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDREQ1MzU3ODI0MERERTA4MDBG
N0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJ
CQlDREQ1MzU3OTI0MERERTA4MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJQ0RENTM1NzEyNDBEREUwNjAwRjdCOEM0IC8q
IFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDREQ1
MzU3MjI0MERERTA2MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlcy5o
ICovLAorCQkJCUNERDUzNTc3MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25Q
cm94eU1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCUNEQUMyMEYyMjNGQzM4M0EwMDIxREVFMyAv
KiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEQUMy
MEYzMjNGQzM4M0EwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlNZXNzYWdlcy5oICov
LAogCQkJCUNEQUMyMEVFMjNGQzM4MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1GYWN0b3J5UHJveHlN
ZXNzYWdlc1JlcGxpZXMuaCAqLywKQEAgLTEwNzczLDYgKzEwODE0LDcgQEAKIAkJCQk5QjEyMjlE
MjIzRkYyQkNDMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUI1QkVDMkEyNDAxMDE1
ODAwNzBDNkVGIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0RCQjQ5RkQyNDBEOUE3MjAwMTdDMjkyIC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQUMyMEM3MjNGQzJGNzUwMDIxREVFMyAv
KiBSZW1vdGVDRE0uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQUMyMEM1MjNGQzJGNzUwMDIxREVF
MyAvKiBSZW1vdGVDRE1Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBD
RDIzRkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1
ZGlvU2Vzc2lvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2JlNWNlYzhlYTFiNjg3ZDViZGQ3MTdkY2RjMzMx
YzQ2MWFkZDU1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcApAQCAtMCwwICsxLDk5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBVU0UoQVVESU9fU0VTU0lPTikKKworI2lu
Y2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkdQ
VVByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1VuaXF1
ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb24+IFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKFdlYlBy
b2Nlc3MmIHByb2Nlc3MpCit7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBj
b25maWd1cmF0aW9uOworICAgIHByb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OkVuc3VyZUF1ZGlvU2Vzc2lvbigpLCBNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6RW5zdXJlQXVkaW9TZXNzaW9uOjpSZXBseShjb25maWd1cmF0aW9uKSwgeyB9KTsKKyAgICBy
ZXR1cm4gbWFrZVVuaXF1ZVJlZjxSZW1vdGVBdWRpb1Nlc3Npb24+KHByb2Nlc3MsIFdURk1vdmUo
Y29uZmlndXJhdGlvbikpOworfQorCitSZW1vdGVBdWRpb1Nlc3Npb246OlJlbW90ZUF1ZGlvU2Vz
c2lvbihXZWJQcm9jZXNzJiBwcm9jZXNzLCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
JiYgY29uZmlndXJhdGlvbikKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQorICAgICwgbV9jb25m
aWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpCit7Cit9CisKK1JlbW90ZUF1ZGlvU2Vz
c2lvbjo6flJlbW90ZUF1ZGlvU2Vzc2lvbigpID0gZGVmYXVsdDsKKworSVBDOjpDb25uZWN0aW9u
JiBSZW1vdGVBdWRpb1Nlc3Npb246OmNvbm5lY3Rpb24oKQoreworICAgIHJldHVybiBtX3Byb2Nl
c3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgdHlwZSwgUm91dGVT
aGFyaW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlNldENhdGVnb3J5KHR5cGUsIHBvbGljeSksIHsgfSk7
Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNp
emVfdCBzaXplKQoreworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eTo6U2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplKSwgeyB9KTsKK30KKwor
Ym9vbCBSZW1vdGVBdWRpb1Nlc3Npb246OnRyeVRvU2V0QWN0aXZlSW50ZXJuYWwoYm9vbCBhY3Rp
dmUpCit7CisgICAgYm9vbCBzdWNjZWVkZWQ7CisgICAgY29ubmVjdGlvbigpLnNlbmRTeW5jKE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6VHJ5VG9TZXRBY3RpdmUoYWN0aXZlKSwg
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpUcnlUb1NldEFjdGl2ZTo6UmVwbHko
c3VjY2VlZGVkKSwgeyB9KTsKKyAgICByZXR1cm4gc3VjY2VlZGVkOworfQorCit2b2lkIFJlbW90
ZUF1ZGlvU2Vzc2lvbjo6Y29uZmlndXJhdGlvbkNoYW5nZWQoUmVtb3RlQXVkaW9TZXNzaW9uQ29u
ZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgYm9vbCBtdXRlZFN0YXRlQ2hhbmdl
ZCA9IGNvbmZpZ3VyYXRpb24uaXNNdXRlZCAhPSBtX2NvbmZpZ3VyYXRpb24uaXNNdXRlZDsKKwor
ICAgIG1fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247CisKKyAgICBpZiAobXV0ZWRTdGF0
ZUNoYW5nZWQpCisgICAgICAgIGhhbmRsZU11dGVkU3RhdGVDaGFuZ2UoKTsKK30KKwordm9pZCBS
ZW1vdGVBdWRpb1Nlc3Npb246OmJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpJbnRlcnJ1cHRpb25UeXBlIHR5cGUpCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpzaGFyZWRNYW5hZ2VyKCkuYmVnaW5JbnRlcnJ1cHRpb24odHlwZSk7Cit9CisKK3ZvaWQg
UmVtb3RlQXVkaW9TZXNzaW9uOjplbmRJbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246
OkVuZEludGVycnVwdGlvbkZsYWdzIGZsYWdzKQoreworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmVuZEludGVycnVwdGlvbihmbGFncyk7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGY4ZGM4MjNlM2YwMTA3YzE5M2Jl
OTQ4YmY3ZmI5NjhiY2U3OWY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaApAQCAtMCwwICsxLDg2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVT
RShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
QXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
PgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlvbjsKK2NsYXNzIFdlYlByb2Nlc3M7
CisKK2NsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvbiBmaW5hbAorICAgIDogcHVibGljIFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbgorICAgICwgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBVbmlxdWVSZWY8UmVtb3RlQXVk
aW9TZXNzaW9uPiBjcmVhdGUoV2ViUHJvY2VzcyYpOworICAgIHZpcnR1YWwgflJlbW90ZUF1ZGlv
U2Vzc2lvbigpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBVbmlxdWVSZWY8UmVtb3RlQXVkaW9T
ZXNzaW9uPiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPFJlbW90ZUF1
ZGlvU2Vzc2lvbj4oV2ViUHJvY2VzcyYsIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24m
Jik7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uKFdlYlByb2Nlc3MmLCBSZW1vdGVBdWRpb1Nlc3Np
b25Db25maWd1cmF0aW9uJiYpOworICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpOwor
CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2Fn
ZXMKKyAgICB2b2lkIGNvbmZpZ3VyYXRpb25DaGFuZ2VkKFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZp
Z3VyYXRpb24mJik7CisgICAgdm9pZCBiZWdpbkludGVycnVwdGlvbihXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSk7CisgICAgdm9pZCBlbmRJbnRlcnJ1cHRp
b24oV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzKTsK
KworICAgIC8vIEF1ZGlvU2Vzc2lvbgorICAgIHZvaWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBl
LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpIGZpbmFsOworICAgIHZvaWQgc2V0UHJlZmVy
cmVkQnVmZmVyU2l6ZShzaXplX3QpIGZpbmFsOworICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVJbnRl
cm5hbChib29sKSBmaW5hbDsKKworICAgIENhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5jYXRlZ29yeTsgfQorICAgIFdlYkNvcmU6OlJv
dXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NvbmZpZ3VyYXRpb24ucm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAgU3RyaW5nIHJvdXRp
bmdDb250ZXh0VUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLnJvdXRp
bmdDb250ZXh0VUlEOyB9CisgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fY29uZmlndXJhdGlvbi5zYW1wbGVSYXRlOyB9CisgICAgc2l6ZV90IGJ1ZmZlclNpemUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYnVmZmVyU2l6ZTsgfQorICAg
IHNpemVfdCBudW1iZXJPZk91dHB1dENoYW5uZWxzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9j
b25maWd1cmF0aW9uLm51bWJlck9mT3V0cHV0Q2hhbm5lbHM7IH0KKyAgICBzaXplX3QgcHJlZmVy
cmVkQnVmZmVyU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5wcmVm
ZXJyZWRCdWZmZXJTaXplOyB9CisgICAgYm9vbCBpc011dGVkKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9jb25maWd1cmF0aW9uLmlzTXV0ZWQ7IH0KKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmlzQWN0aXZlOyB9CisKKyAgICBXZWJQcm9j
ZXNzJiBtX3Byb2Nlc3M7CisgICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBtX2Nv
bmZpZ3VyYXRpb247Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5tZXNz
YWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wODk2MjhmNjU3ZWY3Y2RiY2RiYTc3OWQ0MWRiOTliY2E1ZDQ0
YjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCitt
ZXNzYWdlcyAtPiBSZW1vdGVBdWRpb1Nlc3Npb24gTm90UmVmQ291bnRlZCB7CisgICAgQ29uZmln
dXJhdGlvbkNoYW5nZWQoc3RydWN0IFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uKQorICAgIEJlZ2luSW50ZXJydXB0aW9uKGVudW06dWludDhfdCBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQorICAg
IEVuZEludGVycnVwdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Np
b246OkVuZEludGVycnVwdGlvbkZsYWdzIGZsYWdzKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29u
ZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTVlNjAyOTA0Njg4NWY1ZmZm
YTgzMDIwYWZhY2U4OGQ0NzNlZWYyZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbi5oCkBA
IC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNTSU9OKQorCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb1Nlc3Npb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBSZW1vdGVBdWRp
b1Nlc3Npb25Db25maWd1cmF0aW9uIHsKKworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlIGNhdGVnb3J5IHsgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU6
Ok5vbmUgfTsKKyAgICBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9s
aWN5IHsgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0IH07CisgICAgU3RyaW5n
IHJvdXRpbmdDb250ZXh0VUlEOworICAgIGZsb2F0IHNhbXBsZVJhdGUgeyAwIH07CisgICAgdWlu
dDY0X3QgYnVmZmVyU2l6ZSB7IDAgfTsKKyAgICB1aW50NjRfdCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzIHsgMCB9OworICAgIHVpbnQ2NF90IHByZWZlcnJlZEJ1ZmZlclNpemUgeyAwIH07CisgICAg
Ym9vbCBpc011dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIGlzQWN0aXZlIHsgZmFsc2UgfTsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgY2F0ZWdvcnk7CisgICAgICAg
IGVuY29kZXIgPDwgcm91dGVTaGFyaW5nUG9saWN5OworICAgICAgICBlbmNvZGVyIDw8IHJvdXRp
bmdDb250ZXh0VUlEOworICAgICAgICBlbmNvZGVyIDw8IHNhbXBsZVJhdGU7CisgICAgICAgIGVu
Y29kZXIgPDwgYnVmZmVyU2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBudW1iZXJPZk91dHB1dENo
YW5uZWxzOworICAgICAgICBlbmNvZGVyIDw8IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgICAg
IGVuY29kZXIgPDwgaXNNdXRlZDsKKyAgICAgICAgZW5jb2RlciA8PCBpc0FjdGl2ZTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9uYWw8UmVt
b3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisg
ICAgeworICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZT4gY2F0ZWdvcnk7CisgICAgICAgIGRlY29kZXIgPj4gY2F0ZWdvcnk7CisgICAgICAgIGlmICgh
Y2F0ZWdvcnkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9w
dGlvbmFsPFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeT4gcm91dGVTaGFyaW5nUG9saWN5Owor
ICAgICAgICBkZWNvZGVyID4+IHJvdXRlU2hhcmluZ1BvbGljeTsKKyAgICAgICAgaWYgKCFyb3V0
ZVNoYXJpbmdQb2xpY3kpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
ICAgIE9wdGlvbmFsPFN0cmluZz4gcm91dGluZ0NvbnRleHRVSUQ7CisgICAgICAgIGRlY29kZXIg
Pj4gcm91dGluZ0NvbnRleHRVSUQ7CisgICAgICAgIGlmICghcm91dGluZ0NvbnRleHRVSUQpCisg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGZsb2F0
PiBzYW1wbGVSYXRlOworICAgICAgICBkZWNvZGVyID4+IHNhbXBsZVJhdGU7CisgICAgICAgIGlm
ICghc2FtcGxlUmF0ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8dWludDY0X3Q+IGJ1ZmZlclNpemU7CisgICAgICAgIGRlY29kZXIgPj4gYnVm
ZmVyU2l6ZTsKKyAgICAgICAgaWYgKCFidWZmZXJTaXplKQorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDx1aW50NjRfdD4gbnVtYmVyT2ZPdXRwdXRD
aGFubmVsczsKKyAgICAgICAgZGVjb2RlciA+PiBudW1iZXJPZk91dHB1dENoYW5uZWxzOworICAg
ICAgICBpZiAoIW51bWJlck9mT3V0cHV0Q2hhbm5lbHMpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBwcmVmZXJyZWRCdWZmZXJT
aXplOworICAgICAgICBkZWNvZGVyID4+IHByZWZlcnJlZEJ1ZmZlclNpemU7CisgICAgICAgIGlm
ICghcHJlZmVycmVkQnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNNdXRlZDsKKyAgICAgICAgZGVjb2RlciA+PiBp
c011dGVkOworICAgICAgICBpZiAoIWlzTXV0ZWQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGlzQWN0aXZlOworICAgICAgICBkZWNv
ZGVyID4+IGlzQWN0aXZlOworICAgICAgICBpZiAoIWlzQWN0aXZlKQorICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4ge3sKKyAgICAgICAgICAgIFdURk1v
dmUoKmNhdGVnb3J5KSwKKyAgICAgICAgICAgIFdURk1vdmUoKnJvdXRlU2hhcmluZ1BvbGljeSks
CisgICAgICAgICAgICBXVEZNb3ZlKCpyb3V0aW5nQ29udGV4dFVJRCksCisgICAgICAgICAgICAq
c2FtcGxlUmF0ZSwKKyAgICAgICAgICAgICpidWZmZXJTaXplLAorICAgICAgICAgICAgKm51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsCisgICAgICAgICAgICAqcHJlZmVycmVkQnVmZmVyU2l6ZSwKKyAg
ICAgICAgICAgICppc011dGVkLAorICAgICAgICAgICAgKmlzQWN0aXZlLAorICAgICAgICB9fTsK
KyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
SWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1Nlc3Npb25JZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzE0ODBjNjk0ZTJiM2Q5N2I1OTZl
MmEwNzMwM2Q2N2ZiMGY5OWJkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uSWRlbnRpZmllci5oCkBAIC0wLDAg
KzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRp
Zmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBSZW1vdGVBdWRpb1Nlc3Npb25J
ZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyID0g
T2JqZWN0SWRlbnRpZmllcjxSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyVHlwZT47CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAppbmRleCA1MWMyZjVlNTNiMzQwYzIyMDVmNzg5YjRiMzczYTJlNTA3YmI2ZWJi
Li5lN2JhNDk0YWY0ZDgyN2Y2ZjJmYWQwNzRjNWU5MmRhNTE5ODYwNjYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAi
TmV0d29ya1Nlc3Npb24uaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgorI2lu
Y2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgi
CiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgpAQCAt
NDcxLDYgKzQ3Miw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgV2ViUmVzb3VyY2VM
b2FkT2JzZXJ2ZXI6OnNldFNob3VsZExvZ1VzZXJJbnRlcmFjdGlvbihwYXJhbWV0ZXJzLnNob3Vs
ZExvZ1VzZXJJbnRlcmFjdGlvbik7CiAjZW5kaWYKIAorICAgIHNldFVzZUdQVVByb2Nlc3NGb3JN
ZWRpYShwYXJhbWV0ZXJzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSk7CisKICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKFByb2Nlc3MsICJpbml0aWFsaXplV2ViUHJvY2VzczogUHJlc2VudGluZyBw
cm9jZXNzID0gJWQiLCBXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKSk7CiB9CiAK
QEAgLTE5OTcsNiArMjAwMCwyMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFNob3VsZEJsb2NrVGhp
cmRQYXJ0eUNvb2tpZXNGb3JUZXN0aW5nKFRoaXJkUGFydHlDb29raWVCbG9jawogfQogI2VuZGlm
CiAKK3ZvaWQgV2ViUHJvY2Vzczo6c2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKGJvb2wgdXNlR1BV
UHJvY2Vzc0Zvck1lZGlhKQoreworICAgIGlmICh1c2VHUFVQcm9jZXNzRm9yTWVkaWEgPT0gbV91
c2VHUFVQcm9jZXNzRm9yTWVkaWEpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdXNlR1BVUHJv
Y2Vzc0Zvck1lZGlhID0gdXNlR1BVUHJvY2Vzc0Zvck1lZGlhOworCisjaWYgVVNFKEFVRElPX1NF
U1NJT04pCisgICAgaWYgKHVzZUdQVVByb2Nlc3NGb3JNZWRpYSkKKyAgICAgICAgQXVkaW9TZXNz
aW9uOjpzZXRTaGFyZWRTZXNzaW9uKFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzKSk7
CisgICAgZWxzZQorICAgICAgICBBdWRpb1Nlc3Npb246OnNldFNoYXJlZFNlc3Npb24oQXVkaW9T
ZXNzaW9uOjpjcmVhdGUoKSk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICN1bmRlZiBSRUxFQVNFX0xPR19TRVNTSU9OX0lECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAppbmRleCA2NWJmMDQxN2Q0ZjhjMWRiNTFmOWU5NzUwYmNiOTdmOWE1YmMyYjkwLi42
NTVlNzhkZjA4ZGYwOGFjOTJhNTZiZmM5Y2M4YTdhOWQ1MjU1ZDNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTUxNyw2ICs1MTcsOCBAQCBwcml2YXRlOgogCiAgICAg
Ym9vbCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSB7IHJldHVybiBtX3Nlc3Npb25JRCA/IG1f
c2Vzc2lvbklELT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSA6IHRydWU7IH0KIAorICAgIHZv
aWQgc2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKGJvb2wpOworCiAgICAgUmVmUHRyPFdlYkNvbm5l
Y3Rpb25Ub1VJUHJvY2Vzcz4gbV93ZWJDb25uZWN0aW9uOwogCiAgICAgSGFzaE1hcDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPFdlYlBhZ2U+PiBtX3BhZ2VNYXA7CkBAIC02NTMsNiAr
NjU1LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9hc3NldFNl
cnZpY2VFeHRlbnNpb247CiAgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fYXNzZXRTZXJ2
aWNlVjJFeHRlbnNpb247CiAjZW5kaWYKKworICAgIGJvb2wgbV91c2VHUFVQcm9jZXNzRm9yTWVk
aWEgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>