<?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>219134</bug_id>
          
          <creation_ts>2020-11-18 16:46:43 -0800</creation_ts>
          <short_desc>PCM: Persist pending ad clicks and attributions so they can survive browser restart</short_desc>
          <delta_ts>2020-11-20 16:38:54 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1708882</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-18 16:46:43 -0800</bug_when>
    <thetext>Currently all PCM data is stored in memory. We should persist it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708883</commentid>
    <comment_count>1</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-18 16:47:05 -0800</bug_when>
    <thetext>&lt;rdar://problem/70470129&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708909</commentid>
    <comment_count>2</comment_count>
      <attachid>414519</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-18 17:24:27 -0800</bug_when>
    <thetext>Created attachment 414519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709159</commentid>
    <comment_count>3</comment_count>
      <attachid>414519</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-19 09:50:13 -0800</bug_when>
    <thetext>Comment on attachment 414519
Patch

Quick initial question: How disruptive will it be to change these names? The W3C Privacy CG conversation has changed a lot of this and we should make sure the DB uses the right terminology. In essence, it&apos;s about not using advertising lingo and keeping it abstract. So it&apos;s &quot;source ID&quot; instead of &quot;ad campaign ID&quot; and &quot;attribution triggering event&quot; instead of &quot;conversion event.&quot; I&apos;ve made changes to the developer facing parts but not the internal naming in WebKit yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709182</commentid>
    <comment_count>4</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-19 11:02:02 -0800</bug_when>
    <thetext>(In reply to John Wilander from comment #3)
&gt; Comment on attachment 414519 [details]
&gt; Patch
&gt; 
&gt; Quick initial question: How disruptive will it be to change these names? The
&gt; W3C Privacy CG conversation has changed a lot of this and we should make
&gt; sure the DB uses the right terminology. In essence, it&apos;s about not using
&gt; advertising lingo and keeping it abstract. So it&apos;s &quot;source ID&quot; instead of
&gt; &quot;ad campaign ID&quot; and &quot;attribution triggering event&quot; instead of &quot;conversion
&gt; event.&quot; I&apos;ve made changes to the developer facing parts but not the internal
&gt; naming in WebKit yet.

It will be somewhat disruptive but not terrible. There is a SQLite command called ALTER TABLE that can change column names. We will have to add code to check for the old table name and change if needed once this lands (if a name-change occurs after we land).

I tried to align the terminology with that in your recent patch https://bugs.webkit.org/show_bug.cgi?id=218967.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709218</commentid>
    <comment_count>5</comment_count>
      <attachid>414519</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-19 12:02:32 -0800</bug_when>
    <thetext>Comment on attachment 414519
Patch

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

Great to see this be implemented! Overall, looks good.

We should rename DB entries like this:
· source –&gt; sourceSite
· campaign/campaignID –&gt; sourceID
· destination –&gt; attributeOnSite
· conversion/conversionValue –&gt; attributionTriggerData
· unconverted –&gt; unattributed
· convert(ed) –&gt; attribute(d)

You don&apos;t have to change the name of existing classes and variables. We can do that in a separate patch (or now if you want :P). I&apos;m just trying to avoid a DB migration if possible.

Could we simulate a browser restart by terminating the network process in a test?

I&apos;ll hold off marking r+ until we&apos;ve decided on naming.

&gt; Source/WebCore/ChangeLog:21
&gt; +        Moved logic to the ResourceLoadStatisticsDatabase class.

We should think through the scenarios for 1) ITP turned off now means PCM turned off, and 2) deletion of website data. What&apos;s your view?

&gt; Source/WebKit/ChangeLog:35
&gt; +        to wait to conver, the earliestTimeToSend parameter is set to now (0) and the

*convert</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709219</commentid>
    <comment_count>6</comment_count>
      <attachid>414519</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-19 12:17:51 -0800</bug_when>
    <thetext>Comment on attachment 414519
Patch

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

Thanks for taking a look. I can rename everything in this patch :) Also, I didn&apos;t think about restarting the network process in WebKitTestRunner (I didn&apos;t realize it was possible), but I see TestRunner::terminateNetworkProcess() which seems to be exactly a function for doing that -- I will see if I can refactor to use this.

&gt;&gt; Source/WebCore/ChangeLog:21
&gt;&gt; +        Moved logic to the ResourceLoadStatisticsDatabase class.
&gt; 
&gt; We should think through the scenarios for 1) ITP turned off now means PCM turned off, and 2) deletion of website data. What&apos;s your view?

1) This is true. One option (although I haven&apos;t spent a long time thinking this through) could be to refactor so the database still gets created, but only PCM interactions occur when Allow Cross-Site Tracking is on. Will PCM also have an on/off switch we should account for?
2) In this patch, deletion of website data removes PCM persistent data, which I think aligns with the purpose of the action. Do you think it should behave otherwise?

Another consideration is ephemeral mode -- is no PCM the expected ephemeral mode behavior, or should there be some in-memory storage?

&gt;&gt; Source/WebKit/ChangeLog:35
&gt;&gt; +        to wait to conver, the earliestTimeToSend parameter is set to now (0) and the
&gt; 
&gt; *convert

Oops. Will fix.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:1533
&gt; +        if (!m_statisticsStore)

I should call the completion handler here for an early return.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:1554
&gt; +            return;

Ditto.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2570
&gt; +    completionHandler();

I should forward this completion handler because it sets a flag in the ITP store on a background thread. I forgot to change this from when I was previously setting it only in the PCM manager.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709363</commentid>
    <comment_count>7</comment_count>
      <attachid>414644</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-19 20:16:09 -0800</bug_when>
    <thetext>Created attachment 414644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709364</commentid>
    <comment_count>8</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-19 20:17:18 -0800</bug_when>
    <thetext>(In reply to John Wilander from comment #5)
&gt; Comment on attachment 414519 [details]
&gt; Patch
&gt; 

&gt; We should rename DB entries like this:
&gt; · source –&gt; sourceSite
&gt; · campaign/campaignID –&gt; sourceID
&gt; · destination –&gt; attributeOnSite
&gt; · conversion/conversionValue –&gt; attributionTriggerData
&gt; · unconverted –&gt; unattributed
&gt; · convert(ed) –&gt; attribute(d)
&gt; 
&gt; You don&apos;t have to change the name of existing classes and variables. We can
&gt; do that in a separate patch (or now if you want :P). I&apos;m just trying to
&gt; avoid a DB migration if possible.
&gt; 

I’m not sure I hit every name change, but I updated all names in the database store, the PCM manager, and the WebCore PCM object. I might need a followup to change the few remaining functions with “conversion” still in the name (the patch was growing quite large).  

&gt; Could we simulate a browser restart by terminating the network process in a
&gt; test?
&gt; 

Instead of destroying the whole network process to test persistence, I ended up destroying and recreating the ResourceLoadStatisticsDatabaseStore object to simulate a session restart.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709517</commentid>
    <comment_count>9</comment_count>
      <attachid>414691</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-20 09:45:35 -0800</bug_when>
    <thetext>Created attachment 414691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709678</commentid>
    <comment_count>10</comment_count>
      <attachid>414691</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-20 15:19:34 -0800</bug_when>
    <thetext>Comment on attachment 414691
Patch

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

R+ with comments. The existing tests should ensure that the logic is kept sound. As for database expertise, I can&apos;t help you much. I&apos;m relying on your skill there. Just making sure - PCM is still disabled for ephemeral sessions, right? That is the intention.

&gt; Source/WebCore/ChangeLog:18
&gt; +        - convert(ed) â&gt; attribute(d)

Seems to be a Unicode dash in these arrows. Please change to ancient ASCII. :/

&gt; Source/WebKit/ChangeLog:21
&gt; +        This adds 3 SQLite tables: one for ad clicks that haven&apos;t been

I&apos;d just call them clicks to avoid advertising language.

&gt; Source/WebCore/html/HTMLAnchorElement.cpp:405
&gt; +    using AttributeOnSite = PrivateClickMeasurement::AttributeOnSite;

Thank you for doing this renaming work!

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:3064
&gt; +    clearExpiredPrivateClickMeasurement();

We may want to add a comment here to make it clear that this call is important. We&apos;re lazily clearing before we attribute and that&apos;s how we make sure we don&apos;t attribute expired clicks.

&gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:193
&gt; +    m_privateClickMeasurement-&gt;startTimer(0_s);

I seem to recall some startImmediate() function. Was this how it was done in the earlier implementation? Maybe I found that the *immediate function didn&apos;t behave as I wanted.

&gt; Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp:61
&gt; +    startTimer(5_s);

What is this timer for?

&gt; Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.h:43
&gt; +enum class PrivateClickMeasurementAttributionType { Unattributed, Attributed };

bool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709680</commentid>
    <comment_count>11</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-20 15:32:27 -0800</bug_when>
    <thetext>(In reply to John Wilander from comment #10)
&gt; Comment on attachment 414691 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=414691&amp;action=review
&gt; 
&gt; R+ with comments. The existing tests should ensure that the logic is kept
&gt; sound. As for database expertise, I can&apos;t help you much. I&apos;m relying on your
&gt; skill there. Just making sure - PCM is still disabled for ephemeral
&gt; sessions, right? That is the intention.
&gt; 

Yes, there are checks in every WebResourceLoadStatistics function ensuring PCM is disabled for ephemeral sessions.

&gt; &gt; Source/WebCore/ChangeLog:18
&gt; &gt; +        - convert(ed) â&gt; attribute(d)
&gt; 
&gt; Seems to be a Unicode dash in these arrows. Please change to ancient ASCII.
&gt; :/

Will fix. 

&gt; 
&gt; &gt; Source/WebKit/ChangeLog:21
&gt; &gt; +        This adds 3 SQLite tables: one for ad clicks that haven&apos;t been
&gt; 
&gt; I&apos;d just call them clicks to avoid advertising language.
&gt; 

Will fix.

&gt; &gt; Source/WebCore/html/HTMLAnchorElement.cpp:405
&gt; &gt; +    using AttributeOnSite = PrivateClickMeasurement::AttributeOnSite;
&gt; 
&gt; Thank you for doing this renaming work!
&gt; 

Sure!

&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:3064
&gt; &gt; +    clearExpiredPrivateClickMeasurement();
&gt; 
&gt; We may want to add a comment here to make it clear that this call is
&gt; important. We&apos;re lazily clearing before we attribute and that&apos;s how we make
&gt; sure we don&apos;t attribute expired clicks.
&gt; 

Ok, I will add before landing.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:193
&gt; &gt; +    m_privateClickMeasurement-&gt;startTimer(0_s);
&gt; 
&gt; I seem to recall some startImmediate() function. Was this how it was done in
&gt; the earlier implementation? Maybe I found that the *immediate function
&gt; didn&apos;t behave as I wanted.

I did not see a startImmediate function. This call is for tests only to make sure we send the report before the test times out.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp:61
&gt; &gt; +    startTimer(5_s);
&gt; 
&gt; What is this timer for?

After we start up the session, there may be reports that have &apos;expired&apos; (i.e. the reporting delay time has passed) while the session was closed. This makes sure they get sent as soon as possible after session starts. The 5 seconds is to account for any delay in ITP starting up, since it is created after the PCM manager.

Let me know if you don&apos;t think this is the right behavior for persisted reports.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.h:43
&gt; &gt; +enum class PrivateClickMeasurementAttributionType { Unattributed, Attributed };
&gt; 
&gt; bool

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709684</commentid>
    <comment_count>12</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-11-20 15:44:07 -0800</bug_when>
    <thetext>(In reply to katherine_cheney from comment #11)
&gt; (In reply to John Wilander from comment #10)
&gt; &gt; Comment on attachment 414691 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=414691&amp;action=review
&gt; &gt; 
&gt; &gt; R+ with comments. The existing tests should ensure that the logic is kept
&gt; &gt; sound. As for database expertise, I can&apos;t help you much. I&apos;m relying on your
&gt; &gt; skill there. Just making sure - PCM is still disabled for ephemeral
&gt; &gt; sessions, right? That is the intention.
&gt; &gt; 
&gt; 
&gt; Yes, there are checks in every WebResourceLoadStatistics function ensuring
&gt; PCM is disabled for ephemeral sessions.
&gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:18
&gt; &gt; &gt; +        - convert(ed) â&gt; attribute(d)
&gt; &gt; 
&gt; &gt; Seems to be a Unicode dash in these arrows. Please change to ancient ASCII.
&gt; &gt; :/
&gt; 
&gt; Will fix. 
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/ChangeLog:21
&gt; &gt; &gt; +        This adds 3 SQLite tables: one for ad clicks that haven&apos;t been
&gt; &gt; 
&gt; &gt; I&apos;d just call them clicks to avoid advertising language.
&gt; &gt; 
&gt; 
&gt; Will fix.
&gt; 
&gt; &gt; &gt; Source/WebCore/html/HTMLAnchorElement.cpp:405
&gt; &gt; &gt; +    using AttributeOnSite = PrivateClickMeasurement::AttributeOnSite;
&gt; &gt; 
&gt; &gt; Thank you for doing this renaming work!
&gt; &gt; 
&gt; 
&gt; Sure!
&gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:3064
&gt; &gt; &gt; +    clearExpiredPrivateClickMeasurement();
&gt; &gt; 
&gt; &gt; We may want to add a comment here to make it clear that this call is
&gt; &gt; important. We&apos;re lazily clearing before we attribute and that&apos;s how we make
&gt; &gt; sure we don&apos;t attribute expired clicks.
&gt; &gt; 
&gt; 
&gt; Ok, I will add before landing.
&gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:193
&gt; &gt; &gt; +    m_privateClickMeasurement-&gt;startTimer(0_s);
&gt; &gt; 
&gt; &gt; I seem to recall some startImmediate() function. Was this how it was done in
&gt; &gt; the earlier implementation? Maybe I found that the *immediate function
&gt; &gt; didn&apos;t behave as I wanted.
&gt; 
&gt; I did not see a startImmediate function. This call is for tests only to make
&gt; sure we send the report before the test times out.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp:61
&gt; &gt; &gt; +    startTimer(5_s);
&gt; &gt; 
&gt; &gt; What is this timer for?
&gt; 
&gt; After we start up the session, there may be reports that have &apos;expired&apos;
&gt; (i.e. the reporting delay time has passed) while the session was closed.
&gt; This makes sure they get sent as soon as possible after session starts. The
&gt; 5 seconds is to account for any delay in ITP starting up, since it is
&gt; created after the PCM manager.

Oh! Let&apos;s add a brief comment explaining that. Thanks!

&gt; Let me know if you don&apos;t think this is the right behavior for persisted
&gt; reports.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.h:43
&gt; &gt; &gt; +enum class PrivateClickMeasurementAttributionType { Unattributed, Attributed };
&gt; &gt; 
&gt; &gt; bool
&gt; 
&gt; Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709692</commentid>
    <comment_count>13</comment_count>
      <attachid>414742</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-20 15:59:57 -0800</bug_when>
    <thetext>Created attachment 414742
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709693</commentid>
    <comment_count>14</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-20 16:00:30 -0800</bug_when>
    <thetext>Thanks for the review!

&gt; &gt; &gt; &gt; Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp:61
&gt; &gt; &gt; &gt; +    startTimer(5_s);
&gt; &gt; &gt; 
&gt; &gt; &gt; What is this timer for?
&gt; &gt; 
&gt; &gt; After we start up the session, there may be reports that have &apos;expired&apos;
&gt; &gt; (i.e. the reporting delay time has passed) while the session was closed.
&gt; &gt; This makes sure they get sent as soon as possible after session starts. The
&gt; &gt; 5 seconds is to account for any delay in ITP starting up, since it is
&gt; &gt; created after the PCM manager.
&gt; 
&gt; Oh! Let&apos;s add a brief comment explaining that. Thanks!
&gt; 

Added!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709699</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-20 16:38:52 -0800</bug_when>
    <thetext>Committed r270136: &lt;https://trac.webkit.org/changeset/270136&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414742.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414519</attachid>
            <date>2020-11-18 17:24:27 -0800</date>
            <delta_ts>2020-11-19 20:16:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219134-20201118172426.patch</filename>
            <type>text/plain</type>
            <size>128012</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5ODk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDU4ZWM5ODdmZDg5ZDdj
YzQ3M2UwMTU2NWJjODVlODc0YzljNWE4OS4uYjUyMTlhNGJlYjM3ODQ4ODc2YjlkZTk5NWYzYzkz
YmE3YWJlODJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTExLTE4ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogUGVy
c2lzdCBwZW5kaW5nIGFkIGNsaWNrcyBhbmQgYXR0cmlidXRpb25zIHNvIHRoZXkgY2FuIHN1cnZp
dmUgYnJvd3NlciByZXN0YXJ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTkxMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNDcwMTI5PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9hZGVyL1By
aXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjptYXhBZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6Om1hcmtBc0V4cGlyZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Omhhc0V4cGlyZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Om1hcmtDb252ZXJzaW9uQXNTZW50
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp3
YXNDb252ZXJzaW9uU2VudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIFdlIGNhbiByZW1vdmUg
dGhlICpFeHBpcmVkKCkgZnVuY3Rpb25zIGFzIHRoZXkgd2VyZSBvbmx5IGluZGljYXRvcnMKKyAg
ICAgICAgZm9yIHRoZSBIYXNoTWFwIHN0b3JhZ2UgdG8ga25vdyB3aGF0IGF0dHJpYnV0aW9ucyB0
byBkZWxldGUuIFRoaXMgaXMKKyAgICAgICAgbm93IGhhbmRsZWQgYnkgU1FMaXRlLiBTaW1pbGFy
bHksIGEgY29udmVyc2lvbiBpcyBzZW50IGlmIGl0IGlzIG5vCisgICAgICAgIGxvbmdlciBpbiB0
aGUgZGF0YWJhc2UuIFNvIHdlIGRvIG5vdCBuZWVkIGZ1bmN0aW9ucyBmb3IgdGhlc2UuCisKKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b1N0cmluZyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIE1vdmVkIGxvZ2ljIHRvIHRoZSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6dGltZU9mQWRDbGljayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6c2V0RWFybGllc3RUaW1lVG9TZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpjYW1wYWlnbik6CisgICAgICAgIChXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y29udmVyc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0Q29udmVyc2lvbik6CisgICAgICAgIE5vdyB0
aGF0IHdlIHN0b3JlIGRhdGEgb24gZGlzaywgd2UgbmVlZCBhIG1vcmUgZmxleGlibGUgY29uc3Ry
dWN0b3IKKyAgICAgICAgYW5kIG1vcmUgZnVuY3Rpb25zIHRvIHJlYnVpbGQgUENNIG9iamVjdHMg
ZnJvbSB0aGUgZGF0YWJhc2UuCisKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50Ojppc0VtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgTm90IG5lZWRlZCwgdGhl
IGRhdGFiYXNlIHVzZXMgT3B0aW9uYWxzIHRvIGluZGljYXRlIGFuIGVtcHR5IHJlc3VsdC4KKwog
MjAyMC0xMS0xNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIENoZWNr
IHdoZXRoZXIgZGVzdGluYXRpb24gc3RpbGwgY2FuIGJlIHNlbGVjdGVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZi
NTkwZjlkMmQ5OTkzZDdiODYyNmU1ODQ4MTdiMmQ1MTg5ZDlhNWQuLjdhYTMyMmM1NjU1ZGY4YjMw
NDIwMGIwY2Q3NzQ3NWRiYjU0MzZkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE0IEBACisyMDIw
LTExLTE4ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAg
ICAgIFBDTTogUGVyc2lzdCBwZW5kaW5nIGFkIGNsaWNrcyBhbmQgYXR0cmlidXRpb25zIHNvIHRo
ZXkgY2FuIHN1cnZpdmUgYnJvd3NlciByZXN0YXJ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkxMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcw
NDcwMTI5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbWlncmF0ZXMgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCB0byB1c2UgU1FM
aXRlLAorICAgICAgICB3aGljaCBpcyBiZW5lZmljaWFsIGJlY2F1c2UgaXQgcmVxdWlyZXMgbGVz
cyBpbi1tZW1vcnkgc3RvcmFnZSBhbmQKKyAgICAgICAgcGVyc2lzdHMgUENNIGRhdGEgYWNyb3Nz
IGJyb3dzZXIgc2Vzc2lvbnMuCisKKyAgICAgICAgQWRkcyAzIHRhYmxlcyB0byB0aGUgZGF0YWJh
c2U6IG9uZSBmb3IgYWQgY2xpY2tzIHRoYXQgaGF2ZW4ndCBiZWVuCisgICAgICAgIGNvbnZlcnRl
ZCwgb25lIGZvciBjb252ZXJzaW9ucyB0aGF0IGhhdmVuJ3QgYmVlbiBzZW50LCBhbmQgb25lIHRv
CisgICAgICAgIHN0b3JlIHRoZSBsYXN0IHRpbWUgdGhlIHJlcG9ydHMgd2VyZSBmaXJlZCB0byBt
YWtlIHN1cmUgcmVwb3J0cyBnZXQKKyAgICAgICAgc2VudCBhcyBzb29uIGFzIHBvc3NpYmxlIGlm
IG5lZWRlZCBhZnRlciBhIGJyb3dzZXIgcmVzdGFydC4KKworICAgICAgICBCZWhhdmlvciBpcyBp
ZGVudGljYWwgdG8gZXhpc3RpbmcgUENNIGltcGxlbWVudGF0aW9uIHdpdGggdGhlIGFkZGl0aW9u
CisgICAgICAgIG9mIHBlcnNpc3RlbmNlLiBFeGlzdGluZyBQQ00gdGVzdHMgY29uZmlybSBubyBy
ZWdyZXNzaW9ucy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVUYWJsZVF1ZXJpZXMpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUpOgorICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRl
VW5pcXVlSW5kaWNlcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZGVzdHJveVN0YXRlbWVudHMpOgorICAgICAgICBO
ZXcgcXVlcmllcyB0byBpbnRlcmFjdCB3aXRoIFBDTSBkYXRhLgorCisgICAgICAgIChXZWJLaXQ6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVUaW1lckxhc3RGaXJl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojp0aW1lckxhc3RGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9u
VGltZXMpOgorICAgICAgICBUaGUgdXBkYXRlQXR0cmlidXRpb25zRWFybGllc3RUaW1lVG9TZW5k
IHF1ZXJ5IHdpbGwgc3VidHJhY3QgdGhlIHRpbWUKKyAgICAgICAgcGFzc2VkIHNpbmNlIHRoZSBs
YXN0IHRpbWVyIGZpcmUgZnJvbSBlYWNoIGVudHJ5IGFuZCBzZXQgYSBuZXcgZW50cnkKKyAgICAg
ICAgYmFzZWQgb24gdGhlIHJlc3VsdC4gSWYgbW9yZSB0aW1lIGhhcyBwYXNzZWQgdGhhbiB0aGUg
ZW50cnkgaGFzCisgICAgICAgIHRvIHdhaXQgdG8gY29udmVyLCB0aGUgZWFybGllc3RUaW1lVG9T
ZW5kIHBhcmFtZXRlciBpcyBzZXQgdG8gbm93ICgwKSBhbmQgdGhlCisgICAgICAgIG5leHQgdGlt
ZXIgZmlyZSB3aWxsIHNlbmQgdGhhdCByZXBvcnQgaW1tZWRpYXRlbHkuCisKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmJ1aWxkQXR0cmlidXRp
b25Gcm9tRGF0YWJhc2UpOgorICAgICAgICBDcmVhdGVzIGEgUENNIG9iamVjdCBmcm9tIGRhdGEg
aW4gdGhlIGRhdGFiYXNlLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpmaW5kQXR0cmlidXRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6bWFya0FsbFVuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRG
b3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnJlbW92ZVVuY29udmVydGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNvbnZlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjphbGxDb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9ucyk6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclBy
aXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmF0dHJpYnV0aW9uVG9TdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVh
clNlbnRDb252ZXJzaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjppbnNlcnRFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUZXN0
aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjp1cGRhdGVUaW1lckxhc3RGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1hcmtBbGxVbmNv
bnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y29udmVydFByaXZh
dGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjphbGxDb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZvclJl
Z2lzdHJhYmxlRG9tYWluKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRUb1N0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6Y2xlYXJTZW50Q29udmVyc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RXhw
aXJlZEluc2VydHNGb3JUZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3Rpbmcp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3RpbmcpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIFRlc3Qg
c3VwcG9ydC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyKToKKyAgICAgICAgTW92ZSBj
b25zdHJ1Y3RvciB0byBjcHAgZmlsZSB0byBjYWxsIHN0YXJ0VGltZXIoNV9zKSB3aGljaCB3aWxs
IGtpY2sKKyAgICAgICAgb2ZmIHNlbmRpbmcgYW55IHJlcG9ydHMgdGhhdCBoYXZlIGV4cGlyZWQg
aW4gdGhlIGRhdGFiYXNlLiBXZSBzaG91bGQKKyAgICAgICAgd2FpdCA1IHNlY29uZHMgc28gd2Ug
YXJlIHN1cmUgSVRQIGlzIHVwIGFuZCBydW5uaW5nLgorCisgICAgICAgIChXZWJLaXQ6Om1fc2Vz
c2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpzdG9yZVVuY29udmVydGVkKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyOjpzdGFydFRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyOjpjb252ZXJ0KToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhclNlbnRDb252ZXJzaW9ucyk6CisgICAgICAgIChX
ZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6dXBkYXRlVGltZXJMYXN0Rmly
ZWQpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZp
cmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhcik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXJGb3JSZWdpc3RyYWJsZURvbWFpbik6CisgICAg
ICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXJFeHBpcmVk
KToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjp0b1N0
cmluZyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcjo6bWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oOgorICAgICAgICAoV2ViS2l0OjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6bV9zZXNzaW9uSUQpOiBEZWxldGVkLgorICAgICAgICBNb3ZlZCB0aGlzIGxvZ2lj
IHRvIHRoZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgVGVzdCBzdXBwb3J0LgorCiAyMDIwLTExLTE3ICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04gKHIyNjk4MjQpOiBZb3VUdWJlIG1lZGlhIGNvbnRyb2wgYmFyIHNvbWV0aW1lcyBmbGlja2Vy
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5j
cHAKaW5kZXggYjBiYWJiNDU5MGYxNmU4ZTlhOWE2OGM1ZDNhYWE3NDRjMDU2YTlkNS4uYzIzNTBh
MDY3ZTJmNjgxZmIwMGI1MmRlODRjN2Y3MmZmZWZiMzUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0zOSw3ICszOSwxMSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgY29uc3QgY2hhciBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFBhdGhQcmVmaXhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJl
bWVudC8iOwogY29uc3Qgc2l6ZV90IHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbkRh
dGFQYXRoU2VnbWVudFNpemUgPSAyOwogY29uc3Qgc2l6ZV90IHByaXZhdGVDbGlja01lYXN1cmVt
ZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUgPSAyOwotY29uc3QgU2Vjb25kcyBtYXhBZ2UgeyAy
NF9oICogNyB9OworCitjb25zdCBTZWNvbmRzIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjptYXhB
Z2UoKQoreworICAgIHJldHVybiAyNF9oICogNzsKK307CiAKIGJvb2wgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OmlzVmFsaWQoKSBjb25zdAogewpAQCAtMTI2LDE2ICsxMzAsNiBAQCBPcHRpb25h
bDxTZWNvbmRzPiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y29udmVydEFuZEdldEVhcmxpZXN0
VGltZVRvU2VuZChDb252ZQogICAgIHJldHVybiBzZWNvbmRzOwogfQogCi12b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjptYXJrQXNFeHBpcmVkKCkKLXsKLSAgICBtX3RpbWVPZkFkQ2xpY2sg
PSB7IH07Ci19Ci0KLWJvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Omhhc0V4cGlyZWQoKSBj
b25zdAotewotICAgIHJldHVybiBXYWxsVGltZTo6bm93KCkgPiBtX3RpbWVPZkFkQ2xpY2sgKyBt
YXhBZ2U7Ci19Ci0KIGJvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Omhhc0hpZ2hlclByaW9y
aXR5VGhhbihjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYgb3RoZXIpIGNvbnN0CiB7CiAg
ICAgaWYgKCFvdGhlci5tX2NvbnZlcnNpb24pCkBAIC0xNzksNDggKzE3Myw2IEBAIFJlZjxKU09O
OjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpqc29uKCkgY29uc3QKICAgICByZXR1
cm4gcmVwb3J0RGV0YWlsczsKIH0KIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6bWFy
a0NvbnZlcnNpb25Bc1NlbnQoKQotewotICAgIEFTU0VSVChtX2NvbnZlcnNpb24pOwotICAgIGlm
IChtX2NvbnZlcnNpb24pCi0gICAgICAgIG1fY29udmVyc2lvbi0+d2FzU2VudCA9IENvbnZlcnNp
b246Oldhc1NlbnQ6OlllczsKLX0KLQotYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6d2Fz
Q29udmVyc2lvblNlbnQoKSBjb25zdAotewotICAgIHJldHVybiBtX2NvbnZlcnNpb24gJiYgbV9j
b252ZXJzaW9uLT53YXNTZW50ID09IENvbnZlcnNpb246Oldhc1NlbnQ6OlllczsKLX0KLQotU3Ry
aW5nIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b1N0cmluZygpIGNvbnN0Ci17Ci0gICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiU291cmNlOiAi
KTsKLSAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmco
KSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkRlc3RpbmF0aW9uOiAiKTsKLSAgICBi
dWlsZGVyLmFwcGVuZChtX2Rlc3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsK
LSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQ2FtcGFpZ24gSUQ6ICIpOwotICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKG1fY2FtcGFpZ24uaWQpOwotICAgIGlmIChtX2NvbnZlcnNpb24pIHsK
LSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gZGF0YTogIik7Ci0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fY29udmVyc2lvbi52YWx1ZSgpLmRhdGEpOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQ29udmVyc2lvbiBwcmlvcml0eTogIik7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fY29udmVyc2lvbi52YWx1ZSgpLnByaW9y
aXR5KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gZWFybGll
c3QgdGltZSB0byBzZW5kOiAiKTsKLSAgICAgICAgaWYgKCFtX2VhcmxpZXN0VGltZVRvU2VuZCkK
LSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTm90IHNldCIpOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGF1dG8gc2Vjb25kc1VudGlsU2VuZCA9ICptX2VhcmxpZXN0VGlt
ZVRvU2VuZCAtIFdhbGxUaW1lOjpub3coKTsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKChz
ZWNvbmRzVW50aWxTZW5kID49IDI0X2ggJiYgc2Vjb25kc1VudGlsU2VuZCA8PSA0OF9oKSA/ICJX
aXRoaW4gMjQtNDggaG91cnMiIDogIk91dHNpZGUgMjQtNDggaG91cnMiKTsKLSAgICAgICAgfQot
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6
ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgod2FzQ29udmVyc2lvblNlbnQoKSA/ICJ0cnVl
IiA6ICJmYWxzZSIpKTsKLSAgICB9IGVsc2UKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJcbk5vIGNvbnZlcnNpb24gZGF0YS4iKTsKLSAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLQot
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Ci19Ci0KIGJvb2wgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OmRlYnVnTW9kZUVuYWJsZWQoKQogewogICAgIHJldHVybiBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdN
b2RlRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuaAppbmRleCBhNjAyZjdjYzY5YWRhZTg5M2E5NzJmZWYzNDUwOGEwZjUxNDNhNTIw
Li5kMDRiZGIxYWMwMjc1N2E1M2RkMGMyOTVhZGVjZDAxMDlhYjE5OTg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaApAQCAtMjMzLDE0ICsy
MzMsMTUgQEAgcHVibGljOgogICAgIH07CiAKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgp
ID0gZGVmYXVsdDsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDYW1wYWlnbiBjYW1wYWln
biwgY29uc3QgU291cmNlJiBzb3VyY2UsIGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikK
KyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDYW1wYWlnbiBjYW1wYWlnbiwgY29uc3QgU291
cmNlJiBzb3VyY2UsIGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbiwgV2FsbFRpbWUgdGlt
ZU9mQWRDbGljayA9IFdhbGxUaW1lOjpub3coKSkKICAgICAgICAgOiBtX2NhbXBhaWduIHsgY2Ft
cGFpZ24gfQogICAgICAgICAsIG1fc291cmNlIHsgc291cmNlIH0KICAgICAgICAgLCBtX2Rlc3Rp
bmF0aW9uIHsgZGVzdGluYXRpb24gfQotICAgICAgICAsIG1fdGltZU9mQWRDbGljayB7IFdhbGxU
aW1lOjpub3coKSB9CisgICAgICAgICwgbV90aW1lT2ZBZENsaWNrIHsgdGltZU9mQWRDbGljayB9
CiAgICAgewogICAgIH0KIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBTZWNvbmRz
IG1heEFnZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeHBlY3RlZDxDb252ZXJzaW9u
LCBTdHJpbmc+IHBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgVVJMJiByZWRpcmVjdFVSTCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8U2Vjb25kcz4gY29udmVydEFuZEdldEVhcmxp
ZXN0VGltZVRvU2VuZChDb252ZXJzaW9uJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFz
SGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50JikgY29uc3Q7
CkBAIC0yNDgsMTUgKzI0OSwxMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEpT
T046Ok9iamVjdD4ganNvbigpIGNvbnN0OwogICAgIGNvbnN0IFNvdXJjZSYgc291cmNlKCkgY29u
c3QgeyByZXR1cm4gbV9zb3VyY2U7IH07CiAgICAgY29uc3QgRGVzdGluYXRpb24mIGRlc3RpbmF0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbjsgfTsKKyAgICBXYWxsVGltZSB0aW1l
T2ZBZENsaWNrKCkgY29uc3QgeyByZXR1cm4gbV90aW1lT2ZBZENsaWNrOyB9CiAgICAgT3B0aW9u
YWw8V2FsbFRpbWU+IGVhcmxpZXN0VGltZVRvU2VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZWFybGll
c3RUaW1lVG9TZW5kOyB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbWFya0FzRXhwaXJlZCgp
OwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzRXhwaXJlZCgpIGNvbnN0OwotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgbWFya0NvbnZlcnNpb25Bc1NlbnQoKTsKLSAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHdhc0NvbnZlcnNpb25TZW50KCkgY29uc3Q7Ci0KLSAgICBib29sIGlzRW1wdHkoKSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5pc0VtcHR5KCk7IH07Ci0K
LSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKKyAgICB2b2lkIHNl
dEVhcmxpZXN0VGltZVRvU2VuZChXYWxsVGltZSB0aW1lKSB7IG1fZWFybGllc3RUaW1lVG9TZW5k
ID0gdGltZTsgfQorICAgIENhbXBhaWduIGNhbXBhaWduKCkgeyByZXR1cm4gbV9jYW1wYWlnbjsg
fQorICAgIE9wdGlvbmFsPENvbnZlcnNpb24+IGNvbnZlcnNpb24oKSB7IHJldHVybiBtX2NvbnZl
cnNpb247IH0KKyAgICB2b2lkIHNldENvbnZlcnNpb24oQ29udmVyc2lvbiYmIGNvbnZlcnNpb24p
IHsgbV9jb252ZXJzaW9uID0gV1RGTW92ZShjb252ZXJzaW9uKTsgfQogCiAgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4g
ZGVjb2RlKERlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IGI3MzBkZGU4OGI0MDQ2Y2Y1OTAzZWMzZDY5ODEz
ZjYyZDc2MTdmZTcuLjAyNWEzOGE5YmZkYWMwMGJkZDNhZjc3ZjQzNTBiNjYyNTA5NDE3NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
LmNwcApAQCAtODAsNiArODAsMTEgQEAgY29uc3RleHByIGF1dG8gdG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudFF1ZXJ5ID0gIkkKIGNvbnN0ZXhw
ciBhdXRvIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5ID0gIklOU0VSVCBPUiBJR05P
UkUgSU5UTyBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gKHRhcmdldERvbWFpbklELCBmcm9t
RG9tYWluSUQpIFNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSBy
ZWdpc3RyYWJsZURvbWFpbiBpbiAoICJfczsKIGNvbnN0ZXhwciBhdXRvIHRvcEZyYW1lTG9hZGVk
VGhpcmRQYXJ0eVNjcmlwdHNRdWVyeSA9ICJJTlNFUlQgT1IgSUdOT1JFIGludG8gVG9wRnJhbWVM
b2FkZWRUaGlyZFBhcnR5U2NyaXB0cyAodG9wRnJhbWVEb21haW5JRCwgc3VicmVzb3VyY2VEb21h
aW5JRCkgU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIHdoZXJlIHJlZ2lz
dHJhYmxlRG9tYWluIGluICggIl9zOwogY29uc3RleHByIGF1dG8gc3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdHNGcm9tUXVlcnkgPSAiSU5TRVJUIE9SIElHTk9SRSBJTlRPIFN1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzRnJvbSAoc3VicmVzb3VyY2VEb21haW5JRCwgZnJvbURvbWFpbklEKSBTRUxF
Q1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21h
aW4gaW4gKCAiX3M7Citjb25zdGV4cHIgYXV0byBpbnNlcnRVbmNvbnZlcnRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50UXVlcnkgPSAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyBVbmNvbnZlcnRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IChzb3VyY2VEb21haW5JRCwgYXR0cmlidXRlT25Eb21haW5J
RCwgIgorICAgICJhdHRyaWJ1dGlvblNvdXJjZUlELCB0aW1lT2ZBZENsaWNrKSBWQUxVRVMgKD8s
ID8sID8sID8pIl9zOworY29uc3RleHByIGF1dG8gaW5zZXJ0Q29udmVydGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRRdWVyeSA9ICJJTlNFUlQgT1IgUkVQTEFDRSBJTlRPIENvbnZlcnRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50IChzb3VyY2VEb21haW5JRCwgYXR0cmlidXRlT25Eb21haW5JRCwg
IgorICAgICJhdHRyaWJ1dGlvblNvdXJjZUlELCB0YWdEYXRhLCBwcmlvcml0eSwgdGltZU9mQWRD
bGljaywgZWFybGllc3RUaW1lVG9TZW5kKSBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8pIl9z
OworY29uc3RleHByIGF1dG8gdXBkYXRlVGltZXJMYXN0RmlyZWRRdWVyeSA9ICJJTlNFUlQgT1Ig
UkVQTEFDRSBJTlRPIFRpbWVyTGFzdEZpcmVkIChrZXksIHRpbWVMYXN0RmlyZWRTZWNvbmRzKSBW
QUxVRVMgKDEsID8pIl9zOwogCiAvLyBJTlNFUlQgT1IgUkVQTEFDRSBRdWVyaWVzCiBjb25zdGV4
cHIgYXV0byBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zUXVlcnkgPSAiSU5TRVJUIE9SIFJF
UExBQ0UgaW50byBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIChzdWJGcmFtZURvbWFpbklE
LCBsYXN0VXBkYXRlZCwgdG9wRnJhbWVEb21haW5JRCkgU0VMRUNUID8sID8sIGRvbWFpbklEIEZS
T00gT2JzZXJ2ZWREb21haW5zIHdoZXJlIHJlZ2lzdHJhYmxlRG9tYWluIGluICggIl9zOwpAQCAt
MTEwLDYgKzExNSwxMSBAQCBjb25zdGV4cHIgYXV0byB1cGRhdGVWZXJ5UHJldmFsZW50UmVzb3Vy
Y2VRdWVyeSA9ICJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBpcwogY29uc3RleHByIGF1dG8g
Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZVF1ZXJ5ID0gIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VU
IGlzUHJldmFsZW50ID0gMCwgaXNWZXJ5UHJldmFsZW50ID0gMCBXSEVSRSByZWdpc3RyYWJsZURv
bWFpbiA9ID8iX3M7CiBjb25zdGV4cHIgYXV0byB1cGRhdGVHcmFuZGZhdGhlcmVkUXVlcnkgPSAi
VVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgZ3JhbmRmYXRoZXJlZCA9ID8gV0hFUkUgcmVnaXN0
cmFibGVEb21haW4gPSA/Il9zOwogY29uc3RleHByIGF1dG8gdXBkYXRlSXNTY2hlZHVsZWRGb3JB
bGxCdXRDb29raWVEYXRhUmVtb3ZhbFF1ZXJ5ID0gIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VU
IGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwgPSA/IFdIRVJFIHJlZ2lzdHJh
YmxlRG9tYWluID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIHNldFVuY29udmVydGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRRdWVyeSA9ICJVUERBVEUgVW5jb252ZXJ0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBTRVQgdGltZU9mQWRDbGljayA9IC0xLjAiX3M7Citjb25zdGV4cHIg
YXV0byB1cGRhdGVBdHRyaWJ1dGlvbnNFYXJsaWVzdFRpbWVUb1NlbmRRdWVyeSA9ICJVUERBVEUg
Q29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXMgYyBTRVQgIgorICAgICJlYXJsaWVz
dFRpbWVUb1NlbmQgPSAoU0VMRUNUIE1BWCgwLjAsIG5ld1RpbWUpIEZST00gKFNFTEVDVCAoZWFy
bGllc3RUaW1lVG9TZW5kIC0gPykgYXMgbmV3VGltZSBGUk9NICIKKyAgICAiQ29udmVydGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXMgZCBXSEVSRSBjLnNvdXJjZURvbWFpbklEID0gZC5zb3Vy
Y2VEb21haW5JRCBBTkQgYy5hdHRyaWJ1dGVPbkRvbWFpbklEID0gIgorICAgICJkLmF0dHJpYnV0
ZU9uRG9tYWluSUQpKSJfczsKIAogLy8gU0VMRUNUIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIGRv
bWFpbklERnJvbVN0cmluZ1F1ZXJ5ID0gIlNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9t
YWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7CkBAIC0xMjgsNiArMTM4LDExIEBA
IGNvbnN0ZXhwciBhdXRvIGdldEFsbERvbWFpbnNRdWVyeSA9ICJTRUxFQ1QgcmVnaXN0cmFibGVE
b21haW4gRlJPTSBPYnNlcnZlZERvbWFpCiBjb25zdGV4cHIgYXV0byBnZXRBbGxTdWJTdGF0aXN0
aWNzVW5kZXJEb21haW5RdWVyeSA9ICJTRUxFQ1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1YmZy
YW1lVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3ViRnJhbWVEb21haW5JRCA9ID8iCiAgICAg
IlVOSU9OIEFMTCBTRUxFQ1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5kZXJU
b3BGcmFtZURvbWFpbnMgV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8iCiAgICAgIlVOSU9O
IEFMTCBTRUxFQ1QgdG9Eb21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8g
V0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBhbGxVbmNv
bnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25zUXVlcnkgPSAiU0VMRUNU
ICogRlJPTSBVbmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50Il9zOworY29uc3RleHBy
IGF1dG8gYWxsQ29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvbnNRdWVy
eSA9ICJTRUxFQ1QgKiBGUk9NIENvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50Il9zOwor
Y29uc3RleHByIGF1dG8gZmluZFVuY29udmVydGVkQXR0cmlidXRpb25RdWVyeSA9ICJTRUxFQ1Qg
KiBGUk9NIFVuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlRG9t
YWluSUQgPSA/IEFORCBhdHRyaWJ1dGVPbkRvbWFpbklEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRv
IGZpbmRDb252ZXJ0ZWRBdHRyaWJ1dGlvblF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gQ29udmVydGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlRG9tYWluSUQgPSA/IEFORCBhdHRy
aWJ1dGVPbkRvbWFpbklEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIHRpbWVyTGFzdEZpcmVkUXVl
cnkgPSAiU0VMRUNUIHRpbWVMYXN0RmlyZWRTZWNvbmRzIEZST00gVGltZXJMYXN0RmlyZWQgV0hF
UkUga2V5ID0gMSJfczsKIAogLy8gRVhJU1RTIGZvciB0ZXN0aW5nIHF1ZXJpZXMKIGNvbnN0ZXhw
ciBhdXRvIGxpbmtEZWNvcmF0aW9uRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNU
ICogRlJPTSBUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20gV0hFUkUgdG9Eb21haW5JRCA9ID8g
T1IgZnJvbURvbWFpbklEID0gPykiX3M7CkBAIC0xMzksNiArMTU0LDkgQEAgY29uc3RleHByIGF1
dG8gb2JzZXJ2ZWREb21haW5zRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNUICog
RlJPTSBPYnNlcnYKIAogLy8gREVMRVRFIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIHJlbW92ZUFs
bERhdGFRdWVyeSA9ICJERUxFVEUgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgZG9tYWluSUQg
PSA/Il9zOworY29uc3RleHByIGF1dG8gY2xlYXJVbmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50UXVlcnkgPSAiREVMRVRFIEZST00gVW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCBXSEVSRSBzb3VyY2VEb21haW5JRCBMSUtFID8gT1IgYXR0cmlidXRlT25Eb21haW5JRCBM
SUtFID8iX3M7Citjb25zdGV4cHIgYXV0byBjbGVhckNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50UXVlcnkgPSAiREVMRVRFIEZST00gQ29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgV0hFUkUgc291cmNlRG9tYWluSUQgTElLRSA/IE9SIGF0dHJpYnV0ZU9uRG9tYWluSUQgTElL
RSA/Il9zOworY29uc3RleHByIGF1dG8gY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRRdWVyeSA9ICJERUxFVEUgRlJPTSBVbmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
IFdIRVJFID8gPiB0aW1lT2ZBZENsaWNrIl9zOwogCiBjb25zdGV4cHIgYXV0byBjcmVhdGVPYnNl
cnZlZERvbWFpbiA9ICJDUkVBVEUgVEFCTEUgT2JzZXJ2ZWREb21haW5zICgiCiAgICAgImRvbWFp
bklEIElOVEVHRVIgUFJJTUFSWSBLRVksIHJlZ2lzdHJhYmxlRG9tYWluIFRFWFQgTk9UIE5VTEwg
VU5JUVVFIE9OIENPTkZMSUNUIEZBSUwsIGxhc3RTZWVuIFJFQUwgTk9UIE5VTEwsICIKQEAgLTIx
OSw4ICsyMzcsMjEgQEAgY29uc3RleHByIGF1dG8gY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdHNGcm9tID0gIkNSRUFURSBUQUJMRSBTdWJyZXNvdXJjZVUKIGNvbnN0ZXhwciBhdXRvIGNy
ZWF0ZU9wZXJhdGluZ0RhdGVzID0gIkNSRUFURSBUQUJMRSBPcGVyYXRpbmdEYXRlcyAoIgogICAg
ICJ5ZWFyIElOVEVHRVIgTk9UIE5VTEwsIG1vbnRoIElOVEVHRVIgTk9UIE5VTEwsIG1vbnRoRGF5
IElOVEVHRVIgTk9UIE5VTEwpOyJfczsKIAorY29uc3RleHByIGF1dG8gY3JlYXRlVW5jb252ZXJ0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9ICJDUkVBVEUgVEFCTEUgVW5jb252ZXJ0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCAoIgorICAgICJzb3VyY2VEb21haW5JRCBJTlRFR0VSIE5PVCBO
VUxMLCBhdHRyaWJ1dGVPbkRvbWFpbklEIElOVEVHRVIgTk9UIE5VTEwsIGF0dHJpYnV0aW9uU291
cmNlSUQgSU5URUdFUiBOT1QgTlVMTCwgIgorICAgICJ0aW1lT2ZBZENsaWNrIFJFQUwgTk9UIE5V
TEwsIEZPUkVJR04gS0VZKHNvdXJjZURvbWFpbklEKSBSRUZFUkVOQ0VTIE9ic2VydmVkRG9tYWlu
cyhkb21haW5JRCkgT04gREVMRVRFIENBU0NBREUsICIKKyAgICAiRk9SRUlHTiBLRVkoYXR0cmli
dXRlT25Eb21haW5JRCkgUkVGRVJFTkNFUyBPYnNlcnZlZERvbWFpbnMoZG9tYWluSUQpIE9OIERF
TEVURSBDQVNDQURFKTsiX3M7CiAKLS8vIENSRUFURSBVTklRVUUgSU5ERVggUXVlcmllcworY29u
c3RleHByIGF1dG8gY3JlYXRlQ29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSAiQ1JF
QVRFIFRBQkxFIENvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50ICgiCisgICAgInNvdXJj
ZURvbWFpbklEIElOVEVHRVIgTk9UIE5VTEwsIGF0dHJpYnV0ZU9uRG9tYWluSUQgSU5URUdFUiBO
T1QgTlVMTCwgYXR0cmlidXRpb25Tb3VyY2VJRCBJTlRFR0VSIE5PVCBOVUxMLCAiCisgICAgInRh
Z0RhdGEgSU5URUdFUiBOT1QgTlVMTCwgcHJpb3JpdHkgSU5URUdFUiBOT1QgTlVMTCwgdGltZU9m
QWRDbGljayBSRUFMIE5PVCBOVUxMLCBlYXJsaWVzdFRpbWVUb1NlbmQgUkVBTCBOT1QgTlVMTCwg
IgorICAgICJGT1JFSUdOIEtFWShzb3VyY2VEb21haW5JRCkgUkVGRVJFTkNFUyBPYnNlcnZlZERv
bWFpbnMoZG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURFLCAiCisgICAgIkZPUkVJR04gS0VZKGF0
dHJpYnV0ZU9uRG9tYWluSUQpIFJFRkVSRU5DRVMgT2JzZXJ2ZWREb21haW5zKGRvbWFpbklEKSBP
TiBERUxFVEUgQ0FTQ0FERSk7Il9zOworCitjb25zdGV4cHIgYXV0byBjcmVhdGVUaW1lckxhc3RG
aXJlZCA9ICJDUkVBVEUgVEFCTEUgVGltZXJMYXN0RmlyZWQgKCBrZXkgSU5URUdFUiBQUklNQVJZ
IEtFWSwgIgorICAgICIgdGltZUxhc3RGaXJlZFNlY29uZHMgUkVBTCBOT1QgTlVMTCApIl9zOwor
CisvLyBDUkVBVEUgVU5JUVVFIElOREVYIFF1ZXJpZXMuCiBjb25zdGV4cHIgYXV0byBjcmVhdGVV
bmlxdWVJbmRleFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlucyA9ICJDUkVBVEUgVU5J
UVVFIElOREVYIElGIE5PVCBFWElTVFMgU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5z
X2RvbWFpbklEX3RvcExldmVsRG9tYWluSUQgb24gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVE
b21haW5zICggZG9tYWluSUQsIHRvcExldmVsRG9tYWluSUQgKTsiX3M7CiBjb25zdGV4cHIgYXV0
byBjcmVhdGVVbmlxdWVJbmRleFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8gPSAiQ1JFQVRFIFVO
SVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9fc291cmNl
RG9tYWluSURfdG9Eb21haW5JRCBvbiBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvICggc291cmNl
RG9tYWluSUQsIHRvRG9tYWluSUQgKTsiX3M7CiBjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJ
bmRleFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnQgPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIFRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRfc291cmNlRG9tYWluSURfdG9E
b21haW5JRCBvbiBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVu
Zm9yY2VtZW50ICggc291cmNlRG9tYWluSUQsIHRvRG9tYWluSUQgKTsiX3M7CkBAIC0yMzIsNiAr
MjYzLDggQEAgY29uc3RleHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVEb21haW5zID0gIkNSRUFURSBVTklRVUUKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVu
aXF1ZUluZGV4U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyA9ICJDUkVBVEUgVU5JUVVFIElO
REVYIElGIE5PVCBFWElTVFMgU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb19zdWJyZXNvdXJj
ZURvbWFpbklEX3RvRG9tYWluSUQgb24gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyAoIHN1
YnJlc291cmNlRG9tYWluSUQsIHRvRG9tYWluSUQgKTsiX3M7CiBjb25zdGV4cHIgYXV0byBjcmVh
dGVVbmlxdWVJbmRleFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSA9ICJDUkVBVEUgVU5J
UVVFIElOREVYIElGIE5PVCBFWElTVFMgU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tX3N1
YnJlc291cmNlRG9tYWluSURfZnJvbURvbWFpbklEIG9uIFN1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZURvbWFpbnMgKCBzdWJyZXNvdXJjZURvbWFpbklELCBmcm9tRG9tYWluSUQgKTsiX3M7CiBjb25z
dGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleE9wZXJhdGluZ0RhdGVzID0gIkNSRUFURSBVTklR
VUUgSU5ERVggSUYgTk9UIEVYSVNUUyBPcGVyYXRpbmdEYXRlc195ZWFyX21vbnRoX21vbnRoRGF5
IG9uIE9wZXJhdGluZ0RhdGVzICggeWVhciwgbW9udGgsIG1vbnRoRGF5ICk7Il9zOworY29uc3Rl
eHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhVbmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50ID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBVbmNvbnZlcnRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50X3NvdXJjZURvbWFpbklEX2F0dHJpYnV0ZU9uRG9tYWluSUQgb24g
VW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAoIHNvdXJjZURvbWFpbklELCBhdHRy
aWJ1dGVPbkRvbWFpbklEICk7Il9zOworY29uc3RleHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhD
b252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9ICJDUkVBVEUgVU5JUVVFIElOREVYIElG
IE5PVCBFWElTVFMgQ29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRfc291cmNlRG9tYWlu
SURfYXR0cmlidXRlT25Eb21haW5JRCBvbiBDb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCAoIHNvdXJjZURvbWFpbklELCBhdHRyaWJ1dGVPbkRvbWFpbklEICk7Il9zOwogCiBzdGF0aWMg
Y29uc3QgU3RyaW5nIE9ic2VydmVkRG9tYWluc1RhYmxlU2NoZW1hVjEoKQogewpAQCAtMjYzLDcg
KzI5NiwxMCBAQCBzdGF0aWMgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGNyZWF0ZVRh
YmxlUXVlcmllcygpCiAgICAgICAgIHsgIlN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMi
X3MsIGNyZWF0ZVN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnN9LAogICAgICAgICB7ICJT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIl9zLCBjcmVhdGVTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0c1RvfSwKICAgICAgICAgeyAiU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tIl9z
LCBjcmVhdGVTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb219LAotICAgICAgICB7ICJPcGVy
YXRpbmdEYXRlcyJfcywgY3JlYXRlT3BlcmF0aW5nRGF0ZXN9CisgICAgICAgIHsgIk9wZXJhdGlu
Z0RhdGVzIl9zLCBjcmVhdGVPcGVyYXRpbmdEYXRlc30sCisgICAgICAgIHsgIlVuY29udmVydGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiX3MsIGNyZWF0ZVVuY29udmVydGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnR9LAorICAgICAgICB7ICJDb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCJfcywgY3JlYXRlQ29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnR9LAorICAgICAgICB7
ICJUaW1lckxhc3RGaXJlZCJfcywgY3JlYXRlVGltZXJMYXN0RmlyZWR9CiAgICAgfSk7CiAgICAg
CiAgICAgcmV0dXJuIGNyZWF0ZVRhYmxlUXVlcmllczsKQEAgLTI5NCw2ICszMzAsNyBAQCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmUoV2ViUmVzbwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dHVybk9uSW5jcmVtZW50
YWxBdXRvVmFjdXVtIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcs
IHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogCiAgICAgaW5jbHVkZVRvZGF5QXNP
cGVyYXRpbmdEYXRlSWZOZWNlc3NhcnkoKTsKKyAgICB1cGRhdGVQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uVGltZXMoKTsKICAgICBhbGxTdG9yZXMoKS5hZGQodGhpcyk7CiB9CiAK
QEAgLTU1NSw3ICs1OTIsOSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpjcmVhdGVVbmlxdWVJbmRpY2VzKCkKICAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhlY3V0
ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5z
KQogICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRl
eFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8pCiAgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4
ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9t
YWlucykKLSAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVl
SW5kZXhPcGVyYXRpbmdEYXRlcykpIHsKKyAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhlY3V0ZUNv
bW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhPcGVyYXRpbmdEYXRlcykKKyAgICAgICAgfHwgIW1fZGF0
YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhVbmNvbnZlcnRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50KQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChj
cmVhdGVVbmlxdWVJbmRleENvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KSkgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlVW5pcXVlSW5kaWNlcyBmYWlsZWQgdG8gZXhlY3V0ZSwg
ZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNjMwLDcgKzY2
OSwyMiBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVT
Y2hlbWEoKQogICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBjcmVhdGUgT3BlcmF0aW5nRGF0
ZXMgdGFibGUgaW4gZGF0YWJhc2UgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS5sYXN0RXJyb3IoKSwg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CisKKyAgICBpZiAoIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5jb252ZXJ0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3Qg
Y3JlYXRlIFVuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgdGFibGUgaW4gZGF0YWJh
c2UgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIW1fZGF0
YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlQ29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpKSB7CisgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGNyZWF0ZSBDb252ZXJ0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCB0YWJsZSBpbiBkYXRhYmFzZSAoJWkpIC0gJXMiLCBtX2RhdGFi
YXNlLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KICAgICAKKyAgICBpZiAoIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1h
bmQoY3JlYXRlVGltZXJMYXN0RmlyZWQpKSB7CisgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90
IGNyZWF0ZSBUaW1lckxhc3RGaXJlZCB0YWJsZSBpbiBkYXRhYmFzZSAoJWkpIC0gJXMiLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIGlmICghY3JlYXRlVW5pcXVlSW5kaWNlcygpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTY3OCw2ICs3MzIsMTkgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZGVzdHJveVN0YXRlbWVudHMoKQogICAgIG1f
dW5pcXVlUmVkaXJlY3RFeGlzdHNTdGF0ZW1lbnQgPSBudWxscHRyOwogICAgIG1fb2JzZXJ2ZWRE
b21haW5zRXhpc3RzU3RhdGVtZW50ID0gbnVsbHB0cjsKICAgICBtX3JlbW92ZUFsbERhdGFTdGF0
ZW1lbnQgPSBudWxscHRyOworICAgIG1faW5zZXJ0VW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9pbnNlcnRDb252ZXJ0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9zZXRVbmNvbnZlcnRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkU3RhdGVtZW50ID0gbnVsbHB0cjsKKyAg
ICBtX2NsZWFyVW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudCA9IG51
bGxwdHI7CisgICAgbV9jbGVhckNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVt
ZW50ID0gbnVsbHB0cjsKKyAgICBtX2NsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
U3RhdGVtZW50ID0gbnVsbHB0cjsKKyAgICBtX2FsbFVuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvbnNTdGF0ZW1lbnQgPSBudWxscHRyOworICAgIG1fYWxsQ29udmVy
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvbnNTdGF0ZW1lbnQgPSBudWxscHRy
OworICAgIG1fZmluZFVuY29udmVydGVkQXR0cmlidXRpb25TdGF0ZW1lbnQgPSBudWxscHRyOwor
ICAgIG1fZmluZENvbnZlcnRlZEF0dHJpYnV0aW9uU3RhdGVtZW50ID0gbnVsbHB0cjsKKyAgICBt
X3VwZGF0ZVRpbWVyTGFzdEZpcmVkU3RhdGVtZW50ID0gbnVsbHB0cjsKKyAgICBtX3RpbWVyTGFz
dEZpcmVkU3RhdGVtZW50ID0gbnVsbHB0cjsKKyAgICBtX3VwZGF0ZUF0dHJpYnV0aW9uc0Vhcmxp
ZXN0VGltZVRvU2VuZFN0YXRlbWVudCA9IG51bGxwdHI7CiB9CiAKIGJvb2wgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydE9ic2VydmVkRG9tYWluKGNvbnN0IFJlc291
cmNlTG9hZFN0YXRpc3RpY3MmIGxvYWRTdGF0aXN0aWNzKQpAQCAtMjgxNCw2ICsyODgxLDQ4MSBA
QCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRFeHBpcmVk
U3RhdGlzdGljRm9yVGVzdGluZyhjb25zdAogICAgIH0KIH0KIAordm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlVGltZXJMYXN0RmlyZWQoKQoreworICAgIGF1
dG8gc2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fdXBkYXRlVGltZXJM
YXN0RmlyZWRTdGF0ZW1lbnQsIHVwZGF0ZVRpbWVyTGFzdEZpcmVkUXVlcnksICJ1cGRhdGVUaW1l
ckxhc3RGaXJlZCJfcyk7CisKKyAgICBhdXRvIG5vdyA9IFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLnZhbHVlKCk7CisKKyAgICBpZiAoIXNjb3BlZFN0YXRlbWVudAorICAgICAg
ICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmREb3VibGUoMSwgbm93KSAhPSBTUUxJVEVfT0sKKyAg
ICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnVwZGF0ZVRpbWVyTGFzdEZpcmVkIGZhaWxlZCwgZXJyb3IgbWVzc2Fn
ZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCitXYWxsVGltZSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dGltZXJMYXN0RmlyZWQoKQoreworICAgIGF1dG8g
c2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fdGltZXJMYXN0RmlyZWRT
dGF0ZW1lbnQsIHRpbWVyTGFzdEZpcmVkUXVlcnksICJ0aW1lckxhc3RGaXJlZCJfcyk7CisKKyAg
ICBpZiAoIXNjb3BlZFN0YXRlbWVudCkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6dGltZXJMYXN0RmlyZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KKworICAgIGlmIChzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSA9PSBTUUxJVEVfUk9X
KQorICAgICAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHNjb3BlZFN0YXRlbWVu
dC0+Z2V0Q29sdW1uRG91YmxlKDApKTsKKyAgICAKKyAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygp
OworfQorCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVGltZXMoKQoreworICAgIC8vIFdlIHNo
b3VsZCB1cGRhdGUgY29udmVydGVkIGF0dHJpYnV0aW9ucyBvbiBzZXNzaW9uLXN0YXJ0IHRvIGFj
Y291bnQgZm9yIHRoZSB0aW1lCisgICAgLy8gdGhhdCBwYXNzZWQgd2hpbGUgdGhlIHNlc3Npb24g
d2FzIGNsb3NlZC4gSWYgdGhlIGFtb3VudCBvZiB0aW1lIHNpbmNlIHRoZSBsYXN0CisgICAgLy8g
dGltZXIgZmlyZSBpcyBncmVhdGVyIHRoYW4gdGhlIGVhcmxpZXN0VGltZVRvU2VuZCwgd2Ugc2hv
dWxkIHNldCBlYXJsaWVzdFRpbWVUb1NlbmQKKyAgICAvLyB0byBiZSBpbW1lZGlhdGVseS4KKyAg
ICBhdXRvIGxhc3RGaXJlZCA9IHRpbWVyTGFzdEZpcmVkKCk7CisgICAgYXV0byB0aW1lUGFzc2Vk
ID0gV2FsbFRpbWU6Om5vdygpIC0gbGFzdEZpcmVkOworCisgICAgYXV0byBzY29wZWRTdGF0ZW1l
bnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV91cGRhdGVBdHRyaWJ1dGlvbnNFYXJsaWVzdFRp
bWVUb1NlbmRTdGF0ZW1lbnQsIHVwZGF0ZUF0dHJpYnV0aW9uc0VhcmxpZXN0VGltZVRvU2VuZFF1
ZXJ5LCAidXBkYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRpbWVzIl9zKTsK
KworICAgIGlmICghc2NvcGVkU3RhdGVtZW50CisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+
YmluZERvdWJsZSgxLCB0aW1lUGFzc2VkLnZhbHVlKCkpICE9IFNRTElURV9PSworICAgICAgICB8
fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRy
aWJ1dGlvblRpbWVzLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
Cit9CisKK1ByaXZhdGVDbGlja01lYXN1cmVtZW50IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpidWlsZEF0dHJpYnV0aW9uRnJvbURhdGFiYXNlKFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudCogc3RhdGVtZW50LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlw
ZSBhdHRyaWJ1dGlvblR5cGUpCit7CisgICAgYXV0byBzb3VyY2VEb21haW4gPSBnZXREb21haW5T
dHJpbmdGcm9tRG9tYWluSUQoc3RhdGVtZW50LT5nZXRDb2x1bW5JbnQoMCkpOworICAgIGF1dG8g
YXR0cmlidXRlT25Eb21haW4gPSBnZXREb21haW5TdHJpbmdGcm9tRG9tYWluSUQoc3RhdGVtZW50
LT5nZXRDb2x1bW5JbnQoMSkpOworICAgIGF1dG8gYXR0cmlidXRpb25Tb3VyY2VJRCA9IHN0YXRl
bWVudC0+Z2V0Q29sdW1uSW50KDIpOworICAgIGF1dG8gdGltZU9mQWRDbGljayA9IGF0dHJpYnV0
aW9uVHlwZSA9PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6Q29udmVy
dGVkID8gc3RhdGVtZW50LT5nZXRDb2x1bW5Eb3VibGUoNSkgOiBzdGF0ZW1lbnQtPmdldENvbHVt
bkRvdWJsZSgzKTsKKworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihhdHRyaWJ1dGlvblNvdXJj
ZUlEKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZShSZWdpc3RyYWJs
ZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5nKHNvdXJj
ZURvbWFpbikpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24o
UmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0
cmluZyhhdHRyaWJ1dGVPbkRvbWFpbikpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZU9m
QWRDbGljaykpOworICAgIAorICAgIGlmIChhdHRyaWJ1dGlvblR5cGUgPT0gUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OkNvbnZlcnRlZCkgeworICAgICAgICBhdXRvIHRh
Z0RhdGEgPSBzdGF0ZW1lbnQtPmdldENvbHVtbkludCgzKTsKKyAgICAgICAgYXV0byBwcmlvcml0
eSA9IHN0YXRlbWVudC0+Z2V0Q29sdW1uSW50KDQpOworICAgICAgICBhdXRvIGVhcmxpZXN0VGlt
ZVRvU2VuZCA9IHN0YXRlbWVudC0+Z2V0Q29sdW1uRG91YmxlKDYpOworICAgICAgICAKKyAgICAg
ICAgaWYgKHRhZ0RhdGEgIT0gLTEpCisgICAgICAgICAgICBhdHRyaWJ1dGlvbi5zZXRDb252ZXJz
aW9uKENvbnZlcnNpb24geyBzdGF0aWNfY2FzdDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6Q29udmVyc2lvbkRhdGE+KHRhZ0RhdGEpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6UHJpb3JpdHkocHJpb3JpdHkpIH0pOworCisgICAgICAgIGF0dHJpYnV0aW9uLnNl
dEVhcmxpZXN0VGltZVRvU2VuZChXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZWFybGllc3RUaW1l
VG9TZW5kKSk7CisgICAgfQorCisgICAgcmV0dXJuIGF0dHJpYnV0aW9uOworfQorCitzdGQ6OnBh
aXI8T3B0aW9uYWw8VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbj4sIE9wdGlvbmFsPENvbnZlcnRlZEF0
dHJpYnV0aW9uPj4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmZpbmRBdHRy
aWJ1dGlvbihjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlJiBz
b3VyY2UsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlv
biYgZGVzdGluYXRpb24pCit7CisgICAgYXV0byBzb3VyY2VEb21haW5JRCA9IGRvbWFpbklEKHNv
dXJjZS5yZWdpc3RyYWJsZURvbWFpbik7CisgICAgYXV0byBhdHRyaWJ1dGVPbkRvbWFpbklEID0g
ZG9tYWluSUQoZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4pOworCisgICAgaWYgKCFzb3Vy
Y2VEb21haW5JRCB8fCAhYXR0cmlidXRlT25Eb21haW5JRCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV9wYWlyKFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KTsKKworICAgIGF1dG8gZmluZFVu
Y29udmVydGVkU2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fZmluZFVu
Y29udmVydGVkQXR0cmlidXRpb25TdGF0ZW1lbnQsIGZpbmRVbmNvbnZlcnRlZEF0dHJpYnV0aW9u
UXVlcnksICJmaW5kVW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbiJfcyk7CisgICAgaWYgKCFmaW5kVW5j
b252ZXJ0ZWRTY29wZWRTdGF0ZW1lbnQKKyAgICAgICAgfHwgZmluZFVuY29udmVydGVkU2NvcGVk
U3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3VyY2VEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAg
ICAgIHx8IGZpbmRVbmNvbnZlcnRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqYXR0cmli
dXRlT25Eb21haW5JRCkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpmaW5kQXR0cmlidXRpb24gZmluZFVuY29udmVydGVkQXR0cmlidXRpb25RdWVy
eSwgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgYXV0
byBmaW5kQ29udmVydGVkU2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1f
ZmluZENvbnZlcnRlZEF0dHJpYnV0aW9uU3RhdGVtZW50LCBmaW5kQ29udmVydGVkQXR0cmlidXRp
b25RdWVyeSwgImZpbmRDb252ZXJ0ZWRBdHRyaWJ1dGlvbiJfcyk7CisgICAgaWYgKCFmaW5kQ29u
dmVydGVkU2NvcGVkU3RhdGVtZW50CisgICAgICAgIHx8IGZpbmRDb252ZXJ0ZWRTY29wZWRTdGF0
ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAg
fHwgZmluZENvbnZlcnRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgyLCAqYXR0cmlidXRlT25E
b21haW5JRCkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpmaW5kQXR0cmlidXRpb24gZmluZENvbnZlcnRlZEF0dHJpYnV0aW9uUXVlcnksIGVycm9y
IG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIE9wdGlvbmFsPFVu
Y29udmVydGVkQXR0cmlidXRpb24+IHVuY29udmVydGVkQXR0cmlidXRpb247CisgICAgaWYgKGZp
bmRVbmNvbnZlcnRlZFNjb3BlZFN0YXRlbWVudC0+c3RlcCgpID09IFNRTElURV9ST1cpCisgICAg
ICAgIHVuY29udmVydGVkQXR0cmlidXRpb24gPSBidWlsZEF0dHJpYnV0aW9uRnJvbURhdGFiYXNl
KGZpbmRVbmNvbnZlcnRlZFNjb3BlZFN0YXRlbWVudC5nZXQoKSwgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBdHRyaWJ1dGlvblR5cGU6OlVuY29udmVydGVkKTsKKworICAgIE9wdGlvbmFsPENvbnZl
cnRlZEF0dHJpYnV0aW9uPiBjb252ZXJ0ZWRBdHRyaWJ1dGlvbjsKKyAgICBpZiAoZmluZENvbnZl
cnRlZFNjb3BlZFN0YXRlbWVudC0+c3RlcCgpID09IFNRTElURV9ST1cpCisgICAgICAgIGNvbnZl
cnRlZEF0dHJpYnV0aW9uID0gYnVpbGRBdHRyaWJ1dGlvbkZyb21EYXRhYmFzZShmaW5kQ29udmVy
dGVkU2NvcGVkU3RhdGVtZW50LmdldCgpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uVHlwZTo6Q29udmVydGVkKTsKKworICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcih1bmNvbnZl
cnRlZEF0dHJpYnV0aW9uLCBjb252ZXJ0ZWRBdHRyaWJ1dGlvbik7Cit9CisKK3ZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgYXR0cmlidXRpb24sIFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25UeXBlIGF0dHJpYnV0aW9uVHlwZSkKK3sKKyAgICBhdXRvIHNv
dXJjZURhdGEgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihh
dHRyaWJ1dGlvbi5zb3VyY2UoKS5yZWdpc3RyYWJsZURvbWFpbik7CisgICAgYXV0byBhdHRyaWJ1
dGVPbkRhdGEgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihh
dHRyaWJ1dGlvbi5kZXN0aW5hdGlvbigpLnJlZ2lzdHJhYmxlRG9tYWluKTsKKworICAgIGlmICgh
c291cmNlRGF0YS5zZWNvbmQgfHwgIWF0dHJpYnV0ZU9uRGF0YS5zZWNvbmQpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChtX3Nob3VsZEluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5n
KSB7CisgICAgICAgIGluc2VydEV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3Rpbmco
KnNvdXJjZURhdGEuc2Vjb25kLCAqYXR0cmlidXRlT25EYXRhLnNlY29uZCwgYXR0cmlidXRpb25U
eXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChhdHRyaWJ1dGlvblR5cGUg
PT0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OkNvbnZlcnRlZCkgewor
ICAgICAgICBhdXRvIGNvbnZlcnNpb25WYWx1ZSA9IGF0dHJpYnV0aW9uLmNvbnZlcnNpb24oKSA/
IGF0dHJpYnV0aW9uLmNvbnZlcnNpb24oKS52YWx1ZSgpLmRhdGEgOiAtMTsKKyAgICAgICAgYXV0
byBwcmlvcml0eSA9IGF0dHJpYnV0aW9uLmNvbnZlcnNpb24oKSA/IGF0dHJpYnV0aW9uLmNvbnZl
cnNpb24oKS52YWx1ZSgpLnByaW9yaXR5IDogLTE7CisgICAgICAgIGF1dG8gZWFybGllc3RUaW1l
VG9TZW5kID0gYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCkgPyBhdHRyaWJ1dGlvbi5l
YXJsaWVzdFRpbWVUb1NlbmQoKS52YWx1ZSgpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSA6
IC0xOworCisgICAgICAgIGF1dG8gc3RhdGVtZW50ID0gU1FMaXRlU3RhdGVtZW50KG1fZGF0YWJh
c2UsIGluc2VydENvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnkpOworICAgICAg
ICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHN0
YXRlbWVudC5iaW5kSW50KDEsICpzb3VyY2VEYXRhLnNlY29uZCkgIT0gU1FMSVRFX09LCisgICAg
ICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZEludCgyLCAqYXR0cmlidXRlT25EYXRhLnNlY29uZCkg
IT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZEludCgzLCBhdHRyaWJ1
dGlvbi5jYW1wYWlnbigpLmlkKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHN0YXRlbWVu
dC5iaW5kSW50KDQsIGNvbnZlcnNpb25WYWx1ZSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8
fCBzdGF0ZW1lbnQuYmluZEludCg1LCBwcmlvcml0eSkgIT0gU1FMSVRFX09LCisgICAgICAgICAg
ICB8fCBzdGF0ZW1lbnQuYmluZERvdWJsZSg2LCBhdHRyaWJ1dGlvbi50aW1lT2ZBZENsaWNrKCku
c2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8
IHN0YXRlbWVudC5iaW5kRG91YmxlKDcsIGVhcmxpZXN0VGltZVRvU2VuZCkgIT0gU1FMSVRFX09L
CisgICAgICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAg
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzdGF0ZW1lbnQgPSBTUUxp
dGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwgaW5zZXJ0VW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFF1ZXJ5KTsKKyAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
KyAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoMSwgKnNvdXJjZURhdGEuc2Vjb25kKSAhPSBT
UUxJVEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoMiwgKmF0dHJpYnV0ZU9uRGF0
YS5zZWNvbmQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZEludCgzLCBh
dHRyaWJ1dGlvbi5jYW1wYWlnbigpLmlkKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3RhdGVt
ZW50LmJpbmREb3VibGUoNCwgYXR0cmlidXRpb24udGltZU9mQWRDbGljaygpLnNlY29uZHNTaW5j
ZUVwb2NoKCkudmFsdWUoKSkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHN0YXRlbWVudC5zdGVw
KCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
Omluc2VydEV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3RpbmcsIGVycm9yIG1lc3Nh
Z2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKwordm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0FsbFVuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKCkKK3sKKyAgICBhdXRvIHNjb3BlZFN0YXRlbWVu
dCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX3NldFVuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBc0V4cGlyZWRTdGF0ZW1lbnQsIHNldFVuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBc0V4cGlyZWRRdWVyeSwgIm1hcmtBbGxVbmNvbnZlcnRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZyJfcyk7CisKKyAgICBpZiAoIXNjb3BlZFN0YXRl
bWVudCB8fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0FsbFVuY29udmVydGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nLCBlcnJvciBtZXNzYWdlOiAle3ByaXZh
dGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnJlbW92ZVVuY29udmVydGVkKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiBh
dHRyaWJ1dGlvbikKK3sKKyAgICBhdXRvIHNvdXJjZURvbWFpbklEID0gZG9tYWluSUQoYXR0cmli
dXRpb24uc291cmNlKCkucmVnaXN0cmFibGVEb21haW4pOworICAgIGF1dG8gYXR0cmlidXRlT25E
b21haW5JRCA9IGRvbWFpbklEKGF0dHJpYnV0aW9uLmRlc3RpbmF0aW9uKCkucmVnaXN0cmFibGVE
b21haW4pOworCisgICAgaWYgKCFzb3VyY2VEb21haW5JRCB8fCAhYXR0cmlidXRlT25Eb21haW5J
RCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBzdGF0ZW1lbnQgPSBTUUxpdGVTdGF0ZW1l
bnQobV9kYXRhYmFzZSwgIkRFTEVURSBGUk9NIFVuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgV0hFUkUgc291cmNlRG9tYWluSUQgPSA/IEFORCBhdHRyaWJ1dGVPbkRvbWFpbklEID0g
PyIpOworICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8
fCBzdGF0ZW1lbnQuYmluZEludCgxLCAqc291cmNlRG9tYWluSUQpICE9IFNRTElURV9PSworICAg
ICAgICB8fCBzdGF0ZW1lbnQuYmluZEludCgyLCAqYXR0cmlidXRlT25Eb21haW5JRCkgIT0gU1FM
SVRFX09LCisgICAgICAgIHx8IHN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbW92ZVVuY29udmVydGVkLCBlcnJv
ciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK09wdGlvbmFsPFNl
Y29uZHM+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjb252ZXJ0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgU291cmNlJiBzb3VyY2UsIGNvbnN0IERlc3RpbmF0aW9u
JiBkZXN0aW5hdGlvbiwgQ29udmVyc2lvbiYmIGNvbnZlcnNpb24pCit7CisgICAgY2xlYXJFeHBp
cmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKworICAgIGlmICghY29udmVyc2lvbi5pc1Zh
bGlkKCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJHb3Qg
YW4gaW52YWxpZCBjb252ZXJzaW9uLiIpOworICAgICAgICAgICAgZGVidWdCcm9hZGNhc3RDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBHb3QgYW4gaW52YWxp
ZCBjb252ZXJzaW9uLiJfcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICB9CisKKyAgICBhdXRvIGNvbnZlcnNpb25EYXRhID0gY29udmVyc2lvbi5kYXRhOwor
ICAgIGF1dG8gY29udmVyc2lvblByaW9yaXR5ID0gY29udmVyc2lvbi5wcmlvcml0eTsKKworICAg
IGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgIFJFTEVBU0VfTE9H
X0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJHb3QgYSBjb252ZXJzaW9uIHdpdGggY29u
dmVyc2lvbiBkYXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dS4iLCBjb252
ZXJzaW9uRGF0YSwgY29udmVyc2lvblByaW9yaXR5KTsKKyAgICAgICAgZGVidWdCcm9hZGNhc3RD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVz
c2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0g
R290IGEgY29udmVyc2lvbiB3aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRh
dGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJy4iX3MpKTsK
KyAgICB9CisKKyAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQgPSBTZWNvbmRzOjppbmZpbml0eSgp
OworCisgICAgYXV0byBhdHRyaWJ1dGlvbiA9IGZpbmRBdHRyaWJ1dGlvbihzb3VyY2UsIGRlc3Rp
bmF0aW9uKTsKKyAgICBhdXRvJiBwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbiA9IGF0
dHJpYnV0aW9uLmZpcnN0OworICAgIGF1dG8mIHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlv
biA9IGF0dHJpYnV0aW9uLnNlY29uZDsKKworICAgIGlmIChwcmV2aW91c2x5VW5jb252ZXJ0ZWRB
dHRyaWJ1dGlvbikgeworICAgICAgICAvLyBBbHdheXMgY29udmVydCB0aGUgcGVuZGluZyBhdHRy
aWJ1dGlvbiBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIHVuY29udmVydGVkIG1hcC4KKyAgICAgICAg
cmVtb3ZlVW5jb252ZXJ0ZWQoKnByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uKTsKKyAg
ICAgICAgaWYgKGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kID0gcHJldmlvdXNseVVuY29u
dmVydGVkQXR0cmlidXRpb24udmFsdWUoKS5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5k
KFdURk1vdmUoY29udmVyc2lvbikpKSB7CisgICAgICAgICAgICBzZWNvbmRzVW50aWxTZW5kID0g
Km9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZDsKKyAgICAgICAgICAgIEFTU0VSVChzZWNvbmRzVW50
aWxTZW5kICE9IFNlY29uZHM6OmluZmluaXR5KCkpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZ
KGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZP
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQ29udmVydGVkIGEgc3RvcmVkIGFkIGNsaWNrIHdp
dGggY29udmVyc2lvbiBkYXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dS4i
LCBjb252ZXJzaW9uRGF0YSwgY29udmVyc2lvblByaW9yaXR5KTsKKyAgICAgICAgICAgICAgICBk
ZWJ1Z0Jyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNr
IE1lYXN1cmVtZW50XSBDb252ZXJ0ZWQgYSBzdG9yZWQgYWQgY2xpY2sgd2l0aCBjb252ZXJzaW9u
IGRhdGE6ICciX3MsIGNvbnZlcnNpb25EYXRhLCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIGNvbnZl
cnNpb25Qcmlvcml0eSwgIicuIl9zKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICAvLyBJZiB0aGVyZSBpcyBubyBwcmV2aW91c2x5IGNvbnZlcnRlZCBhdHRyaWJ1dGlvbiwg
b3IgdGhlIG5ld2x5IGNvbnZlcnRlZCBhdHRyaWJ1dGlvbiBoYXMgaGlnaGVyIHByaW9yaXR5LCBp
bnNlcnQvdXBkYXRlIHRoZSBkYXRhYmFzZS4KKyAgICAgICAgaWYgKCFwcmV2aW91c2x5Q29udmVy
dGVkQXR0cmlidXRpb24gfHwgcHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24udmFsdWUo
KS5oYXNIaWdoZXJQcmlvcml0eVRoYW4oKnByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbikp
IHsKKyAgICAgICAgICAgIGluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50KFdURk1vdmUoKnBy
ZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
dHRyaWJ1dGlvblR5cGU6OkNvbnZlcnRlZCk7CisKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShk
ZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIlJlcGxhY2VkIGEgcHJldmlvdXNseSBjb252ZXJ0ZWQg
YWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUg
YW5kIHByaW9yaXR5OiAle3B1YmxpY311IGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4i
LCBjb252ZXJzaW9uRGF0YSwgY29udmVyc2lvblByaW9yaXR5KTsKKyAgICAgICAgICAgICAgICBk
ZWJ1Z0Jyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNr
IE1lYXN1cmVtZW50XSBSZXBsYWNlZCBhIHByZXZpb3VzbHkgY29udmVydGVkIGFkIGNsaWNrIHdp
dGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0YSwg
IicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInIGJlY2F1c2UgaXQg
aGFkIGhpZ2hlciBwcmlvcml0eS4iX3MpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0gZWxzZSBpZiAocHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uKSB7CisgICAgICAgIC8v
IElmIHdlIGhhdmUgbm8gbmV3bHkgY29udmVydGVkIGF0dHJpYnV0aW9uLCByZS1jb252ZXJ0IHRo
ZSBvbGQgb25lIHRvIHJlc3BlY3QgdGhlIG5ldyBwcmlvcml0eS4KKyAgICAgICAgaWYgKGF1dG8g
b3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kID0gcHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9u
LnZhbHVlKCkuY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChXVEZNb3ZlKGNvbnZlcnNp
b24pKSkgeworICAgICAgICAgICAgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92
ZSgqcHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblR5cGU6OkNvbnZlcnRlZCk7CisKKyAgICAgICAgICAgIHNlY29uZHNVbnRp
bFNlbmQgPSAqb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kOworICAgICAgICAgICAgQVNTRVJUKHNl
Y29uZHNVbnRpbFNlbmQgIT0gU2Vjb25kczo6aW5maW5pdHkoKSk7CisKKyAgICAgICAgICAgIGlm
IChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIlJlLWNvbnZlcnRlZCBhbiBhZCBj
bGljayB3aXRoIGEgbmV3IG9uZSB3aXRoIGNvbnZlcnNpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQg
cHJpb3JpdHk6ICV7cHVibGljfXUgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiIsIGNv
bnZlcnNpb25EYXRhLCBjb252ZXJzaW9uUHJpb3JpdHkpOworICAgICAgICAgICAgICAgIGRlYnVn
QnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVh
c3VyZW1lbnRdIFJlLWNvbnZlcnRlZCBhbiBhZCBjbGljayB3aXRoIGEgbmV3IG9uZSB3aXRoIGNv
bnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlvcml0eTogJyJf
cywgY29udmVyc2lvblByaW9yaXR5LCAiJycgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5
LiJfcykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHNlY29u
ZHNVbnRpbFNlbmQgPT0gU2Vjb25kczo6aW5maW5pdHkoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIHJldHVybiBzZWNvbmRzVW50aWxTZW5kOworfQorCitWZWN0b3I8V2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjphbGxDb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9u
cygpCit7CisgICAgYXV0byBjb252ZXJ0ZWRBdHRyaWJ1dGlvblNjb3BlZFN0YXRlbWVudCA9IHRo
aXMtPnNjb3BlZFN0YXRlbWVudChtX2FsbENvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25zU3RhdGVtZW50LCBhbGxDb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uc1F1ZXJ5LCAicHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZyJfcyk7
CisKKyAgICBpZiAoIWNvbnZlcnRlZEF0dHJpYnV0aW9uU2NvcGVkU3RhdGVtZW50KSB7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRv
U3RyaW5nLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAg
ICBWZWN0b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGF0dHJpYnV0aW9uczsK
KyAgICB3aGlsZSAoY29udmVydGVkQXR0cmlidXRpb25TY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSA9
PSBTUUxJVEVfUk9XKQorICAgICAgICBhdHRyaWJ1dGlvbnMuYXBwZW5kKGJ1aWxkQXR0cmlidXRp
b25Gcm9tRGF0YWJhc2UoY29udmVydGVkQXR0cmlidXRpb25TY29wZWRTdGF0ZW1lbnQuZ2V0KCks
IFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlOjpDb252ZXJ0ZWQpKTsKKwor
ICAgIHJldHVybiBhdHRyaWJ1dGlvbnM7Cit9CisKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoT3B0aW9uYWw8UmVn
aXN0cmFibGVEb21haW4+IGRvbWFpbikKK3sKKyAgICAvLyBEZWZhdWx0IHRvIGNsZWFyIGFsbCBl
bnRyaWVzIGlmIG5vIGRvbWFpbiBpcyBzcGVjaWZpZWQuCisgICAgU3RyaW5nIGJpbmRQYXJhbWV0
ZXIgPSAiJSI7CisgICAgaWYgKGRvbWFpbikgeworICAgICAgICBhdXRvIGRvbWFpbklEVG9NYXRj
aCA9IGRvbWFpbklEKCpkb21haW4pOworICAgICAgICBpZiAoIWRvbWFpbklEVG9NYXRjaCkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBiaW5kUGFyYW1ldGVyID0gU3RyaW5nOjpudW1i
ZXIoKmRvbWFpbklEVG9NYXRjaCk7CisgICAgfQorCisgICAgYXV0byBjbGVhclVuY29udmVydGVk
QXR0cmlidXRpb25zU2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fY2xl
YXJVbmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50LCBjbGVhclVuY29u
dmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSwgImNsZWFyUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQiX3MpOworCisgICAgaWYgKCFjbGVhclVuY29udmVydGVkQXR0cmlidXRpb25zU2Nv
cGVkU3RhdGVtZW50CisgICAgICAgIHx8IGNsZWFyVW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbnNTY29w
ZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDEsIGJpbmRQYXJhbWV0ZXIpICE9IFNRTElURV9PSworICAg
ICAgICB8fCBjbGVhclVuY29udmVydGVkQXR0cmlidXRpb25zU2NvcGVkU3RhdGVtZW50LT5iaW5k
VGV4dCgyLCBiaW5kUGFyYW1ldGVyKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgY2xlYXJVbmNv
bnZlcnRlZEF0dHJpYnV0aW9uc1Njb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05F
KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclByaXZhdGVDbGlj
a01lYXN1cmVtZW50IGNsZWFyVW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbnNTY29wZWRTdGF0ZW1lbnQs
IGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGF1dG8g
Y2xlYXJDb252ZXJ0ZWRBdHRyaWJ1dGlvbnNTY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRT
dGF0ZW1lbnQobV9jbGVhckNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50
LCBjbGVhckNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnksICJjbGVhclByaXZh
dGVDbGlja01lYXN1cmVtZW50Il9zKTsKKworICAgIGlmICghY2xlYXJDb252ZXJ0ZWRBdHRyaWJ1
dGlvbnNTY29wZWRTdGF0ZW1lbnQKKyAgICAgICAgfHwgY2xlYXJDb252ZXJ0ZWRBdHRyaWJ1dGlv
bnNTY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDEsIGJpbmRQYXJhbWV0ZXIpICE9IFNRTElURV9P
SworICAgICAgICB8fCBjbGVhckNvbnZlcnRlZEF0dHJpYnV0aW9uc1Njb3BlZFN0YXRlbWVudC0+
YmluZFRleHQoMiwgYmluZFBhcmFtZXRlcikgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IGNsZWFy
Q29udmVydGVkQXR0cmlidXRpb25zU2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RP
TkUpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgY2xlYXJDb252ZXJ0ZWRBdHRyaWJ1dGlvbnNTY29wZWRTdGF0ZW1lbnQs
IGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKwordm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJFeHBpcmVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoKQoreworICAgIGF1dG8gZXhwaXJhdGlvblRpbWVGcmFtZSA9IFdhbGxU
aW1lOjpub3coKSAtIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjptYXhBZ2UoKTsK
KyAgICBhdXRvIHNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX2NsZWFy
RXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50LCBjbGVhckV4cGlyZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5LCAiY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQiX3MpOworCisgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKKyAgICAgICAgfHwgc2NvcGVk
U3RhdGVtZW50LT5iaW5kRG91YmxlKDEsIGV4cGlyYXRpb25UaW1lRnJhbWUuc2Vjb25kc1NpbmNl
RXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50
LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZf
QUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmNsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBlcnJvciBtZXNzYWdl
OiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK1N0cmluZyBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YXR0cmlidXRpb25Ub1N0cmluZyhXZWJDb3JlOjpTUUxp
dGVTdGF0ZW1lbnQqIHN0YXRlbWVudCwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlv
blR5cGUgYXR0cmlidXRpb25UeXBlKQoreworICAgIGF1dG8gc291cmNlRG9tYWluID0gZ2V0RG9t
YWluU3RyaW5nRnJvbURvbWFpbklEKHN0YXRlbWVudC0+Z2V0Q29sdW1uSW50KDApKTsKKyAgICBh
dXRvIGF0dHJpYnV0ZU9uRG9tYWluID0gZ2V0RG9tYWluU3RyaW5nRnJvbURvbWFpbklEKHN0YXRl
bWVudC0+Z2V0Q29sdW1uSW50KDEpKTsKKyAgICBhdXRvIGF0dHJpYnV0aW9uU291cmNlSUQgPSBz
dGF0ZW1lbnQtPmdldENvbHVtbkludCgyKTsKKworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
KyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlNvdXJjZTogIik7CisgICAgYnVpbGRlci5hcHBl
bmQoc291cmNlRG9tYWluKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuRGVzdGluYXRp
b246ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kKGF0dHJpYnV0ZU9uRG9tYWluKTsKKyAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlxuQ2FtcGFpZ24gSUQ6ICIpOworICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKGF0dHJpYnV0aW9uU291cmNlSUQpOworCisgICAgaWYgKGF0dHJpYnV0aW9uVHlwZSA9
PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6Q29udmVydGVkKSB7Cisg
ICAgICAgIGF1dG8gdGFnRGF0YSA9IHN0YXRlbWVudC0+Z2V0Q29sdW1uSW50KDMpOworICAgICAg
ICBhdXRvIHByaW9yaXR5ID0gc3RhdGVtZW50LT5nZXRDb2x1bW5JbnQoNCk7CisgICAgICAgIGF1
dG8gZWFybGllc3RUaW1lVG9TZW5kID0gc3RhdGVtZW50LT5nZXRDb2x1bW5JbnQoNik7CisKKyAg
ICAgICAgaWYgKHRhZ0RhdGEgIT0gLTEpIHsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiXG5Db252ZXJzaW9uIGRhdGE6ICIpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRO
dW1iZXIodGFnRGF0YSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQ29u
dmVyc2lvbiBwcmlvcml0eTogIik7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihw
cmlvcml0eSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQ29udmVyc2lv
biBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6ICIpOworICAgICAgICAgICAgaWYgKGVhcmxpZXN0VGlt
ZVRvU2VuZCA9PSAtMSkKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIk5v
dCBzZXQiKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGF1dG8gc2Vjb25k
c1VudGlsU2VuZCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhlYXJsaWVzdFRpbWVUb1NlbmQp
IC0gV2FsbFRpbWU6Om5vdygpOworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKChzZWNv
bmRzVW50aWxTZW5kID49IDI0X2ggJiYgc2Vjb25kc1VudGlsU2VuZCA8PSA0OF9oKSA/ICJXaXRo
aW4gMjQtNDggaG91cnMiIDogIk91dHNpZGUgMjQtNDggaG91cnMiKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuTm8g
Y29udmVyc2lvbiBkYXRhLiIpOworICAgIH0gZWxzZQorICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIlxuTm8gY29udmVyc2lvbiBkYXRhLiIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicp
OworCisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKworU3RyaW5nIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3Ry
aW5nKCkKK3sKKyAgICBTUUxpdGVTdGF0ZW1lbnQgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRh
RXhpc3RzKG1fZGF0YWJhc2UsICJTRUxFQ1QgKFNFTEVDVCBDT1VOVCgqKSBGUk9NIFVuY29udmVy
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIGFzIGNudDEsIChTRUxFQ1QgQ09VTlQoKikgRlJP
TSBDb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgYXMgY250MiJfcyk7CisgICAgaWYg
KHByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YUV4aXN0cy5wcmVwYXJlKCkgIT0gU1FMSVRFX09L
IHx8IHByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YUV4aXN0cy5zdGVwKCkgIT0gU1FMSVRFX1JP
VykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmlu
ZyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm4geyB9OworICAgIH0KKworICAgIGlmICghcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRh
RXhpc3RzLmdldENvbHVtbkludCgwKSAmJiAhcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhRXhp
c3RzLmdldENvbHVtbkludCgxKSkKKyAgICAgICAgcmV0dXJuICJcbk5vIHN0b3JlZCBQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50IGRhdGEuXG4iX3M7CisKKyAgICBhdXRvIHVuY29udmVydGVkQXR0
cmlidXRpb25TY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV9hbGxVbmNv
bnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25zU3RhdGVtZW50LCBhbGxV
bmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25zUXVlcnksICJwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nIl9zKTsKKworICAgIGlmICghdW5jb252ZXJ0ZWRB
dHRyaWJ1dGlvblNjb3BlZFN0YXRlbWVudCkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZywgZXJyb3IgbWVzc2FnZTog
JXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgdW5zaWduZWQgdW5jb252ZXJ0ZWRB
dHRyaWJ1dGlvbk51bWJlciA9IDA7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIHdo
aWxlICh1bmNvbnZlcnRlZEF0dHJpYnV0aW9uU2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgPT0gU1FM
SVRFX1JPVykgeworICAgICAgICBpZiAoIXVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCisg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlVuY29udmVydGVkIFByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRzOlxuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCdcbicpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigr
K3VuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgn
XG4nKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXR0cmlidXRpb25Ub1N0cmluZyh1bmNvbnZl
cnRlZEF0dHJpYnV0aW9uU2NvcGVkU3RhdGVtZW50LmdldCgpLCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uVHlwZTo6VW5jb252ZXJ0ZWQpKTsKKyAgICB9CisKKyAgICBhdXRvIGNv
bnZlcnRlZEF0dHJpYnV0aW9uU2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50
KG1fYWxsQ29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvbnNTdGF0ZW1l
bnQsIGFsbENvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25zUXVlcnks
ICJwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nIl9zKTsKKworICAgIGlmICghY29udmVy
dGVkQXR0cmlidXRpb25TY29wZWRTdGF0ZW1lbnQpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmcsIGVycm9yIG1lc3Nh
Z2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHVuc2lnbmVkIGNvbnZlcnRl
ZEF0dHJpYnV0aW9uTnVtYmVyID0gMDsKKyAgICB3aGlsZSAoY29udmVydGVkQXR0cmlidXRpb25T
Y29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CisgICAgICAgIGlmICh1bmNv
bnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xu
Jyk7CisgICAgICAgIGlmICghY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCisgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVt
ZW50czpcbiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4n
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoKytjb252ZXJ0ZWRB
dHRyaWJ1dGlvbk51bWJlciArIHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXR0cmlidXRp
b25Ub1N0cmluZyhjb252ZXJ0ZWRBdHRyaWJ1dGlvblNjb3BlZFN0YXRlbWVudC5nZXQoKSwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OkNvbnZlcnRlZCkpOworICAgIH0K
KyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworfQorCit2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclNlbnRDb252ZXJzaW9ucyhWZWN0b3I8V2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgYXR0cmlidXRpb25zKQoreworICAgIGZvciAo
YXV0byYgYXR0cmlidXRpb24gOiBhdHRyaWJ1dGlvbnMpIHsKKyAgICAgICAgYXV0byBzb3VyY2VE
b21haW5JRCA9IGRvbWFpbklEKGF0dHJpYnV0aW9uLnNvdXJjZSgpLnJlZ2lzdHJhYmxlRG9tYWlu
KTsKKyAgICAgICAgYXV0byBhdHRyaWJ1dGVPbkRvbWFpbklEID0gZG9tYWluSUQoYXR0cmlidXRp
b24uZGVzdGluYXRpb24oKS5yZWdpc3RyYWJsZURvbWFpbik7CisKKyAgICAgICAgaWYgKCFzb3Vy
Y2VEb21haW5JRCB8fCAhYXR0cmlidXRlT25Eb21haW5JRCkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBTUUxpdGVTdGF0ZW1lbnQgY2xlYXJDb252ZXJ0ZWRBdHRyaWJ1dGlvblN0YXRl
bWVudChtX2RhdGFiYXNlLCAiREVMRVRFIEZST00gQ29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgV0hFUkUgc291cmNlRG9tYWluSUQgPSA/IEFORCBhdHRyaWJ1dGVPbkRvbWFpbklEID0g
PyJfcyk7CisgICAgICAgIGlmIChjbGVhckNvbnZlcnRlZEF0dHJpYnV0aW9uU3RhdGVtZW50LnBy
ZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IGNsZWFyQ29udmVydGVkQXR0cmli
dXRpb25TdGF0ZW1lbnQuYmluZEludCgxLCAqc291cmNlRG9tYWluSUQpICE9IFNRTElURV9PSwor
ICAgICAgICAgICAgfHwgY2xlYXJDb252ZXJ0ZWRBdHRyaWJ1dGlvblN0YXRlbWVudC5iaW5kSW50
KDIsICphdHRyaWJ1dGVPbkRvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IGNs
ZWFyQ29udmVydGVkQXR0cmlidXRpb25TdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7
CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJTZW50Q29udmVy
c2lvbnMgZmFpbGVkIHRvIHN0ZXAsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgfQorICAgICAgICBjbGVhckNvbnZlcnRlZEF0dHJpYnV0aW9uU3RhdGVt
ZW50LnJlc2V0KCk7CisgICAgfQorfQorCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjppbnNlcnRFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUZXN0aW5nKHVu
c2lnbmVkIHNvdXJjZURvbWFpbklELCB1bnNpZ25lZCBhdHRyaWJ1dGVPbkRvbWFpbklELCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSBhdHRyaWJ1dGlvblR5cGUpCit7Cisg
ICAgaWYgKGF0dHJpYnV0aW9uVHlwZSA9PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uVHlwZTo6Q29udmVydGVkKSB7CisgICAgICAgIC8vIFVwZGF0ZSB0aGUgbGFzdCBzZXNzaW9u
IGNsb3NlIHRpbWUgdG8gYmUgb25lIGRheSBhZ28uCisgICAgICAgIGF1dG8geWVzdGVyZGF5ID0g
KFdhbGxUaW1lOjpub3coKSAtIDI0X2gpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKKyAg
ICAgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV91cGRh
dGVUaW1lckxhc3RGaXJlZFN0YXRlbWVudCwgdXBkYXRlVGltZXJMYXN0RmlyZWRRdWVyeSwgImlu
c2VydEV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3RpbmciX3MpOworICAgICAgICBp
ZiAoIXNjb3BlZFN0YXRlbWVudAorICAgICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5k
RG91YmxlKDEsIHllc3RlcmRheSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzY29wZWRT
dGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6Omluc2VydEV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3RpbmcgZmFpbGVkLCBl
cnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNn
KCkpOworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKworICAg
ICAgICBhdXRvIGV4cGlyZWRUaW1lVG9TZW5kID0gMV9oOyAvLyBNdXN0IGJlIGxlc3MgdGhhbiAx
IGRheS4KKworICAgICAgICBhdXRvIHN0YXRlbWVudCA9IFNRTGl0ZVN0YXRlbWVudChtX2RhdGFi
YXNlLCBpbnNlcnRDb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5KTsKKyAgICAg
ICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBz
dGF0ZW1lbnQuYmluZEludCgxLCBzb3VyY2VEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAg
ICAgICB8fCBzdGF0ZW1lbnQuYmluZEludCgyLCBhdHRyaWJ1dGVPbkRvbWFpbklEKSAhPSBTUUxJ
VEVfT0sKKyAgICAgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kSW50KDMsIDApICE9IFNRTElURV9P
SworICAgICAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoNCwgMCkgIT0gU1FMSVRFX09LCisg
ICAgICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZEludCg1LCAwKSAhPSBTUUxJVEVfT0sKKyAgICAg
ICAgICAgIHx8IHN0YXRlbWVudC5iaW5kRG91YmxlKDYsIDApICE9IFNRTElURV9PSworICAgICAg
ICAgICAgfHwgc3RhdGVtZW50LmJpbmREb3VibGUoNywgZXhwaXJlZFRpbWVUb1NlbmQudmFsdWUo
KSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElU
RV9ET05FKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vz
c2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNpbXVsYXRlIGEgZGF0YWJhc2Ugb3Bl
biBieSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gdG8gdXBkYXRlIGV4cGlyZWQKKyAgICAgICAgLy8g
Y29udmVydGVkIGFkIGNsaWNrcyB0byBiZSBzZW50IGltbWVkaWF0ZWx5LgorICAgICAgICB1cGRh
dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVGltZXMoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gZXhwaXJlZEFkQ2xpY2tUaW1lID0gV2FsbFRpbWU6Om5v
dygpIC0gKDggKiAyNF9oKTsKKworICAgIGF1dG8gc3RhdGVtZW50ID0gU1FMaXRlU3RhdGVtZW50
KG1fZGF0YWJhc2UsIGluc2VydFVuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVy
eSk7CisgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8
IHN0YXRlbWVudC5iaW5kSW50KDEsIHNvdXJjZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAg
ICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoMiwgYXR0cmlidXRlT25Eb21haW5JRCkgIT0gU1FMSVRF
X09LCisgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kSW50KDMsIDApICE9IFNRTElURV9PSworICAg
ICAgICB8fCBzdGF0ZW1lbnQuYmluZERvdWJsZSg0LCBleHBpcmVkQWRDbGlja1RpbWUuc2Vjb25k
c1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50
LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aW5zZXJ0RXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50VGVzdGluZywgZXJyb3Ig
bWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4IDI2NGVhYWEwNWU0NTcyY2RlMWQwMDI0NTAxYmM0Yzlm
NTE3YzcxZWIuLmI5MzA2OWQ1ODYwNmQwNDZlOWIwN2UyMjQ5MjZjMjc5ZmJkYmVlMWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQog
CisjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVEYXRhYmFzZS5oPgpA
QCAtNTQsNiArNTUsOSBAQCBzdGF0aWMgY29uc3RleHByIHN0ZDo6YXJyYXk8dW5zaWduZWQsIG51
bWJlck9mQnVja2V0c1BlclN0YXRpc3RpYz4gYnVja2V0U2l6ZXMgewogCiBjbGFzcyBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU7CiAKK3VzaW5nIENvbnZlcnRlZEF0dHJpYnV0aW9u
ID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7Cit1c2luZyBVbmNvbnZlcnRlZEF0
dHJpYnV0aW9uID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CisKIC8vIFRoaXMg
aXMgYWx3YXlzIGNvbnN0cnVjdGVkIC8gdXNlZCAvIGRlc3Ryb3llZCBvbiB0aGUgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlJ3Mgc3RhdGlzdGljcyBxdWV1ZS4KIGNsYXNzIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlIGZpbmFsIDogcHVibGljIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZSB7CiBwdWJsaWM6CkBAIC0xMjQsNiArMTI4LDIwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiwgYm9vbCBoYXNVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxC
dXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBpbnRlcnJ1cHQoKTsKIAorICAgIC8vIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQuCisgICAg
dm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBtYXJrQWxsVW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEFzRXhwaXJlZEZvclRlc3RpbmcoKSBvdmVycmlkZTsKKyAgICBPcHRpb25hbDxTZWNvbmRzPiBj
b252ZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OlNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpEZXN0aW5hdGlvbiYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252
ZXJzaW9uJiYpIG92ZXJyaWRlOworICAgIFZlY3RvcjxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudD4gYWxsQ29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvbnMo
KSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoT3B0aW9u
YWw8UmVnaXN0cmFibGVEb21haW4+KSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyRXhwaXJlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KCkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50VG9TdHJpbmcoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyU2VudENvbnZl
cnNpb25zKFZlY3RvcjxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCB1cGRhdGVUaW1lckxhc3RGaXJlZCgpOworICAgIHZvaWQgaW5zZXJ0RXhw
aXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50VGVzdGluZyh1bnNpZ25lZCwgdW5zaWduZWQsIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlKTsKKyAgICB2b2lkIHNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50RXhwaXJlZEluc2VydHNGb3JUZXN0aW5nKGJvb2wgdmFsdWUpIHsg
bV9zaG91bGRJbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyA9IHZhbHVlOyB9CisgICAg
dm9pZCB1cGRhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVGltZXMoKTsKKwog
cHJpdmF0ZToKICAgICB2b2lkIGluY2x1ZGVUb2RheUFzT3BlcmF0aW5nRGF0ZUlmTmVjZXNzYXJ5
KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbGVhck9wZXJhdGluZ0RhdGVzKCkgb3ZlcnJpZGUgeyB9
CkBAIC0yMTMsNiArMjMxLDEyIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGVuc3VyZUFuZE1ha2VE
b21haW5MaXN0KGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jik7CiAgICAgT3B0aW9u
YWw8V2FsbFRpbWU+IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lKGNvbnN0IERvbWFpbkRh
dGEmKTsKICAgICAKKyAgICB2b2lkIHJlbW92ZVVuY29udmVydGVkKFByaXZhdGVDbGlja01lYXN1
cmVtZW50Jik7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYnVpbGRBdHRyaWJ1dGlvbkZy
b21EYXRhYmFzZShXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQqLCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uVHlwZSk7CisgICAgU3RyaW5nIGF0dHJpYnV0aW9uVG9TdHJpbmcoV2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50KiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlv
blR5cGUpOworICAgIHN0ZDo6cGFpcjxPcHRpb25hbDxVbmNvbnZlcnRlZEF0dHJpYnV0aW9uPiwg
T3B0aW9uYWw8Q29udmVydGVkQXR0cmlidXRpb24+PiBmaW5kQXR0cmlidXRpb24oY29uc3QgV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiYpOworICAgIFdhbGxUaW1lIHRpbWVy
TGFzdEZpcmVkKCk7CisKICAgICBjb25zdCBTdHJpbmcgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aDsK
ICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlIG1fZGF0YWJhc2U7CiAgICAgbXV0
YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX29ic2VydmVk
RG9tYWluQ291bnRTdGF0ZW1lbnQ7CkBAIC0yNTIsMTEgKzI3NiwyNiBAQCBwcml2YXRlOgogICAg
IG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV91bmlx
dWVSZWRpcmVjdEV4aXN0c1N0YXRlbWVudDsKICAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fb2JzZXJ2ZWREb21haW5zRXhpc3RzU3RhdGVtZW50
OwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4g
bV9yZW1vdmVBbGxEYXRhU3RhdGVtZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpT
UUxpdGVTdGF0ZW1lbnQ+IG1faW5zZXJ0VW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFN0YXRlbWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50
PiBtX2luc2VydENvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50OworICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fc2V0VW5jb252ZXJ0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZFN0YXRlbWVudDsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2NsZWFyVW5jb252ZXJ0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6U1FMaXRlU3RhdGVtZW50PiBtX2NsZWFyQ29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRTdGF0ZW1lbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVu
dD4gbV9jbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudDsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2FsbFVuY29udmVydGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvbnNTdGF0ZW1lbnQ7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9hbGxDb252ZXJ0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uc1N0YXRlbWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2ZpbmRVbmNvbnZlcnRlZEF0dHJpYnV0aW9u
U3RhdGVtZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+
IG1fZmluZENvbnZlcnRlZEF0dHJpYnV0aW9uU3RhdGVtZW50OworICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fdXBkYXRlVGltZXJMYXN0RmlyZWRTdGF0ZW1l
bnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV90aW1l
ckxhc3RGaXJlZFN0YXRlbWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRl
U3RhdGVtZW50PiBtX3VwZGF0ZUF0dHJpYnV0aW9uc0VhcmxpZXN0VGltZVRvU2VuZFN0YXRlbWVu
dDsKKyAgICAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBib29sIG1faXNO
ZXdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VGaWxlIHsgZmFsc2UgfTsKICAgICB1bnNp
Z25lZCBtX29wZXJhdGluZ0RhdGVzU2l6ZSB7IDAgfTsKICAgICBPcGVyYXRpbmdEYXRlIG1fbGVh
c3RSZWNlbnRPcGVyYXRpbmdEYXRlOwogICAgIE9wZXJhdGluZ0RhdGUgbV9tb3N0UmVjZW50T3Bl
cmF0aW5nRGF0ZTsKKyAgICBib29sIG1fc2hvdWxkSW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRl
c3RpbmcgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKaW5kZXggYjE1ODZiOTc5
ZGQ4OGU0ZmJjMmE1MTU4MDM4OTAyM2ZlZWVlYmRiNS4uMWZlYzI5MWE0YTE3ODllYWFmZWQ4OGY3
YmU4YWZmMTA2YjYyYzE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmUuaApAQCAtMTA4LDYgKzEwOCwxNiBAQCBwdWJsaWM6CiAgICAgVmVjdG9y
PFJlZ2lzdHJhYmxlRG9tYWluPiBhbGxEb21haW5zKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBp
bnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IGJvb2wgaGFzVXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2ll
RGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQpIG92ZXJyaWRlOwogCisgICAgLy8gUHJpdmF0
ZSBDbGljayBNZWFzdXJlbWVudCBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIElUUCBtZW1vcnkg
c3RvcmUuCisgICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uVHlwZSkgb3ZlcnJpZGUgeyB9OworICAgIHZvaWQgbWFya0FsbFVuY29udmVydGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKCkgb3ZlcnJpZGUgeyB9OworICAg
IE9wdGlvbmFsPFNlY29uZHM+IGNvbnZlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlJiwgY29uc3QgV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uJiwgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24mJikgb3ZlcnJpZGUgeyByZXR1cm4geyB9OyB9Owor
ICAgIFZlY3RvcjxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gYWxsQ29udmVydGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvbnMoKSBvdmVycmlkZSB7IHJldHVybiB7
IH07IH07CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KE9wdGlvbmFsPFJl
Z2lzdHJhYmxlRG9tYWluPikgb3ZlcnJpZGUgeyB9OworICAgIHZvaWQgY2xlYXJFeHBpcmVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSBvdmVycmlkZSB7IH07CisgICAgU3RyaW5nIHByaXZhdGVD
bGlja01lYXN1cmVtZW50VG9TdHJpbmcoKSBvdmVycmlkZSB7IHJldHVybiBTdHJpbmcoKTsgfTsK
KyAgICB2b2lkIGNsZWFyU2VudENvbnZlcnNpb25zKFZlY3RvcjxXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudD4mJikgb3ZlcnJpZGUgeyB9OworCiBwcml2YXRlOgogICAgIHZvaWQgaW5j
bHVkZVRvZGF5QXNPcGVyYXRpbmdEYXRlSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKICAgICBjb25z
dCBWZWN0b3I8T3BlcmF0aW5nRGF0ZT4mIG9wZXJhdGluZ0RhdGVzKCkgY29uc3QgeyByZXR1cm4g
bV9vcGVyYXRpbmdEYXRlczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oCmluZGV4IDc3ZDA1NWNjZDcxMzY2YjZiZGY3OWJjYTI0NWQ4NzE2MGJjMzY5NjkuLmJkNWMz
Y2VhZjQxNGZiNmVmYjkyMDY4MGFhNGMwOThkYTE3Mzk1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTIwMiw2ICsyMDIsMTYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBjbGVhck9wZXJhdGluZ0RhdGVzKCkgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBoYXNTdGF0aXN0aWNzRXhwaXJlZChXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9u
VGltZSwgT3BlcmF0aW5nRGF0ZXNXaW5kb3cpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
LCBib29sIGhhc1VzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tp
ZURhdGFSZW1vdmFsLCBib29sKSA9IDA7CisgICAgCisgICAgLy8gUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudC4KKyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblR5cGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFya0FsbFVuY29udmVy
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKCkgPSAwOworICAg
IHZpcnR1YWwgT3B0aW9uYWw8U2Vjb25kcz4gY29udmVydFByaXZhdGVDbGlja01lYXN1cmVtZW50
KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UmLCBjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24mLCBXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbiYmKSA9IDA7CisgICAgdmlydHVhbCBW
ZWN0b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGFsbENvbnZlcnRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25zKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KE9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9tYWluPikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3Ry
aW5nKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclNlbnRDb252ZXJzaW9ucyhWZWN0b3I8
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYpID0gMDsKIAogcHJvdGVjdGVkOgog
ICAgIHN0YXRpYyB1bnNpZ25lZCBjb21wdXRlSW1wb3J0YW5jZShjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuY3BwCmluZGV4IGExNzMwOTg3MmU5Mjg2MzJlYjY1MmI5OTk2YjMwMDg5M2U2
OGRiNmMuLmU2YTY0YWQyNjgwYWM1OTk1N2U5M2FhM2ExZTU0YWI1NGVjYTQwMjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0xNDc1LDYg
KzE0NzUsMTg2IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjppbnNlcnRF
eHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBSZWdpCiAgICAgfSk7CiB9CiAKK3ZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGRhdGVUaW1lckxhc3RGaXJlZCgpCit7
CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChpc0VwaGVtZXJhbCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBwb3N0VGFzayhbdGhpc10oKSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKCFtX3N0YXRpc3RpY3NTdG9yZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBkb3duY2FzdDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZT4oKm1fc3Rh
dGlzdGljc1N0b3JlKS51cGRhdGVUaW1lckxhc3RGaXJlZCgpOworICAgIH0pOworfQorCit2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGlvbiwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUgYXR0cmlidXRpb25UeXBlKQoreworICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgcG9zdFRhc2soW3RoaXMsIGF0dHJpYnV0aW9uID0gV1RGTW92ZShhdHRy
aWJ1dGlvbiksIGF0dHJpYnV0aW9uVHlwZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX3N0
YXRpc3RpY3NTdG9yZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX3N0YXRpc3Rp
Y3NTdG9yZS0+aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92ZShhdHRyaWJ1dGlv
biksIGF0dHJpYnV0aW9uVHlwZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjptYXJrQWxsVW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEFzRXhwaXJlZEZvclRlc3RpbmcoKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CisKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcG9zdFRh
c2soW3RoaXNdKCkgeworICAgICAgICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5tYXJrQWxsVW5jb252ZXJ0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICB9KTsK
K30KKwordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNvbnZlcnRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlJiBz
b3VyY2UsIGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiYgZGVzdGlu
YXRpb24sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uJiYgY29udmVyc2lvbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTZWNvbmRzPik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChpc0Vw
aGVtZXJhbCgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBwb3N0VGFzayhbdGhpcywgc291cmNlLCBkZXN0aW5hdGlvbiwg
Y29udmVyc2lvbiA9IFdURk1vdmUoY29udmVyc2lvbiksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghbV9zdGF0
aXN0aWNzU3RvcmUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBzZWNvbmRz
ID0gbV9zdGF0aXN0aWNzU3RvcmUtPmNvbnZlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3Vy
Y2UsIGRlc3RpbmF0aW9uLCBXVEZNb3ZlKGNvbnZlcnNpb24pKTsKKyAgICAgICAgcG9zdFRhc2tS
ZXBseShbc2Vjb25kcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHNlY29uZHMp
OworICAgICAgICB9KTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmFsbENvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25z
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OworCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
eyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBvc3RUYXNrKFt0aGlzLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewor
ICAgICAgICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGF1dG8gY29udmVydGVkQXR0cmlidXRpb25zID0gbV9zdGF0aXN0aWNzU3RvcmUtPmFs
bENvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25zKCk7CisgICAgICAg
IHBvc3RUYXNrUmVwbHkoW2NvbnZlcnRlZEF0dHJpYnV0aW9ucyA9IFdURk1vdmUoY29udmVydGVk
QXR0cmlidXRpb25zKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUo
Y29udmVydGVkQXR0cmlidXRpb25zKSk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCgpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChpc0Vw
aGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwb3N0VGFzayhbdGhpc10oKSB7Cisg
ICAgICAgIGlmICghbV9zdGF0aXN0aWNzU3RvcmUpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RG
OjpudWxsb3B0KTsKKyAgICB9KTsKK30KKyAgICAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50Rm9yUmVnaXN0cmFibGVEb21h
aW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKK3sKKyAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOworCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIHBvc3RUYXNrKFt0aGlzLCBkb21haW4gPSBkb21haW4uaXNvbGF0ZWRDb3B5KCldKCkg
bXV0YWJsZSB7CisgICAgICAgIGlmICghbV9zdGF0aXN0aWNzU3RvcmUpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPmNsZWFyUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoZG9tYWluKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmNsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkKK3sKKyAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIHBvc3RUYXNrKFt0aGlzXSgpIHsKKyAgICAgICAgaWYgKCFt
X3N0YXRpc3RpY3NTdG9yZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX3N0YXRp
c3RpY3NTdG9yZS0+Y2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICB9
KTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnByaXZhdGVDbGlj
a01lYXN1cmVtZW50VG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAg
ICBpZiAoaXNFcGhlbWVyYWwoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigiXG5ObyBz
dG9yZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBkYXRhLlxuIl9zKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHBvc3RUYXNrKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICBpZiAoIW1fc3Rh
dGlzdGljc1N0b3JlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8gcmVzdWx0
ID0gbV9zdGF0aXN0aWNzU3RvcmUtPnByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmcoKTsK
KyAgICAgICAgcG9zdFRhc2tSZXBseShbcmVzdWx0LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIocmVzdWx0KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhclNlbnRDb252ZXJzaW9ucyhWZWN0b3I8V2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgYXR0cmlidXRpb25zVG9DbGVhcikKK3sK
KyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGlzRXBoZW1lcmFsKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIHBvc3RUYXNrKFt0aGlzLCBhdHRyaWJ1dGlvbnNUb0Ns
ZWFyID0gV1RGTW92ZShhdHRyaWJ1dGlvbnNUb0NsZWFyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
aWYgKCFtX3N0YXRpc3RpY3NTdG9yZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBt
X3N0YXRpc3RpY3NTdG9yZS0+Y2xlYXJTZW50Q29udmVyc2lvbnMoV1RGTW92ZShhdHRyaWJ1dGlv
bnNUb0NsZWFyKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEV4cGlyZWRJbnNlcnRzRm9yVGVzdGlu
Zyhib29sIHZhbHVlKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBp
ZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcG9zdFRhc2soW3RoaXMs
IHZhbHVlXSgpIG11dGFibGUgeworICAgICAgICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGRvd25jYXN0PFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlPigqbV9zdGF0aXN0aWNzU3RvcmUpLnNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50RXhwaXJlZEluc2VydHNGb3JUZXN0aW5nKHZhbHVlKTsKKyAgICB9KTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGUzZmUzNzE5OTMzMTBiZWVmZTJlY2FmNGY0ZDlhN2I3
MjAzMzkzOTkuLjg0MTVmNjczNjY0MTZlNTA5ODliYWRkOTkwMzQwZGQ2Njc4NDg0ZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRl
bnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUxvYWRPYnNlcnZlci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxl
ci5oPgpAQCAtNjUsNiArNjYsNyBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNsYXNzIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CiBjbGFzcyBXZWJQ
cm9jZXNzUHJveHk7CitlbnVtIGNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25UeXBlOwogZW51bSBjbGFzcyBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MgOiBib29sOwog
ZW51bSBjbGFzcyBTaG91bGRJbmNsdWRlTG9jYWxob3N0IDogYm9vbCB7IE5vLCBZZXMgfTsKIGVu
dW0gY2xhc3MgRW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA6IGJvb2wgeyBO
bywgWWVzIH07CkBAIC0zMDQsNiArMzA2LDE5IEBAIHN0cnVjdCBUaGlyZFBhcnR5RGF0YSB7CiAg
ICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFcGhlbWVyYWwgPT0gV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWw6OlllczsgfTsKICAgICB2
b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRD
b29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAorICAgIC8vIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQuCisgICAgdm9pZCBp
bnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSk7CisgICAgdm9p
ZCBtYXJrQWxsVW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRl
c3RpbmcoKTsKKyAgICB2b2lkIGNvbnZlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlJiwgY29uc3QgV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uJiwgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxTZWNvbmRzPik+JiYpOworICAgIHZvaWQgYWxsQ29udmVydGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYpPiYmKTsKKyAgICB2b2lkIGNsZWFyUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYp
OworICAgIHZvaWQgY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICB2
b2lkIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdHJpbmcpPiYmKTsKKyAgICB2b2lkIGNsZWFyU2VudENvbnZlcnNpb25zKFZlY3RvcjxXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJik7CisgICAgdm9pZCB1cGRhdGVUaW1lckxh
c3RGaXJlZCgpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFeHBpcmVkSW5z
ZXJ0c0ZvclRlc3RpbmcoYm9vbCk7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiwgY29uc3QgU3RyaW5nJiwgU2hv
dWxkSW5jbHVkZUxvY2FsaG9zdCwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNF
cGhlbWVyYWwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCmluZGV4IDhhOWQyZjM5MzllNzE4NmI4MWU4YTdlZmQ0YmJlYjUwYTYzYjJmNTku
LmYyNjc5YTA5ZTE1Y2Q1MWM5ODhmNGZhN2NjMDFjZTEzOGJmMjI0NGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yNTYyLDYgKzI1
NjIsMTQgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRP
dmVycmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3MKICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEV4
cGlyZWRJbnNlcnRzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFs
dWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCisgICAgICAg
IHNlc3Npb24tPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RXhwaXJlZEluc2VydHNGb3JUZXN0
aW5nKHZhbHVlKTsKKyAgICAKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMJiYgdXJsLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGJlNTI2ZWZmMWU4YzkxZDM2ZWE4OWI4N2U3
YjU2Nzk1OGE5NTZmYjIuLmFiMzgwNDg2M2ExMTNiNTUzZjRkM2NjOTk0MDc3ZTllNjBiNzgwNTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAg
LTMzNiw2ICszMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7
CiAgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50RXhwaXJlZEluc2VydHNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBib29s
IHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwg
VVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBtYXJrUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMGYwMTkwNTZl
NWI1N2Y1MzM0YjhjZTczODI2ZTJmYTA1Njg4OTNiZi4uM2FjN2E5YzhmNjhlNWE4NmE3Njk1MjY3
ZmI0NjdiODNhNzUxZjJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xNjUsNiArMTY1LDcgQEAgbWVz
c2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIER1bXBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChTdHJpbmcgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZSkgQXN5bmMKICAgICBDbGVhclByaXZhdGVDbGlja01l
YXN1cmVtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKICAgICBTZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKKyAgICBTZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEV4cGlyZWRJbnNlcnRzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpIEFzeW5jCiAgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVS
TCB1cmwpIC0+ICgpIEFzeW5jCiAgICAgTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhw
aXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAg
IEdldExvY2FsU3RvcmFnZU9yaWdpbkRldGFpbHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAt
PiAoVmVjdG9yPFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpPcmlnaW5EZXRh
aWxzPiBkZXRhaWxzKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmNwcAppbmRleCA4Y2U1OTE0MTIzNGFlYmY1ZTQ5ZTJiZGM4YTY4MmZiNTg0
Y2EyODUxLi41NmQzNWIyNzFhMmY5NDU0MzFlOTlhOGU4Yjg0MzJiM2EyMzk5ZjI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtOTAs
NyArOTAsNyBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3Mm
IG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3b3JrU2VzcwogICAgICwgbV9maXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZShwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJh
bWV0ZXJzLmZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKQogICAgICwgbV9zdGFuZGFs
b25lQXBwbGljYXRpb25Eb21haW4ocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFy
YW1ldGVycy5zdGFuZGFsb25lQXBwbGljYXRpb25Eb21haW4pCiAjZW5kaWYKLSAgICAsIG1fcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQobWFrZVVuaXF1ZVJlZjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI+KG5ldHdvcmtQcm9jZXNzLCBwYXJhbWV0ZXJzLnNlc3Npb25JRCkpCisgICAgLCBt
X3ByaXZhdGVDbGlja01lYXN1cmVtZW50KG1ha2VVbmlxdWVSZWY8UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyPigqdGhpcywgbmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMuc2Vzc2lvbklE
KSkKICAgICAsIG1fdGVzdFNwZWVkTXVsdGlwbGllcihwYXJhbWV0ZXJzLnRlc3RTcGVlZE11bHRp
cGxpZXIpCiAgICAgLCBtX2FsbG93c1NlcnZlclByZWNvbm5lY3QocGFyYW1ldGVycy5hbGxvd3NT
ZXJ2ZXJQcmVjb25uZWN0KQogewpAQCAtMzMzLDYgKzMzMywxMSBAQCB2b2lkIE5ldHdvcmtTZXNz
aW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJv
b2wgdmFsdQogICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPnNldE92ZXJyaWRlVGltZXJG
b3JUZXN0aW5nKHZhbHVlKTsKIH0KIAordm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3RpbmcoYm9vbCB2YWx1ZSkKK3sKKyAg
ICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEV4
cGlyZWRJbnNlcnRzRm9yVGVzdGluZyh2YWx1ZSk7Cit9CisKIHZvaWQgTmV0d29ya1Nlc3Npb246
OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYg
dXJsKQogewogICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPnNldENvbnZlcnNpb25VUkxG
b3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmgKaW5kZXggY2E0YTU3NjY3ZDRiNGFjOTIwNDdiYzc5NDIxNzcxMDFm
ZjNiYmEyZi4uNmM5MjJmM2RhZGZmYTQ1NzZlOTcyZTVjN2U1Mjg3YTBhZTRiMDI0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMTIyLDYg
KzEyMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
KTsKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGb3JSZWdpc3RyYWJsZURv
bWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmKTsKICAgICB2b2lkIHNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CisgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEV4cGlyZWRJbnNlcnRzRm9yVGVzdGluZyhi
b29sIHZhbHVlKTsKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lv
blVSTEZvclRlc3RpbmcoVVJMJiYpOwogICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3Bw
CmluZGV4IDg4YmVhYWE2NDFlZmVkZTFiNzMwMzMyY2M5ZDg2ZjBmMmVlMjhiNTYuLjg1ZWE4ZTky
NjNhMjNiMTYyMzY1ZDUxOTk5NTYzYjNkZTNlNGNkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlci5jcHAKQEAgLTQ5LDYgKzQ5LDE5IEBAIHVzaW5nIENvbnZlcnNpb24gPSBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbjsKIAogY29uc3RleHByIFNlY29uZHMgZGVidWdNb2Rl
U2Vjb25kc1VudGlsU2VuZCB7IDYwX3MgfTsKIAorUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoTmV0d29ya1Nlc3Npb24mIG5ldHdv
cmtTZXNzaW9uLCBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKKyAgICA6IG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNUaW1lcigq
dGhpcywgJlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZVBlbmRpbmdDb252ZXJz
aW9uUmVxdWVzdHMpCisgICAgLCBtX3BpbmdMb2FkRnVuY3Rpb24oW10oTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMmJiBwYXJhbXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgeworICAgICAgICBVTlVTRURfUEFSQU0ocGFyYW1zKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6UmVzb3VyY2VFcnJvcigpLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlKCkpOworICAgIH0pCisgICAgLCBtX25ldHdvcmtTZXNzaW9uKG1h
a2VXZWFrUHRyKG5ldHdvcmtTZXNzaW9uKSkKKyAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29y
a1Byb2Nlc3MpCisgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCit7CisgICAgc3RhcnRUaW1l
cig1X3MpOworfQorCiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RvcmVV
bmNvbnZlcnRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIGF0dHJpYnV0aW9uKQogewogICAg
IGNsZWFyRXhwaXJlZCgpOwpAQCAtNTgsNyArNzEsOCBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcjo6c3RvcmVVbmNvbnZlcnRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYm
CiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vz
c2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxl
dmVsOjpFcnJvciwgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBTdG9yaW5nIGFuIGFkIGNs
aWNrLiJfcyk7CiAgICAgfQogCi0gICAgbV91bmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFwLnNldChzdGQ6Om1ha2VfcGFpcihhdHRyaWJ1dGlvbi5zb3VyY2UoKSwgYXR0cmlidXRp
b24uZGVzdGluYXRpb24oKSksIFdURk1vdmUoYXR0cmlidXRpb24pKTsKKyAgICBpZiAoYXV0byog
cmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSkKKyAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aW5zZXJ0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92ZShhdHRyaWJ1dGlvbiksIFByaXZhdGVDbGlja01lYXN1
cmVtZW50QXR0cmlidXRpb25UeXBlOjpVbmNvbnZlcnRlZCk7CiB9CiAKIHZvaWQgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVDb252ZXJzaW9uKENvbnZlcnNpb24mJiBjb252
ZXJzaW9uLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQpAQCAtOTAsODQgKzEwNCwyNyBAQCB2b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQ29udmVyc2lvbihDb252ZXJzaW9uJiYgY29u
dmVyc2lvbiwgYwogCiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RhcnRU
aW1lcihTZWNvbmRzIHNlY29uZHMpCiB7Ci0gICAgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1
ZXN0c1RpbWVyLnN0YXJ0T25lU2hvdChtX2lzUnVubmluZ1Rlc3QgPyAwX3MgOiBzZWNvbmRzKTsK
KyAgICBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIuc3RhcnRPbmVTaG90KG1f
aXNSdW5uaW5nVGVzdCB8fCBtX3Nob3VsZEluc2VydEV4cGlyZWRTdGF0aXN0aWNzID8gMF9zIDog
c2Vjb25kcyk7CiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjb252
ZXJ0KGNvbnN0IFNvdXJjZSYgc291cmNlLCBjb25zdCBEZXN0aW5hdGlvbiYgZGVzdGluYXRpb24s
IENvbnZlcnNpb24mJiBjb252ZXJzaW9uKQogewotICAgIGNsZWFyRXhwaXJlZCgpOwotCi0gICAg
aWYgKCFjb252ZXJzaW9uLmlzVmFsaWQoKSkgewotICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdN
b2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgIkdvdCBhbiBpbnZhbGlkIGNvbnZlcnNpb24uIik7Ci0gICAgICAgICAg
ICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwg
TWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJy
b3IsICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gR290IGFuIGludmFsaWQgY29udmVyc2lv
bi4iX3MpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIGNv
bnZlcnNpb25EYXRhID0gY29udmVyc2lvbi5kYXRhOwotICAgIGF1dG8gY29udmVyc2lvblByaW9y
aXR5ID0gY29udmVyc2lvbi5wcmlvcml0eTsKLQotICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVF
bmFibGVkKCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQsICJHb3QgYSBjb252ZXJzaW9uIHdpdGggY29udmVyc2lvbiBkYXRhOiAle3B1YmxpY311
IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dS4iLCBjb252ZXJzaW9uRGF0YSwgY29udmVyc2lvblBy
aW9yaXR5KTsKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3Nh
Z2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBN
ZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50
XSBHb3QgYSBjb252ZXJzaW9uIHdpdGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJzaW9u
RGF0YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInLiJfcykp
OwotICAgIH0KLQotICAgIGF1dG8gc2Vjb25kc1VudGlsU2VuZCA9IFNlY29uZHM6OmluZmluaXR5
KCk7Ci0KLSAgICBhdXRvIHBhaXIgPSBzdGQ6Om1ha2VfcGFpcihzb3VyY2UsIGRlc3RpbmF0aW9u
KTsKLSAgICBhdXRvIHByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uID0gbV91bmNvbnZl
cnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLnRha2UocGFpcik7Ci0gICAgYXV0byBwcmV2
aW91c2x5Q29udmVydGVkQXR0cmlidXRpb25JdGVyID0gbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hcC5maW5kKHBhaXIpOwotCi0gICAgaWYgKCFwcmV2aW91c2x5VW5jb252ZXJ0
ZWRBdHRyaWJ1dGlvbi5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gQWx3YXlzIGNvbnZlcnQgdGhl
IHBlbmRpbmcgYXR0cmlidXRpb24gYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSB1bmNvbnZlcnRlZCBt
YXAuCi0gICAgICAgIGlmIChhdXRvIG9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZCA9IHByZXZpb3Vz
bHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQo
V1RGTW92ZShjb252ZXJzaW9uKSkpIHsKLSAgICAgICAgICAgIHNlY29uZHNVbnRpbFNlbmQgPSAq
b3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kOwotICAgICAgICAgICAgQVNTRVJUKHNlY29uZHNVbnRp
bFNlbmQgIT0gU2Vjb25kczo6aW5maW5pdHkoKSk7Ci0KLSAgICAgICAgICAgIGlmIChVTkxJS0VM
WShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5G
TyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnRlZCBhIHN0b3JlZCBhZCBjbGljayB3
aXRoIGNvbnZlcnNpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUu
IiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAgICAgICAgICAg
bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1l
c3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8s
IG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJ0ZWQgYSBzdG9y
ZWQgYWQgY2xpY2sgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICciX3MsIGNvbnZlcnNpb25EYXRhLCAi
JyBhbmQgcHJpb3JpdHk6ICciX3MsIGNvbnZlcnNpb25Qcmlvcml0eSwgIicuIl9zKSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAocHJldmlvdXNseUNvbnZlcnRlZEF0
dHJpYnV0aW9uSXRlciA9PSBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLmVu
ZCgpKQotICAgICAgICAgICAgbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5h
ZGQocGFpciwgV1RGTW92ZShwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbikpOwotICAg
ICAgICBlbHNlIGlmIChwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbi5oYXNIaWdoZXJQ
cmlvcml0eVRoYW4ocHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlci0+dmFsdWUpKSB7
Ci0gICAgICAgICAgICAvLyBJZiB0aGUgbmV3bHkgY29udmVydGVkIGF0dHJpYnV0aW9uIGhhcyBo
aWdoZXIgcHJpb3JpdHksIHJlcGxhY2UgdGhlIG9sZCBvbmUuCi0gICAgICAgICAgICBtX2NvbnZl
cnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLnNldChwYWlyLCBXVEZNb3ZlKHByZXZpb3Vz
bHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uKSk7Ci0KLSAgICAgICAgICAgIGlmIChVTkxJS0VMWShk
ZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIlJlcGxhY2VkIGEgcHJldmlvdXNseSBjb252ZXJ0ZWQg
YWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUg
YW5kIHByaW9yaXR5OiAle3B1YmxpY311IGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4i
LCBjb252ZXJzaW9uRGF0YSwgY29udmVyc2lvblByaW9yaXR5KTsKLSAgICAgICAgICAgICAgICBt
X25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVz
c2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywg
bWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFJlcGxhY2VkIGEgcHJldmlv
dXNseSBjb252ZXJ0ZWQgYWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBjb252ZXJzaW9uIGRh
dGE6ICciX3MsIGNvbnZlcnNpb25EYXRhLCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIGNvbnZlcnNp
b25Qcmlvcml0eSwgIicgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiJfcykpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChwcmV2aW91c2x5Q29udmVydGVk
QXR0cmlidXRpb25JdGVyICE9IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAu
ZW5kKCkpIHsKLSAgICAgICAgLy8gSWYgd2UgaGF2ZSBubyBuZXdseSBjb252ZXJ0ZWQgYXR0cmli
dXRpb24sIHJlLWNvbnZlcnQgdGhlIG9sZCBvbmUgdG8gcmVzcGVjdCB0aGUgbmV3IHByaW9yaXR5
LgotICAgICAgICBpZiAoYXV0byBvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQgPSBwcmV2aW91c2x5
Q29udmVydGVkQXR0cmlidXRpb25JdGVyLT52YWx1ZS5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1l
VG9TZW5kKFdURk1vdmUoY29udmVyc2lvbikpKSB7Ci0gICAgICAgICAgICBzZWNvbmRzVW50aWxT
ZW5kID0gKm9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZDsKLSAgICAgICAgICAgIEFTU0VSVChzZWNv
bmRzVW50aWxTZW5kICE9IFNlY29uZHM6OmluZmluaXR5KCkpOwotCi0gICAgICAgICAgICBpZiAo
VU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJSZS1jb252ZXJ0ZWQgYW4gYWQgY2xp
Y2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUgYW5kIHBy
aW9yaXR5OiAle3B1YmxpY311IGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iLCBjb252
ZXJzaW9uRGF0YSwgY29udmVyc2lvblByaW9yaXR5KTsKLSAgICAgICAgICAgICAgICBtX25ldHdv
cmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNv
dXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0
cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFJlLWNvbnZlcnRlZCBhbiBhZCBjbGlj
ayB3aXRoIGEgbmV3IG9uZSB3aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRh
dGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJycgYmVjYXVz
ZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiJfcykpOworICAgIGlmIChhdXRvKiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzID0gbV9uZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygp
KSB7CisgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmNvbnZlcnRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChzb3VyY2UsIGRlc3RpbmF0aW9uLCBXVEZNb3ZlKGNvbnZlcnNpb24pLCBbdGhp
c10gKGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kKSB7CisgICAgICAgICAgICBpZiAob3B0
aW9uYWxTZWNvbmRzVW50aWxTZW5kKSB7CisgICAgICAgICAgICAgICAgYXV0byBzZWNvbmRzVW50
aWxTZW5kID0gKm9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZDsKKyAgICAgICAgICAgICAgICBpZiAo
bV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLmlzQWN0aXZlKCkgJiYgbV9maXJl
UGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLm5leHRGaXJlSW50ZXJ2YWwoKSA8IHNlY29u
ZHNVbnRpbFNlbmQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewor
ICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCAiU2V0dGluZyB0aW1lciBmb3IgZmlyaW5nIGNvbnZlcnNpb24gcmVxdWVzdHMgdG8gdGhl
IGRlYnVnIG1vZGUgdGltZW91dCBvZiAle3B1YmxpY31mIHNlY29uZHMgd2hlcmUgdGhlIHJlZ3Vs
YXIgdGltZW91dCB3b3VsZCBoYXZlIGJlZW4gJXtwdWJsaWN9ZiBzZWNvbmRzLiIsIGRlYnVnTW9k
ZVNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpLCBzZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSk7
CisgICAgICAgICAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVN
ZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudF0gU2V0dGluZyB0aW1lciBmb3IgZmlyaW5nIGNvbnZlcnNpb24gcmVxdWVzdHMgdG8gdGhl
IGRlYnVnIG1vZGUgdGltZW91dCBvZiAiX3MsIGRlYnVnTW9kZVNlY29uZHNVbnRpbFNlbmQuc2Vj
b25kcygpLCAiIHNlY29uZHMgd2hlcmUgdGhlIHJlZ3VsYXIgdGltZW91dCB3b3VsZCBoYXZlIGJl
ZW4gIl9zLCBzZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSwgIiBzZWNvbmRzLiJfcykpOworICAg
ICAgICAgICAgICAgICAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9IGRlYnVnTW9kZVNlY29uZHNV
bnRpbFNlbmQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN0YXJ0VGltZXIo
c2Vjb25kc1VudGlsU2VuZCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBpZiAoc2Vjb25kc1VudGlsU2VuZCA9PSBTZWNvbmRzOjppbmZpbml0eSgpKQotICAgICAgICBy
ZXR1cm47Ci0gICAgCi0gICAgaWYgKG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNUaW1l
ci5pc0FjdGl2ZSgpICYmIG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNUaW1lci5uZXh0
RmlyZUludGVydmFsKCkgPCBzZWNvbmRzVW50aWxTZW5kKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICBSRUxFQVNFX0xP
R19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiU2V0dGluZyB0aW1lciBmb3IgZmlyaW5n
IGNvbnZlcnNpb24gcmVxdWVzdHMgdG8gdGhlIGRlYnVnIG1vZGUgdGltZW91dCBvZiAle3B1Ymxp
Y31mIHNlY29uZHMgd2hlcmUgdGhlIHJlZ3VsYXIgdGltZW91dCB3b3VsZCBoYXZlIGJlZW4gJXtw
dWJsaWN9ZiBzZWNvbmRzLiIsIGRlYnVnTW9kZVNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpLCBz
ZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSk7Ci0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJy
b2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0
ZSBDbGljayBNZWFzdXJlbWVudF0gU2V0dGluZyB0aW1lciBmb3IgZmlyaW5nIGNvbnZlcnNpb24g
cmVxdWVzdHMgdG8gdGhlIGRlYnVnIG1vZGUgdGltZW91dCBvZiAiX3MsIGRlYnVnTW9kZVNlY29u
ZHNVbnRpbFNlbmQuc2Vjb25kcygpLCAiIHNlY29uZHMgd2hlcmUgdGhlIHJlZ3VsYXIgdGltZW91
dCB3b3VsZCBoYXZlIGJlZW4gIl9zLCBzZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSwgIiBzZWNv
bmRzLiJfcykpOwotICAgICAgICBzZWNvbmRzVW50aWxTZW5kID0gZGVidWdNb2RlU2Vjb25kc1Vu
dGlsU2VuZDsKKyAgICAgICAgfSk7CiAgICAgfQotCi0gICAgc3RhcnRUaW1lcihzZWNvbmRzVW50
aWxTZW5kKTsKIH0KIAogdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVD
b252ZXJzaW9uUmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYgYXR0cmlidXRp
b24pCkBAIC0yMjEsOTcgKzE3OCw3OCBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IFByaXZhdGVDbGlja01lYQogICAgIH0p
OwogfQogCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXJTZW50Q29u
dmVyc2lvbnMoVmVjdG9yPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIHNlbnRDb252ZXJzaW9u
cykKK3sKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG1fbmV0d29ya1Nl
c3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy0+Y2xlYXJTZW50Q29udmVyc2lvbnMoV1RGTW92ZShzZW50Q29udmVyc2lvbnMpKTsK
K30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnVwZGF0ZVRpbWVyTGFz
dEZpcmVkKCkKK3sKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG1fbmV0
d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAgcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy0+dXBkYXRlVGltZXJMYXN0RmlyZWQoKTsKK30KKwogdm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzKCkK
IHsKLSAgICBhdXRvIG5leHRUaW1lVG9GaXJlID0gU2Vjb25kczo6aW5maW5pdHkoKTsKLSAgICBm
b3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hcC52YWx1ZXMoKSkgewotICAgICAgICBpZiAoYXR0cmlidXRpb24ud2FzQ29udmVyc2lvblNl
bnQoKSkgewotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9IGF0
dHJpYnV0aW9uLmVhcmxpZXN0VGltZVRvU2VuZCgpOwotICAgICAgICBpZiAoIWVhcmxpZXN0VGlt
ZVRvU2VuZCkgewotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgfQorICAgIGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBtX25ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CisgICAgaWYgKCFy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBu
b3cgPSBXYWxsVGltZTo6bm93KCk7Ci0gICAgICAgIGlmICgqZWFybGllc3RUaW1lVG9TZW5kIDw9
IG5vdyB8fCBtX2lzUnVubmluZ1Rlc3QgfHwgZGVidWdNb2RlRW5hYmxlZCgpKSB7Ci0gICAgICAg
ICAgICBmaXJlQ29udmVyc2lvblJlcXVlc3QoYXR0cmlidXRpb24pOwotICAgICAgICAgICAgYXR0
cmlidXRpb24ubWFya0NvbnZlcnNpb25Bc1NlbnQoKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICB9CisgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+YWxsQ29udmVydGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvbnMoW3RoaXNdIChhdXRvJiYgY29udmVydGVkQXR0
cmlidXRpb25zKSB7CisgICAgICAgIGF1dG8gbmV4dFRpbWVUb0ZpcmUgPSBTZWNvbmRzOjppbmZp
bml0eSgpOworICAgICAgICBWZWN0b3I8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHNlbnRDb252
ZXJzaW9uczsKKyAgICAgICAgCisgICAgICAgIGZvciAoYXV0byYgYXR0cmlidXRpb24gOiBjb252
ZXJ0ZWRBdHRyaWJ1dGlvbnMpIHsKKyAgICAgICAgICAgIGF1dG8gZWFybGllc3RUaW1lVG9TZW5k
ID0gYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCk7CisgICAgICAgICAgICBpZiAoIWVh
cmxpZXN0VGltZVRvU2VuZCkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQogCi0gICAgICAgIGF1
dG8gc2Vjb25kcyA9ICplYXJsaWVzdFRpbWVUb1NlbmQgLSBub3c7Ci0gICAgICAgIG5leHRUaW1l
VG9GaXJlID0gc3RkOjptaW4obmV4dFRpbWVUb0ZpcmUsIHNlY29uZHMpOwotICAgIH0KKyAgICAg
ICAgICAgIGF1dG8gbm93ID0gV2FsbFRpbWU6Om5vdygpOworICAgICAgICAgICAgaWYgKCplYXJs
aWVzdFRpbWVUb1NlbmQgPD0gbm93IHx8IG1faXNSdW5uaW5nVGVzdCB8fCBkZWJ1Z01vZGVFbmFi
bGVkKCkpIHsKKyAgICAgICAgICAgICAgICBmaXJlQ29udmVyc2lvblJlcXVlc3QoYXR0cmlidXRp
b24pOworICAgICAgICAgICAgICAgIHNlbnRDb252ZXJzaW9ucy5hcHBlbmQoV1RGTW92ZShhdHRy
aWJ1dGlvbikpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQogCi0g
ICAgbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbXShhdXRv
JiBrZXlBbmRWYWx1ZSkgewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUud2FzQ29u
dmVyc2lvblNlbnQoKTsKLSAgICB9KTsKKyAgICAgICAgICAgIGF1dG8gc2Vjb25kcyA9ICplYXJs
aWVzdFRpbWVUb1NlbmQgLSBub3c7CisgICAgICAgICAgICBuZXh0VGltZVRvRmlyZSA9IHN0ZDo6
bWluKG5leHRUaW1lVG9GaXJlLCBzZWNvbmRzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgY2xlYXJTZW50Q29udmVyc2lvbnMoV1RGTW92ZShzZW50Q29udmVyc2lvbnMpKTsKKyAgICAg
ICAgdXBkYXRlVGltZXJMYXN0RmlyZWQoKTsKIAotICAgIGlmIChuZXh0VGltZVRvRmlyZSA8IFNl
Y29uZHM6OmluZmluaXR5KCkpCi0gICAgICAgIHN0YXJ0VGltZXIobmV4dFRpbWVUb0ZpcmUpOwor
ICAgICAgICBpZiAobmV4dFRpbWVUb0ZpcmUgPCBTZWNvbmRzOjppbmZpbml0eSgpKQorICAgICAg
ICAgICAgc3RhcnRUaW1lcihuZXh0VGltZVRvRmlyZSk7CisgICAgfSk7CiB9CiAKIHZvaWQgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhcigpCiB7CiAgICAgbV9maXJlUGVuZGlu
Z0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLnN0b3AoKTsKLSAgICBtX3VuY29udmVydGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYXAuY2xlYXIoKTsKLSAgICBtX2NvbnZlcnRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFwLmNsZWFyKCk7CisKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAg
ICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCgpOwogfQogCiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXJGb3JS
ZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogewotICAg
IG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbJmRvbWFp
bl0oYXV0byYga2V5QW5kVmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLmtleS5m
aXJzdC5yZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW4gfHwga2V5QW5kVmFsdWUua2V5LnNlY29u
ZC5yZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW47Ci0gICAgfSk7Ci0KLSAgICBtX2NvbnZlcnRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLnJlbW92ZUlmKFsmZG9tYWluXShhdXRvJiBrZXlB
bmRWYWx1ZSkgewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUua2V5LmZpcnN0LnJlZ2lzdHJh
YmxlRG9tYWluID09IGRvbWFpbiB8fCBrZXlBbmRWYWx1ZS5rZXkuc2Vjb25kLnJlZ2lzdHJhYmxl
RG9tYWluID09IGRvbWFpbjsKLSAgICB9KTsKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAg
ICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEZvclJlZ2lzdHJhYmxlRG9tYWluKGRvbWFpbik7CiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyOjpjbGVhckV4cGlyZWQoKQogewotICAgIG1fdW5jb252ZXJ0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbXShhdXRvJiBrZXlBbmRWYWx1ZSkgewot
ICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUuaGFzRXhwaXJlZCgpOwotICAgIH0pOwor
ICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbV9uZXR3b3JrU2Vzc2lvbi0+
cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQorICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
LT5jbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogfQogCiB2b2lkIFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6dG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdHJpbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAogewotICAgIGlmIChtX3VuY29u
dmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuaXNFbXB0eSgpICYmIG1fY29udmVydGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoIlxuTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0
YS5cbiJfcyk7Ci0KLSAgICB1bnNpZ25lZCB1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyID0g
MDsKLSAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgZm9yIChhdXRvJiBhdHRyaWJ1dGlv
biA6IG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC52YWx1ZXMoKSkgewot
ICAgICAgICBpZiAoIXVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCi0gICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlVuY29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1l
bnRzOlxuIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicp
OwotICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigrK3VuY29udmVydGVk
QXR0cmlidXRpb25OdW1iZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQoYXR0cmlidXRpb24udG9TdHJpbmcoKSk7Ci19Ci0KLSAgICB1bnNp
Z25lZCBjb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlciA9IDA7Ci0gICAgZm9yIChhdXRvJiBhdHRy
aWJ1dGlvbiA6IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAudmFsdWVzKCkp
IHsKLSAgICAgICAgaWYgKHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCi0gICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaWYgKCFjb252ZXJ0ZWRBdHRyaWJ1dGlv
bk51bWJlcikKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQ29udmVydGVkIFBy
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOlxuIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcigrK2NvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyICsgdW5jb252ZXJ0ZWRBdHRyaWJ1
dGlvbk51bWJlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBidWls
ZGVyLmFwcGVuZChhdHRyaWJ1dGlvbi50b1N0cmluZygpKTsKLSAgICB9Ci0KLSAgICBjb21wbGV0
aW9uSGFuZGxlcihidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvKiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzID0gbV9uZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygp
KQorICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFRvU3RyaW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYm
IHRlc3RVUkwpCkBAIC0zMjQsOCArMjYyLDggQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmIHRlc3RVUkwpCiAKIHZv
aWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjptYXJrQWxsVW5jb252ZXJ0ZWRBc0V4
cGlyZWRGb3JUZXN0aW5nKCkKIHsKLSAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV91bmNv
bnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLnZhbHVlcygpKQotICAgICAgICBhdHRy
aWJ1dGlvbi5tYXJrQXNFeHBpcmVkKCk7CisgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MgPSBtX25ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCisgICAg
ICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPm1hcmtBbGxVbmNvbnZlcnRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZygpOwogfQogCiBib29sIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6ZGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0CkBAIC0zMzMsNCAr
MjcxLDEyIEBAIGJvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpkZWJ1Z01vZGVF
bmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKSAmJiAh
bV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKTsKIH0KIAordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RXhwaXJlZEluc2VydHNGb3JU
ZXN0aW5nKGJvb2wgdmFsdWUpCit7CisgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgPSBtX25ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCisgICAgICAg
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RXhwaXJl
ZEluc2VydHNGb3JUZXN0aW5nKHZhbHVlKTsKKworICAgIG1fc2hvdWxkSW5zZXJ0RXhwaXJlZFN0
YXRpc3RpY3MgPSB2YWx1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXIuaAppbmRleCA0M2Q0MzcxYjY3ZGY1OTg5MmZiN2ViZDQ1YTUxNDlkMmU5ZDhi
ZDYxLi5jOWQ0OTU4YWRmZTBiNWRjNmM3NjRhY2IyZDg2MmRkOWE4NTI1OTlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyLmgKQEAgLTQwLDYgKzQwLDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKK2VudW0gY2xhc3MgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUgeyBV
bmNvbnZlcnRlZCwgQ29udmVydGVkIH07CisKIGNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTUwLDE2
ICs1Miw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBEZXN0aW5hdGlvbiA9IFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjsKICAgICB1c2luZyBDb252ZXJzaW9uID0g
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb247CiAKLSAgICBleHBs
aWNpdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdv
cmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgICAgIDogbV9maXJlUGVu
ZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyKCp0aGlzLCAmUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyOjpmaXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0cykKLSAgICAgICAgLCBtX3Bp
bmdMb2FkRnVuY3Rpb24oW10oTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbXMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgewot
ICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHBhcmFtcyk7Ci0gICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihXZWJDb3JlOjpSZXNvdXJjZUVycm9yKCksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UoKSk7Ci0gICAgICAgIH0pCi0gICAgICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJv
Y2VzcykKLSAgICAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCi0gICAgewotICAgIH0KKyAg
ICBleHBsaWNpdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoTmV0d29ya1Nlc3Npb24m
LCBOZXR3b3JrUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgc3RvcmVVbmNv
bnZlcnRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKICAgICB2b2lkIGhhbmRsZUNvbnZl
cnNpb24oQ29udmVyc2lvbiYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KTsKQEAgLTcwLDIzICs2MywyNSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlKSB7
IG1faXNSdW5uaW5nVGVzdCA9IHZhbHVlOyB9CiAgICAgdm9pZCBzZXRDb252ZXJzaW9uVVJMRm9y
VGVzdGluZyhVUkwmJik7CiAgICAgdm9pZCBtYXJrQWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRGb3JU
ZXN0aW5nKCk7Ci0KKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RXhwaXJlZElu
c2VydHNGb3JUZXN0aW5nKGJvb2wpOwogcHJpdmF0ZToKKyAgICB2b2lkIGNsZWFyU2VudENvbnZl
cnNpb25zKFZlY3RvcjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJik7CiAgICAgdm9pZCBzdGFy
dFRpbWVyKFNlY29uZHMpOwogICAgIHZvaWQgY29udmVydChjb25zdCBTb3VyY2UmLCBjb25zdCBE
ZXN0aW5hdGlvbiYsIENvbnZlcnNpb24mJik7CiAgICAgdm9pZCBmaXJlQ29udmVyc2lvblJlcXVl
c3QoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKICAgICB2b2lkIGZpcmVQZW5kaW5n
Q29udmVyc2lvblJlcXVlc3RzKCk7CiAgICAgdm9pZCBjbGVhckV4cGlyZWQoKTsKICAgICBib29s
IGRlYnVnTW9kZUVuYWJsZWQoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZVRpbWVyTGFzdEZpcmVk
KCk7CiAKLSAgICBIYXNoTWFwPHN0ZDo6cGFpcjxTb3VyY2UsIERlc3RpbmF0aW9uPiwgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ+IG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
cDsKLSAgICBIYXNoTWFwPHN0ZDo6cGFpcjxTb3VyY2UsIERlc3RpbmF0aW9uPiwgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ+IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXA7CiAg
ICAgV2ViQ29yZTo6VGltZXIgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyOwog
ICAgIEZ1bmN0aW9uPHZvaWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmKT4gbV9waW5nTG9hZEZ1bmN0aW9uOwogICAgIGJv
b2wgbV9pc1J1bm5pbmdUZXN0IHsgZmFsc2UgfTsKICAgICBPcHRpb25hbDxVUkw+IG1fY29udmVy
c2lvbkJhc2VVUkxGb3JUZXN0aW5nOworICAgIFdlYWtQdHI8TmV0d29ya1Nlc3Npb24+IG1fbmV0
d29ya1Nlc3Npb247CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwog
ICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIGJvb2wgbV9zaG91bGRJbnNlcnRF
eHBpcmVkU3RhdGlzdGljczsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDA2NDgyNmNiMjVlMzU2NGEx
MzA1ZDQzNGIzODQwYWEzNGVmZmM5NmQuLjRmMzljZjNlY2Q0NWUxOTI0OGJjM2IyZTQwMzRhN2Yz
OWU2MzIxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAt
Mjg5MSw2ICsyODkxLDEzIEBAIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRP
dmVycmlkZVRpbWVyRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgYm9vCiAgICAgfSk7CiB9CiAK
K3ZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRl
c3RpbmcoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgdmFsdWUsIFdLUGFnZVNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50RXhwaXJlZEluc2VydHNGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQq
IGNhbGxiYWNrQ29udGV4dCkKK3sKKyAgICB0b0ltcGwocGFnZSktPnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50RXhwaXJlZEluc2VydHNGb3JUZXN0aW5nKHZhbHVlLCBbY2FsbGJhY2tDb250ZXh0
LCBjYWxsYmFja10gKCkgeworICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRleHQpOworICAg
IH0pOworfQorCiB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lv
blVSTEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIFVSTFJlZiwgV0tQYWdlU2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNh
bGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCiB7CiAgICAgdG9JbXBsKHBhZ2UpLT5zZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTChVUkwoKSwg
dG9XVEZTdHJpbmcoVVJMUmVmKSksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKaW5kZXggZmJk
NjExOWFmYTExYWUwNWEyMmE2M2E2NDQ3OGYzYzg2ZGY4MjE4Yy4uYjYwYWEwYTM3ZWU2ZjcxMGM2
MjU5OWFhOGU1YjBhYzdlMWVkNTQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVByaXZhdGUuaApAQCAtMTc1LDYgKzE3NSw4IEBAIHR5cGVkZWYgdm9pZCAoKldL
UGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGdW5jdGlvbikodm9pZCogZnVuY3Rpb25D
b250ZXh0CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50
KFdLUGFnZVJlZiwgV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZ1bmN0aW9uLCB2
b2lkKiBjYWxsYmFja0NvbnRleHQpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5j
dGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgYm9vbCB2YWx1ZSwg
V0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZ0Z1
bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwordHlwZWRlZiB2b2lkICgq
V0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3RpbmdG
dW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50RXhwaXJlZEluc2VydHNGb3JUZXN0aW5nKFdLUGFnZVJl
ZiBwYWdlLCBib29sIHZhbHVlLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEV4cGly
ZWRJbnNlcnRzRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRl
eHQpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tf
RVhQT1JUIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJM
Rm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgdXJsU3RyaW5nLCBXS1BhZ2VTZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24gY2Fs
bGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VNYXJr
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lk
KiBmdW5jdGlvbkNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggMjgyZTUyNDExZTkxOTEwNTdjYmM4YzJmZTgzZGU0ZmE0MDI1Y2JkNy4uNGFiY2M5
N2U0ODAyYWIzODMxMjdjYmNmNGQ0NWM2ZGIwZDUyMDM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC05OTY1LDYgKzk5NjUsMTEgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmco
Ym9vbCB2YWx1ZSwKICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vz
c2lvbklEKCksIHZhbHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lk
IFdlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0Zv
clRlc3RpbmcoYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50RXhwaXJlZEluc2VydHNGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+
c2Vzc2lvbklEKCksIHZhbHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJM
Rm9yVGVzdGluZyhjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2Vz
cygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcobV93ZWJzaXRlRGF0YVN0
b3JlLT5zZXNzaW9uSUQoKSwgdXJsKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA1MDU1ZjEzYTY4NDNjNDQ1Y2Ri
NzEwNmVjMWQzZjliODM2NzA5ZWUzLi5kODQ2Yzk3OTcyNDFjNWY1MTAxMDhjNDJkNDFhZGRmZWI1
ZjQ4ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTY4OCw2
ICsxNjg4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOwogICAgIHZvaWQgY2xl
YXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGlu
Zyhib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3RpbmcoYm9vbCB2YWx1
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoY29uc3QgVVJMJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjZTM4Njdh
ZGI5NGVkY2EyMDQwOTM5NTc0YTI0NmQ0MTJiYzlkNTU2Li43ZDFmOTg3OWNmN2Y1ODJiZDk4MmU2
YzhjYTcwYjE2OTE5NGIwNmJiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMTEtMTggIEthdGUgQ2hlbmV5ICA8
a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBQZXJzaXN0IHBlbmRp
bmcgYWQgY2xpY2tzIGFuZCBhdHRyaWJ1dGlvbnMgc28gdGhleSBjYW4gc3Vydml2ZSBicm93c2Vy
IHJlc3RhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxOTEzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA0NzAxMjk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRlc3Rp
bmcgb2YgZXhwaXJlZCBhZC1jbGlja3MgYW5kIGF0dHJpYnV0aW9ucy4KKworICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFeHBp
cmVkSW5zZXJ0c0ZvclRlc3RpbmcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3RpbmcpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJl
Y2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDIwLTExLTE2
ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Via2l0
c2NtcHldIEdlbmVyYWxpemUgcGFydHMgb2YgbG9jYWwuU2NtIGNsYXNzCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbAppbmRleCBkMGZmODE2NWZiMTk2MTkyNmNiNmI1ZjVlODMxMzU5MjFmNTIzYTVk
Li5mMzU2YjhkOGYxODM4ZmUyZmNkZTU2Mzg0Zjg1NWJiYmVkYTAzOTJjIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKQEAgLTQwMSw2ICs0MDEsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7
CiAgICAgdW5kZWZpbmVkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICB1bmRl
ZmluZWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1v
dmFsKCk7CiAgICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVU
aW1lckZvclRlc3RpbmcoYm9vbGVhbiB2YWx1ZSk7CisgICAgdW5kZWZpbmVkIHNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50RXhwaXJlZEluc2VydHNGb3JUZXN0aW5nKGJvb2xlYW4gdmFsdWUpOwog
ICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JU
ZXN0aW5nKERPTVN0cmluZyB1cmwpOwogICAgIHVuZGVmaW5lZCBtYXJrUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCA1YjE5NTQyZDA2
OWI4MGVmY2ZkNzJmNGQ5YjAzMTE4NDNhMGM3ZGE0Li41NTEwZjI5ODBkZDAxZDhiMzI1OTNjMmE4
OTU2NzIwMTYzYTM2N2Y3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIwMTUsNiArMjAxNSwxMSBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rp
bmcoYm9vbCB2YWx1ZSkKICAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyIsIHZhbHVlKTsKIH0KIAor
dm9pZCBUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEV4cGlyZWRJbnNlcnRz
Rm9yVGVzdGluZyhib29sIHZhbHVlKQoreworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdl
KCJTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEV4cGlyZWRJbnNlcnRzRm9yVGVzdGluZyIsIHZh
bHVlKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKEpTU3RyaW5nUmVmIHVybFN0cmluZykKIHsKICAgICBwb3N0
U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uVVJMRm9yVGVzdGluZyIsCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGIzMDJjOGUzMjEwYzQ2Y2NhMjY4ZjVmZGNmNTkz
OThjYzczZDI5NjkuLmUwNmQyOTJmZjMwZDFjOGE3ZjIzMzMwY2M5Zjg5YWZlMmI0ODRkNGEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCkBAIC01MTQsNiArNTE0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlKTsKICAgICB2b2lk
IHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoSlNTdHJp
bmdSZWYpOwogICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZv
clRlc3RpbmcoKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RXhwaXJlZElu
c2VydHNGb3JUZXN0aW5nKGJvb2wgdmFsdWUpOwogCiAgICAgdm9pZCBzZXRJc1NwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKaW5kZXggN2JhNjcyYWM5ZjkyNWY2MzI1YWEwN2ZhNmYxNjFhNTAy
MzVmYmI4Yy4uOWQzNWJkZWE5ZThjYzUxZDE5ZmMzMDRhMDc5ZmMwMDAxN2M3N2NhOCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTM1OTIsNiArMzU5Miwx
MyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJy
aWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdQogICAgIHJ1blVudGlsKGNhbGxiYWNrQ29udGV4
dC5kb25lLCBub1RpbWVvdXQpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEV4cGlyZWRJbnNlcnRzRm9yVGVzdGluZyhib29sIHZhbHVlKQorewor
ICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4dCBjYWxsYmFja0Nv
bnRleHQoKnRoaXMpOworICAgIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RXhwaXJl
ZEluc2VydHNGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgdmFsdWUsIHByaXZhdGVD
bGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrLCAmY2FsbGJhY2tDb250ZXh0KTsKKyAgICBydW5V
bnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKK30KKwogdm9pZCBUZXN0Q29u
dHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGlu
ZyhXS1VSTFJlZiB1cmwpCiB7CiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJh
Y2tDb250ZXh0IGNhbGxiYWNrQ29udGV4dCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKaW5kZXggYjU3YjhmN2EwNTk1MjNlY2Y4NzdhYjAxOTcyMGQ0ZGJlNThm
Y2I1Zi4uZGUzMWRhMDM4ODlhOWRlNGE0OTRiOTA5YTJjNDk1MWE0Njc2ZDEwNCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzQ0LDYgKzM0NCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICB2b2lkIGNs
ZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpOwog
ICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGlu
Zyhib29sIHZhbHVlKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RXhwaXJl
ZEluc2VydHNGb3JUZXN0aW5nKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXS1VSTFJlZik7CiAgICAgdm9pZCBt
YXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDI5YjY1MmM2MDM5ZWU4
YzUzMDlmZjBkZWFhZWU4MGY1ODQ1MzkwMmMuLmFkNjc1NjMzMTJkZWFiZDc0M2VjYTM2MDU0YTQz
Yzc0ODBjZTE3MzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CkBAIC0xMzI5LDYgKzEzMjksMTEgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFeHBpcmVk
SW5zZXJ0c0ZvclRlc3RpbmciKSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3RpbmcoYm9v
bGVhblZhbHVlKG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KyAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmciKSkgewog
ICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLVVJMR2V0VHlwZUlE
KCkpOwogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhzdGF0aWNfY2FzdDxXS1VSTFJlZj4o
bWVzc2FnZUJvZHkpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMTRjMmQ1ZTI0OWFmMGU3MDc3ZGQzMDRlM2NmYjA0OWQ3
YTI3OWVlLi44NTIzNDNmNzY2ODQ2YjBjNTU1MTUzNmFkODZiZmYyYzQ4MDk0ZGRkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMjAtMTEtMTggIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5l
eUBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBQZXJzaXN0IHBlbmRpbmcgYWQgY2xpY2tzIGFu
ZCBhdHRyaWJ1dGlvbnMgc28gdGhleSBjYW4gc3Vydml2ZSBicm93c2VyIHJlc3RhcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTEzNAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzA0NzAxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuIFJlbW92ZWQg
J0NvbnZlcnNpb24gcmVxdWVzdCBzZW50OicKKyAgICAgICAgY2F0ZWdvcnkgaW4gdGhlIHRvU3Ry
aW5nKCkgbWV0aG9kIGJlY2F1c2UgaXQgd2lsbCBhbHdheXMgYmUgZmFsc2UuCisgICAgICAgIFNl
bnQgY29udmVyc2lvbnMgYXJlIHB1cmdlZCBmcm9tIHRoZSBkYXRhYmFzZSwgc28gaXQgaXMgbm90
IGEgdXNlZnVsCisgICAgICAgIHBpZWNlIG9mIGluZm9ybWF0aW9uIHRvIHJlcG9ydC4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRp
b24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0
cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3Jp
dHktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgICh0ZWFyRG93bkFuZEZpbmlzaCk6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmli
dXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlv
bi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRo
LWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5
LWV4cGVjdGVkLnR4dDoKKwogMjAyMC0xMS0xNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIENsZWFuIHVwIHRpdGxlLXRleHQtcHJvcGVydHkuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2lu
ZG93LWV4cGVjdGVkLnR4dAppbmRleCBlNDFkMmJmZjVkZDM1YjU5ZmE1M2EyNjBlNjRkZWI4Y2I0
NWJhOTc1Li41ODRiNDU1NDA5NmY5YjVmNjFjNzkyYjUzNWVlNjk1NDNhMDAzM2IwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1u
ZXctd2luZG93LWV4cGVjdGVkLnR4dApAQCAtOSw0ICs5LDMgQEAgQ2FtcGFpZ24gSUQ6IDMKIENv
bnZlcnNpb24gZGF0YTogMTIKIENvbnZlcnNpb24gcHJpb3JpdHk6IDMKIENvbnZlcnNpb24gZWFy
bGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKLUNvbnZlcnNpb24gcmVxdWVz
dCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVk
aXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1p
bWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dAppbmRleCA4NGIyNzI0ZjRm
YjU1OWU1NmNkMWQ5ZjRkMWZmYzU5NWQyNGI2NGIzLi41NjI4NmFjNTNhMjczYmYwNjQxMmMxNjFk
NDM4ZDVjMzdhNzg0YzM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1y
ZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhy
b3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtOSw0ICs5
LDMgQEAgQ2FtcGFpZ24gSUQ6IDMKIENvbnZlcnNpb24gZGF0YTogMTIKIENvbnZlcnNpb24gcHJp
b3JpdHk6IDMKIENvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDgg
aG91cnMKLUNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252
ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5
LWV4cGVjdGVkLnR4dAppbmRleCA3MWY0NjJjZDBlYzMwYzZhMDM4MjQxNWUwMzRlMTY3NWYxZjAy
M2IxLi5iNjc4ODBjYTlhNDVjNTBjYjU3YjM2Y2NkMjM4ZWI5MWJmY2Y3MTZkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0
aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRo
b3V0LXByaW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtOSw0ICs5LDMgQEAgQ2FtcGFpZ24gSUQ6IDMK
IENvbnZlcnNpb24gZGF0YTogMTIKIENvbnZlcnNpb24gcHJpb3JpdHk6IDAKIENvbnZlcnNpb24g
ZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKLUNvbnZlcnNpb24gcmVx
dWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWFkLWNsaWNrLWdldHMtcmVtb3ZlZC1vbi1zZXNz
aW9uLXN0YXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hZC1jbGljay1nZXRzLXJlbW92ZWQtb24tc2Vzc2lvbi1z
dGFydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VjMjg2ZDRjM2NhYzlhZGYzYWJkY2M3M2Yx
MzQ2MzU2N2ZhOWI4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hZC1jbGljay1nZXRzLXJlbW92ZWQtb24t
c2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IGFu
IGV4cGlyZWQgYWQgY2xpY2sgZG9lcyBub3QgZ2V0IGNvbnZlcnRlZCBvbiBzZXNzaW9uIHN0YXJ0
LgorCisKKworTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhw
aXJlZC1hZC1jbGljay1nZXRzLXJlbW92ZWQtb24tc2Vzc2lvbi1zdGFydC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWFkLWNsaWNr
LWdldHMtcmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQwZTgyZTNl
NTgxNjBjZDYxNzM2MGIzYzU0OTMyNmUyMDhjZTg4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hZC1jbGlj
ay1nZXRzLXJlbW92ZWQtb24tc2Vzc2lvbi1zdGFydC5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwh
RE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3Bv
cnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNl
dD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRl
c3RzIHRoYXQgYW4gZXhwaXJlZCBhZCBjbGljayBkb2VzIG5vdCBnZXQgY29udmVydGVkIG9uIHNl
c3Npb24gc3RhcnQuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Cis8ZGl2
IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXRoID0gIi9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWFkLWNsaWNrLWdldHMtcmVtb3ZlZC1vbi1zZXNzaW9u
LXN0YXJ0Lmh0bWwiOworICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBbCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/c3RlcFR3
byIsCisgICAgICAgICAgICBhdHRyaWJ1dGlvbnNvdXJjZWlkOiAiMyIsCisgICAgICAgICAgICBh
dHRyaWJ1dGVvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKKyAgICAgICAgfQorICAgIF07CisK
KyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gY29uZmlndXJlTGluayhpbmRleCkg
eworICAgICAgICBsZXQgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0TGluayIpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhyZWYiLCBjb25m
aWd1cmF0aW9uW2luZGV4XS5ocmVmKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRl
KCJhdHRyaWJ1dGlvbnNvdXJjZWlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYXR0cmlidXRpb25z
b3VyY2VpZCk7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlb24i
LCBjb25maWd1cmF0aW9uW2luZGV4XS5hdHRyaWJ1dGVvbik7CisgICAgfQorCisgICAgZnVuY3Rp
b24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0g
ZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZh
ciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7
CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAg
ICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1
dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAg
ICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGNvbnZlcnQoY2FsbGJhY2spIHsKKyAgICAgICAgbGV0IHBpeGVsRWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpOworICAgICAgICBpZiAocGl4
ZWxFbGVtZW50KQorICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwaXhlbEVs
ZW1lbnQpOworCisgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpbWciKTsKKyAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAu
MTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVy
c2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOworICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAi
cGl4ZWwiOworICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGNhbGxiYWNrOworICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICAvLyBTZXQgdGhpcyBmbGFnIHRvIGluc2VydCBhbiBleHBpcmVkIGFkIGNsaWNr
LgorICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3RpbmcodHJ1ZSk7CisgICAgICAgICAgICBpZiAod2luZG93
LmxvY2F0aW9uLnNlYXJjaCA9PT0gIiIpIHsKKyAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5r
KDApOworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAg
ICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28i
KSB7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3RpbmcoZmFsc2UpOworICAgICAgICAgICAgICAg
IGNvbnZlcnQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlu
bmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9uLXJlcG9ydC1nZXRz
LXNlbnQtb24tc2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVwb3J0LWdl
dHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWRjMGNm
MmE3MGU3NDFkMTdjMmMyMWUxMWU0ODUyOTZjZDRhMDdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJp
YnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNyBAQAorVGVzdHMgc2VuZGluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50
IHJlcXVlc3RzIGFmdGVyIGEgY29udmVyc2lvbiBoYXBwZW5zIGltbWVkaWF0ZWx5IGZvciByZXBv
cnRzIHdoaWNoIGhhdmUgZXhwaXJlZCB3aGVuIGEgc2Vzc2lvbiBpcyBjbG9zZWQuCisKKworCist
LS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK0NvbnZlcnNpb24gcmVj
ZWl2ZWQuCitIVFRQX0hPU1Q6IDEyNy4wLjAuMTo4MDAwCitDb250ZW50IHR5cGU6IGFwcGxpY2F0
aW9uL2pzb24KK1JFUVVFU1RfVVJJOiAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2Vz
L2NvbnZlcnNpb25SZXBvcnQucGhwCitObyBjb29raWVzIGluIGNvbnZlcnNpb24gcmVxdWVzdC4K
K1JlcXVlc3QgYm9keToKK3sic291cmNlLWVuZ2FnZW1lbnQtdHlwZSI6ImNsaWNrIiwic291cmNl
LXNpdGUiOiIxMjcuMC4wLjEiLCJzb3VyY2UtaWQiOjAsImF0dHJpYnV0ZWQtb24tc2l0ZSI6Imxv
Y2FsaG9zdCIsInRyaWdnZXItZGF0YSI6MCwicmVwb3J0LXZlcnNpb24iOjF9CisKKworTm8gc3Rv
cmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlv
bi1yZXBvcnQtZ2V0cy1zZW50LW9uLXNlc3Npb24tc3RhcnQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbi1yZXBv
cnQtZ2V0cy1zZW50LW9uLXNlc3Npb24tc3RhcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Zjg4ZTI3YjM3
YzMyMGY1ZTM5YjQ0ZDJmNGU4MThlNDUyZTk3ZmMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0
aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC5odG1sCkBAIC0wLDAgKzEsNzYg
QEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxl
Vmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0
aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRp
b24iPlRlc3RzIHNlbmRpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCByZXF1ZXN0cyBh
ZnRlciBhIGNvbnZlcnNpb24gaGFwcGVucyBpbW1lZGlhdGVseSBmb3IgcmVwb3J0cyB3aGljaCBo
YXZlIGV4cGlyZWQgd2hlbiBhIHNlc3Npb24gaXMgY2xvc2VkLjwvZGl2PgorPGEgaWQ9InRhcmdl
dExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9leHBpcmVkLWF0dHJpYnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC5o
dG1sP3N0ZXBUd28iIGF0dHJpYnV0aW9uc291cmNlaWQ9IjMiIGF0dHJpYnV0ZW9uPSJodHRwOi8v
bG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxz
Y3JpcHQ+CisgICAgY29uc3QgY3VycmVudFRpbWVNaWxsaXMgPSAobmV3IERhdGUoKSkuZ2V0VGlt
ZSgpOworICAgIGNvbnN0IGhpZ2hFbnRyb3B5Qml0cyA9IGN1cnJlbnRUaW1lTWlsbGlzIC0gKE1h
dGguZmxvb3IoY3VycmVudFRpbWVNaWxsaXMgLyAxMDAwMDAwKSAqIDEwMDAwMDApOworICAgIGNv
bnN0IG5vbmNlID0gaGlnaEVudHJvcHlCaXRzICsgIiIgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9t
KCkgKiAxMDApOworCisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
dmVyc2lvblVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA/bm9uY2U9IiArIG5vbmNl
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Cisg
ICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsK
KyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNl
dFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVs
ZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50
ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWpl
Y3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5kSWZyYW1lKHVybCwg
b25sb2FkQ2FsbGJhY2spIHsKKyAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSB1cmw7
CisgICAgICAgIGlmIChvbmxvYWRDYWxsYmFjaykKKyAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQu
b25sb2FkID0gb25sb2FkQ2FsbGJhY2s7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoaWZyYW1lRWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5kQ29udmVyc2lv
bkRhdGFJZnJhbWVBbmRGaW5pc2goKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVD
bGlja01lYXN1cmVtZW50KCk7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworCisgICAg
ICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHA/dGltZW91dF9tcz0yMDAwJm5v
bmNlPSIgKyBub25jZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlz
aCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9j
YXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgd2luZG93LnRl
c3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFeHBpcmVkSW5zZXJ0c0ZvclRlc3Rp
bmcodHJ1ZSk7CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAi
aHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMv
cmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJm5vbmNlPSIgKyBub25j
ZTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAg
ICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCk7CisgICAgICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdl
RWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFjdGl2YXRl
RWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9
ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMKaW5kZXggNTdiMzM2
YTk5OTdmN2VhOWYyZGJhZWU4Y2NhNjYxYzk0YWRkMjE3Ni4uYzgxMTlhODIwM2FmMDc0YzFhYjc3
ZTQxMDY1ZWZkYTAxZDZhMjlhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvdXRpbC5qcworKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzCkBA
IC0xMiw2ICsxMiw3IEBAIGZ1bmN0aW9uIHRlYXJEb3duQW5kRmluaXNoKCkgewogICAgICAgICB0
ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGZhbHNlKTsKICAgICAgICAgdGVz
dFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
KGZhbHNlKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKCIiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEV4cGlyZWRJbnNlcnRzRm9yVGVzdGluZyhmYWxzZSk7CiAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9u
LWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1j
b252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CmluZGV4IGU5MGQyNmY2
YWZkYmQzZWNkYzIxM2JmZTIzYTM2M2RkMTc0N2JjYTMuLmMxYTc5YTNhNzhmN2RjNzY3NzIzNTNj
ZmQ3ZjFjYjIyOTA1ZGNjZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhp
Z2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgt
aGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtOSw0ICs5LDMgQEAgQ2FtcGFpZ24gSUQ6
IDQKIENvbnZlcnNpb24gZGF0YTogMTIKIENvbnZlcnNpb24gcHJpb3JpdHk6IDQKIENvbnZlcnNp
b24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKLUNvbnZlcnNpb24g
cmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgt
bG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93
ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CmluZGV4IGMzN2YzMThmYzc2OWFmMWU2YzE5NTc1ZDUw
ODRjMDI1NzUyZWM2ZGUuLjRmYjA2YzcxOWY1MWZmNTJmODJlNWJkMGUwYmIyNjVhZjQ4YTI1YzQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBl
Y3RlZC50eHQKQEAgLTksNCArOSwzIEBAIENhbXBhaWduIElEOiAzCiBDb252ZXJzaW9uIGRhdGE6
IDEyCiBDb252ZXJzaW9uIHByaW9yaXR5OiA0CiBDb252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8g
c2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29u
dmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKaW5kZXggMDBhNGZmZWVk
NmRmYTgyZTk4MDNmNmY2ZDEyN2E5NjQ5OGYzYjgwZS4uM2MyMGUyMzhkNGRkMzBlZTAxOTcxN2Zj
MmQxMzE2NzYxYTAyYWJlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3Rl
ZC50eHQKQEAgLTksNCArOSwzIEBAIENhbXBhaWduIElEOiAzCiBDb252ZXJzaW9uIGRhdGE6IDEy
CiBDb252ZXJzaW9uIHByaW9yaXR5OiA0CiBDb252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2Vu
ZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
c2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJz
aW9uLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CmluZGV4IGIzZjVkY2Q4OTRjMDQ4
MzU3YzkxODNmZjYwMDQxNjUzMmRiODJiNGEuLmYwNjA2ZTZiMDczZGRmNjllM2I2MGIxZjRjY2Nh
MjMwODJiN2NhZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApA
QCAtOSw0ICs5LDMgQEAgQ2FtcGFpZ24gSUQ6IDMKIENvbnZlcnNpb24gZGF0YTogMTIKIENvbnZl
cnNpb24gcHJpb3JpdHk6IDQKIENvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRo
aW4gMjQtNDggaG91cnMKLUNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414644</attachid>
            <date>2020-11-19 20:16:09 -0800</date>
            <delta_ts>2020-11-20 09:45:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219134-20201119231607.patch</filename>
            <type>text/plain</type>
            <size>223534</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFiNTI2MDRkMWZjN2Q0
ZGI2NjYxMDViMTFmYmM2Yzk2YTIwNWIxMy4uODEzZjdkOTM3MTE1N2E0YzVmNDlhNDAzMzYzMjJh
MTFlMjk2MmRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAyMC0xMS0xOSAgS2F0
ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IFBl
cnNpc3QgcGVuZGluZyBhZCBjbGlja3MgYW5kIGF0dHJpYnV0aW9ucyBzbyB0aGV5IGNhbiBzdXJ2
aXZlIGJyb3dzZXIgcmVzdGFydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MTM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDQ3MDEyOT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IG1pZ3JhdGVzIFBDTSBkYXRhIHRvIGJlIHN0b3JlZCBvbiBkaXNrIGFuZAorICAgICAgICB1cGRh
dGVzIG5hbWluZyBvZiB2YXJpb3VzIFBDTSBkYXRhIHRvIG1hdGNoIG5hbWluZyBhZ3JlZWQKKyAg
ICAgICAgdXBvbiBpbiBzdGFuZGFyZHMgYm9kaWVzOgorCisgICAgICAgIC0gc291cmNlIOKAkz4g
c291cmNlU2l0ZQorICAgICAgICAtIGNhbXBhaWduL2NhbXBhaWduSUQg4oCTPiBzb3VyY2VJRAor
ICAgICAgICAtIGRlc3RpbmF0aW9uIOKAkz4gYXR0cmlidXRlT25TaXRlCisgICAgICAgIC0gY29u
dmVyc2lvbi9jb252ZXJzaW9uVmFsdWUg4oCTPiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhCisgICAg
ICAgIC0gdW5jb252ZXJ0ZWQg4oCTPiB1bmF0dHJpYnV0ZWQKKyAgICAgICAgLSBjb252ZXJ0KGVk
KSDigJM+IGF0dHJpYnV0ZShkKQorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2V4cGlyZWQtYWQtY2xpY2stZ2V0cy1yZW1vdmVkLW9uLXNlc3Npb24t
c3RhcnQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9leHBpcmVkLWF0dHJpYnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFy
dC5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01lYXN1cmVtZW50
IGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Om1heEFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aXNWYWxpZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlv
blJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzSGlnaGVyUHJpb3JpdHlUaGFuIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpyZXBvcnRVUkwgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ompzb24gY29uc3QpOgor
ICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpjb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9T
ZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjptYXJrQXNFeHBpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpoYXNFeHBpcmVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjptYXJrQ29udmVyc2lvbkFzU2VudCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6d2FzQ29udmVy
c2lvblNlbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICBXZSBjYW4gcmVtb3ZlIHRoZSAqRXhw
aXJlZCgpIGZ1bmN0aW9ucyBhcyB0aGV5IHdlcmUgb25seSBpbmRpY2F0b3JzCisgICAgICAgIGZv
ciB0aGUgSGFzaE1hcCBzdG9yYWdlIHRvIGtub3cgd2hhdCBhdHRyaWJ1dGlvbnMgdG8gZGVsZXRl
LiBUaGlzIGlzCisgICAgICAgIG5vdyBoYW5kbGVkIGJ5IFNRTGl0ZS4gU2ltaWxhcmx5LCBhIGNv
bnZlcnNpb24gaXMgc2VudCBpZiBpdCBpcyBubworICAgICAgICBsb25nZXIgaW4gdGhlIGRhdGFi
YXNlLiBTbyB3ZSBkbyBub3QgbmVlZCBmdW5jdGlvbnMgZm9yIHRoZXNlLgorCisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6dG9TdHJpbmcgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oOgorICAgICAgICAo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEOjpTb3VyY2VJRCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZTo6U291
cmNlU2l0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlU2l0ZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZTo6ZGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlOjpjb25zdHJ1Y3REZWxldGVk
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJj
ZVNpdGVIYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2VTaXRlSGFzaDo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZTo6QXR0cmlidXRlT25TaXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGU6Om9w
ZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0ZU9uU2l0ZTo6ZGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGU6OmNvbnN0cnVjdERlbGV0ZWRW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmli
dXRlT25TaXRlSGFzaDo6aGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6QXR0cmlidXRlT25TaXRlSGFzaDo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6OkF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50Ojpzb3VyY2VTaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGVPblNpdGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRpbWVPZkFkQ2xpY2sgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldEVhcmxpZXN0VGlt
ZVRvU2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c291
cmNlSUQpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OnNldEF0dHJpYnV0aW9uKToKKyAgICAgICAgTm93IHRoYXQgd2Ugc3RvcmUgZGF0YSBv
biBkaXNrLCB3ZSBuZWVkIGEgbW9yZSBmbGV4aWJsZSBjb25zdHJ1Y3RvcgorICAgICAgICBhbmQg
bW9yZSBmdW5jdGlvbnMgdG8gcmVidWlsZCBQQ00gb2JqZWN0cyBmcm9tIHRoZSBkYXRhYmFzZS4K
KworICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6OmRlY29kZSk6CisgICAgICAgIChX
VEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNp
dGU+OjplbXB0eVZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZT46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6
CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZVNpdGU+Ojppc0RlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFp
dHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZT46OmVt
cHR5VmFsdWUpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGU+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgor
ICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpBdHRyaWJ1dGVPblNpdGU+Ojppc0RlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ246OkNhbXBhaWduKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbjo6aXNWYWxp
ZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6U291cmNlOjpTb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6b3BlcmF0b3I9PSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOjptYXRjaGVz
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2U6OmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6OmRlbGV0ZWRW
YWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6U291cmNlOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6ZGVsZXRlVmFsdWUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6
aXNEZWxldGVkVmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUhhc2g6Omhhc2gpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUhhc2g6OmVxdWFsKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5h
dGlvbjo6RGVzdGluYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjpvcGVyYXRvcj09IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjo6
bWF0Y2hlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6RGVzdGluYXRpb246OmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0
aW5hdGlvbjo6ZGVsZXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0
aW5hdGlvbjo6ZGVsZXRlVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjppc0RlbGV0ZWRWYWx1ZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGlu
YXRpb25IYXNoOjpoYXNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbkhhc2g6OmVxdWFsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uOjpDb252ZXJzaW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpD
b252ZXJzaW9uOjppc1ZhbGlkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50Ojpzb3VyY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmRlc3RpbmF0aW9uIGNvbnN0KTogRGVs
ZXRlZC4KKworICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmlzRW1w
dHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICBOb3QgbmVlZGVkIGFueW1vcmUsIHRoZSBkYXRh
YmFzZSB1c2VzIE9wdGlvbmFscyB0byBpbmRpY2F0ZSBhbiBlbXB0eSByZXN1bHQuCisKKyAgICAg
ICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uOjplbmNvZGUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkNvbnZlcnNpb246OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Okhhc2hUcmFp
dHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZT46OmVtcHR5VmFsdWUp
OiBEZWxldGVkLgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpTb3VyY2U+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2U+Ojppc0RlbGV0ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Okhhc2hU
cmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPjo6ZW1w
dHlWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPjo6Y29uc3RydWN0RGVsZXRlZFZhbHVl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24+Ojppc0RlbGV0ZWRWYWx1ZSk6IERlbGV0ZWQuCisK
IDIwMjAtMTEtMTkgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAg
ICAgICBVc2UgZmluYWwgaW4gZ2VuZXJhdGVkIHdyYXBwZXIgb3duZXIgY29kZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJiNzc3N2M5YjMyLi42ZmVlNTVkZDM4YTk5
MzM4NGVkMzQ3ZDkxNjhhZWNmNzA0MGY5YjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAor
MjAyMC0xMS0xOSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKwor
ICAgICAgICBQQ006IFBlcnNpc3QgcGVuZGluZyBhZCBjbGlja3MgYW5kIGF0dHJpYnV0aW9ucyBz
byB0aGV5IGNhbiBzdXJ2aXZlIGJyb3dzZXIgcmVzdGFydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MTM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MDQ3MDEyOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIHBhdGNoIG1pZ3JhdGVzIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgdG8gdXNl
IFNRTGl0ZSwKKyAgICAgICAgd2hpY2ggaXMgYmVuZWZpY2lhbCBiZWNhdXNlIGl0IHJlcXVpcmVz
IGxlc3MgaW4tbWVtb3J5IHN0b3JhZ2UgYW5kCisgICAgICAgIHBlcnNpc3RzIFBDTSBkYXRhIGFj
cm9zcyBicm93c2VyIHNlc3Npb25zLiBJdCBhbHNvIHVwZGF0ZXMgbmFtaW5nCisgICAgICAgIG9m
IHZhcmlvdXMgUENNIGRhdGEgYWdyZWVkIHVwb24gaW4gc3RhbmRhcmRzIGJvZGllczoKKworICAg
ICAgICAtIHNvdXJjZSDigJM+IHNvdXJjZVNpdGUKKyAgICAgICAgLSBjYW1wYWlnbi9jYW1wYWln
bklEIOKAkz4gc291cmNlSUQKKyAgICAgICAgLSBkZXN0aW5hdGlvbiDigJM+IGF0dHJpYnV0ZU9u
U2l0ZQorICAgICAgICAtIGNvbnZlcnNpb24vY29udmVyc2lvblZhbHVlIOKAkz4gYXR0cmlidXRp
b25UcmlnZ2VyRGF0YQorICAgICAgICAtIHVuY29udmVydGVkIOKAkz4gdW5hdHRyaWJ1dGVkCisg
ICAgICAgIC0gY29udmVydChlZCkg4oCTPiBhdHRyaWJ1dGUoZCkKKworICAgICAgICBUaGlzIGFk
ZHMgMyBTUUxpdGUgdGFibGVzOiBvbmUgZm9yIGFkIGNsaWNrcyB0aGF0IGhhdmVuJ3QgYmVlbgor
ICAgICAgICBhdHRyaWJ1dGVkLCBvbmUgZm9yIGF0dHJpYnV0aW9ucyB0aGF0IGhhdmVuJ3QgYmVl
biBzZW50LCBhbmQgb25lIHRvCisgICAgICAgIHN0b3JlIHRoZSBsYXN0IHRpbWUgdGhlIHJlcG9y
dHMgd2VyZSBzZW50IHRvIG1ha2Ugc3VyZSByZXBvcnRzIGdldAorICAgICAgICBzZW50IGFzIHNv
b24gYXMgcG9zc2libGUgaWYgbmVlZGVkIGFmdGVyIGEgYnJvd3NlciByZXN0YXJ0LgorCisgICAg
ICAgIEJlaGF2aW9yIGlzIGlkZW50aWNhbCB0byBleGlzdGluZyBQQ00gaW1wbGVtZW50YXRpb24g
d2l0aCB0aGUgYWRkaXRpb24KKyAgICAgICAgb2YgcGVyc2lzdGVuY2UuIEV4aXN0aW5nIFBDTSB0
ZXN0cyBjb25maXJtIG5vIHJlZ3Jlc3Npb25zLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0
ZVRhYmxlUXVlcmllcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVV
bmlxdWVJbmRpY2VzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmNyZWF0ZVNjaGVtYSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkZXN0cm95U3RhdGVtZW50cyk6CisgICAgICAgIE5l
dyBxdWVyaWVzIHRvIGludGVyYWN0IHdpdGggUENNIGRhdGEuCisKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZVRpbWVyTGFzdEZpcmVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnRpbWVyTGFzdEZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnVwZGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25U
aW1lcyk6CisgICAgICAgIFNldCBlYXJsaWVzdFRpbWVUb1NlbmQgdG8gYmUgdGhlIG9yaWdpbmFs
IHZhbHVlIG1pbnVzIHRoZSB0aW1lIHBhc3NlZCBzaW5jZSB0aGUgbGFzdCB0aW1lciBmaXJlCisg
ICAgICAgIGZvciBlYWNoIGVudHJ5LiBJZiB0aGUgcmVzdWx0IGlzIGxlc3MgdGhhbiAwLCBzZXQg
dG8gMCBzbyB0aGUgcmVwb3J0IGdldHMgc2VudCBpbW1lZGlhdGVseS4KKworICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YnVpbGRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEZyb21EYXRhYmFzZSk6CisgICAgICAgIENyZWF0ZXMgYSBQQ00gb2JqZWN0
IGZyb20gZGF0YSBpbiB0aGUgZGF0YWJhc2UuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpp
bnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbW92ZVVuYXR0cmlidXRlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjphdHRy
aWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjphbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckV4cGlyZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjphdHRyaWJ1dGlvblRvU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByaXZhdGVDbGlja01lYXN1cmVt
ZW50VG9TdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Y2xlYXJTZW50QXR0cmlidXRpb25zKToKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlVGltZXJMYXN0RmlyZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omluc2Vy
dFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjptYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6YWxsQXR0cmli
dXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhclByaXZh
dGVDbGlja01lYXN1cmVtZW50Rm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNsZWFyRXhwaXJlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbnMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1hcmtB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpmaXJlUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUaW1lckltbWVkaWF0ZWx5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5k
UmVkaXJlY3RlZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdCk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6
TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6ZmlyZVBy
aXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uOjpzdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmhhbmRsZVByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
dmVyc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjptYXJrQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhw
aXJlZEZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Lmg6CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcik6CisgICAgICAgIE1vdmUgY29uc3Ry
dWN0b3IgdG8gY3BwIGZpbGUgdG8gY2FsbCBzdGFydFRpbWVyKDVfcykgd2hpY2ggd2lsbCBraWNr
CisgICAgICAgIG9mZiBzZW5kaW5nIGFueSByZXBvcnRzIHRoYXQgaGF2ZSBleHBpcmVkIGluIHRo
ZSBkYXRhYmFzZS4gV2Ugc2hvdWxkCisgICAgICAgIHdhaXQgNSBzZWNvbmRzIHNvIHdlIGFyZSBz
dXJlIElUUCBpcyB1cCBhbmQgcnVubmluZy4KKworICAgICAgICAoV2ViS2l0OjptX3Nlc3Npb25J
RCk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3Rv
cmVVbmF0dHJpYnV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OmhhbmRsZUF0dHJpYnV0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdGFydFRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjphdHRyaWJ1dGUpOgorICAgICAgICAoV2ViS2l0
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVDb252ZXJzaW9uUmVxdWVzdCk6
CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXJT
ZW50QXR0cmlidXRpb25zKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyOjp1cGRhdGVUaW1lckxhc3RGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3Rz
KToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVh
cik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xl
YXJGb3JSZWdpc3RyYWJsZURvbWFpbik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlcjo6Y2xlYXJFeHBpcmVkKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0Q29udmVyc2lvblVSTEZvclRl
c3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
Om1hcmtBbGxVbmF0dHJpYnV0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktp
dDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjptYXJrQXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0b3JlVW5jb252ZXJ0ZWQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRs
ZUNvbnZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3Rz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjptYXJrQWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaDoK
KyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6Om1fc2Vzc2lvbklEKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZU1hcmtBdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAg
ICAgIChXS1BhZ2VTaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2ltdWxhdGVSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKwogMjAyMC0xMS0xOSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBJc3N1ZSBzYW5kYm94IGV4dGVuc2lvbiB0byBXZWIgSW5zcGVj
dG9yIHNlcnZpY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5k
ZXggN2JjMzc0OGRmYjk4YzBmZGUzMWM1YmUzYTFkZjExMTM4OWI4MTU5ZC4uYmRmMzljNzNjOWUx
MjlmMDMxNjNmZjEwZmM2NjFhMmE0ZjMyNTY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHAKQEAgLTQwMCw5ICs0MDAsOSBAQCBib29sIEhUTUxBbmNob3JFbGVt
ZW50Ojppc1N5c3RlbVByZXZpZXdMaW5rKCkKIAogT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ+IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01lYXN1cmVtZW50KCkg
Y29uc3QKIHsKLSAgICB1c2luZyBDYW1wYWlnbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpD
YW1wYWlnbjsKLSAgICB1c2luZyBTb3VyY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlOwotICAgIHVzaW5nIERlc3RpbmF0aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRl
c3RpbmF0aW9uOworICAgIHVzaW5nIFNvdXJjZUlEID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlNvdXJjZUlEOworICAgIHVzaW5nIFNvdXJjZVNpdGUgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6U291cmNlU2l0ZTsKKyAgICB1c2luZyBBdHRyaWJ1dGVPblNpdGUgPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlOwogCiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50
KCkucGFnZSgpOwogICAgIGlmICghcGFnZSB8fCBwYWdlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJh
bCgpCkBAIC00NTAsNyArNDUwLDcgQEAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+
IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01lYXN1cmVtZW4KICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKLSAgICByZXR1cm4gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgeyBDYW1wYWlnbihhdHRyaWJ1dGlvblNvdXJjZUlELnZhbHVlKCkpLCBTb3VyY2Uo
ZG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbiksIERlc3RpbmF0aW9uKGF0dHJpYnV0ZU9uVVJMKSB9
OworICAgIHJldHVybiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7IFNvdXJjZUlEKGF0dHJpYnV0
aW9uU291cmNlSUQudmFsdWUoKSksIFNvdXJjZVNpdGUoZG9jdW1lbnRSZWdpc3RyYWJsZURvbWFp
biksIEF0dHJpYnV0ZU9uU2l0ZShhdHRyaWJ1dGVPblVSTCkgfTsKIH0KIAogdm9pZCBIVE1MQW5j
aG9yRWxlbWVudDo6aGFuZGxlQ2xpY2soRXZlbnQmIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggYjBiYWJiNDU5MGYx
NmU4ZTlhOWE2OGM1ZDNhYWE3NDRjMDU2YTlkNS4uMWI1N2QzNmZhZDA3YjA4NGViZDA4NzkzMDg2
ZjI1MjliY2QxZjBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0zNywyMSArMzcsMjUgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRQYXRoUHJlZml4
W10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIjsKLWNvbnN0IHNp
emVfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXpl
ID0gMjsKK2NvbnN0IHNpemVfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJp
Z2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwogY29uc3Qgc2l6ZV90IHByaXZhdGVDbGlja01l
YXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUgPSAyOwotY29uc3QgU2Vjb25kcyBtYXhB
Z2UgeyAyNF9oICogNyB9OworCitjb25zdCBTZWNvbmRzIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjptYXhBZ2UoKQoreworICAgIHJldHVybiAyNF9oICogNzsKK307CiAKIGJvb2wgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OmlzVmFsaWQoKSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnZlcnNp
b24KLSAgICAgICAgJiYgbV9jb252ZXJzaW9uLnZhbHVlKCkuaXNWYWxpZCgpCi0gICAgICAgICYm
IG1fY2FtcGFpZ24uaXNWYWxpZCgpCi0gICAgICAgICYmICFtX3NvdXJjZS5yZWdpc3RyYWJsZURv
bWFpbi5pc0VtcHR5KCkKLSAgICAgICAgJiYgIW1fZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21h
aW4uaXNFbXB0eSgpCisgICAgcmV0dXJuIG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YQorICAgICAg
ICAmJiBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEudmFsdWUoKS5pc1ZhbGlkKCkKKyAgICAgICAg
JiYgbV9zb3VyY2VJRC5pc1ZhbGlkKCkKKyAgICAgICAgJiYgIW1fc291cmNlU2l0ZS5yZWdpc3Ry
YWJsZURvbWFpbi5pc0VtcHR5KCkKKyAgICAgICAgJiYgIW1fYXR0cmlidXRlT25TaXRlLnJlZ2lz
dHJhYmxlRG9tYWluLmlzRW1wdHkoKQogICAgICAgICAmJiBtX2VhcmxpZXN0VGltZVRvU2VuZDsK
IH0KIAotRXhwZWN0ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24sIFN0cmlu
Zz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29uc3Qg
VVJMJiByZWRpcmVjdFVSTCkKK0V4cGVjdGVkPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRy
aWJ1dGlvblRyaWdnZXJEYXRhLCBTdHJpbmc+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJz
ZUF0dHJpYnV0aW9uUmVxdWVzdChjb25zdCBVUkwmIHJlZGlyZWN0VVJMKQogewogICAgIGlmICgh
cmVkaXJlY3RVUkwucHJvdG9jb2xJcygiaHR0cHMiKSB8fCByZWRpcmVjdFVSTC5oYXNDcmVkZW50
aWFscygpIHx8IHJlZGlyZWN0VVJMLmhhc1F1ZXJ5KCkgfHwgcmVkaXJlY3RVUkwuaGFzRnJhZ21l
bnRJZGVudGlmaWVyKCkpIHsKICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQo
KSkpIHsKQEAgLTcxLDkgKzc1LDkgQEAgRXhwZWN0ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkNvbnZlcnNpb24sIFN0cmluZz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnAKICAgICB9CiAK
ICAgICBhdXRvIHByZWZpeExlbmd0aCA9IHNpemVvZihwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBh
dGhQcmVmaXgpIC0gMTsKLSAgICBpZiAocGF0aC5sZW5ndGgoKSA9PSBwcmVmaXhMZW5ndGggKyBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplKSB7Ci0g
ICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhM
ZW5ndGgsIHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNp
emUpLnRvVUludDY0U3RyaWN0KCk7Ci0gICAgICAgIGlmICghY29udmVyc2lvbkRhdGFVSW50NjQg
fHwgKmNvbnZlcnNpb25EYXRhVUludDY0ID4gTWF4RW50cm9weSkgeworICAgIGlmIChwYXRoLmxl
bmd0aCgpID09IHByZWZpeExlbmd0aCArIHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25UcmlnZ2VyRGF0YVBhdGhTZWdtZW50U2l6ZSkgeworICAgICAgICBhdXRvIGF0dHJpYnV0aW9u
VHJpZ2dlckRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIHByaXZhdGVD
bGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YVBhdGhTZWdtZW50U2l6ZSkudG9V
SW50NjRTdHJpY3QoKTsKKyAgICAgICAgaWYgKCFhdHRyaWJ1dGlvblRyaWdnZXJEYXRhVUludDY0
IHx8ICphdHRyaWJ1dGlvblRyaWdnZXJEYXRhVUludDY0ID4gTWF4RW50cm9weSkgewogICAgICAg
ICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKICAgICAgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQ29udmVyc2lvbiB3
YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZlcnNpb24gZGF0YSBjb3VsZCBub3QgYmUg
cGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGlj
fXUuIiwgTWF4RW50cm9weSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBu
b3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJz
ZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBNYXhFbnRy
b3B5LCAiLiJfcykpOwpAQCAtODEsMTIgKzg1LDEyIEBAIEV4cGVjdGVkPFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpDb252ZXJzaW9uLCBTdHJpbmc+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
CiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKICAgICAg
ICAgfQogCi0gICAgICAgIHJldHVybiBDb252ZXJzaW9uIHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KCpjb252ZXJzaW9uRGF0YVVJbnQ2NCksIFByaW9yaXR5IHsgMCB9IH07CisgICAgICAgIHJldHVy
biBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KCphdHRyaWJ1
dGlvblRyaWdnZXJEYXRhVUludDY0KSwgUHJpb3JpdHkgeyAwIH0gfTsKICAgICB9CiAgICAgCi0g
ICAgaWYgKHBhdGgubGVuZ3RoKCkgPT0gcHJlZml4TGVuZ3RoICsgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb252ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSArIDEgKyBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFByaW9yaXR5UGF0aFNlZ21lbnRTaXplKSB7Ci0gICAgICAgIGF1dG8gY29udmVyc2lv
bkRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIHByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7
Ci0gICAgICAgIGlmICghY29udmVyc2lvbkRhdGFVSW50NjQgfHwgKmNvbnZlcnNpb25EYXRhVUlu
dDY0ID4gTWF4RW50cm9weSkgeworICAgIGlmIChwYXRoLmxlbmd0aCgpID09IHByZWZpeExlbmd0
aCArIHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YVBhdGhTZWdt
ZW50U2l6ZSArIDEgKyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFByaW9yaXR5UGF0aFNlZ21lbnRT
aXplKSB7CisgICAgICAgIGF1dG8gYXR0cmlidXRpb25UcmlnZ2VyRGF0YVVJbnQ2NCA9IHBhdGgu
c3Vic3RyaW5nKHByZWZpeExlbmd0aCwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhUGF0aFNlZ21lbnRTaXplKS50b1VJbnQ2NFN0cmljdCgpOworICAgICAgICBp
ZiAoIWF0dHJpYnV0aW9uVHJpZ2dlckRhdGFVSW50NjQgfHwgKmF0dHJpYnV0aW9uVHJpZ2dlckRh
dGFVSW50NjQgPiBNYXhFbnRyb3B5KSB7CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdN
b2RlRW5hYmxlZCgpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0
aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFu
IHRoZSBhbGxvd2VkIG1heGltdW0gb2YgJXtwdWJsaWN9dS4iLCBNYXhFbnRyb3B5KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBj
b252ZXJzaW9uIGRhdGEgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhl
IGFsbG93ZWQgbWF4aW11bSBvZiAiX3MsIE1heEVudHJvcHksICIuIl9zKSk7CkBAIC05NCw4ICs5
OCw4IEBAIEV4cGVjdGVkPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uLCBTdHJp
bmc+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gY29udmVy
c2lvblByaW9yaXR5VUludDY0ID0gcGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3RoICsgcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSArIDEsIHByaXZh
dGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0
KCk7Ci0gICAgICAgIGlmICghY29udmVyc2lvblByaW9yaXR5VUludDY0IHx8ICpjb252ZXJzaW9u
UHJpb3JpdHlVSW50NjQgPiBNYXhFbnRyb3B5KSB7CisgICAgICAgIGF1dG8gYXR0cmlidXRpb25Q
cmlvcml0eVVJbnQ2NCA9IHBhdGguc3Vic3RyaW5nKHByZWZpeExlbmd0aCArIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YVBhdGhTZWdtZW50U2l6ZSArIDEsIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3Ry
aWN0KCk7CisgICAgICAgIGlmICghYXR0cmlidXRpb25Qcmlvcml0eVVJbnQ2NCB8fCAqYXR0cmli
dXRpb25Qcmlvcml0eVVJbnQ2NCA+IE1heEVudHJvcHkpIHsKICAgICAgICAgICAgIGlmIChVTkxJ
S0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRl
ZCBiZWNhdXNlIHRoZSBwcmlvcml0eSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIg
dGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4RW50cm9weSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0
aGUgcHJpb3JpdHkgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFs
bG93ZWQgbWF4aW11bSBvZiAiX3MsIE1heEVudHJvcHksICIuIl9zKSk7CkBAIC0xMDMsNyArMTA3
LDcgQEAgRXhwZWN0ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24sIFN0cmlu
Zz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnAKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChudWxsU3RyaW5nKCkpOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIENvbnZl
cnNpb24geyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oKmNvbnZlcnNpb25EYXRhVUludDY0KSwgUHJp
b3JpdHkgeyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oKmNvbnZlcnNpb25Qcmlvcml0eVVJbnQ2NCkg
fSB9OworICAgICAgICByZXR1cm4gQXR0cmlidXRpb25UcmlnZ2VyRGF0YSB7IHN0YXRpY19jYXN0
PHVpbnQzMl90PigqYXR0cmlidXRpb25UcmlnZ2VyRGF0YVVJbnQ2NCksIFByaW9yaXR5IHsgc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KCphdHRyaWJ1dGlvblByaW9yaXR5VUludDY0KSB9IH07CiAgICAg
fQogCiAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKQEAgLTExMywxMiAr
MTE3LDEyIEBAIEV4cGVjdGVkPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uLCBT
dHJpbmc+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwCiAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKG51bGxTdHJpbmcoKSk7CiB9CiAKLU9wdGlvbmFsPFNlY29uZHM+IFByaXZhdGVDbGlja01l
YXN1cmVtZW50Ojpjb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKENvbnZlcnNpb24mJiBj
b252ZXJzaW9uKQorT3B0aW9uYWw8U2Vjb25kcz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYg
YXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKIHsKLSAgICBpZiAoIWNvbnZlcnNpb24uaXNWYWxpZCgp
IHx8IChtX2NvbnZlcnNpb24gJiYgbV9jb252ZXJzaW9uLT5wcmlvcml0eSA+PSBjb252ZXJzaW9u
LnByaW9yaXR5KSkKKyAgICBpZiAoIWF0dHJpYnV0aW9uVHJpZ2dlckRhdGEuaXNWYWxpZCgpIHx8
IChtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgJiYgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5w
cmlvcml0eSA+PSBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLnByaW9yaXR5KSkKICAgICAgICAgcmV0
dXJuIHsgfTsKIAotICAgIG1fY29udmVyc2lvbiA9IFdURk1vdmUoY29udmVyc2lvbik7CisgICAg
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRh
KTsKICAgICAvLyAyNC00OCBob3VyIGRlbGF5IGJlZm9yZSBzZW5kaW5nLiBUaGlzIGhlbHBzIHBy
aXZhY3kgc2luY2UgdGhlIGNvbnZlcnNpb24gYW5kIHRoZSBhdHRyaWJ1dGlvbgogICAgIC8vIHJl
cXVlc3RzIGFyZSBkZXRhY2hlZCBhbmQgdGhlIHRpbWUgb2YgdGhlIGF0dHJpYnV0aW9uIGRvZXMg
bm90IHJldmVhbCB0aGUgdGltZSBvZiB0aGUgY29udmVyc2lvbi4KICAgICBhdXRvIHNlY29uZHMg
PSAyNF9oICsgU2Vjb25kcyhyYW5kb21OdW1iZXIoKSAqICgyNF9oKS52YWx1ZSgpKTsKQEAgLTEy
NiwyNSArMTMwLDE1IEBAIE9wdGlvbmFsPFNlY29uZHM+IFByaXZhdGVDbGlja01lYXN1cmVtZW50
Ojpjb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKENvbnZlCiAgICAgcmV0dXJuIHNlY29u
ZHM7CiB9CiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Om1hcmtBc0V4cGlyZWQoKQot
ewotICAgIG1fdGltZU9mQWRDbGljayA9IHsgfTsKLX0KLQotYm9vbCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6aGFzRXhwaXJlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFdhbGxUaW1lOjpub3co
KSA+IG1fdGltZU9mQWRDbGljayArIG1heEFnZTsKLX0KLQogYm9vbCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6aGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50JiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAoIW90aGVyLm1fY29udmVyc2lvbikKKyAgICBp
ZiAoIW90aGVyLm1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgCi0gICAgaWYgKCFtX2NvbnZlcnNpb24pCisgICAgaWYgKCFtX2F0dHJpYnV0aW9uVHJp
Z2dlckRhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBtX2NvbnZlcnNp
b24tPnByaW9yaXR5ID4gb3RoZXIubV9jb252ZXJzaW9uLT5wcmlvcml0eTsKKyAgICByZXR1cm4g
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+IG90aGVyLm1fYXR0cmlidXRpb25U
cmlnZ2VyRGF0YS0+cHJpb3JpdHk7CiB9CiAKIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
cmVwb3J0VVJMKCkgY29uc3QKQEAgLTE1NCw3ICsxNDgsNyBAQCBVUkwgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OnJlcG9ydFVSTCgpIGNvbnN0CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJodHRwczovLyIpOwotICAgIGJ1aWxkZXIuYXBw
ZW5kKG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBidWlsZGVyLmFw
cGVuZChtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXgpOwogCiAg
ICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKQEAgLTE2Nyw2MCArMTYx
LDE4IEBAIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cmVwb3J0VVJMKCkgY29uc3QKIFJl
ZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpqc29uKCkgY29uc3QKIHsK
ICAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAgIGlm
ICghbV9jb252ZXJzaW9uKQorICAgIGlmICghbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogICAg
ICAgICByZXR1cm4gcmVwb3J0RGV0YWlsczsKIAogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmlu
Zygic291cmNlLWVuZ2FnZW1lbnQtdHlwZSJfcywgImNsaWNrIl9zKTsKLSAgICByZXBvcnREZXRh
aWxzLT5zZXRTdHJpbmcoInNvdXJjZS1zaXRlIl9zLCBtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFp
bi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigic291cmNlLWlkIl9z
LCBtX2NhbXBhaWduLmlkKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoImF0dHJpYnV0
ZWQtb24tc2l0ZSJfcywgbV9kZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7
Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigidHJpZ2dlci1kYXRhIl9zLCBtX2NvbnZl
cnNpb24tPmRhdGEpOworICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygic291cmNlLXNpdGUi
X3MsIG1fc291cmNlU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgcmVwb3J0
RGV0YWlscy0+c2V0SW50ZWdlcigic291cmNlLWlkIl9zLCBtX3NvdXJjZUlELmlkKTsKKyAgICBy
ZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoImF0dHJpYnV0ZWQtb24tc2l0ZSJfcywgbV9hdHRyaWJ1
dGVPblNpdGUucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOworICAgIHJlcG9ydERldGFpbHMt
PnNldEludGVnZXIoInRyaWdnZXItZGF0YSJfcywgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5k
YXRhKTsKICAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJyZXBvcnQtdmVyc2lvbiJfcywg
MSk7CiAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiB9CiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6Om1hcmtDb252ZXJzaW9uQXNTZW50KCkKLXsKLSAgICBBU1NFUlQobV9jb252ZXJz
aW9uKTsKLSAgICBpZiAobV9jb252ZXJzaW9uKQotICAgICAgICBtX2NvbnZlcnNpb24tPndhc1Nl
bnQgPSBDb252ZXJzaW9uOjpXYXNTZW50OjpZZXM7Ci19Ci0KLWJvb2wgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6Ondhc0NvbnZlcnNpb25TZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb252
ZXJzaW9uICYmIG1fY29udmVyc2lvbi0+d2FzU2VudCA9PSBDb252ZXJzaW9uOjpXYXNTZW50OjpZ
ZXM7Ci19Ci0KLVN0cmluZyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6dG9TdHJpbmcoKSBjb25z
dAotewotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIlNvdXJjZTogIik7Ci0gICAgYnVpbGRlci5hcHBlbmQobV9zb3VyY2UucmVnaXN0cmFibGVE
b21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5EZXN0aW5hdGlv
bjogIik7Ci0gICAgYnVpbGRlci5hcHBlbmQobV9kZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFp
bi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNhbXBhaWduIElEOiAi
KTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NhbXBhaWduLmlkKTsKLSAgICBpZiAobV9j
b252ZXJzaW9uKSB7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5Db252ZXJzaW9u
IGRhdGE6ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NvbnZlcnNpb24udmFs
dWUoKS5kYXRhKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24g
cHJpb3JpdHk6ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NvbnZlcnNpb24u
dmFsdWUoKS5wcmlvcml0eSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5Db252
ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogIik7Ci0gICAgICAgIGlmICghbV9lYXJsaWVz
dFRpbWVUb1NlbmQpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIk5vdCBzZXQi
KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQgPSAq
bV9lYXJsaWVzdFRpbWVUb1NlbmQgLSBXYWxsVGltZTo6bm93KCk7Ci0gICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCgoc2Vjb25kc1VudGlsU2VuZCA+PSAyNF9oICYmIHNlY29uZHNVbnRpbFNlbmQg
PD0gNDhfaCkgPyAiV2l0aGluIDI0LTQ4IGhvdXJzIiA6ICJPdXRzaWRlIDI0LTQ4IGhvdXJzIik7
Ci0gICAgICAgIH0KLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24g
cmVxdWVzdCBzZW50OiAiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoKHdhc0NvbnZlcnNpb25T
ZW50KCkgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiXG5ObyBjb252ZXJzaW9uIGRhdGEuIik7Ci0gICAgYnVpbGRlci5hcHBl
bmQoJ1xuJyk7Ci0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwotfQotCiBib29sIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWJ1Z01vZGVFbmFibGVkKCkKIHsKICAgICByZXR1cm4g
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1By
aXZhdGVDbGlja01lYXN1cmVtZW50LmgKaW5kZXggYTYwMmY3Y2M2OWFkYWU4OTNhOTcyZmVmMzQ1
MDhhMGY1MTQzYTUyMC4uMTMyOGY3NmRmNjdhMDZkYTNjN2FmNjg0Zjc4ZGNlODc2YWMyNGI1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgK
QEAgLTM5LDE1ICszOSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByaXZhdGVD
bGlja01lYXN1cmVtZW50IHsKIHB1YmxpYzoKLSAgICB1c2luZyBDYW1wYWlnbklkID0gdWludDMy
X3Q7Ci0gICAgdXNpbmcgQ29udmVyc2lvbkRhdGEgPSB1aW50MzJfdDsKICAgICB1c2luZyBQcmlv
cml0eVZhbHVlID0gdWludDMyX3Q7CiAKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IE1h
eEVudHJvcHkgPSA2MzsKIAotICAgIHN0cnVjdCBDYW1wYWlnbiB7Ci0gICAgICAgIENhbXBhaWdu
KCkgPSBkZWZhdWx0OwotICAgICAgICBleHBsaWNpdCBDYW1wYWlnbihDYW1wYWlnbklkIGlkKQor
ICAgIHN0cnVjdCBTb3VyY2VJRCB7CisgICAgICAgIFNvdXJjZUlEKCkgPSBkZWZhdWx0OworICAg
ICAgICBleHBsaWNpdCBTb3VyY2VJRCh1aW50MzJfdCBpZCkKICAgICAgICAgICAgIDogaWQgeyBp
ZCB9CiAgICAgICAgIHsKICAgICAgICAgfQpAQCAtNTcsMjcgKzU1LDI3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIHJldHVybiBpZCA8PSBNYXhFbnRyb3B5OwogICAgICAgICB9CiAgICAgICAgIAot
ICAgICAgICBDYW1wYWlnbklkIGlkIHsgMCB9OworICAgICAgICB1aW50MzJfdCBpZCB7IDAgfTsK
ICAgICB9OwogCi0gICAgc3RydWN0IFNvdXJjZSB7Ci0gICAgICAgIFNvdXJjZSgpID0gZGVmYXVs
dDsKLSAgICAgICAgZXhwbGljaXQgU291cmNlKGNvbnN0IFVSTCYgdXJsKQorICAgIHN0cnVjdCBT
b3VyY2VTaXRlIHsKKyAgICAgICAgU291cmNlU2l0ZSgpID0gZGVmYXVsdDsKKyAgICAgICAgZXhw
bGljaXQgU291cmNlU2l0ZShjb25zdCBVUkwmIHVybCkKICAgICAgICAgICAgIDogcmVnaXN0cmFi
bGVEb21haW4geyB1cmwgfQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBleHBsaWNp
dCBTb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKKyAgICAgICAgZXhwbGlj
aXQgU291cmNlU2l0ZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogICAgICAgICAg
ICAgOiByZWdpc3RyYWJsZURvbWFpbiB7IGRvbWFpbiB9CiAgICAgICAgIHsKICAgICAgICAgfQog
Ci0gICAgICAgIGV4cGxpY2l0IFNvdXJjZShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUp
CisgICAgICAgIGV4cGxpY2l0IFNvdXJjZVNpdGUoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVU
eXBlKQogICAgICAgICAgICAgOiByZWdpc3RyYWJsZURvbWFpbihXVEY6Okhhc2hUYWJsZURlbGV0
ZWRWYWx1ZSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IFNvdXJjZSYgb3RoZXIpIGNvbnN0CisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBTb3VyY2VTaXRlJiBvdGhlcikgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJu
IHJlZ2lzdHJhYmxlRG9tYWluID09IG90aGVyLnJlZ2lzdHJhYmxlRG9tYWluOwogICAgICAgICB9
CkBAIC05MiwxNSArOTAsMTUgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJh
YmxlRG9tYWluLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CiAgICAgICAgIH0KIAotICAgICAg
ICBzdGF0aWMgU291cmNlIGRlbGV0ZWRWYWx1ZSgpCisgICAgICAgIHN0YXRpYyBTb3VyY2VTaXRl
IGRlbGV0ZWRWYWx1ZSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTb3VyY2UgeyBX
VEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OworICAgICAgICAgICAgcmV0dXJuIFNvdXJjZVNp
dGUgeyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwogICAgICAgICB9CiAKLSAgICAgICAg
c3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFNvdXJjZSYgc291cmNlKQorICAgICAg
ICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoU291cmNlU2l0ZSYgc291cmNlU2l0
ZSkKICAgICAgICAgewotICAgICAgICAgICAgbmV3ICgmc291cmNlKSBTb3VyY2U7Ci0gICAgICAg
ICAgICBzb3VyY2UgPSBTb3VyY2U6OmRlbGV0ZWRWYWx1ZSgpOworICAgICAgICAgICAgbmV3ICgm
c291cmNlU2l0ZSkgU291cmNlU2l0ZTsKKyAgICAgICAgICAgIHNvdXJjZVNpdGUgPSBTb3VyY2VT
aXRlOjpkZWxldGVkVmFsdWUoKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZGVsZXRlVmFs
dWUoKQpAQCAtMTE2LDEzICsxMTQsMTMgQEAgcHVibGljOgogICAgICAgICBSZWdpc3RyYWJsZURv
bWFpbiByZWdpc3RyYWJsZURvbWFpbjsKICAgICB9OwogCi0gICAgc3RydWN0IFNvdXJjZUhhc2gg
ewotICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBTb3VyY2UmIHNvdXJjZSkKKyAg
ICBzdHJ1Y3QgU291cmNlU2l0ZUhhc2ggeworICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChj
b25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLmhhc2goKTsKKyAgICAgICAgICAgIHJldHVybiBz
b3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLmhhc2goKTsKICAgICAgICAgfQogICAgICAgICAK
LSAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU291cmNlJiBhLCBjb25zdCBTb3VyY2Um
IGIpCisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFNvdXJjZVNpdGUmIGEsIGNvbnN0
IFNvdXJjZVNpdGUmIGIpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBhID09IGI7CiAg
ICAgICAgIH0KQEAgLTEzMCwyNCArMTI4LDI0IEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNv
bnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9Owog
Ci0gICAgc3RydWN0IERlc3RpbmF0aW9uIHsKLSAgICAgICAgRGVzdGluYXRpb24oKSA9IGRlZmF1
bHQ7Ci0gICAgICAgIGV4cGxpY2l0IERlc3RpbmF0aW9uKGNvbnN0IFVSTCYgdXJsKQorICAgIHN0
cnVjdCBBdHRyaWJ1dGVPblNpdGUgeworICAgICAgICBBdHRyaWJ1dGVPblNpdGUoKSA9IGRlZmF1
bHQ7CisgICAgICAgIGV4cGxpY2l0IEF0dHJpYnV0ZU9uU2l0ZShjb25zdCBVUkwmIHVybCkKICAg
ICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4geyBSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9
IH0KICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgZXhwbGljaXQgRGVzdGluYXRpb24o
V1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQorICAgICAgICBleHBsaWNpdCBBdHRyaWJ1
dGVPblNpdGUoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICAgICAgOiBy
ZWdpc3RyYWJsZURvbWFpbiB7IFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlIH0KICAgICAgICAg
ewogICAgICAgICB9CiAKLSAgICAgICAgZXhwbGljaXQgRGVzdGluYXRpb24oUmVnaXN0cmFibGVE
b21haW4mJiBkb21haW4pCisgICAgICAgIGV4cGxpY2l0IEF0dHJpYnV0ZU9uU2l0ZShSZWdpc3Ry
YWJsZURvbWFpbiYmIGRvbWFpbikKICAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4geyBX
VEZNb3ZlKGRvbWFpbikgfQogICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBEZXN0aW5hdGlvbiYgb3RoZXIpIGNvbnN0CisgICAgICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdHRyaWJ1dGVPblNpdGUmIG90aGVyKSBjb25zdAogICAg
ICAgICB7CiAgICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4gPT0gb3RoZXIucmVn
aXN0cmFibGVEb21haW47CiAgICAgICAgIH0KQEAgLTE2MiwxNSArMTYwLDE1IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbi5pc0hhc2hUYWJsZURlbGV0ZWRW
YWx1ZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIERlc3RpbmF0aW9uIGRlbGV0ZWRW
YWx1ZSgpCisgICAgICAgIHN0YXRpYyBBdHRyaWJ1dGVPblNpdGUgZGVsZXRlZFZhbHVlKCkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uIHsgV1RGOjpIYXNoVGFibGVE
ZWxldGVkVmFsdWUgfTsKKyAgICAgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPblNpdGUgeyBXVEY6
Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIHZv
aWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikKKyAgICAg
ICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKEF0dHJpYnV0ZU9uU2l0ZSYgYXR0
cmlidXRlT25TaXRlKQogICAgICAgICB7Ci0gICAgICAgICAgICBuZXcgKCZkZXN0aW5hdGlvbikg
RGVzdGluYXRpb247Ci0gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IERlc3RpbmF0aW9uOjpkZWxl
dGVkVmFsdWUoKTsKKyAgICAgICAgICAgIG5ldyAoJmF0dHJpYnV0ZU9uU2l0ZSkgQXR0cmlidXRl
T25TaXRlOworICAgICAgICAgICAgYXR0cmlidXRlT25TaXRlID0gQXR0cmlidXRlT25TaXRlOjpk
ZWxldGVkVmFsdWUoKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZGVsZXRlVmFsdWUoKQpA
QCAtMTg2LDEzICsxODQsMTMgQEAgcHVibGljOgogICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiBy
ZWdpc3RyYWJsZURvbWFpbjsKICAgICB9OwogCi0gICAgc3RydWN0IERlc3RpbmF0aW9uSGFzaCB7
Ci0gICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5h
dGlvbikKKyAgICBzdHJ1Y3QgQXR0cmlidXRlT25TaXRlSGFzaCB7CisgICAgICAgIHN0YXRpYyB1
bnNpZ25lZCBoYXNoKGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25TaXRlKQogICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4u
aGFzaCgpOworICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZU9uU2l0ZS5yZWdpc3RyYWJsZURv
bWFpbi5oYXNoKCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBib29sIGVx
dWFsKGNvbnN0IERlc3RpbmF0aW9uJiBhLCBjb25zdCBEZXN0aW5hdGlvbiYgYikKKyAgICAgICAg
c3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQXR0cmlidXRlT25TaXRlJiBhLCBjb25zdCBBdHRyaWJ1
dGVPblNpdGUmIGIpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBhID09IGI7CiAgICAg
ICAgIH0KQEAgLTIwOSwxMCArMjA3LDEwIEBAIHB1YmxpYzoKICAgICAgICAgUHJpb3JpdHlWYWx1
ZSB2YWx1ZTsKICAgICB9OwogICAgIAotICAgIHN0cnVjdCBDb252ZXJzaW9uIHsKKyAgICBzdHJ1
Y3QgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSB7CiAgICAgICAgIGVudW0gY2xhc3MgV2FzU2VudCA6
IGJvb2wgeyBObywgWWVzIH07CiAgICAgICAgIAotICAgICAgICBDb252ZXJzaW9uKENvbnZlcnNp
b25EYXRhIGRhdGEsIFByaW9yaXR5IHByaW9yaXR5LCBXYXNTZW50IHdhc1NlbnQgPSBXYXNTZW50
OjpObykKKyAgICAgICAgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSh1aW50MzJfdCBkYXRhLCBQcmlv
cml0eSBwcmlvcml0eSwgV2FzU2VudCB3YXNTZW50ID0gV2FzU2VudDo6Tm8pCiAgICAgICAgICAg
ICA6IGRhdGEgeyBkYXRhIH0KICAgICAgICAgICAgICwgcHJpb3JpdHkgeyBwcmlvcml0eS52YWx1
ZSB9CiAgICAgICAgICAgICAsIHdhc1NlbnQgeyB3YXNTZW50IH0KQEAgLTIyNCwzOSArMjIyLDM3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBkYXRhIDw9IE1heEVudHJvcHkgJiYgcHJp
b3JpdHkgPD0gTWF4RW50cm9weTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgQ29udmVy
c2lvbkRhdGEgZGF0YTsKKyAgICAgICAgdWludDMyX3QgZGF0YTsKICAgICAgICAgUHJpb3JpdHlW
YWx1ZSBwcmlvcml0eTsKICAgICAgICAgV2FzU2VudCB3YXNTZW50ID0gV2FzU2VudDo6Tm87CiAK
ICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OwotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8Q29u
dmVyc2lvbj4gZGVjb2RlKERlY29kZXImKTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIE9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IGRlY29kZShEZWNvZGVy
Jik7CiAgICAgfTsKIAogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkgPSBkZWZhdWx0Owot
ICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50KENhbXBhaWduIGNhbXBhaWduLCBjb25zdCBTb3Vy
Y2UmIHNvdXJjZSwgY29uc3QgRGVzdGluYXRpb24mIGRlc3RpbmF0aW9uKQotICAgICAgICA6IG1f
Y2FtcGFpZ24geyBjYW1wYWlnbiB9Ci0gICAgICAgICwgbV9zb3VyY2UgeyBzb3VyY2UgfQotICAg
ICAgICAsIG1fZGVzdGluYXRpb24geyBkZXN0aW5hdGlvbiB9Ci0gICAgICAgICwgbV90aW1lT2ZB
ZENsaWNrIHsgV2FsbFRpbWU6Om5vdygpIH0KKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChT
b3VyY2VJRCBzb3VyY2VJRCwgY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgQXR0
cmlidXRlT25TaXRlJiBhdHRyaWJ1dGVPblNpdGUsIFdhbGxUaW1lIHRpbWVPZkFkQ2xpY2sgPSBX
YWxsVGltZTo6bm93KCkpCisgICAgICAgIDogbV9zb3VyY2VJRCB7IHNvdXJjZUlEIH0KKyAgICAg
ICAgLCBtX3NvdXJjZVNpdGUgeyBzb3VyY2VTaXRlIH0KKyAgICAgICAgLCBtX2F0dHJpYnV0ZU9u
U2l0ZSB7IGF0dHJpYnV0ZU9uU2l0ZSB9CisgICAgICAgICwgbV90aW1lT2ZBZENsaWNrIHsgdGlt
ZU9mQWRDbGljayB9CiAgICAgewogICAgIH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBF
eHBlY3RlZDxDb252ZXJzaW9uLCBTdHJpbmc+IHBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29uc3Qg
VVJMJiByZWRpcmVjdFVSTCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8U2Vjb25kcz4g
Y29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChDb252ZXJzaW9uJiYpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1heEFnZSgpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBFeHBlY3RlZDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBTdHJpbmc+IHBhcnNl
QXR0cmlidXRpb25SZXF1ZXN0KGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpOworICAgIFdFQkNPUkVf
RVhQT1JUIE9wdGlvbmFsPFNlY29uZHM+IGF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2Vu
ZChBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFz
SGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50JikgY29uc3Q7
CiAgICAgV0VCQ09SRV9FWFBPUlQgVVJMIHJlcG9ydFVSTCgpIGNvbnN0OwogICAgIFdFQkNPUkVf
RVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IGpzb24oKSBjb25zdDsKLSAgICBjb25zdCBTb3VyY2Um
IHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9OwotICAgIGNvbnN0IERlc3RpbmF0
aW9uJiBkZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH07CisgICAg
Y29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlU2l0
ZTsgfTsKKyAgICBjb25zdCBBdHRyaWJ1dGVPblNpdGUmIGF0dHJpYnV0ZU9uU2l0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXR0cmlidXRlT25TaXRlOyB9OworICAgIFdhbGxUaW1lIHRpbWVPZkFkQ2xp
Y2soKSBjb25zdCB7IHJldHVybiBtX3RpbWVPZkFkQ2xpY2s7IH0KICAgICBPcHRpb25hbDxXYWxs
VGltZT4gZWFybGllc3RUaW1lVG9TZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lYXJsaWVzdFRpbWVU
b1NlbmQ7IH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYXJrQXNFeHBpcmVkKCk7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNFeHBpcmVkKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBtYXJrQ29udmVyc2lvbkFzU2VudCgpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
d2FzQ29udmVyc2lvblNlbnQoKSBjb25zdDsKLQotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKTsgfTsKLQotICAgIFdF
QkNPUkVfRVhQT1JUIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworICAgIHZvaWQgc2V0RWFybGll
c3RUaW1lVG9TZW5kKFdhbGxUaW1lIHRpbWUpIHsgbV9lYXJsaWVzdFRpbWVUb1NlbmQgPSB0aW1l
OyB9CisgICAgU291cmNlSUQgc291cmNlSUQoKSB7IHJldHVybiBtX3NvdXJjZUlEOyB9CisgICAg
T3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gYXR0cmlidXRpb25UcmlnZ2VyRGF0YSgp
IHsgcmV0dXJuIG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsgfQorICAgIHZvaWQgc2V0QXR0cmli
dXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpIHsg
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRh
KTsgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudD4gZGVjb2RlKERlY29kZXImKTsKQEAgLTI2NSwyNyArMjYxLDI3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wg
ZGVidWdNb2RlRW5hYmxlZCgpOwogCi0gICAgQ2FtcGFpZ24gbV9jYW1wYWlnbjsKLSAgICBTb3Vy
Y2UgbV9zb3VyY2U7Ci0gICAgRGVzdGluYXRpb24gbV9kZXN0aW5hdGlvbjsKKyAgICBTb3VyY2VJ
RCBtX3NvdXJjZUlEOworICAgIFNvdXJjZVNpdGUgbV9zb3VyY2VTaXRlOworICAgIEF0dHJpYnV0
ZU9uU2l0ZSBtX2F0dHJpYnV0ZU9uU2l0ZTsKICAgICBXYWxsVGltZSBtX3RpbWVPZkFkQ2xpY2s7
CiAKLSAgICBPcHRpb25hbDxDb252ZXJzaW9uPiBtX2NvbnZlcnNpb247CisgICAgT3B0aW9uYWw8
QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogICAgIE9w
dGlvbmFsPFdhbGxUaW1lPiBtX2VhcmxpZXN0VGltZVRvU2VuZDsKIH07CiAKIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+CiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IG1fY2FtcGFpZ24uaWQgPDwgbV9z
b3VyY2UucmVnaXN0cmFibGVEb21haW4gPDwgbV9kZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFp
biA8PCBtX3RpbWVPZkFkQ2xpY2sgPDwgbV9jb252ZXJzaW9uIDw8IG1fZWFybGllc3RUaW1lVG9T
ZW5kOworICAgIGVuY29kZXIgPDwgbV9zb3VyY2VJRC5pZCA8PCBtX3NvdXJjZVNpdGUucmVnaXN0
cmFibGVEb21haW4gPDwgbV9hdHRyaWJ1dGVPblNpdGUucmVnaXN0cmFibGVEb21haW4gPDwgbV90
aW1lT2ZBZENsaWNrIDw8IG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA8PCBtX2VhcmxpZXN0VGlt
ZVRvU2VuZDsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIE9wdGlvbmFsPFByaXZhdGVD
bGlja01lYXN1cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiB7Ci0gICAgT3B0aW9uYWw8Q2FtcGFpZ25JZD4gY2FtcGFpZ25JZDsKLSAgICBk
ZWNvZGVyID4+IGNhbXBhaWduSWQ7Ci0gICAgaWYgKCFjYW1wYWlnbklkKQorICAgIE9wdGlvbmFs
PHVpbnQzMl90PiBzb3VyY2VJRDsKKyAgICBkZWNvZGVyID4+IHNvdXJjZUlEOworICAgIGlmICgh
c291cmNlSUQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCiAgICAgT3B0aW9u
YWw8UmVnaXN0cmFibGVEb21haW4+IHNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluOwpAQCAtMjkzLDkg
KzI4OSw5IEBAIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6ZGVjb2RlKERlY29kZXImIGRlY29kCiAgICAgaWYgKCFzb3VyY2VSZWdpc3Ry
YWJsZURvbWFpbikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAKLSAgICBPcHRp
b25hbDxSZWdpc3RyYWJsZURvbWFpbj4gZGVzdGluYXRpb25SZWdpc3RyYWJsZURvbWFpbjsKLSAg
ICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW47Ci0gICAgaWYgKCFkZXN0
aW5hdGlvblJlZ2lzdHJhYmxlRG9tYWluKQorICAgIE9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9tYWlu
PiBhdHRyaWJ1dGVPblJlZ2lzdHJhYmxlRG9tYWluOworICAgIGRlY29kZXIgPj4gYXR0cmlidXRl
T25SZWdpc3RyYWJsZURvbWFpbjsKKyAgICBpZiAoIWF0dHJpYnV0ZU9uUmVnaXN0cmFibGVEb21h
aW4pCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCiAgICAgT3B0aW9uYWw8V2Fs
bFRpbWU+IHRpbWVPZkFkQ2xpY2s7CkBAIC0zMDMsOSArMjk5LDkgQEAgT3B0aW9uYWw8UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2QKICAgICBpZiAoIXRpbWVPZkFkQ2xpY2spCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAgICAgCi0gICAgT3B0aW9uYWw8T3B0aW9uYWw8Q29udmVyc2lvbj4+IGNvbnZlcnNp
b247Ci0gICAgZGVjb2RlciA+PiBjb252ZXJzaW9uOwotICAgIGlmICghY29udmVyc2lvbikKKyAg
ICBPcHRpb25hbDxPcHRpb25hbDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPj4gYXR0cmlidXRpb25U
cmlnZ2VyRGF0YTsKKyAgICBkZWNvZGVyID4+IGF0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CisgICAg
aWYgKCFhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwogICAgIAogICAgIE9wdGlvbmFsPE9wdGlvbmFsPFdhbGxUaW1lPj4gZWFybGllc3RUaW1lVG9T
ZW5kOwpAQCAtMzEzLDIzICszMDksMjMgQEAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUoRGVjb2RlciYgZGVjb2QKICAgICBp
ZiAoIWVhcmxpZXN0VGltZVRvU2VuZCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAg
ICAKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IENhbXBhaWduIHsg
V1RGTW92ZSgqY2FtcGFpZ25JZCkgfSwgU291cmNlIHsgV1RGTW92ZSgqc291cmNlUmVnaXN0cmFi
bGVEb21haW4pIH0sIERlc3RpbmF0aW9uIHsgV1RGTW92ZSgqZGVzdGluYXRpb25SZWdpc3RyYWJs
ZURvbWFpbikgfSB9OwotICAgIGF0dHJpYnV0aW9uLm1fY29udmVyc2lvbiA9IFdURk1vdmUoKmNv
bnZlcnNpb24pOworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgU291
cmNlSUQgeyBXVEZNb3ZlKCpzb3VyY2VJRCkgfSwgU291cmNlU2l0ZSB7IFdURk1vdmUoKnNvdXJj
ZVJlZ2lzdHJhYmxlRG9tYWluKSB9LCBBdHRyaWJ1dGVPblNpdGUgeyBXVEZNb3ZlKCphdHRyaWJ1
dGVPblJlZ2lzdHJhYmxlRG9tYWluKSB9IH07CisgICAgYXR0cmlidXRpb24ubV9hdHRyaWJ1dGlv
blRyaWdnZXJEYXRhID0gV1RGTW92ZSgqYXR0cmlidXRpb25UcmlnZ2VyRGF0YSk7CiAgICAgYXR0
cmlidXRpb24ubV9lYXJsaWVzdFRpbWVUb1NlbmQgPSBXVEZNb3ZlKCplYXJsaWVzdFRpbWVUb1Nl
bmQpOwogICAgIAogICAgIHJldHVybiBhdHRyaWJ1dGlvbjsKIH0KIAogdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb246OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
CiAgICAgZW5jb2RlciA8PCBkYXRhIDw8IHByaW9yaXR5IDw8IHdhc1NlbnQ7CiB9CiAKIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+Ci1PcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29u
dmVyc2lvbj4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb246OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQorT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uVHJpZ2dlckRhdGE+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBPcHRpb25hbDxDb252ZXJz
aW9uRGF0YT4gZGF0YTsKKyAgICBPcHRpb25hbDx1aW50MzJfdD4gZGF0YTsKICAgICBkZWNvZGVy
ID4+IGRhdGE7CiAgICAgaWYgKCFkYXRhKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpA
QCAtMzQ0LDcgKzM0MCw3IEBAIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252
ZXJzaW9uPiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvCiAgICAgaWYgKCF3YXNT
ZW50KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAotICAgIHJldHVybiBDb252
ZXJzaW9uIHsgV1RGTW92ZSgqZGF0YSksIFByaW9yaXR5IHsgKnByaW9yaXR5IH0sICp3YXNTZW50
IH07CisgICAgcmV0dXJuIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgeyBXVEZNb3ZlKCpkYXRhKSwg
UHJpb3JpdHkgeyAqcHJpb3JpdHkgfSwgKndhc1NlbnQgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpAQCAtMzUyLDE3ICszNDgsMTcgQEAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkNvbnZlcnNpb24+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW8KIG5h
bWVzcGFjZSBXVEYgewogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOwog
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlPiA6IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2VIYXNoIHsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlPiB7Ci0gICAgc3RhdGljIFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsg
fQotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlJiBzbG90KSB7IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpTb3VyY2U6OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZShzbG90KTsgfQotICAgIHN0
YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2UmIHNsb3QpIHsgcmV0dXJuIHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQor
dGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZVNpdGU+IDogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGVIYXNoIHsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGU+IDogR2VuZXJpY0hhc2hUcmFpdHM8
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGU+IHsKKyAgICBzdGF0
aWMgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgZW1wdHlWYWx1
ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1
ZShXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc2xvdCkgeyBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZTo6Y29uc3RydWN0RGVs
ZXRlZFZhbHVlKHNsb3QpOyB9CisgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3Qg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmIHNsb3QpIHsgcmV0
dXJuIHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRGVm
YXVsdEhhc2g8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPiA6
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbkhhc2ggeyB9Owot
dGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6RGVzdGluYXRpb24+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPiB7Ci0gICAgc3RhdGljIFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9
OyB9Ci0gICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiYgc2xvdCkgeyBXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb246OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZShzbG90
KTsgfQotICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiYgc2xvdCkgeyByZXR1cm4gc2xvdC5pc0Rl
bGV0ZWRWYWx1ZSgpOyB9Cit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlPiA6IFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGVIYXNoIHsgfTsKK3RlbXBsYXRlPD4g
c3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJp
YnV0ZU9uU2l0ZT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6QXR0cmlidXRlT25TaXRlPiB7CisgICAgc3RhdGljIFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsg
fTsgfQorICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlJiBzbG90KSB7IFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGU6OmNvbnN0cnVjdERlbGV0ZWRW
YWx1ZShzbG90KTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUmIHNsb3QpIHsgcmV0
dXJuIHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQogfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IGI3MzBkZGU4OGI0
MDQ2Y2Y1OTAzZWMzZDY5ODEzZjYyZDc2MTdmZTcuLjg4MmJiYzYwMmFiMTUyZjY1M2Y1ZTY5Njc3
M2U4MDAyMmU3ZWRhMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlLmNwcApAQCAtODAsNiArODAsMTEgQEAgY29uc3RleHByIGF1dG8g
dG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudFF1
ZXJ5ID0gIkkKIGNvbnN0ZXhwciBhdXRvIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5
ID0gIklOU0VSVCBPUiBJR05PUkUgSU5UTyBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gKHRh
cmdldERvbWFpbklELCBmcm9tRG9tYWluSUQpIFNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9ic2Vy
dmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiBpbiAoICJfczsKIGNvbnN0ZXhwciBh
dXRvIHRvcEZyYW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHNRdWVyeSA9ICJJTlNFUlQgT1IgSUdO
T1JFIGludG8gVG9wRnJhbWVMb2FkZWRUaGlyZFBhcnR5U2NyaXB0cyAodG9wRnJhbWVEb21haW5J
RCwgc3VicmVzb3VyY2VEb21haW5JRCkgU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWRE
b21haW5zIHdoZXJlIHJlZ2lzdHJhYmxlRG9tYWluIGluICggIl9zOwogY29uc3RleHByIGF1dG8g
c3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tUXVlcnkgPSAiSU5TRVJUIE9SIElHTk9SRSBJ
TlRPIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSAoc3VicmVzb3VyY2VEb21haW5JRCwg
ZnJvbURvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hF
UkUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25zdGV4cHIgYXV0byBpbnNlcnRVbmF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5ID0gIklOU0VSVCBPUiBSRVBMQUNF
IElOVE8gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKHNvdXJjZVNpdGVEb21h
aW5JRCwgYXR0cmlidXRlT25TaXRlRG9tYWluSUQsICIKKyAgICAic291cmNlSUQsIHRpbWVPZkFk
Q2xpY2spIFZBTFVFUyAoPywgPywgPywgPykiX3M7Citjb25zdGV4cHIgYXV0byBpbnNlcnRBdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSA9ICJJTlNFUlQgT1IgUkVQTEFDRSBJ
TlRPIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAoc291cmNlU2l0ZURvbWFpbklE
LCBhdHRyaWJ1dGVPblNpdGVEb21haW5JRCwgIgorICAgICJzb3VyY2VJRCwgYXR0cmlidXRpb25U
cmlnZ2VyRGF0YSwgcHJpb3JpdHksIHRpbWVPZkFkQ2xpY2ssIGVhcmxpZXN0VGltZVRvU2VuZCkg
VkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/KSJfczsKK2NvbnN0ZXhwciBhdXRvIHVwZGF0ZVRp
bWVyTGFzdEZpcmVkUXVlcnkgPSAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyBUaW1lckxhc3RGaXJl
ZCAoa2V5LCB0aW1lTGFzdEZpcmVkU2Vjb25kcykgVkFMVUVTICgxLCA/KSJfczsKIAogLy8gSU5T
RVJUIE9SIFJFUExBQ0UgUXVlcmllcwogY29uc3RleHByIGF1dG8gc3ViZnJhbWVVbmRlclRvcEZy
YW1lRG9tYWluc1F1ZXJ5ID0gIklOU0VSVCBPUiBSRVBMQUNFIGludG8gU3ViZnJhbWVVbmRlclRv
cEZyYW1lRG9tYWlucyAoc3ViRnJhbWVEb21haW5JRCwgbGFzdFVwZGF0ZWQsIHRvcEZyYW1lRG9t
YWluSUQpIFNFTEVDVCA/LCA/LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyB3aGVyZSBy
ZWdpc3RyYWJsZURvbWFpbiBpbiAoICJfczsKQEAgLTExMCw2ICsxMTUsMTEgQEAgY29uc3RleHBy
IGF1dG8gdXBkYXRlVmVyeVByZXZhbGVudFJlc291cmNlUXVlcnkgPSAiVVBEQVRFIE9ic2VydmVk
RG9tYWlucyBTRVQgaXMKIGNvbnN0ZXhwciBhdXRvIGNsZWFyUHJldmFsZW50UmVzb3VyY2VRdWVy
eSA9ICJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBpc1ByZXZhbGVudCA9IDAsIGlzVmVyeVBy
ZXZhbGVudCA9IDAgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwogY29uc3RleHByIGF1
dG8gdXBkYXRlR3JhbmRmYXRoZXJlZFF1ZXJ5ID0gIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VU
IGdyYW5kZmF0aGVyZWQgPSA/IFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsKIGNvbnN0
ZXhwciBhdXRvIHVwZGF0ZUlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWxRdWVy
eSA9ICJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tp
ZURhdGFSZW1vdmFsID0gPyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7Citjb25zdGV4
cHIgYXV0byBzZXRVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZFF1
ZXJ5ID0gIlVQREFURSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBTRVQgdGlt
ZU9mQWRDbGljayA9IC0xLjAiX3M7Citjb25zdGV4cHIgYXV0byB1cGRhdGVBdHRyaWJ1dGlvbnNF
YXJsaWVzdFRpbWVUb1NlbmRRdWVyeSA9ICJVUERBVEUgQXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50IGFzIGMgU0VUICIKKyAgICAiZWFybGllc3RUaW1lVG9TZW5kID0gKFNFTEVDVCBN
QVgoMC4wLCBuZXdUaW1lKSBGUk9NIChTRUxFQ1QgKGVhcmxpZXN0VGltZVRvU2VuZCAtID8pIGFz
IG5ld1RpbWUgRlJPTSAiCisgICAgIkF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBh
cyBkIFdIRVJFIGMuc291cmNlU2l0ZURvbWFpbklEID0gZC5zb3VyY2VTaXRlRG9tYWluSUQgQU5E
IGMuYXR0cmlidXRlT25TaXRlRG9tYWluSUQgPSAiCisgICAgImQuYXR0cmlidXRlT25TaXRlRG9t
YWluSUQpKSJfczsKIAogLy8gU0VMRUNUIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIGRvbWFpbklE
RnJvbVN0cmluZ1F1ZXJ5ID0gIlNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBX
SEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7CkBAIC0xMjgsNiArMTM4LDExIEBAIGNvbnN0
ZXhwciBhdXRvIGdldEFsbERvbWFpbnNRdWVyeSA9ICJTRUxFQ1QgcmVnaXN0cmFibGVEb21haW4g
RlJPTSBPYnNlcnZlZERvbWFpCiBjb25zdGV4cHIgYXV0byBnZXRBbGxTdWJTdGF0aXN0aWNzVW5k
ZXJEb21haW5RdWVyeSA9ICJTRUxFQ1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1YmZyYW1lVW5k
ZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3ViRnJhbWVEb21haW5JRCA9ID8iCiAgICAgIlVOSU9O
IEFMTCBTRUxFQ1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZURvbWFpbnMgV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8iCiAgICAgIlVOSU9OIEFMTCBT
RUxFQ1QgdG9Eb21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8gV0hFUkUg
c3VicmVzb3VyY2VEb21haW5JRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBhbGxVbmF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uc1F1ZXJ5ID0gIlNFTEVDVCAqIEZS
T00gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiX3M7Citjb25zdGV4cHIgYXV0
byBhbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSA9ICJTRUxFQ1QgKiBG
Uk9NIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfczsKK2NvbnN0ZXhwciBhdXRv
IGZpbmRVbmF0dHJpYnV0ZWRRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGF0dHJp
YnV0ZU9uU2l0ZURvbWFpbklEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIGZpbmRBdHRyaWJ1dGVk
UXVlcnkgPSAiU0VMRUNUICogRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
V0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgYXR0cmlidXRlT25TaXRlRG9tYWluSUQg
PSA/Il9zOworY29uc3RleHByIGF1dG8gdGltZXJMYXN0RmlyZWRRdWVyeSA9ICJTRUxFQ1QgdGlt
ZUxhc3RGaXJlZFNlY29uZHMgRlJPTSBUaW1lckxhc3RGaXJlZCBXSEVSRSBrZXkgPSAxIl9zOwog
CiAvLyBFWElTVFMgZm9yIHRlc3RpbmcgcXVlcmllcwogY29uc3RleHByIGF1dG8gbGlua0RlY29y
YXRpb25FeGlzdHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgKiBGUk9NIFRvcEZyYW1l
TGlua0RlY29yYXRpb25zRnJvbSBXSEVSRSB0b0RvbWFpbklEID0gPyBPUiBmcm9tRG9tYWluSUQg
PSA/KSJfczsKQEAgLTEzOSw2ICsxNTQsMTAgQEAgY29uc3RleHByIGF1dG8gb2JzZXJ2ZWREb21h
aW5zRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNUICogRlJPTSBPYnNlcnYKIAog
Ly8gREVMRVRFIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIHJlbW92ZUFsbERhdGFRdWVyeSA9ICJE
RUxFVEUgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgZG9tYWluSUQgPSA/Il9zOworY29uc3Rl
eHByIGF1dG8gY2xlYXJVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5ID0g
IkRFTEVURSBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNv
dXJjZVNpdGVEb21haW5JRCBMSUtFID8gT1IgYXR0cmlidXRlT25TaXRlRG9tYWluSUQgTElLRSA/
Il9zOworY29uc3RleHByIGF1dG8gY2xlYXJBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRRdWVyeSA9ICJERUxFVEUgRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
V0hFUkUgc291cmNlU2l0ZURvbWFpbklEIExJS0UgPyBPUiBhdHRyaWJ1dGVPblNpdGVEb21haW5J
RCBMSUtFID8iX3M7Citjb25zdGV4cHIgYXV0byBjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFF1ZXJ5ID0gIkRFTEVURSBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50IFdIRVJFID8gPiB0aW1lT2ZBZENsaWNrIl9zOworY29uc3RleHByIGF1dG8gcmVtb3Zl
VW5hdHRyaWJ1dGVkUXVlcnkgPSAiREVMRVRFIEZST00gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgYXR0cmlidXRlT25T
aXRlRG9tYWluSUQgPSA/Il9zOwogCiBjb25zdGV4cHIgYXV0byBjcmVhdGVPYnNlcnZlZERvbWFp
biA9ICJDUkVBVEUgVEFCTEUgT2JzZXJ2ZWREb21haW5zICgiCiAgICAgImRvbWFpbklEIElOVEVH
RVIgUFJJTUFSWSBLRVksIHJlZ2lzdHJhYmxlRG9tYWluIFRFWFQgTk9UIE5VTEwgVU5JUVVFIE9O
IENPTkZMSUNUIEZBSUwsIGxhc3RTZWVuIFJFQUwgTk9UIE5VTEwsICIKQEAgLTIxOSw4ICsyMzgs
MjEgQEAgY29uc3RleHByIGF1dG8gY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9t
ID0gIkNSRUFURSBUQUJMRSBTdWJyZXNvdXJjZVUKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZU9wZXJh
dGluZ0RhdGVzID0gIkNSRUFURSBUQUJMRSBPcGVyYXRpbmdEYXRlcyAoIgogICAgICJ5ZWFyIElO
VEVHRVIgTk9UIE5VTEwsIG1vbnRoIElOVEVHRVIgTk9UIE5VTEwsIG1vbnRoRGF5IElOVEVHRVIg
Tk9UIE5VTEwpOyJfczsKIAorY29uc3RleHByIGF1dG8gY3JlYXRlVW5hdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgPSAiQ1JFQVRFIFRBQkxFIFVuYXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50ICgiCisgICAgInNvdXJjZVNpdGVEb21haW5JRCBJTlRFR0VSIE5PVCBOVUxM
LCBhdHRyaWJ1dGVPblNpdGVEb21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCBzb3VyY2VJRCBJTlRF
R0VSIE5PVCBOVUxMLCAiCisgICAgInRpbWVPZkFkQ2xpY2sgUkVBTCBOT1QgTlVMTCwgRk9SRUlH
TiBLRVkoc291cmNlU2l0ZURvbWFpbklEKSBSRUZFUkVOQ0VTIE9ic2VydmVkRG9tYWlucyhkb21h
aW5JRCkgT04gREVMRVRFIENBU0NBREUsICIKKyAgICAiRk9SRUlHTiBLRVkoYXR0cmlidXRlT25T
aXRlRG9tYWluSUQpIFJFRkVSRU5DRVMgT2JzZXJ2ZWREb21haW5zKGRvbWFpbklEKSBPTiBERUxF
VEUgQ0FTQ0FERSk7Il9zOwogCi0vLyBDUkVBVEUgVU5JUVVFIElOREVYIFF1ZXJpZXMKK2NvbnN0
ZXhwciBhdXRvIGNyZWF0ZUF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9ICJDUkVB
VEUgVEFCTEUgQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50ICgiCisgICAgInNvdXJj
ZVNpdGVEb21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCBhdHRyaWJ1dGVPblNpdGVEb21haW5JRCBJ
TlRFR0VSIE5PVCBOVUxMLCBzb3VyY2VJRCBJTlRFR0VSIE5PVCBOVUxMLCAiCisgICAgImF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEgSU5URUdFUiBOT1QgTlVMTCwgcHJpb3JpdHkgSU5URUdFUiBOT1Qg
TlVMTCwgdGltZU9mQWRDbGljayBSRUFMIE5PVCBOVUxMLCBlYXJsaWVzdFRpbWVUb1NlbmQgUkVB
TCBOT1QgTlVMTCwgIgorICAgICJGT1JFSUdOIEtFWShzb3VyY2VTaXRlRG9tYWluSUQpIFJFRkVS
RU5DRVMgT2JzZXJ2ZWREb21haW5zKGRvbWFpbklEKSBPTiBERUxFVEUgQ0FTQ0FERSwgIgorICAg
ICJGT1JFSUdOIEtFWShhdHRyaWJ1dGVPblNpdGVEb21haW5JRCkgUkVGRVJFTkNFUyBPYnNlcnZl
ZERvbWFpbnMoZG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURFKTsiX3M7CisKK2NvbnN0ZXhwciBh
dXRvIGNyZWF0ZVRpbWVyTGFzdEZpcmVkID0gIkNSRUFURSBUQUJMRSBUaW1lckxhc3RGaXJlZCAo
IGtleSBJTlRFR0VSIFBSSU1BUlkgS0VZLCAiCisgICAgIiB0aW1lTGFzdEZpcmVkU2Vjb25kcyBS
RUFMIE5PVCBOVUxMICkiX3M7CisKKy8vIENSRUFURSBVTklRVUUgSU5ERVggUXVlcmllcy4KIGNv
bnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4U3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVE
b21haW5zID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBTdG9yYWdlQWNjZXNz
VW5kZXJUb3BGcmFtZURvbWFpbnNfZG9tYWluSURfdG9wTGV2ZWxEb21haW5JRCBvbiBTdG9yYWdl
QWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgKCBkb21haW5JRCwgdG9wTGV2ZWxEb21haW5JRCAp
OyJfczsKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4VG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNUbyA9ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElTVFMgVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNUb19zb3VyY2VEb21haW5JRF90b0RvbWFpbklEIG9uIFRvcEZyYW1lVW5pcXVl
UmVkaXJlY3RzVG8gKCBzb3VyY2VEb21haW5JRCwgdG9Eb21haW5JRCApOyJfczsKIGNvbnN0ZXhw
ciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudCA9ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElT
VFMgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVu
dF9zb3VyY2VEb21haW5JRF90b0RvbWFpbklEIG9uIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9T
aW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQgKCBzb3VyY2VEb21haW5JRCwgdG9Eb21haW5J
RCApOyJfczsKQEAgLTIzMiw2ICsyNjQsOCBAQCBjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJ
bmRleFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMgPSAiQ1JFQVRFIFVOSVFVRQogY29u
c3RleHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1Rv
ID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0c1RvX3N1YnJlc291cmNlRG9tYWluSURfdG9Eb21haW5JRCBvbiBTdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c1RvICggc3VicmVzb3VyY2VEb21haW5JRCwgdG9Eb21haW5JRCApOyJfczsK
IGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dHNGcm9tID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBTdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c0Zyb21fc3VicmVzb3VyY2VEb21haW5JRF9mcm9tRG9tYWluSUQgb24gU3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucyAoIHN1YnJlc291cmNlRG9tYWluSUQsIGZyb21E
b21haW5JRCApOyJfczsKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4T3BlcmF0aW5n
RGF0ZXMgPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIE9wZXJhdGluZ0RhdGVz
X3llYXJfbW9udGhfbW9udGhEYXkgb24gT3BlcmF0aW5nRGF0ZXMgKCB5ZWFyLCBtb250aCwgbW9u
dGhEYXkgKTsiX3M7Citjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFVuYXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVY
SVNUUyBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudF9zb3VyY2VTaXRlRG9tYWlu
SURfYXR0cmlidXRlT25TaXRlRG9tYWluSUQgb24gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgKCBzb3VyY2VTaXRlRG9tYWluSUQsIGF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEICk7
Il9zOworY29uc3RleHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhBdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIEF0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudF9zb3VyY2VTaXRlRG9tYWluSURfYXR0cmlidXRl
T25TaXRlRG9tYWluSUQgb24gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50ICggc291
cmNlU2l0ZURvbWFpbklELCBhdHRyaWJ1dGVPblNpdGVEb21haW5JRCApOyJfczsKIAogc3RhdGlj
IGNvbnN0IFN0cmluZyBPYnNlcnZlZERvbWFpbnNUYWJsZVNjaGVtYVYxKCkKIHsKQEAgLTI2Myw3
ICsyOTcsMTAgQEAgc3RhdGljIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBjcmVhdGVU
YWJsZVF1ZXJpZXMoKQogICAgICAgICB7ICJTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5z
Il9zLCBjcmVhdGVTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zfSwKICAgICAgICAgeyAi
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyJfcywgY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdHNUb30sCiAgICAgICAgIHsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSJf
cywgY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tfSwKLSAgICAgICAgeyAiT3Bl
cmF0aW5nRGF0ZXMiX3MsIGNyZWF0ZU9wZXJhdGluZ0RhdGVzfQorICAgICAgICB7ICJPcGVyYXRp
bmdEYXRlcyJfcywgY3JlYXRlT3BlcmF0aW5nRGF0ZXN9LAorICAgICAgICB7ICJVbmF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcywgY3JlYXRlVW5hdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnR9LAorICAgICAgICB7ICJBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQiX3MsIGNyZWF0ZUF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudH0sCisgICAg
ICAgIHsgIlRpbWVyTGFzdEZpcmVkIl9zLCBjcmVhdGVUaW1lckxhc3RGaXJlZH0KICAgICB9KTsK
ICAgICAKICAgICByZXR1cm4gY3JlYXRlVGFibGVRdWVyaWVzOwpAQCAtMjk0LDYgKzMzMSw3IEBA
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdv
cmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0dXJuT25JbmNy
ZW1lbnRhbEF1dG9WYWN1dW0gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NU
UklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAKICAgICBpbmNsdWRlVG9k
YXlBc09wZXJhdGluZ0RhdGVJZk5lY2Vzc2FyeSgpOworICAgIHVwZGF0ZVByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25UaW1lcygpOwogICAgIGFsbFN0b3JlcygpLmFkZCh0aGlzKTsK
IH0KIApAQCAtNTU1LDcgKzU5Myw5IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmNyZWF0ZVVuaXF1ZUluZGljZXMoKQogICAgICAgICB8fCAhbV9kYXRhYmFzZS5l
eGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURv
bWFpbnMpCiAgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1
ZUluZGV4U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbykKICAgICAgICAgfHwgIW1fZGF0YWJh
c2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVEb21haW5zKQotICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVV
bmlxdWVJbmRleE9wZXJhdGluZ0RhdGVzKSkgeworICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVj
dXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleE9wZXJhdGluZ0RhdGVzKQorICAgICAgICB8fCAh
bV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29t
bWFuZChjcmVhdGVVbmlxdWVJbmRleEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkp
IHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVVuaXF1ZUluZGljZXMgZmFpbGVkIHRvIGV4
ZWN1dGUsIGVycm9yIG1lc3NhZ2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTYz
MCw3ICs2NzAsMjIgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
Y3JlYXRlU2NoZW1hKCkKICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIE9wZXJh
dGluZ0RhdGVzIHRhYmxlIGluIGRhdGFiYXNlICglaSkgLSAlcyIsIG1fZGF0YWJhc2UubGFzdEVy
cm9yKCksIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQorCisgICAgaWYgKCFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuYXR0
cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KSkgeworICAgICAgICBMT0dfRVJST1IoIkNv
dWxkIG5vdCBjcmVhdGUgVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgdGFibGUg
aW4gZGF0YWJhc2UgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBp
ZiAoIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KSkgeworICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBjcmVhdGUgQXR0
cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IHRhYmxlIGluIGRhdGFiYXNlICglaSkgLSAl
cyIsIG1fZGF0YWJhc2UubGFzdEVycm9yKCksIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIAorICAgIGlmICghbV9kYXRhYmFzZS5l
eGVjdXRlQ29tbWFuZChjcmVhdGVUaW1lckxhc3RGaXJlZCkpIHsKKyAgICAgICAgTE9HX0VSUk9S
KCJDb3VsZCBub3QgY3JlYXRlIFRpbWVyTGFzdEZpcmVkIHRhYmxlIGluIGRhdGFiYXNlICglaSkg
LSAlcyIsIG1fZGF0YWJhc2UubGFzdEVycm9yKCksIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgaWYgKCFjcmVhdGVVbmlxdWVJ
bmRpY2VzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNjc4LDYgKzczMywyMCBAQCB2
b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkZXN0cm95U3RhdGVtZW50
cygpCiAgICAgbV91bmlxdWVSZWRpcmVjdEV4aXN0c1N0YXRlbWVudCA9IG51bGxwdHI7CiAgICAg
bV9vYnNlcnZlZERvbWFpbnNFeGlzdHNTdGF0ZW1lbnQgPSBudWxscHRyOwogICAgIG1fcmVtb3Zl
QWxsRGF0YVN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9pbnNlcnRVbmF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9pbnNlcnRBdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZW1lbnQgPSBudWxscHRyOworICAgIG1f
c2V0VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRTdGF0ZW1lbnQg
PSBudWxscHRyOworICAgIG1fY2xlYXJVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9jbGVhckF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9jbGVhckV4cGlyZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9hbGxVbmF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uc1N0YXRlbWVudCA9IG51bGxwdHI7
CisgICAgbV9hbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZW1lbnQgPSBu
dWxscHRyOworICAgIG1fZmluZFVuYXR0cmlidXRlZFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAg
bV9maW5kQXR0cmlidXRlZFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV91cGRhdGVUaW1lckxh
c3RGaXJlZFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV90aW1lckxhc3RGaXJlZFN0YXRlbWVu
dCA9IG51bGxwdHI7CisgICAgbV91cGRhdGVBdHRyaWJ1dGlvbnNFYXJsaWVzdFRpbWVUb1NlbmRT
dGF0ZW1lbnQgPSBudWxscHRyOworICAgIG1fcmVtb3ZlVW5hdHRyaWJ1dGVkU3RhdGVtZW50ID0g
bnVsbHB0cjsKIH0KIAogYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
aW5zZXJ0T2JzZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgbG9hZFN0
YXRpc3RpY3MpCkBAIC0yODE0LDYgKzI4ODMsNDUyIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6Omluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0
CiAgICAgfQogfQogCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1
cGRhdGVUaW1lckxhc3RGaXJlZCgpCit7CisgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlz
LT5zY29wZWRTdGF0ZW1lbnQobV91cGRhdGVUaW1lckxhc3RGaXJlZFN0YXRlbWVudCwgdXBkYXRl
VGltZXJMYXN0RmlyZWRRdWVyeSwgInVwZGF0ZVRpbWVyTGFzdEZpcmVkIl9zKTsKKworICAgIGF1
dG8gbm93ID0gV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKKwor
ICAgIGlmICghc2NvcGVkU3RhdGVtZW50CisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+Ymlu
ZERvdWJsZSgxLCBub3cpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQt
PnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3
b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlVGlt
ZXJMYXN0RmlyZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICB9Cit9CisKK1dhbGxUaW1lIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojp0aW1lckxhc3RGaXJlZCgpCit7CisgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5z
Y29wZWRTdGF0ZW1lbnQobV90aW1lckxhc3RGaXJlZFN0YXRlbWVudCwgdGltZXJMYXN0RmlyZWRR
dWVyeSwgInRpbWVyTGFzdEZpcmVkIl9zKTsKKworICAgIGlmICghc2NvcGVkU3RhdGVtZW50KSB7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0aW1lckxhc3RGaXJlZCwgZXJy
b3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgaWYgKHNjb3Bl
ZFN0YXRlbWVudC0+c3RlcCgpID09IFNRTElURV9ST1cpCisgICAgICAgIHJldHVybiBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoc2NvcGVkU3RhdGVtZW50LT5nZXRDb2x1bW5Eb3VibGUoMCkpOwor
ICAgIAorICAgIHJldHVybiBXYWxsVGltZTo6bm93KCk7Cit9CisKK3ZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0
cmlidXRpb25UaW1lcygpCit7CisgICAgLy8gV2Ugc2hvdWxkIHVwZGF0ZSBhdHRyaWJ1dGlvbnMg
b24gc2Vzc2lvbi1zdGFydCB0byBhY2NvdW50IGZvciB0aGUgdGltZQorICAgIC8vIHRoYXQgcGFz
c2VkIHdoaWxlIHRoZSBzZXNzaW9uIHdhcyBjbG9zZWQuIElmIHRoZSBhbW91bnQgb2YgdGltZSBz
aW5jZSB0aGUgbGFzdAorICAgIC8vIHRpbWVyIGZpcmUgaXMgZ3JlYXRlciB0aGFuIHRoZSBlYXJs
aWVzdFRpbWVUb1NlbmQsIHdlIHNob3VsZCBzZXQgZWFybGllc3RUaW1lVG9TZW5kCisgICAgLy8g
dG8gYmUgaW1tZWRpYXRlbHkuCisgICAgYXV0byBsYXN0RmlyZWQgPSB0aW1lckxhc3RGaXJlZCgp
OworICAgIGF1dG8gdGltZVBhc3NlZCA9IFdhbGxUaW1lOjpub3coKSAtIGxhc3RGaXJlZDsKKwor
ICAgIGF1dG8gc2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fdXBkYXRl
QXR0cmlidXRpb25zRWFybGllc3RUaW1lVG9TZW5kU3RhdGVtZW50LCB1cGRhdGVBdHRyaWJ1dGlv
bnNFYXJsaWVzdFRpbWVUb1NlbmRRdWVyeSwgInVwZGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25UaW1lcyJfcyk7CisKKyAgICBpZiAoIXNjb3BlZFN0YXRlbWVudAorICAgICAg
ICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmREb3VibGUoMSwgdGltZVBhc3NlZC52YWx1ZSgpKSAh
PSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRF
X0RPTkUpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25J
RCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZVByaXZh
dGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UaW1lcywgZXJyb3IgbWVzc2FnZTogJXtwcml2
YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCitQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YnVpbGRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEZyb21EYXRhYmFzZShXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQqIHN0YXRlbWVudCwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUgYXR0cmlidXRpb25UeXBlKQorewor
ICAgIGF1dG8gc291cmNlU2l0ZURvbWFpbiA9IGdldERvbWFpblN0cmluZ0Zyb21Eb21haW5JRChz
dGF0ZW1lbnQtPmdldENvbHVtbkludCgwKSk7CisgICAgYXV0byBhdHRyaWJ1dGVPblNpdGVEb21h
aW4gPSBnZXREb21haW5TdHJpbmdGcm9tRG9tYWluSUQoc3RhdGVtZW50LT5nZXRDb2x1bW5JbnQo
MSkpOworICAgIGF1dG8gc291cmNlSUQgPSBzdGF0ZW1lbnQtPmdldENvbHVtbkludCgyKTsKKyAg
ICBhdXRvIHRpbWVPZkFkQ2xpY2sgPSBhdHRyaWJ1dGlvblR5cGUgPT0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OkF0dHJpYnV0ZWQgPyBzdGF0ZW1lbnQtPmdldENvbHVt
bkRvdWJsZSg1KSA6IHN0YXRlbWVudC0+Z2V0Q29sdW1uRG91YmxlKDMpOworCisgICAgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZUlEKHNvdXJjZUlEKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZVNpdGUoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdp
c3RyYWJsZURvbWFpblN0cmluZyhzb3VyY2VTaXRlRG9tYWluKSksIFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUoUmVnaXN0cmFibGVEb21haW46OnVuY2hl
Y2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0cmluZyhhdHRyaWJ1dGVPblNpdGVEb21h
aW4pKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWVPZkFkQ2xpY2spKTsKKyAgICAKKyAg
ICBpZiAoYXR0cmlidXRpb25UeXBlID09IFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25UeXBlOjpBdHRyaWJ1dGVkKSB7CisgICAgICAgIGF1dG8gYXR0cmlidXRpb25UcmlnZ2VyRGF0
YSA9IHN0YXRlbWVudC0+Z2V0Q29sdW1uSW50KDMpOworICAgICAgICBhdXRvIHByaW9yaXR5ID0g
c3RhdGVtZW50LT5nZXRDb2x1bW5JbnQoNCk7CisgICAgICAgIGF1dG8gZWFybGllc3RUaW1lVG9T
ZW5kID0gc3RhdGVtZW50LT5nZXRDb2x1bW5Eb3VibGUoNik7CisgICAgICAgIAorICAgICAgICBp
ZiAoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSAhPSAtMSkKKyAgICAgICAgICAgIGF0dHJpYnV0aW9u
LnNldEF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhIHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkocHJpb3Jp
dHkpIH0pOworCisgICAgICAgIGF0dHJpYnV0aW9uLnNldEVhcmxpZXN0VGltZVRvU2VuZChXYWxs
VGltZTo6ZnJvbVJhd1NlY29uZHMoZWFybGllc3RUaW1lVG9TZW5kKSk7CisgICAgfQorCisgICAg
cmV0dXJuIGF0dHJpYnV0aW9uOworfQorCitzdGQ6OnBhaXI8T3B0aW9uYWw8VW5hdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBPcHRpb25hbDxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+PiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZmluZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlJiBhdHRyaWJ1dGVPblNpdGUpCit7CisgICAgYXV0
byBzb3VyY2VTaXRlRG9tYWluSUQgPSBkb21haW5JRChzb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9t
YWluKTsKKyAgICBhdXRvIGF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEID0gZG9tYWluSUQoYXR0cmli
dXRlT25TaXRlLnJlZ2lzdHJhYmxlRG9tYWluKTsKKworICAgIGlmICghc291cmNlU2l0ZURvbWFp
bklEIHx8ICFhdHRyaWJ1dGVPblNpdGVEb21haW5JRCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV9wYWlyKFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KTsKKworICAgIGF1dG8gZmluZFVuYXR0
cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX2ZpbmRVbmF0
dHJpYnV0ZWRTdGF0ZW1lbnQsIGZpbmRVbmF0dHJpYnV0ZWRRdWVyeSwgImZpbmRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCJfcyk7CisgICAgaWYgKCFmaW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVt
ZW50CisgICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQo
MSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IGZpbmRVbmF0
dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmF0dHJpYnV0ZU9uU2l0ZURvbWFp
bklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBmaW5kVW5hdHRyaWJ1dGVkUXVlcnksIGVycm9y
IG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGF1dG8gZmluZEF0
dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV9maW5kQXR0
cmlidXRlZFN0YXRlbWVudCwgZmluZEF0dHJpYnV0ZWRRdWVyeSwgImZpbmRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCJfcyk7CisgICAgaWYgKCFmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudAor
ICAgICAgICB8fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCAqc291
cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgZmluZEF0dHJpYnV0ZWRT
Y29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEKSAhPSBT
UUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Np
b25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmZpbmRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCBmaW5kQXR0cmlidXRlZFF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAl
e3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBPcHRpb25hbDxVbmF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gdW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ7CisgICAgaWYgKGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSA9PSBT
UUxJVEVfUk9XKQorICAgICAgICB1bmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9
IGJ1aWxkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9tRGF0YWJhc2UoZmluZFVuYXR0cmlidXRl
ZFNjb3BlZFN0YXRlbWVudC5nZXQoKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlv
blR5cGU6OlVuYXR0cmlidXRlZCk7CisKKyAgICBPcHRpb25hbDxBdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ+IGF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKKyAgICBp
ZiAoZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSA9PSBTUUxJVEVfUk9XKQor
ICAgICAgICBhdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBidWlsZFByaXZhdGVD
bGlja01lYXN1cmVtZW50RnJvbURhdGFiYXNlKGZpbmRBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50
LmdldCgpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRl
ZCk7CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIodW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQsIGF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk7Cit9CisKK3Zv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgYXR0cmlidXRpb24sIFByaXZh
dGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlIGF0dHJpYnV0aW9uVHlwZSkKK3sKKyAg
ICBhdXRvIHNvdXJjZURhdGEgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJs
ZURvbWFpbihhdHRyaWJ1dGlvbi5zb3VyY2VTaXRlKCkucmVnaXN0cmFibGVEb21haW4pOworICAg
IGF1dG8gYXR0cmlidXRlT25EYXRhID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0
cmFibGVEb21haW4oYXR0cmlidXRpb24uYXR0cmlidXRlT25TaXRlKCkucmVnaXN0cmFibGVEb21h
aW4pOworCisgICAgaWYgKCFzb3VyY2VEYXRhLnNlY29uZCB8fCAhYXR0cmlidXRlT25EYXRhLnNl
Y29uZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF0dHJpYnV0aW9uVHlwZSA9PSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRlZCkgeworICAgICAg
ICBhdXRvIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblRy
aWdnZXJEYXRhKCkgPyBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkudmFsdWUo
KS5kYXRhIDogLTE7CisgICAgICAgIGF1dG8gcHJpb3JpdHkgPSBhdHRyaWJ1dGlvbi5hdHRyaWJ1
dGlvblRyaWdnZXJEYXRhKCkgPyBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCku
dmFsdWUoKS5wcmlvcml0eSA6IC0xOworICAgICAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9
IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGltZVRvU2VuZCgpID8gYXR0cmlidXRpb24uZWFybGllc3RU
aW1lVG9TZW5kKCkudmFsdWUoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgOiAtMTsKKwor
ICAgICAgICBhdXRvIHN0YXRlbWVudCA9IFNRTGl0ZVN0YXRlbWVudChtX2RhdGFiYXNlLCBpbnNl
cnRBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSk7CisgICAgICAgIGlmIChz
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3RhdGVtZW50
LmJpbmRJbnQoMSwgKnNvdXJjZURhdGEuc2Vjb25kKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAg
IHx8IHN0YXRlbWVudC5iaW5kSW50KDIsICphdHRyaWJ1dGVPbkRhdGEuc2Vjb25kKSAhPSBTUUxJ
VEVfT0sKKyAgICAgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kSW50KDMsIGF0dHJpYnV0aW9uLnNv
dXJjZUlEKCkuaWQpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJ
bnQoNCwgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8
fCBzdGF0ZW1lbnQuYmluZEludCg1LCBwcmlvcml0eSkgIT0gU1FMSVRFX09LCisgICAgICAgICAg
ICB8fCBzdGF0ZW1lbnQuYmluZERvdWJsZSg2LCBhdHRyaWJ1dGlvbi50aW1lT2ZBZENsaWNrKCku
c2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8
IHN0YXRlbWVudC5iaW5kRG91YmxlKDcsIGVhcmxpZXN0VGltZVRvU2VuZCkgIT0gU1FMSVRFX09L
CisgICAgICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAg
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgaW5zZXJ0QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnksIGVy
cm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzdGF0ZW1lbnQgPSBTUUxpdGVTdGF0ZW1lbnQo
bV9kYXRhYmFzZSwgaW5zZXJ0VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVy
eSk7CisgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8
IHN0YXRlbWVudC5iaW5kSW50KDEsICpzb3VyY2VEYXRhLnNlY29uZCkgIT0gU1FMSVRFX09LCisg
ICAgICAgIHx8IHN0YXRlbWVudC5iaW5kSW50KDIsICphdHRyaWJ1dGVPbkRhdGEuc2Vjb25kKSAh
PSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoMywgYXR0cmlidXRpb24u
c291cmNlSUQoKS5pZCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kRG91
YmxlKDQsIGF0dHJpYnV0aW9uLnRpbWVPZkFkQ2xpY2soKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZh
bHVlKCkpICE9IFNRTElURV9PSworICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElU
RV9ET05FKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9u
SUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCBpbnNlcnRVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9
CisKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBbGxVbmF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKQorewor
ICAgIGF1dG8gc2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fc2V0VW5h
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRTdGF0ZW1lbnQsIHNldFVu
YXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkUXVlcnksICJtYXJrQWxs
VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nIl9z
KTsKKworICAgIGlmICghc2NvcGVkU3RhdGVtZW50IHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgp
ICE9IFNRTElURV9ET05FKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
bV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpt
YXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0
aW5nLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK3Zv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbW92ZVVuYXR0cmlidXRl
ZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYgYXR0cmlidXRpb24pCit7CisgICAgYXV0byBzb3Vy
Y2VTaXRlRG9tYWluSUQgPSBkb21haW5JRChhdHRyaWJ1dGlvbi5zb3VyY2VTaXRlKCkucmVnaXN0
cmFibGVEb21haW4pOworICAgIGF1dG8gYXR0cmlidXRlT25TaXRlRG9tYWluSUQgPSBkb21haW5J
RChhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVPblNpdGUoKS5yZWdpc3RyYWJsZURvbWFpbik7CisKKyAg
ICBpZiAoIXNvdXJjZVNpdGVEb21haW5JRCB8fCAhYXR0cmlidXRlT25TaXRlRG9tYWluSUQpCisg
ICAgICAgIHJldHVybjsKKyAgICAKKyAgICBhdXRvIHNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNj
b3BlZFN0YXRlbWVudChtX3JlbW92ZVVuYXR0cmlidXRlZFN0YXRlbWVudCwgcmVtb3ZlVW5hdHRy
aWJ1dGVkUXVlcnksICJyZW1vdmVVbmF0dHJpYnV0ZWQiX3MpOworCisgICAgaWYgKCFzY29wZWRT
dGF0ZW1lbnQKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3VyY2VT
aXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJp
bmRJbnQoMiwgKmF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAg
fHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbW92ZVVuYXR0cmlidXRlZCwgZXJyb3IgbWVzc2Fn
ZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCitPcHRpb25hbDxTZWNvbmRzPiBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgQXR0cmlidXRl
T25TaXRlJiBhdHRyaWJ1dGVPblNpdGUsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1
dGlvblRyaWdnZXJEYXRhKQoreworICAgIGNsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KCk7CisKKyAgICBpZiAoIWF0dHJpYnV0aW9uVHJpZ2dlckRhdGEuaXNWYWxpZCgpKSB7Cisg
ICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICBS
RUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiR290IGFuIGludmFsaWQg
YXR0cmlidXRpb24uIik7CisgICAgICAgICAgICBkZWJ1Z0Jyb2FkY2FzdENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVy
cm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEdvdCBhbiBpbnZhbGlkIGF0dHJpYnV0
aW9uLiJfcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9
CisKKyAgICBhdXRvIGRhdGEgPSBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLmRhdGE7CisgICAgYXV0
byBwcmlvcml0eSA9IGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEucHJpb3JpdHk7CisKKyAgICBpZiAo
VU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICBSRUxFQVNFX0xPR19JTkZP
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiR290IGFuIGF0dHJpYnV0aW9uIHdpdGggYXR0cmli
dXRpb24gdHJpZ2dlciBkYXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dS4i
LCBkYXRhLCBwcmlvcml0eSk7CisgICAgICAgIGRlYnVnQnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5m
bywgbWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEdvdCBhbiBhdHRyaWJ1
dGlvbiB3aXRoIGF0dHJpYnV0aW9uIHRyaWdnZXIgZGF0YTogJyJfcywgZGF0YSwgIicgYW5kIHBy
aW9yaXR5OiAnIl9zLCBwcmlvcml0eSwgIicuIl9zKSk7CisgICAgfQorCisgICAgYXV0byBzZWNv
bmRzVW50aWxTZW5kID0gU2Vjb25kczo6aW5maW5pdHkoKTsKKworICAgIGF1dG8gYXR0cmlidXRp
b24gPSBmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgYXR0cmlidXRlT25T
aXRlKTsKKyAgICBhdXRvJiBwcmV2aW91c2x5VW5hdHRyaWJ1dGVkID0gYXR0cmlidXRpb24uZmly
c3Q7CisgICAgYXV0byYgcHJldmlvdXNseUF0dHJpYnV0ZWQgPSBhdHRyaWJ1dGlvbi5zZWNvbmQ7
CisKKyAgICBpZiAocHJldmlvdXNseVVuYXR0cmlidXRlZCkgeworICAgICAgICAvLyBBbHdheXMg
Y29udmVydCB0aGUgcGVuZGluZyBhdHRyaWJ1dGlvbiBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIHVu
YXR0cmlidXRlZCBtYXAuCisgICAgICAgIHJlbW92ZVVuYXR0cmlidXRlZCgqcHJldmlvdXNseVVu
YXR0cmlidXRlZCk7CisgICAgICAgIGlmIChhdXRvIG9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZCA9
IHByZXZpb3VzbHlVbmF0dHJpYnV0ZWQudmFsdWUoKS5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRp
bWVUb1NlbmQoV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSkpIHsKKyAgICAgICAgICAg
IHNlY29uZHNVbnRpbFNlbmQgPSAqb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kOworICAgICAgICAg
ICAgQVNTRVJUKHNlY29uZHNVbnRpbFNlbmQgIT0gU2Vjb25kczo6aW5maW5pdHkoKSk7CisgICAg
ICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJ0ZWQg
YSBzdG9yZWQgYWQgY2xpY2sgd2l0aCBhdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6ICV7cHVibGlj
fXUgYW5kIHByaW9yaXR5OiAle3B1YmxpY311LiIsIGRhdGEsIHByaW9yaXR5KTsKKyAgICAgICAg
ICAgICAgICBkZWJ1Z0Jyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJ0ZWQgYSBzdG9yZWQgYWQgY2xpY2sgd2l0aCBh
dHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6ICciX3MsIGRhdGEsICInIGFuZCBwcmlvcml0eTogJyJf
cywgcHJpb3JpdHksICInLiJfcykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgLy8gSWYgdGhlcmUgaXMgbm8gcHJldmlvdXMgYXR0cmlidXRpb24sIG9yIHRoZSBuZXcgYXR0
cmlidXRpb24gaGFzIGhpZ2hlciBwcmlvcml0eSwgaW5zZXJ0L3VwZGF0ZSB0aGUgZGF0YWJhc2Uu
CisgICAgICAgIGlmICghcHJldmlvdXNseUF0dHJpYnV0ZWQgfHwgcHJldmlvdXNseVVuYXR0cmli
dXRlZC52YWx1ZSgpLmhhc0hpZ2hlclByaW9yaXR5VGhhbigqcHJldmlvdXNseUF0dHJpYnV0ZWQp
KSB7CisgICAgICAgICAgICBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXVEZNb3ZlKCpw
cmV2aW91c2x5VW5hdHRyaWJ1dGVkKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlv
blR5cGU6OkF0dHJpYnV0ZWQpOworCisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2Rl
RW5hYmxlZCgpKSkgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsICJSZXBsYWNlZCBhIHByZXZpb3VzbHkgY29udmVydGVkIGFkIGNsaWNr
IHdpdGggYSBuZXcgb25lIHdpdGggYXR0cmlidXRpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJp
b3JpdHk6ICV7cHVibGljfXUgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiIsIGRhdGEs
IHByaW9yaXR5KTsKKyAgICAgICAgICAgICAgICBkZWJ1Z0Jyb2FkY2FzdENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6Oklu
Zm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZXBsYWNlZCBhIHBy
ZXZpb3VzbHkgY29udmVydGVkIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggYXR0cmlidXRp
b24gdHJpZ2dlciBkYXRhOiAnIl9zLCBkYXRhLCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIHByaW9y
aXR5LCAiJyBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIl9zKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHByZXZpb3VzbHlBdHRyaWJ1dGVkKSB7Cisg
ICAgICAgIC8vIElmIHdlIGhhdmUgbm8gbmV3IGF0dHJpYnV0aW9uLCByZS1hdHRyaWJ1dGUgdGhl
IG9sZCBvbmUgdG8gcmVzcGVjdCB0aGUgbmV3IHByaW9yaXR5LgorICAgICAgICBpZiAoYXV0byBv
cHRpb25hbFNlY29uZHNVbnRpbFNlbmQgPSBwcmV2aW91c2x5QXR0cmlidXRlZC52YWx1ZSgpLmF0
dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEpKSkgeworICAgICAgICAgICAgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RG
TW92ZSgqcHJldmlvdXNseUF0dHJpYnV0ZWQpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uVHlwZTo6QXR0cmlidXRlZCk7CisKKyAgICAgICAgICAgIHNlY29uZHNVbnRpbFNlbmQg
PSAqb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kOworICAgICAgICAgICAgQVNTRVJUKHNlY29uZHNV
bnRpbFNlbmQgIT0gU2Vjb25kczo6aW5maW5pdHkoKSk7CisKKyAgICAgICAgICAgIGlmIChVTkxJ
S0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIlJlLWNvbnZlcnRlZCBhbiBhZCBjbGljayB3
aXRoIGEgbmV3IG9uZSB3aXRoIGF0dHJpYnV0aW9uIHRyaWdnZXIgZGF0YTogJXtwdWJsaWN9dSBh
bmQgcHJpb3JpdHk6ICV7cHVibGljfXUgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiIs
IGRhdGEsIHByaW9yaXR5KTsKKyAgICAgICAgICAgICAgICBkZWJ1Z0Jyb2FkY2FzdENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2
ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZS1jb252
ZXJ0ZWQgYW4gYWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBhdHRyaWJ1dGlvbiB0cmlnZ2Vy
IGRhdGE6ICciX3MsIGRhdGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgcHJpb3JpdHksICInJyBi
ZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIl9zKSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoc2Vjb25kc1VudGlsU2VuZCA9PSBTZWNvbmRzOjppbmZp
bml0eSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHNlY29u
ZHNVbnRpbFNlbmQ7Cit9CisKK1ZlY3RvcjxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dD4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmFsbEF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCgpCit7CisgICAgYXV0byBhdHRyaWJ1dGVkU2NvcGVkU3RhdGVt
ZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fYWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50U3RhdGVtZW50LCBhbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRR
dWVyeSwgInByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmciX3MpOworCisgICAgaWYgKCFh
dHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nLCBlcnJvciBtZXNzYWdlOiAl
e3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBWZWN0b3I8V2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ+IGF0dHJpYnV0aW9uczsKKyAgICB3aGlsZSAoYXR0cmlidXRlZFNj
b3BlZFN0YXRlbWVudC0+c3RlcCgpID09IFNRTElURV9ST1cpCisgICAgICAgIGF0dHJpYnV0aW9u
cy5hcHBlbmQoYnVpbGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21EYXRhYmFzZShhdHRyaWJ1
dGVkU2NvcGVkU3RhdGVtZW50LmdldCgpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uVHlwZTo6QXR0cmlidXRlZCkpOworCisgICAgcmV0dXJuIGF0dHJpYnV0aW9uczsKK30KKwor
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudChPcHRpb25hbDxSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluKQoreworICAg
IC8vIERlZmF1bHQgdG8gY2xlYXIgYWxsIGVudHJpZXMgaWYgbm8gZG9tYWluIGlzIHNwZWNpZmll
ZC4KKyAgICBTdHJpbmcgYmluZFBhcmFtZXRlciA9ICIlIjsKKyAgICBpZiAoZG9tYWluKSB7Cisg
ICAgICAgIGF1dG8gZG9tYWluSURUb01hdGNoID0gZG9tYWluSUQoKmRvbWFpbik7CisgICAgICAg
IGlmICghZG9tYWluSURUb01hdGNoKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGJp
bmRQYXJhbWV0ZXIgPSBTdHJpbmc6Om51bWJlcigqZG9tYWluSURUb01hdGNoKTsKKyAgICB9CisK
KyAgICBhdXRvIGNsZWFyVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVk
U3RhdGVtZW50KG1fY2xlYXJVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRl
bWVudCwgY2xlYXJVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5LCAiY2xl
YXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CisKKyAgICBpZiAoIWNsZWFyVW5hdHRyaWJ1
dGVkU2NvcGVkU3RhdGVtZW50CisgICAgICAgIHx8IGNsZWFyVW5hdHRyaWJ1dGVkU2NvcGVkU3Rh
dGVtZW50LT5iaW5kVGV4dCgxLCBiaW5kUGFyYW1ldGVyKSAhPSBTUUxJVEVfT0sKKyAgICAgICAg
fHwgY2xlYXJVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDIsIGJpbmRQYXJh
bWV0ZXIpICE9IFNRTElURV9PSworICAgICAgICB8fCBjbGVhclVuYXR0cmlidXRlZFNjb3BlZFN0
YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50IGNsZWFyVW5hdHRyaWJ1
dGVkU2NvcGVkU3RhdGVtZW50LCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICB9CisKKyAgICBhdXRvIGNsZWFyQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMt
PnNjb3BlZFN0YXRlbWVudChtX2NsZWFyQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
U3RhdGVtZW50LCBjbGVhckF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5LCAi
Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CisKKyAgICBpZiAoIWNsZWFyQXR0cmli
dXRlZFNjb3BlZFN0YXRlbWVudAorICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTY29wZWRTdGF0
ZW1lbnQtPmJpbmRUZXh0KDEsIGJpbmRQYXJhbWV0ZXIpICE9IFNRTElURV9PSworICAgICAgICB8
fCBjbGVhckF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDIsIGJpbmRQYXJhbWV0
ZXIpICE9IFNRTElURV9PSworICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1l
bnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBjbGVhckF0dHJpYnV0ZWRTY29w
ZWRTdGF0ZW1lbnQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
K30KKwordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJFeHBp
cmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQoreworICAgIGF1dG8gZXhwaXJhdGlvblRpbWVG
cmFtZSA9IFdhbGxUaW1lOjpub3coKSAtIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjptYXhBZ2UoKTsKKyAgICBhdXRvIHNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRl
bWVudChtX2NsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50LCBjbGVh
ckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5LCAiY2xlYXJFeHBpcmVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQiX3MpOworCisgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKKyAgICAg
ICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kRG91YmxlKDEsIGV4cGlyYXRpb25UaW1lRnJhbWUu
c2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc2Nv
cGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBl
cnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNn
KCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK1N0cmluZyBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YXR0cmlidXRpb25Ub1N0cmluZyhX
ZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQqIHN0YXRlbWVudCwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblR5cGUgYXR0cmlidXRpb25UeXBlKQoreworICAgIGF1dG8gc291cmNlU2l0
ZURvbWFpbiA9IGdldERvbWFpblN0cmluZ0Zyb21Eb21haW5JRChzdGF0ZW1lbnQtPmdldENvbHVt
bkludCgwKSk7CisgICAgYXV0byBhdHRyaWJ1dGVPblNpdGVEb21haW4gPSBnZXREb21haW5TdHJp
bmdGcm9tRG9tYWluSUQoc3RhdGVtZW50LT5nZXRDb2x1bW5JbnQoMSkpOworICAgIGF1dG8gc291
cmNlSUQgPSBzdGF0ZW1lbnQtPmdldENvbHVtbkludCgyKTsKKworICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlNvdXJjZSBzaXRlOiAiKTsKKyAg
ICBidWlsZGVyLmFwcGVuZChzb3VyY2VTaXRlRG9tYWluKTsKKyAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIlxuQXR0cmlidXRlIG9uIHNpdGU6ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kKGF0dHJp
YnV0ZU9uU2l0ZURvbWFpbik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcblNvdXJjZSBJ
RDogIik7CisgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc291cmNlSUQpOworCisgICAgaWYgKGF0
dHJpYnV0aW9uVHlwZSA9PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6
QXR0cmlidXRlZCkgeworICAgICAgICBhdXRvIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBzdGF0
ZW1lbnQtPmdldENvbHVtbkludCgzKTsKKyAgICAgICAgYXV0byBwcmlvcml0eSA9IHN0YXRlbWVu
dC0+Z2V0Q29sdW1uSW50KDQpOworICAgICAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9IHN0
YXRlbWVudC0+Z2V0Q29sdW1uSW50KDYpOworCisgICAgICAgIGlmIChhdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhICE9IC0xKSB7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQXR0
cmlidXRpb24gdHJpZ2dlciBkYXRhOiAiKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJcbkF0dHJpYnV0aW9uIHByaW9yaXR5OiAiKTsKKyAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKHByaW9yaXR5KTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiXG5BdHRyaWJ1dGlvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6ICIpOworICAgICAgICAgICAg
aWYgKGVhcmxpZXN0VGltZVRvU2VuZCA9PSAtMSkKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIk5vdCBzZXQiKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgIGF1dG8gc2Vjb25kc1VudGlsU2VuZCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhlYXJs
aWVzdFRpbWVUb1NlbmQpIC0gV2FsbFRpbWU6Om5vdygpOworICAgICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKChzZWNvbmRzVW50aWxTZW5kID49IDI0X2ggJiYgc2Vjb25kc1VudGlsU2VuZCA8
PSA0OF9oKSA/ICJXaXRoaW4gMjQtNDggaG91cnMiIDogIk91dHNpZGUgMjQtNDggaG91cnMiKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIlxuTm8gYXR0cmlidXRpb24gdHJpZ2dlciBkYXRhLiIpOworICAgIH0gZWxzZQor
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuTm8gYXR0cmlidXRpb24gdHJpZ2dlciBk
YXRhLiIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworCisgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKK30KKworU3RyaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nKCkKK3sKKyAgICBTUUxpdGVTdGF0
ZW1lbnQgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhRXhpc3RzKG1fZGF0YWJhc2UsICJTRUxF
Q1QgKFNFTEVDVCBDT1VOVCgqKSBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KSBhcyBjbnQxLCAoU0VMRUNUIENPVU5UKCopIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KSBhcyBjbnQyIl9zKTsKKyAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREYXRhRXhpc3RzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sgfHwgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREYXRhRXhpc3RzLnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nIGZhaWxlZCwgZXJyb3IgbWVzc2Fn
ZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisg
ICAgaWYgKCFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFFeGlzdHMuZ2V0Q29sdW1uSW50KDAp
ICYmICFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFFeGlzdHMuZ2V0Q29sdW1uSW50KDEpKQor
ICAgICAgICByZXR1cm4gIlxuTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0
YS5cbiJfczsKKworICAgIGF1dG8gdW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+
c2NvcGVkU3RhdGVtZW50KG1fYWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
dHRyaWJ1dGlvbnNTdGF0ZW1lbnQsIGFsbFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25zUXVlcnksICJwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nIl9z
KTsKKworICAgIGlmICghdW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50KSB7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5n
LCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICB1bnNp
Z25lZCB1bmF0dHJpYnV0ZWROdW1iZXIgPSAwOworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
KyAgICB3aGlsZSAodW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgPT0gU1FMSVRF
X1JPVykgeworICAgICAgICBpZiAoIXVuYXR0cmlidXRlZE51bWJlcikKKyAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVW5hdHRyaWJ1dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1l
bnRzOlxuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicp
OworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigrK3VuYXR0cmlidXRl
ZE51bWJlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICBidWlsZGVy
LmFwcGVuZChhdHRyaWJ1dGlvblRvU3RyaW5nKHVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC5n
ZXQoKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OlVuYXR0cmlidXRl
ZCkpOworICAgIH0KKworICAgIGF1dG8gYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMt
PnNjb3BlZFN0YXRlbWVudChtX2FsbEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0
YXRlbWVudCwgYWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnksICJwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nIl9zKTsKKworICAgIGlmICghYXR0cmlidXRlZFNj
b3BlZFN0YXRlbWVudCkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1f
c2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZywgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMi
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQorCisgICAgdW5zaWduZWQgYXR0cmlidXRlZE51bWJlciA9IDA7Cisg
ICAgd2hpbGUgKGF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSA9PSBTUUxJVEVfUk9X
KSB7CisgICAgICAgIGlmICh1bmF0dHJpYnV0ZWROdW1iZXIpCisgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgnXG4nKTsKKyAgICAgICAgaWYgKCFhdHRyaWJ1dGVkTnVtYmVyKQorICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJBdHRyaWJ1dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnRzOlxuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdc
bicpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigrK2F0dHJpYnV0
ZWROdW1iZXIgKyB1bmF0dHJpYnV0ZWROdW1iZXIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgn
XG4nKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXR0cmlidXRpb25Ub1N0cmluZyhhdHRyaWJ1
dGVkU2NvcGVkU3RhdGVtZW50LmdldCgpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uVHlwZTo6QXR0cmlidXRlZCkpOworICAgIH0KKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworfQorCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVh
clNlbnRBdHRyaWJ1dGlvbnMoVmVjdG9yPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
PiYmIGF0dHJpYnV0aW9ucykKK3sKKyAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogYXR0cmli
dXRpb25zKSB7CisgICAgICAgIGF1dG8gc291cmNlU2l0ZURvbWFpbklEID0gZG9tYWluSUQoYXR0
cmlidXRpb24uc291cmNlU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAgICAgYXV0byBh
dHRyaWJ1dGVPblNpdGVEb21haW5JRCA9IGRvbWFpbklEKGF0dHJpYnV0aW9uLmF0dHJpYnV0ZU9u
U2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluKTsKKworICAgICAgICBpZiAoIXNvdXJjZVNpdGVEb21h
aW5JRCB8fCAhYXR0cmlidXRlT25TaXRlRG9tYWluSUQpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgU1FMaXRlU3RhdGVtZW50IGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudChtX2RhdGFi
YXNlLCAiREVMRVRFIEZST00gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJF
IHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEID0gPyJf
cyk7CisgICAgICAgIGlmIChjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNR
TElURV9PSworICAgICAgICAgICAgfHwgY2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50LmJpbmRJbnQo
MSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBjbGVh
ckF0dHJpYnV0ZWRTdGF0ZW1lbnQuYmluZEludCgyLCAqYXR0cmlidXRlT25TaXRlRG9tYWluSUQp
ICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgY2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50LnN0
ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZf
QUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmNsZWFyU2VudEF0dHJpYnV0aW9ucyBmYWlsZWQgdG8gc3RlcCwgZXJyb3IgbWVzc2Fn
ZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgICAgIGNsZWFyQXR0
cmlidXRlZFN0YXRlbWVudC5yZXNldCgpOworICAgIH0KK30KKwordm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCkKK3sKKyAgICAvLyBVcGRhdGUgdGhlIGxhc3QgdGlt
ZXIgZmlyZWQgdGltZSB0byBiZSBvbmUgZGF5IGFnby4KKyAgICBhdXRvIHllc3RlcmRheSA9IChX
YWxsVGltZTo6bm93KCkgLSAyNF9oKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CisgICAg
YXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV91cGRhdGVUaW1l
ckxhc3RGaXJlZFN0YXRlbWVudCwgdXBkYXRlVGltZXJMYXN0RmlyZWRRdWVyeSwgImluc2VydEV4
cGlyZWRBdHRyaWJ1dGlvblRlc3RpbmciX3MpOworICAgIGlmICghc2NvcGVkU3RhdGVtZW50Cisg
ICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZERvdWJsZSgxLCB5ZXN0ZXJkYXkpICE9IFNR
TElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9O
RSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RXhwaXJlZEF0dHJpYnV0aW9uVGVzdGlu
ZyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKwor
ICAgIGF1dG8gZXhwaXJlZFRpbWVUb1NlbmQgPSAxX2g7IC8vIE11c3QgYmUgbGVzcyB0aGFuIDEg
ZGF5LgorICAgIAorICAgIGF1dG8gc3RhdGVtZW50ID0gU1FMaXRlU3RhdGVtZW50KG1fZGF0YWJh
c2UsICJVUERBVEUgQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFNFVCBlYXJsaWVz
dFRpbWVUb1NlbmQgPSA/Iik7CisgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRF
X09LCisgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kSW50KDEsIGV4cGlyZWRUaW1lVG9TZW5kLnZh
bHVlKCkpICE9IFNRTElURV9PSworICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElU
RV9ET05FKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9u
SUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBt
X2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgfQorICAgIHJldHVybjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
aAppbmRleCAyNjRlYWFhMDVlNDU3MmNkZTFkMDAyNDUwMWJjNGM5ZjUxN2M3MWViLi40MGM2OTM2
MWFkYTMwZDQ3MDQzZjNlYmFhNjYyZWU0N2YzZTY1YzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtMjcsNiArMjcsNyBAQAog
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIAorI2luY2x1ZGUgIlByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlRGF0YWJhc2UuaD4KQEAgLTU0LDYgKzU1LDEyIEBA
IHN0YXRpYyBjb25zdGV4cHIgc3RkOjphcnJheTx1bnNpZ25lZCwgbnVtYmVyT2ZCdWNrZXRzUGVy
U3RhdGlzdGljPiBidWNrZXRTaXplcyB7CiAKIGNsYXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTsKIAordXNpbmcgQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0g
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7Cit1c2luZyBVbmF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Owor
dXNpbmcgU291cmNlU2l0ZSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2VTaXRlOwordXNpbmcgQXR0cmlidXRlT25TaXRlID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZTsKK3VzaW5nIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEg
PSBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0
YTsKKwogLy8gVGhpcyBpcyBhbHdheXMgY29uc3RydWN0ZWQgLyB1c2VkIC8gZGVzdHJveWVkIG9u
IHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUncyBzdGF0aXN0aWNzIHF1ZXVlLgog
Y2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUgZmluYWwgOiBwdWJsaWMg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIHsKIHB1YmxpYzoKQEAgLTEyNCw2ICsxMzEsMTkg
QEAgcHVibGljOgogICAgIHZvaWQgaW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mLCBib29sIGhhc1VzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1Nj
aGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50KSBvdmVy
cmlkZTsKICAgICB2b2lkIGludGVycnVwdCgpOwogCisgICAgLy8gUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudC4KKyAgICB2b2lkIGluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25UeXBlKSBvdmVycmlkZTsKKyAgICB2b2lkIG1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKSBvdmVycmlkZTsKKyAgICBPcHRp
b25hbDxTZWNvbmRzPiBhdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUmLCBXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKSBvdmVycmlkZTsK
KyAgICBWZWN0b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGFsbEF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChPcHRpb25hbDxSZWdpc3RyYWJsZURvbWFpbj4pIG92ZXJyaWRl
OworICAgIHZvaWQgY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSBvdmVycmlk
ZTsKKyAgICBTdHJpbmcgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZygpIG92ZXJyaWRl
OworICAgIHZvaWQgY2xlYXJTZW50QXR0cmlidXRpb25zKFZlY3RvcjxXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudD4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVUaW1lckxhc3RG
aXJlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVGltZXMoKTsKKwogcHJpdmF0ZToKICAg
ICB2b2lkIGluY2x1ZGVUb2RheUFzT3BlcmF0aW5nRGF0ZUlmTmVjZXNzYXJ5KCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBjbGVhck9wZXJhdGluZ0RhdGVzKCkgb3ZlcnJpZGUgeyB9CkBAIC0yMTMsNiAr
MjMzLDEyIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGVuc3VyZUFuZE1ha2VEb21haW5MaXN0KGNv
bnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jik7CiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lKGNvbnN0IERvbWFpbkRhdGEmKTsKICAgICAK
KyAgICB2b2lkIHJlbW92ZVVuYXR0cmlidXRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwor
ICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IGJ1aWxkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRGcm9tRGF0YWJhc2UoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50KiwgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpOworICAgIFN0cmluZyBhdHRyaWJ1dGlvblRv
U3RyaW5nKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCosIFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25UeXBlKTsKKyAgICBzdGQ6OnBhaXI8T3B0aW9uYWw8VW5hdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBPcHRpb25hbDxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ+PiBmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlJik7CisgICAgV2FsbFRpbWUgdGltZXJM
YXN0RmlyZWQoKTsKKwogICAgIGNvbnN0IFN0cmluZyBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoOwog
ICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFzZTsKICAgICBtdXRh
YmxlIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fb2JzZXJ2ZWRE
b21haW5Db3VudFN0YXRlbWVudDsKQEAgLTI1Miw2ICsyNzgsMjEgQEAgcHJpdmF0ZToKICAgICBt
dXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fdW5pcXVl
UmVkaXJlY3RFeGlzdHNTdGF0ZW1lbnQ7CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX29ic2VydmVkRG9tYWluc0V4aXN0c1N0YXRlbWVudDsK
ICAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1f
cmVtb3ZlQWxsRGF0YVN0YXRlbWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FM
aXRlU3RhdGVtZW50PiBtX2luc2VydFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
U3RhdGVtZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+
IG1faW5zZXJ0QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50OworICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fc2V0VW5hdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRTdGF0ZW1lbnQ7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9jbGVhclVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fY2xlYXJBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRTdGF0ZW1lbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRl
bWVudD4gbV9jbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2FsbFVuYXR0cmli
dXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25zU3RhdGVtZW50OworICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fYWxsQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fZmluZFVuYXR0cmlidXRlZFN0YXRlbWVudDsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2ZpbmRBdHRyaWJ1dGVk
U3RhdGVtZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+
IG1fdXBkYXRlVGltZXJMYXN0RmlyZWRTdGF0ZW1lbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV90aW1lckxhc3RGaXJlZFN0YXRlbWVudDsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX3VwZGF0ZUF0dHJpYnV0
aW9uc0VhcmxpZXN0VGltZVRvU2VuZFN0YXRlbWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX3JlbW92ZVVuYXR0cmlidXRlZFN0YXRlbWVudDsKKyAg
ICAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBib29sIG1faXNOZXdSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VGaWxlIHsgZmFsc2UgfTsKICAgICB1bnNpZ25lZCBt
X29wZXJhdGluZ0RhdGVzU2l6ZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmUuaAppbmRleCBiMTU4NmI5NzlkZDg4ZTRmYmMyYTUxNTgwMzg5
MDIzZmVlZWViZGI1Li5mODVhMTVkYzRmYTYzNWM2OTUzMzYwZjRhNGFlN2M3OGVhY2Y5NjUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCkBA
IC0xMDgsNiArMTA4LDE4IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+
IGFsbERvbWFpbnMoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0
aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgYm9vbCBoYXNVc2VySW50ZXJh
Y3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBp
c1ByZXZhbGVudCkgb3ZlcnJpZGU7CiAKKyAgICAvLyBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50
IGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgSVRQIG1lbW9yeSBzdG9yZS4KKyAgICB2b2lkIGlu
c2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlKSBvdmVycmlkZSB7
IH07CisgICAgdm9pZCBtYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
c0V4cGlyZWRGb3JUZXN0aW5nKCkgb3ZlcnJpZGUgeyB9OworICAgIE9wdGlvbmFsPFNlY29uZHM+
IGF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYpIG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsg
fTsKKyAgICBWZWN0b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGFsbEF0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIHsgfTsgfTsK
KyAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoT3B0aW9uYWw8UmVnaXN0cmFi
bGVEb21haW4+KSBvdmVycmlkZSB7IH07CisgICAgdm9pZCBjbGVhckV4cGlyZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCgpIG92ZXJyaWRlIHsgfTsKKyAgICBTdHJpbmcgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRUb1N0cmluZygpIG92ZXJyaWRlIHsgcmV0dXJuIFN0cmluZygpOyB9OworICAgIHZv
aWQgY2xlYXJTZW50QXR0cmlidXRpb25zKFZlY3RvcjxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudD4mJikgb3ZlcnJpZGUgeyB9OworICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCkgb3ZlcnJpZGUgeyB9OworICAg
IHZvaWQgdXBkYXRlVGltZXJMYXN0RmlyZWQoKSBvdmVycmlkZSB7IH07CisKIHByaXZhdGU6CiAg
ICAgdm9pZCBpbmNsdWRlVG9kYXlBc09wZXJhdGluZ0RhdGVJZk5lY2Vzc2FyeSgpIG92ZXJyaWRl
OwogICAgIGNvbnN0IFZlY3RvcjxPcGVyYXRpbmdEYXRlPiYgb3BlcmF0aW5nRGF0ZXMoKSBjb25z
dCB7IHJldHVybiBtX29wZXJhdGluZ0RhdGVzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmgKaW5kZXggNzdkMDU1Y2NkNzEzNjZiNmJkZjc5YmNhMjQ1ZDg3MTYwYmMz
Njk2OS4uNjJlMDM1YmUwMGQwMTg2NjJhNzUyNmNmOGY5NzEwMDEwZmQ0MWM3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMjAyLDYgKzIwMiwxOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyT3BlcmF0aW5nRGF0ZXMoKSA9IDA7CiAgICAg
dmlydHVhbCBib29sIGhhc1N0YXRpc3RpY3NFeHBpcmVkKFdhbGxUaW1lIG1vc3RSZWNlbnRVc2Vy
SW50ZXJhY3Rpb25UaW1lLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBpbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIGJvb2wgaGFzVXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9y
QWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wpID0gMDsKKyAgICAKKyAgICAvLyBQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50LgorICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBtYXJr
QWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5n
KCkgPSAwOworICAgIHZpcnR1YWwgT3B0aW9uYWw8U2Vjb25kcz4gYXR0cmlidXRlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmli
dXRlT25TaXRlJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEmJikgPSAwOworICAgIHZpcnR1YWwgVmVjdG9yPFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50PiBhbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoT3B0aW9u
YWw8UmVnaXN0cmFibGVEb21haW4+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRXhwaXJl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIHByaXZh
dGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmcoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFy
U2VudEF0dHJpYnV0aW9ucyhWZWN0b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+
JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVUaW1lckxhc3RGaXJlZCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIHN0YXRpYyB1bnNpZ25l
ZCBjb21wdXRlSW1wb3J0YW5jZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmlu
ZGV4IGExNzMwOTg3MmU5Mjg2MzJlYjY1MmI5OTk2YjMwMDg5M2U2OGRiNmMuLjI2Njc2ZTY4ZDU0
N2IyMWFmNmNkZDRjNzg5YjRjM2I0ZGZlNTZmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0xNDc1LDYgKzE0NzUsMjAwIEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9y
VGVzdGluZyhjb25zdCBSZWdpCiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjp1cGRhdGVUaW1lckxhc3RGaXJlZCgpCit7CisgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKKworICAgIGlmIChpc0VwaGVtZXJhbCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBwb3N0VGFzayhbdGhpc10oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX3N0YXRp
c3RpY3NTdG9yZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX3N0YXRpc3RpY3NT
dG9yZS0+dXBkYXRlVGltZXJMYXN0RmlyZWQoKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50KFBy
aXZhdGVDbGlja01lYXN1cmVtZW50JiYgYXR0cmlidXRpb24sIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25UeXBlIGF0dHJpYnV0aW9uVHlwZSkKK3sKKyAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOworCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIHBvc3RUYXNrKFt0aGlzLCBhdHRyaWJ1dGlvbiA9IFdURk1vdmUoYXR0cmlidXRpb24p
LCBhdHRyaWJ1dGlvblR5cGVdKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghbV9zdGF0aXN0aWNz
U3RvcmUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUt
Pmluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50KFdURk1vdmUoYXR0cmlidXRpb24pLCBhdHRy
aWJ1dGlvblR5cGUpOworICAgIH0pOworfQorCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6bWFya0FsbFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBp
cmVkRm9yVGVzdGluZygpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAg
IGlmIChpc0VwaGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwb3N0VGFzayhbdGhp
c10oKSB7CisgICAgICAgIGlmICghbV9zdGF0aXN0aWNzU3RvcmUpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPm1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICB9KTsKK30KKwor
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmF0dHJpYnV0ZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50KGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiBz
b3VyY2VTaXRlLCBjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRl
JiBhdHRyaWJ1dGVPblNpdGUsIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxTZWNvbmRzPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChpc0VwaGVtZXJhbCgpKSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBw
b3N0VGFzayhbdGhpcywgc291cmNlU2l0ZSwgYXR0cmlidXRlT25TaXRlLCBhdHRyaWJ1dGlvblRy
aWdnZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
aWYgKCFtX3N0YXRpc3RpY3NTdG9yZSkgeworICAgICAgICAgICAgcG9zdFRhc2tSZXBseShbY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhdXRv
IHNlY29uZHMgPSBtX3N0YXRpc3RpY3NTdG9yZS0+YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoc291cmNlU2l0ZSwgYXR0cmlidXRlT25TaXRlLCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEpKTsKKyAgICAgICAgcG9zdFRhc2tSZXBseShbc2Vjb25kcywgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHNlY29uZHMpOworICAgICAgICB9KTsKKyAgICB9KTsKK30K
Kwordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmFsbEF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChpc0VwaGVtZXJhbCgpKSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBw
b3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX3N0YXRpc3RpY3NTdG9yZSkgeworICAg
ICAgICAgICAgcG9zdFRhc2tSZXBseShbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcih7IH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBhdXRvIGNvbnZlcnRlZEF0dHJpYnV0aW9ucyA9IG1fc3RhdGlzdGljc1N0
b3JlLT5hbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgcG9z
dFRhc2tSZXBseShbY29udmVydGVkQXR0cmlidXRpb25zID0gV1RGTW92ZShjb252ZXJ0ZWRBdHRy
aWJ1dGlvbnMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSgpIG11dGFibGUgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb252
ZXJ0ZWRBdHRyaWJ1dGlvbnMpKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50
KCkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGlzRXBoZW1l
cmFsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHBvc3RUYXNrKFt0aGlzXSgpIHsKKyAgICAg
ICAgaWYgKCFtX3N0YXRpc3RpY3NTdG9yZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBtX3N0YXRpc3RpY3NTdG9yZS0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXVEY6Om51
bGxvcHQpOworICAgIH0pOworfQorICAgIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGb3JSZWdpc3RyYWJsZURvbWFpbihj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQoreworICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CisKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgcG9zdFRhc2soW3RoaXMsIGRvbWFpbiA9IGRvbWFpbi5pc29sYXRlZENvcHkoKV0oKSBtdXRh
YmxlIHsKKyAgICAgICAgaWYgKCFtX3N0YXRpc3RpY3NTdG9yZSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBtX3N0YXRpc3RpY3NTdG9yZS0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudChkb21haW4pOworICAgIH0pOworfQorCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6Y2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQoreworICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgcG9zdFRhc2soW3RoaXNdKCkgeworICAgICAgICBpZiAoIW1fc3Rh
dGlzdGljc1N0b3JlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fc3RhdGlzdGlj
c1N0b3JlLT5jbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgIH0pOwor
fQorCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRUb1N0cmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlm
IChpc0VwaGVtZXJhbCgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCJcbk5vIHN0b3Jl
ZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IGRhdGEuXG4iX3MpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgcG9zdFRhc2soW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghbV9zdGF0aXN0
aWNzU3RvcmUpIHsKKyAgICAgICAgICAgIHBvc3RUYXNrUmVwbHkoW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0byByZXN1bHQgPSBtX3N0YXRpc3RpY3NT
dG9yZS0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZygpOworICAgICAgICBwb3N0VGFz
a1JlcGx5KFtyZXN1bHQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQp
OworICAgICAgICB9KTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmNsZWFyU2VudEF0dHJpYnV0aW9ucyhWZWN0b3I8V2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ+JiYgYXR0cmlidXRpb25zVG9DbGVhcikKK3sKKyAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIHBvc3RUYXNrKFt0aGlzLCBhdHRyaWJ1dGlvbnNUb0NsZWFyID0gV1RGTW92ZShh
dHRyaWJ1dGlvbnNUb0NsZWFyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX3N0YXRpc3Rp
Y3NTdG9yZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX3N0YXRpc3RpY3NTdG9y
ZS0+Y2xlYXJTZW50QXR0cmlidXRpb25zKFdURk1vdmUoYXR0cmlidXRpb25zVG9DbGVhcikpOwor
ICAgIH0pOworfQorCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bWFya0F0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBvc3RU
YXNrKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSgpIG11dGFibGUgeworICAgICAgICBpZiAobV9zdGF0aXN0aWNzU3RvcmUpCisgICAgICAgICAg
ICBtX3N0YXRpc3RpY3NTdG9yZS0+bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisKKyAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
aAppbmRleCBlM2ZlMzcxOTkzMzEwYmVlZmUyZWNhZjRmNGQ5YTdiNzIwMzM5Mzk5Li5hZTZhZGYy
NjM2NjZmZTVmMGM3ZGEwZTNjZTgwMWYyYjE0OTQ2ZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTY1LDYgKzY2
LDcgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb247CiBjbGFzcyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworZW51
bSBjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTsKIGVudW0gY2xh
c3MgU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzIDogYm9vbDsKIGVudW0gY2xhc3MgU2hvdWxk
SW5jbHVkZUxvY2FsaG9zdCA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIEVuYWJsZVJl
c291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgOiBib29sIHsgTm8sIFllcyB9OwpAQCAtMzA0
LDYgKzMwNiwxOSBAQCBzdHJ1Y3QgVGhpcmRQYXJ0eURhdGEgewogICAgIGJvb2wgaXNFcGhlbWVy
YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRXBoZW1lcmFsID09IFdlYkNvcmU6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3M6OklzRXBoZW1lcmFsOjpZZXM7IH07CiAgICAgdm9pZCBpbnNlcnRFeHBpcmVk
U3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaGFkVXNl
ckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWws
IGJvb2wgaXNQcmV2YWxlbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKKyAgICAv
LyBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50LgorICAgIHZvaWQgaW5zZXJ0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpOworICAgIHZvaWQgbWFya0FsbFVuYXR0cmli
dXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZygpOworICAgIHZv
aWQgYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxTZWNvbmRzPik+JiYpOworICAgIHZvaWQgYWxsQXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50PiYmKT4mJik7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlj
a01lYXN1cmVtZW50KCk7CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50Rm9y
UmVnaXN0cmFibGVEb21haW4oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mKTsKKyAg
ICB2b2lkIGNsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgdm9pZCBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nKT4mJik7CisgICAgdm9pZCBjbGVhclNlbnRBdHRyaWJ1dGlvbnMoVmVjdG9yPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmKTsKKyAgICB2b2lkIHVwZGF0ZVRpbWVyTGFzdEZp
cmVkKCk7CisgICAgdm9pZCBtYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0Fz
RXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKwogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nl
c3Npb24mLCBjb25zdCBTdHJpbmcmLCBTaG91bGRJbmNsdWRlTG9jYWxob3N0LCBXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOGE5ZDJmMzkzOWU3MTg2
YjgxZThhN2VmZDRiYmViNTBhNjNiMmY1OS4uMjkxYTUyNjVjM2EwN2JkODA0NGMzMWEyMjY2NTc5
MDUzZDQwOTFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKQEAgLTI1NjIsNiArMjU2MiwzMyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpz
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vz
cwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmZp
cmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRpbWVySW1tZWRpYXRlbHkoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vz
c2lvbklEKSkKKyAgICAgICAgc2Vzc2lvbi0+ZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGlt
ZXJJbW1lZGlhdGVseSgpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzaW11bGF0ZVJlc291
cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICAgICAg
c2Vzc2lvbi0+cmVjcmVhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNTdG9yZShbdGhpcywgc2Vzc2lv
bklELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBt
dXRhYmxlIHsKKyAgICAgICAgICAgIGZpcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRpbWVySW1t
ZWRpYXRlbHkoc2Vzc2lvbklEKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cisg
ICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICAgICAg
c2Vzc2lvbi0+bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNz
OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMJiYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCmluZGV4IGJlNTI2ZWZmMWU4YzkxZDM2ZWE4OWI4N2U3YjU2Nzk1OGE5NTZm
YjIuLjYwZDM2YmI1NzU2N2YzMjhlN2ZhY2NkMmU4MGEyZTEwYTQzOTgxMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTMzNiw2ICszMzYs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpT
ZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CiAgICAgdm9pZCBj
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVy
cmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Nlc3Npb25SZXN0YXJ0KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJM
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgVVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIApA
QCAtNDc5LDYgKzQ4MSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRTZXJ2aWNlV29ya2VyU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCwgYm9vbCBwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQs
IFN0cmluZyYmIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnksIGNvbnN0IFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYpOwogI2VuZGlmCiAKKyAgICB2b2lkIGZpcmVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFRpbWVySW1tZWRpYXRlbHkoUEFMOjpTZXNzaW9uSUQpOworCiAgICAgY2xh
c3MgU2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXIgewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKICAgICBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAwZjAxOTA1NmU1YjU3ZjUz
MzRiOGNlNzM4MjZlMmZhMDU2ODg5M2JmLi42MDFlMjRjYjI1NjM2ZTE3YmQ1NTRkNjhmMGU4YmZh
ZjUyZGFiMmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTE2NSw2ICsxNjUsOCBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgRHVtcFByaXZhdGVDbGlja01l
YXN1cmVtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFN0cmluZyBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFN0YXRlKSBBc3luYwogICAgIENsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBib29sIHZhbHVlKSAtPiAoKSBBc3luYworICAgIE1hcmtBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+ICgpIEFzeW5jCisgICAgU2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vz
c2lvblJlc3RhcnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsKSAtPiAoKSBBc3luYwogICAgIE1hcmtQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkgLT4gKCkgQXN5bmMKICAgICBHZXRMb2NhbFN0b3JhZ2VPcmlnaW5EZXRhaWxzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxXZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNl
VHJhY2tlcjo6T3JpZ2luRGV0YWlscz4gZGV0YWlscykgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAz
NWU5OTk0ZDc0ZDUxMGFhNGUxNDU4NDhjNzJkMmI1ODVlMGJjMGM4Li4yOTA1ZDUxZTE3YTE2M2Fh
MzQ0YzIzMWFhZGQ0MzY0M2FhZGY4NjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04MTQsMTAgKzgxNCwx
MCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgICsrbV9yZWRpcmVjdENvdW50OwogICAg
IG1fcmVkaXJlY3RSZXNwb25zZSA9IHJlZGlyZWN0UmVzcG9uc2U7CiAKLSAgICBPcHRpb25hbDxQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbj4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb252ZXJzaW9uOworICAgIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRy
aWJ1dGlvblRyaWdnZXJEYXRhPiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJp
Z2dlckRhdGE7CiAgICAgaWYgKCFzZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKSB7Ci0gICAgICAg
IGlmIChhdXRvIHJlc3VsdCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNp
b25SZXF1ZXN0KHJlZGlyZWN0UmVxdWVzdC51cmwoKSkpCi0gICAgICAgICAgICBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb24gPSByZXN1bHQudmFsdWUoKTsKKyAgICAgICAgaWYgKGF1
dG8gcmVzdWx0ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1
ZXN0KHJlZGlyZWN0UmVxdWVzdC51cmwoKSkpCisgICAgICAgICAgICBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSByZXN1bHQudmFsdWUoKTsKICAgICAgICAg
ZWxzZSBpZiAoIXJlc3VsdC5lcnJvcigpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCByZXN1bHQuZXJyb3IoKSk7CiAgICAgfQpAQCAtODI3LDEyICs4MjcsMTIg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICAgICAgbV9jYWNoZS0+c3RvcmVSZWRpcmVj
dChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLCByZWRpcmVjdFJlcXVlc3QsIG1heEFnZUNhcCk7
CiAKICAgICBpZiAobV9uZXR3b3JrTG9hZENoZWNrZXIpIHsKLSAgICAgICAgaWYgKHByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29udmVyc2lvbikKKyAgICAgICAgaWYgKHByaXZhdGVDbGlja01lYXN1
cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKICAgICAgICAgICAgIG1fbmV0d29ya0xvYWRD
aGVja2VyLT5lbmFibGVDb250ZW50RXh0ZW5zaW9uc0NoZWNrKCk7CiAgICAgICAgIG1fbmV0d29y
a0xvYWRDaGVja2VyLT5zdG9yZVJlZGlyZWN0aW9uSWZOZWVkZWQocmVxdWVzdCwgcmVkaXJlY3RS
ZXNwb25zZSk7CiAKICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZWRp
cmVjdGVkUmVxdWVzdDogQ2hlY2tpbmcgcmVkaXJlY3QgdXNpbmcgTmV0d29ya0xvYWRDaGVja2Vy
Iik7Ci0gICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5jaGVja1JlZGlyZWN0aW9uKFdURk1v
dmUocmVxdWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJl
c3BvbnNlKSwgdGhpcywgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpcywgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBtX25ldHdvcmtMb2FkQ2hlY2tlci0+c3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3koKSwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uID0gV1RGTW92
ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pXShhdXRvJiYgcmVzdWx0KSBtdXRh
YmxlIHsKKyAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPmNoZWNrUmVkaXJlY3Rpb24oV1RG
TW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0
UmVzcG9uc2UpLCB0aGlzLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT5zdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSgpLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEgPSBXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCFyZXN1bHQu
aGFzX3ZhbHVlKCkpIHsKICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmVycm9yKCkuaXNDYW5j
ZWxsYXRpb24oKSkgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrUmVk
aXJlY3Rpb24gcmV0dXJuZWQgd2l0aCBhIGNhbmNlbGxhdGlvbiIpOwpAQCAtODY1LDE2ICs4NjUs
MTYgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgbV9zaG91bGRSZXN0YXJ0TG9hZCA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ICE9IG1fbmV0
d29ya0xvYWRDaGVja2VyLT5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSgpOwotICAgICAgICAgICAg
dGhpcy0+Y29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUocmVzdWx0LT5y
ZXF1ZXN0KSwgV1RGTW92ZShyZXN1bHQtPnJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUocmVzdWx0
LT5yZWRpcmVjdFJlc3BvbnNlKSwgV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb24pKTsKKyAgICAgICAgICAgIHRoaXMtPmNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVx
dWVzdChXVEZNb3ZlKHJlc3VsdC0+cmVxdWVzdCksIFdURk1vdmUocmVzdWx0LT5yZWRpcmVjdFJl
cXVlc3QpLCBXVEZNb3ZlKHJlc3VsdC0+cmVkaXJlY3RSZXNwb25zZSksIFdURk1vdmUocHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSk7CiAgICAgICAgIH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVx
dWVzdChXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUo
cmVkaXJlY3RSZXNwb25zZSksIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uKSk7CisgICAgY29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUocmVx
dWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNl
KSwgV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEp
KTsKIH0KIAotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZWRp
cmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlcXVlc3Qm
JiByZWRpcmVjdFJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBP
cHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbj4mJiBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb24pCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29u
dGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IFJlc291cmNlUmVxdWVzdCYmIHJlZGlyZWN0UmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJl
ZGlyZWN0UmVzcG9uc2UsIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhPiYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25Ucmln
Z2VyRGF0YSkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb250aW51ZVdpbGxTZW5k
UmVkaXJlY3RlZFJlcXVlc3Q6IChtX2lzS2VwdEFsaXZlPSVkLCBoYXNBZENsaWNrQ29udmVyc2lv
bj0lZCkiLCBtX2lzS2VwdEFsaXZlLCAhIXByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lv
bik7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJlZGlyZWN0
ZWRSZXF1ZXN0OiAobV9pc0tlcHRBbGl2ZT0lZCwgaGFzQWRDbGlja0NvbnZlcnNpb249JWQpIiwg
bV9pc0tlcHRBbGl2ZSwgISFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEpOwogICAgIEFTU0VSVCghaXNTeW5jaHJvbm91cygpKTsKIAogICAgIGlmIChtX2lzS2Vw
dEFsaXZlKSB7CkBAIC04ODMsOCArODgzLDggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJgogICAg
IH0KIAogICAgIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbiA9IG51bGxwdHI7Ci0gICAg
aWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbiAmJiAobmV0d29ya1Nlc3Npb24g
PSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklE
KCkpKSkKLSAgICAgICAgbmV0d29ya1Nlc3Npb24tPmhhbmRsZVByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29udmVyc2lvbihXVEZNb3ZlKCpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24p
LCByZXF1ZXN0LnVybCgpLCByZWRpcmVjdFJlcXVlc3QpOworICAgIGlmIChwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgJiYgKG5ldHdvcmtTZXNzaW9uID0gbV9j
b25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCgpKSkp
CisgICAgICAgIG5ldHdvcmtTZXNzaW9uLT5oYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb24oV1RGTW92ZSgqcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhKSwgcmVxdWVzdC51cmwoKSwgcmVkaXJlY3RSZXF1ZXN0KTsKIAogICAgIC8vIFdlIHNl
bmQgdGhlIHJlcXVlc3QgYm9keSBzZXBhcmF0ZWx5IGJlY2F1c2UgdGhlIFJlc291cmNlUmVxdWVz
dCBib2R5IG5vcm1hbGx5IGRvZXMgbm90IGdldCBlbmNvZGVkIHdoZW4gc2VudCBvdmVyIElQQywg
YXMgYW4gb3B0aW1pemF0aW9uLgogICAgIC8vIEhvd2V2ZXIsIHdlIHJlYWxseSBuZWVkIHRoZSBi
b2R5IGhlcmUgYmVjYXVzZSBhIHJlZGlyZWN0IGNyb3NzLXNpdGUgbWF5IGNhdXNlIGEgcHJvY2Vz
cy1zd2FwIGFuZCB0aGUgcmVxdWVzdCB0byBzdGFydCBhZ2FpbiBpbiBhIG5ldyBXZWJDb250ZW50
IHByb2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuaAppbmRleCA1NjE1ZmZlNzUzNDVmMjRlMjUxZWJhNmE1MDRlZjNjMTA5
NTBkYmU4Li40NjMzYTE2MjZkZDE0MzYyOTMwYmMxMDEzN2UxNDE3ZGRjNTlmNzYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmgKQEAgLTE5MSw3ICsxOTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9nQ29va2llSW5mb3Jt
YXRpb24oKSBjb25zdDsKICNlbmRpZgogCi0gICAgdm9pZCBjb250aW51ZVdpbGxTZW5kUmVkaXJl
Y3RlZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmIHJlZGlyZWN0UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBP
cHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbj4mJik7
CisgICAgdm9pZCBjb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlZGlyZWN0UmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4mJik7CiAgICAgdm9pZCBk
aWRGaW5pc2hXaXRoUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYpOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ugc2FuaXRpemVS
ZXNwb25zZUlmUG9zc2libGUoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlOjpTYW5pdGl6YXRpb25UeXBlKTsKIApAQCAtMjAyLDcgKzIwMiw3IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIGxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQoY29uc3Qg
TmV0d29ya0NhY2hlOjpDYWNoZTo6UmV0cmlldmVJbmZvJik7CiAKLSAgICB2b2lkIGhhbmRsZVBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6Q29udmVyc2lvbiYmLCBjb25zdCBVUkwmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKTsKKyAgICB2b2lkIGhhbmRsZVByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVy
c2lvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSYmLCBjb25zdCBVUkwmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIAog
ICAgIE9wdGlvbmFsPFNlY29uZHM+IHZhbGlkYXRlQ2FjaGVFbnRyeUZvck1heEFnZUNhcFZhbGlk
YXRpb24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmNwcAppbmRleCA4Y2U1OTE0MTIzNGFlYmY1ZTQ5ZTJiZGM4YTY4MmZiNTg0Y2EyODUxLi5i
YzU1NWVmMjBiMzJkZTM3YjZkMWQwMTViZTU3MTdhZDFhYzVlNjE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtOTAsNyArOTAsNyBA
QCBOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQ
cm9jZXNzLCBjb25zdCBOZXR3b3JrU2VzcwogICAgICwgbV9maXJzdFBhcnR5V2Vic2l0ZURhdGFS
ZW1vdmFsTW9kZShwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmZp
cnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKQogICAgICwgbV9zdGFuZGFsb25lQXBwbGlj
YXRpb25Eb21haW4ocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5z
dGFuZGFsb25lQXBwbGljYXRpb25Eb21haW4pCiAjZW5kaWYKLSAgICAsIG1fcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQobWFrZVVuaXF1ZVJlZjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+
KG5ldHdvcmtQcm9jZXNzLCBwYXJhbWV0ZXJzLnNlc3Npb25JRCkpCisgICAgLCBtX3ByaXZhdGVD
bGlja01lYXN1cmVtZW50KG1ha2VVbmlxdWVSZWY8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyPigqdGhpcywgbmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMuc2Vzc2lvbklEKSkKICAgICAs
IG1fdGVzdFNwZWVkTXVsdGlwbGllcihwYXJhbWV0ZXJzLnRlc3RTcGVlZE11bHRpcGxpZXIpCiAg
ICAgLCBtX2FsbG93c1NlcnZlclByZWNvbm5lY3QocGFyYW1ldGVycy5hbGxvd3NTZXJ2ZXJQcmVj
b25uZWN0KQogewpAQCAtMTg4LDYgKzE4OCwxMSBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sIGVuYWJsZSkKICAgICBmb3J3YXJkUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1NldHRpbmdzKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb246
OmZpcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRpbWVySW1tZWRpYXRlbHkoKQoreworICAgIG1f
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPnN0YXJ0VGltZXIoMF9zKTsKK30KKwogdm9pZCBOZXR3
b3JrU2Vzc2lvbjo6cmVjcmVhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNTdG9yZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgZGVzdHJveVJlc291
cmNlTG9hZFN0YXRpc3RpY3MoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxl
IHsKQEAgLTMwNSwxMiArMzEwLDEyIEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OnJlc2V0Q05BTUVE
b21haW5EYXRhKCkKIAogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6c3RvcmVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIHByaXZhdGVDbGlja01l
YXN1cmVtZW50KQogewotICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPnN0b3JlVW5jb252
ZXJ0ZWQoV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkpOworICAgIG1fcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQtPnN0b3JlVW5hdHRyaWJ1dGVkKFdURk1vdmUocHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQpKTsKIH0KIAotdm9pZCBOZXR3b3JrU2Vzc2lvbjo6aGFuZGxlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb252ZXJzaW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9u
JiYgY29udmVyc2lvbiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCkKK3ZvaWQgTmV0d29ya1Nlc3Npb246OmhhbmRs
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0
IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVj
dFJlcXVlc3QpCiB7Ci0gICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+aGFuZGxlQ29udmVy
c2lvbihXVEZNb3ZlKGNvbnZlcnNpb24pLCByZXF1ZXN0VVJMLCByZWRpcmVjdFJlcXVlc3QpOwor
ICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmhhbmRsZUF0dHJpYnV0aW9uKFdURk1vdmUo
YXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIHJlcXVlc3RVUkwsIHJlZGlyZWN0UmVxdWVzdCk7CiB9
CiAKIHZvaWQgTmV0d29ya1Nlc3Npb246OmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0zMzMs
NiArMzM4LDExIEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1CiAgICAgbV9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC0+c2V0T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcodmFsdWUpOwogfQogCit2b2lk
IE5ldHdvcmtTZXNzaW9uOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0Fz
RXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPm1hcmtBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisKIHZvaWQgTmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYgdXJsKQogewogICAgIG1f
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdURk1v
dmUodXJsKSk7CkBAIC0zNDAsNyArMzUwLDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwmJiB1cmwKIAog
dm9pZCBOZXR3b3JrU2Vzc2lvbjo6bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcoKQogewotICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPm1hcmtBbGxV
bmNvbnZlcnRlZEFzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICBtX3ByaXZhdGVDbGlja01lYXN1
cmVtZW50LT5tYXJrQWxsVW5hdHRyaWJ1dGVkQXNFeHBpcmVkRm9yVGVzdGluZygpOwogfQogCiB2
b2lkIE5ldHdvcmtTZXNzaW9uOjphZGRLZXB0QWxpdmVMb2FkKFJlZjxOZXR3b3JrUmVzb3VyY2VM
b2FkZXI+JiYgbG9hZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5oCmluZGV4IGNhNGE1NzY2N2Q0YjRhYzkyMDQ3YmM3OTQyMTc3MTAxZmYzYmJhMmYu
LjdmNzdiMzI5YmZmN2ZiMjdmNWQ0NGE3ZDczNzU3MWM1N2UzMWNhOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTExNywxMyArMTE3LDE1
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBcHBCb3VuZFNlc3Npb24oKSB7IH0K
ICNlbmRpZgogICAgIHZvaWQgc3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKLSAgICB2b2lkIGhhbmRsZVByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29u
dmVyc2lvbiYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KTsKKyAgICB2b2lkIGhhbmRsZVByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KTsKICAgICB2b2lkIGR1bXBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwog
ICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogICAgIHZvaWQgY2xlYXJQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEZvclJlZ2lzdHJhYmxlRG9tYWluKFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiYpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVy
cmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlKTsKKyAgICB2b2lkIG1hcmtBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwmJik7CiAgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOworICAgIHZvaWQgZmlyZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseSgpOwogCiAgICAgdm9pZCBhZGRLZXB0QWxpdmVM
b2FkKFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+JiYpOwogICAgIHZvaWQgcmVtb3ZlS2VwdEFs
aXZlTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
LmNwcAppbmRleCA4OGJlYWFhNjQxZWZlZGUxYjczMDMzMmNjOWQ4NmYwZjJlZTI4YjU2Li45ODZm
NTcyNjZkZmU5NTBiMWJiMTU5YTdhMjU5YTdlZDUwYWRmZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXIuY3BwCkBAIC00MiwxNCArNDIsMjYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXVzaW5nIFNvdXJjZSA9IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2U7Ci11c2luZyBEZXN0aW5hdGlvbiA9IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpEZXN0aW5hdGlvbjsKLXVzaW5nIERlc3RpbmF0aW9uTWFwID0gSGFzaE1hcDxEZXN0aW5h
dGlvbiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+OwotdXNpbmcgQ29udmVyc2lvbiA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uOwordXNpbmcgU291cmNlU2l0ZSA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlOwordXNpbmcgQXR0cmlidXRlT25TaXRlID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZTsKK3VzaW5nIEF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25Ucmln
Z2VyRGF0YTsKIAogY29uc3RleHByIFNlY29uZHMgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZCB7
IDYwX3MgfTsKIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0b3JlVW5j
b252ZXJ0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGlvbikKK1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyKE5l
dHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgOiBtX2ZpcmVQZW5kaW5nQXR0cmli
dXRpb25SZXF1ZXN0c1RpbWVyKCp0aGlzLCAmUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpmaXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVxdWVzdHMpCisgICAgLCBtX3BpbmdMb2FkRnVuY3Rp
b24oW10oTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbXMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeworICAgICAgICBVTlVT
RURfUEFSQU0ocGFyYW1zKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6UmVz
b3VyY2VFcnJvcigpLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlKCkpOworICAgIH0pCisgICAg
LCBtX25ldHdvcmtTZXNzaW9uKG1ha2VXZWFrUHRyKG5ldHdvcmtTZXNzaW9uKSkKKyAgICAsIG1f
bmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCisgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9u
SUQpCit7CisgICAgc3RhcnRUaW1lcig1X3MpOworfQorCit2b2lkIFByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcjo6c3RvcmVVbmF0dHJpYnV0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQm
JiBhdHRyaWJ1dGlvbikKIHsKICAgICBjbGVhckV4cGlyZWQoKTsKIApAQCAtNTgsMTAgKzcwLDEx
IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdG9yZVVuY29udmVydGVk
KFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJv
YWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVh
c3VyZW1lbnRdIFN0b3JpbmcgYW4gYWQgY2xpY2suIl9zKTsKICAgICB9CiAKLSAgICBtX3VuY29u
dmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuc2V0KHN0ZDo6bWFrZV9wYWlyKGF0dHJp
YnV0aW9uLnNvdXJjZSgpLCBhdHRyaWJ1dGlvbi5kZXN0aW5hdGlvbigpKSwgV1RGTW92ZShhdHRy
aWJ1dGlvbikpOworICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbV9uZXR3
b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQorICAgICAgICByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLT5pbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXVEZNb3ZlKGF0dHJp
YnV0aW9uKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OlVuYXR0cmli
dXRlZCk7CiB9CiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVD
b252ZXJzaW9uKENvbnZlcnNpb24mJiBjb252ZXJzaW9uLCBjb25zdCBVUkwmIHJlcXVlc3RVUkws
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQordm9pZCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVl
c3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQog
ewogICAgIGlmIChtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQogICAgICAgICByZXR1cm47CkBA
IC03MSwxMTIgKzg0LDU1IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpo
YW5kbGVDb252ZXJzaW9uKENvbnZlcnNpb24mJiBjb252ZXJzaW9uLCBjCiAKICAgICBpZiAoIXJl
ZGlyZWN0RG9tYWluLm1hdGNoZXMocmVxdWVzdFVSTCkpIHsKICAgICAgICAgaWYgKFVOTElLRUxZ
KGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVz
ZSB0aGUgSFRUUCByZWRpcmVjdCB3YXMgbm90IHNhbWUtc2l0ZS4iKTsKLSAgICAgICAgICAgIG1f
bmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNz
YWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwg
IltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQg
YmVjYXVzZSB0aGUgSFRUUCByZWRpcmVjdCB3YXMgbm90IHNhbWUtc2l0ZS4iX3MpOworICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkF0dHJpYnV0
aW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgSFRUUCByZWRpcmVjdCB3YXMgbm90IHNh
bWUtc2l0ZS4iKTsKKyAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNv
bGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBB
dHRyaWJ1dGlvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIEhUVFAgcmVkaXJlY3Qgd2Fz
IG5vdCBzYW1lLXNpdGUuIl9zKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgaWYgKHJlZGlyZWN0RG9tYWluLm1hdGNoZXMoZmlyc3RQYXJ0eVVSTCkpIHsKICAgICAg
ICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJzaW9uIHdhcyBub3Qg
YWNjZXB0ZWQgYmVjYXVzZSBpdCB3YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJlY3QgdGhh
dCBpcyBzYW1lLXNpdGUgYXMgdGhlIGZpcnN0LXBhcnR5LiIpOwotICAgICAgICAgICAgbV9uZXR3
b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VT
b3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1By
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNh
dXNlIGl0IHdhcyByZXF1ZXN0ZWQgaW4gYW4gSFRUUCByZWRpcmVjdCB0aGF0IGlzIHNhbWUtc2l0
ZSBhcyB0aGUgZmlyc3QtcGFydHkuIl9zKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8o
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJBdHRyaWJ1dGlvbiB3YXMgbm90IGFjY2VwdGVkIGJl
Y2F1c2UgaXQgd2FzIHJlcXVlc3RlZCBpbiBhbiBIVFRQIHJlZGlyZWN0IHRoYXQgaXMgc2FtZS1z
aXRlIGFzIHRoZSBmaXJzdC1wYXJ0eS4iKTsKKyAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3Mt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltQcml2YXRlIENsaWNr
IE1lYXN1cmVtZW50XSBBdHRyaWJ1dGlvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgaXQgd2Fz
IHJlcXVlc3RlZCBpbiBhbiBIVFRQIHJlZGlyZWN0IHRoYXQgaXMgc2FtZS1zaXRlIGFzIHRoZSBm
aXJzdC1wYXJ0eS4iX3MpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBjb252ZXJ0KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyBXVEZNb3ZlKHJlZGly
ZWN0RG9tYWluKSB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBmaXJz
dFBhcnR5VVJMIH0sIFdURk1vdmUoY29udmVyc2lvbikpOworICAgIGF0dHJpYnV0ZShTb3VyY2VT
aXRlIHsgV1RGTW92ZShyZWRpcmVjdERvbWFpbikgfSwgQXR0cmlidXRlT25TaXRlIHsgZmlyc3RQ
YXJ0eVVSTCB9LCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpKTsKIH0KIAogdm9pZCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0YXJ0VGltZXIoU2Vjb25kcyBzZWNvbmRz
KQogewotICAgIG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNUaW1lci5zdGFydE9uZVNo
b3QobV9pc1J1bm5pbmdUZXN0ID8gMF9zIDogc2Vjb25kcyk7CisgICAgbV9maXJlUGVuZGluZ0F0
dHJpYnV0aW9uUmVxdWVzdHNUaW1lci5zdGFydE9uZVNob3QobV9pc1J1bm5pbmdUZXN0ID8gMF9z
IDogc2Vjb25kcyk7CiB9CiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpj
b252ZXJ0KGNvbnN0IFNvdXJjZSYgc291cmNlLCBjb25zdCBEZXN0aW5hdGlvbiYgZGVzdGluYXRp
b24sIENvbnZlcnNpb24mJiBjb252ZXJzaW9uKQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OmF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBB
dHRyaWJ1dGVPblNpdGUmIGF0dHJpYnV0ZU9uU2l0ZSwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYm
IGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpCiB7Ci0gICAgY2xlYXJFeHBpcmVkKCk7Ci0KLSAgICBp
ZiAoIWNvbnZlcnNpb24uaXNWYWxpZCgpKSB7Ci0gICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01v
ZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCAiR290IGFuIGludmFsaWQgY29udmVyc2lvbi4iKTsKLSAgICAgICAgICAg
IG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBN
ZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJv
ciwgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBHb3QgYW4gaW52YWxpZCBjb252ZXJzaW9u
LiJfcyk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8gY29u
dmVyc2lvbkRhdGEgPSBjb252ZXJzaW9uLmRhdGE7Ci0gICAgYXV0byBjb252ZXJzaW9uUHJpb3Jp
dHkgPSBjb252ZXJzaW9uLnByaW9yaXR5OwotCi0gICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVu
YWJsZWQoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgIkdvdCBhIGNvbnZlcnNpb24gd2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUg
YW5kIHByaW9yaXR5OiAle3B1YmxpY311LiIsIGNvbnZlcnNpb25EYXRhLCBjb252ZXJzaW9uUHJp
b3JpdHkpOwotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2Fn
ZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1l
c3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRd
IEdvdCBhIGNvbnZlcnNpb24gd2l0aCBjb252ZXJzaW9uIGRhdGE6ICciX3MsIGNvbnZlcnNpb25E
YXRhLCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIGNvbnZlcnNpb25Qcmlvcml0eSwgIicuIl9zKSk7
Ci0gICAgfQotCi0gICAgYXV0byBzZWNvbmRzVW50aWxTZW5kID0gU2Vjb25kczo6aW5maW5pdHko
KTsKLQotICAgIGF1dG8gcGFpciA9IHN0ZDo6bWFrZV9wYWlyKHNvdXJjZSwgZGVzdGluYXRpb24p
OwotICAgIGF1dG8gcHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24gPSBtX3VuY29udmVy
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAudGFrZShwYWlyKTsKLSAgICBhdXRvIHByZXZp
b3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXIgPSBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFwLmZpbmQocGFpcik7Ci0KLSAgICBpZiAoIXByZXZpb3VzbHlVbmNvbnZlcnRl
ZEF0dHJpYnV0aW9uLmlzRW1wdHkoKSkgewotICAgICAgICAvLyBBbHdheXMgY29udmVydCB0aGUg
cGVuZGluZyBhdHRyaWJ1dGlvbiBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIHVuY29udmVydGVkIG1h
cC4KLSAgICAgICAgaWYgKGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kID0gcHJldmlvdXNs
eVVuY29udmVydGVkQXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChX
VEZNb3ZlKGNvbnZlcnNpb24pKSkgewotICAgICAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9ICpv
cHRpb25hbFNlY29uZHNVbnRpbFNlbmQ7Ci0gICAgICAgICAgICBBU1NFUlQoc2Vjb25kc1VudGls
U2VuZCAhPSBTZWNvbmRzOjppbmZpbml0eSgpKTsKLQotICAgICAgICAgICAgaWYgKFVOTElLRUxZ
KGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZP
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQ29udmVydGVkIGEgc3RvcmVkIGFkIGNsaWNrIHdp
dGggY29udmVyc2lvbiBkYXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dS4i
LCBjb252ZXJzaW9uRGF0YSwgY29udmVyc2lvblByaW9yaXR5KTsKLSAgICAgICAgICAgICAgICBt
X25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVz
c2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywg
bWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnRlZCBhIHN0b3Jl
ZCBhZCBjbGljayB3aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRhdGEsICIn
IGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJy4iX3MpKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChwcmV2aW91c2x5Q29udmVydGVkQXR0
cmlidXRpb25JdGVyID09IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuZW5k
KCkpCi0gICAgICAgICAgICBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLmFk
ZChwYWlyLCBXVEZNb3ZlKHByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uKSk7Ci0gICAg
ICAgIGVsc2UgaWYgKHByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uLmhhc0hpZ2hlclBy
aW9yaXR5VGhhbihwcmV2aW91c2x5Q29udmVydGVkQXR0cmlidXRpb25JdGVyLT52YWx1ZSkpIHsK
LSAgICAgICAgICAgIC8vIElmIHRoZSBuZXdseSBjb252ZXJ0ZWQgYXR0cmlidXRpb24gaGFzIGhp
Z2hlciBwcmlvcml0eSwgcmVwbGFjZSB0aGUgb2xkIG9uZS4KLSAgICAgICAgICAgIG1fY29udmVy
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuc2V0KHBhaXIsIFdURk1vdmUocHJldmlvdXNs
eVVuY29udmVydGVkQXR0cmlidXRpb24pKTsKLQotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRl
YnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50LCAiUmVwbGFjZWQgYSBwcmV2aW91c2x5IGNvbnZlcnRlZCBh
ZCBjbGljayB3aXRoIGEgbmV3IG9uZSB3aXRoIGNvbnZlcnNpb24gZGF0YTogJXtwdWJsaWN9dSBh
bmQgcHJpb3JpdHk6ICV7cHVibGljfXUgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiIs
IGNvbnZlcnNpb25EYXRhLCBjb252ZXJzaW9uUHJpb3JpdHkpOwotICAgICAgICAgICAgICAgIG1f
bmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNz
YWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBt
YWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gUmVwbGFjZWQgYSBwcmV2aW91
c2x5IGNvbnZlcnRlZCBhZCBjbGljayB3aXRoIGEgbmV3IG9uZSB3aXRoIGNvbnZlcnNpb24gZGF0
YTogJyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lv
blByaW9yaXR5LCAiJyBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIl9zKSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKHByZXZpb3VzbHlDb252ZXJ0ZWRB
dHRyaWJ1dGlvbkl0ZXIgIT0gbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5l
bmQoKSkgewotICAgICAgICAvLyBJZiB3ZSBoYXZlIG5vIG5ld2x5IGNvbnZlcnRlZCBhdHRyaWJ1
dGlvbiwgcmUtY29udmVydCB0aGUgb2xkIG9uZSB0byByZXNwZWN0IHRoZSBuZXcgcHJpb3JpdHku
Ci0gICAgICAgIGlmIChhdXRvIG9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZCA9IHByZXZpb3VzbHlD
b252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXItPnZhbHVlLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVU
b1NlbmQoV1RGTW92ZShjb252ZXJzaW9uKSkpIHsKLSAgICAgICAgICAgIHNlY29uZHNVbnRpbFNl
bmQgPSAqb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kOwotICAgICAgICAgICAgQVNTRVJUKHNlY29u
ZHNVbnRpbFNlbmQgIT0gU2Vjb25kczo6aW5maW5pdHkoKSk7Ci0KLSAgICAgICAgICAgIGlmIChV
TkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIlJlLWNvbnZlcnRlZCBhbiBhZCBjbGlj
ayB3aXRoIGEgbmV3IG9uZSB3aXRoIGNvbnZlcnNpb24gZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJp
b3JpdHk6ICV7cHVibGljfXUgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiIsIGNvbnZl
cnNpb25EYXRhLCBjb252ZXJzaW9uUHJpb3JpdHkpOwotICAgICAgICAgICAgICAgIG1fbmV0d29y
a1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291
cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3Ry
aW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gUmUtY29udmVydGVkIGFuIGFkIGNsaWNr
IHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0
YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInJyBiZWNhdXNl
IGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIl9zKSk7CisgICAgaWYgKGF1dG8qIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBtX25ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkp
IHsKKyAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+YXR0cmlidXRlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgYXR0cmlidXRlT25TaXRlLCBXVEZNb3ZlKGF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEpLCBbdGhpc10gKGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kKSB7
CisgICAgICAgICAgICBpZiAob3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kKSB7CisgICAgICAgICAg
ICAgICAgYXV0byBzZWNvbmRzVW50aWxTZW5kID0gKm9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZDsK
KyAgICAgICAgICAgICAgICBpZiAobV9maXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVxdWVzdHNUaW1l
ci5pc0FjdGl2ZSgpICYmIG1fZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzVGltZXIubmV4
dEZpcmVJbnRlcnZhbCgpIDwgc2Vjb25kc1VudGlsU2VuZCkKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQo
KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgIlNldHRpbmcgdGltZXIgZm9yIGZpcmluZyBhdHRyaWJ1dGlvbiByZXF1ZXN0
cyB0byB0aGUgZGVidWcgbW9kZSB0aW1lb3V0IG9mICV7cHVibGljfWYgc2Vjb25kcyB3aGVyZSB0
aGUgcmVndWxhciB0aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAle3B1YmxpY31mIHNlY29uZHMuIiwg
ZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCksIHNlY29uZHNVbnRpbFNlbmQuc2Vj
b25kcygpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNr
IE1lYXN1cmVtZW50XSBTZXR0aW5nIHRpbWVyIGZvciBmaXJpbmcgYXR0cmlidXRpb24gcmVxdWVz
dHMgdG8gdGhlIGRlYnVnIG1vZGUgdGltZW91dCBvZiAiX3MsIGRlYnVnTW9kZVNlY29uZHNVbnRp
bFNlbmQuc2Vjb25kcygpLCAiIHNlY29uZHMgd2hlcmUgdGhlIHJlZ3VsYXIgdGltZW91dCB3b3Vs
ZCBoYXZlIGJlZW4gIl9zLCBzZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSwgIiBzZWNvbmRzLiJf
cykpOworICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9IGRlYnVnTW9k
ZVNlY29uZHNVbnRpbFNlbmQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN0
YXJ0VGltZXIoc2Vjb25kc1VudGlsU2VuZCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICBpZiAoc2Vjb25kc1VudGlsU2VuZCA9PSBTZWNvbmRzOjppbmZpbml0eSgpKQot
ICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgaWYgKG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVx
dWVzdHNUaW1lci5pc0FjdGl2ZSgpICYmIG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNU
aW1lci5uZXh0RmlyZUludGVydmFsKCkgPCBzZWNvbmRzVW50aWxTZW5kKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICBS
RUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiU2V0dGluZyB0aW1lciBm
b3IgZmlyaW5nIGNvbnZlcnNpb24gcmVxdWVzdHMgdG8gdGhlIGRlYnVnIG1vZGUgdGltZW91dCBv
ZiAle3B1YmxpY31mIHNlY29uZHMgd2hlcmUgdGhlIHJlZ3VsYXIgdGltZW91dCB3b3VsZCBoYXZl
IGJlZW4gJXtwdWJsaWN9ZiBzZWNvbmRzLiIsIGRlYnVnTW9kZVNlY29uZHNVbnRpbFNlbmQuc2Vj
b25kcygpLCBzZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSk7Ci0gICAgICAgIG1fbmV0d29ya1By
b2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5n
KCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gU2V0dGluZyB0aW1lciBmb3IgZmlyaW5nIGNv
bnZlcnNpb24gcmVxdWVzdHMgdG8gdGhlIGRlYnVnIG1vZGUgdGltZW91dCBvZiAiX3MsIGRlYnVn
TW9kZVNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpLCAiIHNlY29uZHMgd2hlcmUgdGhlIHJlZ3Vs
YXIgdGltZW91dCB3b3VsZCBoYXZlIGJlZW4gIl9zLCBzZWNvbmRzVW50aWxTZW5kLnNlY29uZHMo
KSwgIiBzZWNvbmRzLiJfcykpOwotICAgICAgICBzZWNvbmRzVW50aWxTZW5kID0gZGVidWdNb2Rl
U2Vjb25kc1VudGlsU2VuZDsKKyAgICAgICAgfSk7CiAgICAgfQotCi0gICAgc3RhcnRUaW1lcihz
ZWNvbmRzVW50aWxTZW5kKTsKIH0KIAogdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OmZpcmVDb252ZXJzaW9uUmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYg
YXR0cmlidXRpb24pCiB7Ci0gICAgYXV0byBjb252ZXJzaW9uVVJMID0gbV9jb252ZXJzaW9uQmFz
ZVVSTEZvclRlc3RpbmcgPyAqbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3RpbmcgOiBhdHRyaWJ1
dGlvbi5yZXBvcnRVUkwoKTsKLSAgICBpZiAoY29udmVyc2lvblVSTC5pc0VtcHR5KCkgfHwgIWNv
bnZlcnNpb25VUkwuaXNWYWxpZCgpKQorICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBtX2F0dHJp
YnV0aW9uQmFzZVVSTEZvclRlc3RpbmcgPyAqbV9hdHRyaWJ1dGlvbkJhc2VVUkxGb3JUZXN0aW5n
IDogYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7CisgICAgaWYgKGF0dHJpYnV0aW9uVVJMLmlzRW1w
dHkoKSB8fCAhYXR0cmlidXRpb25VUkwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IFdURk1vdmUoY29udmVyc2lvblVSTCkgfTsKKyAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IFdURk1vdmUoYXR0cmlidXRpb25VUkwpIH07CiAg
ICAgCiAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJQT1NUIl9zKTsKICAgICByZXF1ZXN0LnNl
dEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q2FjaGVDb250cm9sLCBXZWJDb3JlOjpI
VFRQSGVhZGVyVmFsdWVzOjptYXhBZ2UwKCkpOwpAQCAtMjAwLDggKzE1Niw4IEBAIHZvaWQgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3QoY29uc3Qg
UHJpdmF0ZUNsaWNrTWVhCiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkUmVzdHJpY3RIVFRQUmVz
cG9uc2VBY2Nlc3MgPSBmYWxzZTsKIAogICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVk
KCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
ICJBYm91dCB0byBmaXJlIGFuIGF0dHJpYnV0aW9uIHJlcXVlc3QgZm9yIGEgY29udmVyc2lvbi4i
KTsKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9z
ZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUg
YW4gYXR0cmlidXRpb24gcmVxdWVzdCBmb3IgYSBjb252ZXJzaW9uLiJfcyk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJBYm91dCB0byBmaXJlIGFu
IGF0dHJpYnV0aW9uIHJlcXVlc3QuIik7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2Fk
Y2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50XSBBYm91dCB0byBmaXJlIGFuIGF0dHJpYnV0aW9uIHJlcXVlc3QuIl9zKTsKICAgICB9
CiAKICAgICBtX3BpbmdMb2FkRnVuY3Rpb24oV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYg
ZXJyb3IsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSB7CkBAIC0y
MjEsMTExICsxNzcsOTIgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZp
cmVDb252ZXJzaW9uUmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWEKICAgICB9KTsKIH0KIAot
dm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVQZW5kaW5nQ29udmVyc2lv
blJlcXVlc3RzKCkKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhclNl
bnRBdHRyaWJ1dGlvbnMoVmVjdG9yPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIHNlbnRDb252
ZXJzaW9ucykKIHsKLSAgICBhdXRvIG5leHRUaW1lVG9GaXJlID0gU2Vjb25kczo6aW5maW5pdHko
KTsKLSAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hcC52YWx1ZXMoKSkgewotICAgICAgICBpZiAoYXR0cmlidXRpb24ud2FzQ29u
dmVyc2lvblNlbnQoKSkgewotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBhdXRvIGVhcmxpZXN0VGltZVRv
U2VuZCA9IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGltZVRvU2VuZCgpOwotICAgICAgICBpZiAoIWVh
cmxpZXN0VGltZVRvU2VuZCkgewotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQorICAgIGlmIChhdXRvKiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzID0gbV9uZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygp
KQorICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5jbGVhclNlbnRBdHRyaWJ1dGlvbnMo
V1RGTW92ZShzZW50Q29udmVyc2lvbnMpKTsKK30KIAotICAgICAgICBhdXRvIG5vdyA9IFdhbGxU
aW1lOjpub3coKTsKLSAgICAgICAgaWYgKCplYXJsaWVzdFRpbWVUb1NlbmQgPD0gbm93IHx8IG1f
aXNSdW5uaW5nVGVzdCB8fCBkZWJ1Z01vZGVFbmFibGVkKCkpIHsKLSAgICAgICAgICAgIGZpcmVD
b252ZXJzaW9uUmVxdWVzdChhdHRyaWJ1dGlvbik7Ci0gICAgICAgICAgICBhdHRyaWJ1dGlvbi5t
YXJrQ29udmVyc2lvbkFzU2VudCgpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0K
K3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjp1cGRhdGVUaW1lckxhc3RGaXJl
ZCgpCit7CisgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBtX25ldHdvcmtT
ZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCisgICAgICAgIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MtPnVwZGF0ZVRpbWVyTGFzdEZpcmVkKCk7Cit9CiAKLSAgICAgICAgYXV0byBzZWNv
bmRzID0gKmVhcmxpZXN0VGltZVRvU2VuZCAtIG5vdzsKLSAgICAgICAgbmV4dFRpbWVUb0ZpcmUg
PSBzdGQ6Om1pbihuZXh0VGltZVRvRmlyZSwgc2Vjb25kcyk7Ci0gICAgfQordm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVQZW5kaW5nQXR0cmlidXRpb25SZXF1ZXN0cygp
Cit7CisgICAgYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG1fbmV0d29ya1Nlc3Npb24t
PnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKTsKKyAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MpCisgICAgICAgIHJldHVybjsKIAotICAgIG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYXAucmVtb3ZlSWYoW10oYXV0byYga2V5QW5kVmFsdWUpIHsKLSAgICAgICAgcmV0dXJu
IGtleUFuZFZhbHVlLnZhbHVlLndhc0NvbnZlcnNpb25TZW50KCk7Ci0gICAgfSk7CisgICAgcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy0+YWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
KFt0aGlzXSAoYXV0byYmIGF0dHJpYnV0aW9ucykgeworICAgICAgICBhdXRvIG5leHRUaW1lVG9G
aXJlID0gU2Vjb25kczo6aW5maW5pdHkoKTsKKyAgICAgICAgVmVjdG9yPFByaXZhdGVDbGlja01l
YXN1cmVtZW50PiBzZW50QXR0cmlidXRpb25zOworICAgICAgICAKKyAgICAgICAgZm9yIChhdXRv
JiBhdHRyaWJ1dGlvbiA6IGF0dHJpYnV0aW9ucykgeworICAgICAgICAgICAgYXV0byBlYXJsaWVz
dFRpbWVUb1NlbmQgPSBhdHRyaWJ1dGlvbi5lYXJsaWVzdFRpbWVUb1NlbmQoKTsKKyAgICAgICAg
ICAgIGlmICghZWFybGllc3RUaW1lVG9TZW5kKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGF1dG8gbm93ID0gV2FsbFRpbWU6Om5vdygpOworICAgICAgICAgICAgaWYg
KCplYXJsaWVzdFRpbWVUb1NlbmQgPD0gbm93IHx8IG1faXNSdW5uaW5nVGVzdCB8fCBkZWJ1Z01v
ZGVFbmFibGVkKCkpIHsKKyAgICAgICAgICAgICAgICBmaXJlQ29udmVyc2lvblJlcXVlc3QoYXR0
cmlidXRpb24pOworICAgICAgICAgICAgICAgIHNlbnRBdHRyaWJ1dGlvbnMuYXBwZW5kKFdURk1v
dmUoYXR0cmlidXRpb24pKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgYXV0byBzZWNvbmRzID0gKmVhcmxpZXN0VGltZVRvU2VuZCAtIG5v
dzsKKyAgICAgICAgICAgIG5leHRUaW1lVG9GaXJlID0gc3RkOjptaW4obmV4dFRpbWVUb0ZpcmUs
IHNlY29uZHMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjbGVhclNlbnRBdHRyaWJ1
dGlvbnMoV1RGTW92ZShzZW50QXR0cmlidXRpb25zKSk7CisgICAgICAgIHVwZGF0ZVRpbWVyTGFz
dEZpcmVkKCk7CiAKLSAgICBpZiAobmV4dFRpbWVUb0ZpcmUgPCBTZWNvbmRzOjppbmZpbml0eSgp
KQotICAgICAgICBzdGFydFRpbWVyKG5leHRUaW1lVG9GaXJlKTsKKyAgICAgICAgaWYgKG5leHRU
aW1lVG9GaXJlIDwgU2Vjb25kczo6aW5maW5pdHkoKSkKKyAgICAgICAgICAgIHN0YXJ0VGltZXIo
bmV4dFRpbWVUb0ZpcmUpOworICAgIH0pOwogfQogCiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcjo6Y2xlYXIoKQogewotICAgIG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVz
dHNUaW1lci5zdG9wKCk7Ci0gICAgbV91bmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFwLmNsZWFyKCk7Ci0gICAgbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5j
bGVhcigpOworICAgIG1fZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzVGltZXIuc3RvcCgp
OworCisgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBtX25ldHdvcmtTZXNz
aW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCisgICAgICAgIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MtPmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKIH0KIAogdm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKIHsKLSAgICBtX3VuY29udmVydGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYXAucmVtb3ZlSWYoWyZkb21haW5dKGF1dG8mIGtleUFuZFZhbHVlKSB7
Ci0gICAgICAgIHJldHVybiBrZXlBbmRWYWx1ZS5rZXkuZmlyc3QucmVnaXN0cmFibGVEb21haW4g
PT0gZG9tYWluIHx8IGtleUFuZFZhbHVlLmtleS5zZWNvbmQucmVnaXN0cmFibGVEb21haW4gPT0g
ZG9tYWluOwotICAgIH0pOwotCi0gICAgbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hcC5yZW1vdmVJZihbJmRvbWFpbl0oYXV0byYga2V5QW5kVmFsdWUpIHsKLSAgICAgICAgcmV0
dXJuIGtleUFuZFZhbHVlLmtleS5maXJzdC5yZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW4gfHwg
a2V5QW5kVmFsdWUua2V5LnNlY29uZC5yZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW47Ci0gICAg
fSk7CisgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBtX25ldHdvcmtTZXNz
aW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCisgICAgICAgIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MtPmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGb3JSZWdpc3RyYWJsZURvbWFpbihk
b21haW4pOwogfQogCiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXJF
eHBpcmVkKCkKIHsKLSAgICBtX3VuY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAu
cmVtb3ZlSWYoW10oYXV0byYga2V5QW5kVmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGtleUFuZFZh
bHVlLnZhbHVlLmhhc0V4cGlyZWQoKTsKLSAgICB9KTsKKyAgICBpZiAoYXV0byogcmVzb3VyY2VM
b2FkU3RhdGlzdGljcyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
KSkKKyAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+Y2xlYXJFeHBpcmVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoKTsKIH0KIAogdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OnRvU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgY29uc3QKIHsKLSAgICBpZiAobV91bmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFwLmlzRW1wdHkoKSAmJiBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFwLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCJcbk5vIHN0
b3JlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IGRhdGEuXG4iX3MpOwotCi0gICAgdW5zaWdu
ZWQgdW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlciA9IDA7Ci0gICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwotICAgIGZvciAoYXV0byYgYXR0cmlidXRpb24gOiBtX3VuY29udmVydGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYXAudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKCF1bmNvbnZlcnRl
ZEF0dHJpYnV0aW9uTnVtYmVyKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJV
bmNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czpcbiIpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAiKTsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmROdW1iZXIoKyt1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyKTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0dHJp
YnV0aW9uLnRvU3RyaW5nKCkpOwotfQotCi0gICAgdW5zaWduZWQgY29udmVydGVkQXR0cmlidXRp
b25OdW1iZXIgPSAwOwotICAgIGZvciAoYXV0byYgYXR0cmlidXRpb24gOiBtX2NvbnZlcnRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmICh1bmNvbnZl
cnRlZEF0dHJpYnV0aW9uTnVtYmVyKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7
Ci0gICAgICAgIGlmICghY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCi0gICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIkNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50
czpcbiIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsK
LSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCAiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoKytjb252ZXJ0ZWRBdHRy
aWJ1dGlvbk51bWJlciArIHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoYXR0cmlidXRpb24u
dG9TdHJpbmcoKSk7Ci0gICAgfQotCi0gICAgY29tcGxldGlvbkhhbmRsZXIoYnVpbGRlci50b1N0
cmluZygpKTsKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG1fbmV0d29y
a1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZyhXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpzZXRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwmJiB0ZXN0VVJMKQogewogICAgIGlmICh0
ZXN0VVJMLmlzRW1wdHkoKSkKLSAgICAgICAgbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3Rpbmcg
PSB7IH07CisgICAgICAgIG1fYXR0cmlidXRpb25CYXNlVVJMRm9yVGVzdGluZyA9IHsgfTsKICAg
ICBlbHNlCi0gICAgICAgIG1fY29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5nID0gV1RGTW92ZSh0
ZXN0VVJMKTsKKyAgICAgICAgbV9hdHRyaWJ1dGlvbkJhc2VVUkxGb3JUZXN0aW5nID0gV1RGTW92
ZSh0ZXN0VVJMKTsKIH0KIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6Om1h
cmtBbGxVbmNvbnZlcnRlZEFzRXhwaXJlZEZvclRlc3RpbmcoKQordm9pZCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6Om1hcmtBbGxVbmF0dHJpYnV0ZWRBc0V4cGlyZWRGb3JUZXN0aW5n
KCkKIHsKLSAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV91bmNvbnZlcnRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFwLnZhbHVlcygpKQotICAgICAgICBhdHRyaWJ1dGlvbi5tYXJrQXNF
eHBpcmVkKCk7CisgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBtX25ldHdv
cmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCisgICAgICAgIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MtPm1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFz
RXhwaXJlZEZvclRlc3RpbmcoKTsKIH0KIAogYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXI6OmRlYnVnTW9kZUVuYWJsZWQoKSBjb25zdApAQCAtMzMzLDQgKzI3MCwxMyBAQCBib29s
IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0
CiAgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkKCkgJiYgIW1fc2Vzc2lvbklELmlz
RXBoZW1lcmFsKCk7CiB9CiAKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpt
YXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmco
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlm
IChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbV9uZXR3b3JrU2Vzc2lvbi0+cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcygpKSB7CisgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPm1h
cmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIuaAppbmRleCA0M2Q0MzcxYjY3ZGY1OTg5MmZiN2ViZDQ1YTUxNDlkMmU5
ZDhiZDYxLi5mOTZhYzRlZDAyZGRmZmE4ZWIyMzcyZDAzYWFkNDcxOGEzZGRkYmZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyLmgKQEAgLTQwLDUxICs0MCw0NiBAQAogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAorZW51bSBjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlw
ZSB7IFVuYXR0cmlidXRlZCwgQXR0cmlidXRlZCB9OworCiBjbGFzcyBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAK
ICAgICB1c2luZyBSZWdpc3RyYWJsZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
OwogICAgIHVzaW5nIFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ7Ci0gICAgdXNpbmcgU291cmNlID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OlNvdXJjZTsKLSAgICB1c2luZyBEZXN0aW5hdGlvbiA9IFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjsKLSAgICB1c2luZyBDb252ZXJzaW9u
ID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb247CisgICAgdXNp
bmcgU291cmNlU2l0ZSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VT
aXRlOworICAgIHVzaW5nIEF0dHJpYnV0ZU9uU2l0ZSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGU7CisgICAgdXNpbmcgQXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhOwogCi0gICAgZXhwbGljaXQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyKE5l
dHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQot
ICAgICAgICA6IG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNUaW1lcigqdGhpcywgJlBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVz
dHMpCi0gICAgICAgICwgbV9waW5nTG9hZEZ1bmN0aW9uKFtdKE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzJiYgcGFyYW1zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpIHsKLSAgICAgICAgICAgIFVOVVNFRF9QQVJBTShwYXJhbXMpOwotICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6UmVzb3VyY2VFcnJvcigpLCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlKCkpOwotICAgICAgICB9KQotICAgICAgICAsIG1fbmV0d29y
a1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCi0gICAgICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklE
KQotICAgIHsKLSAgICB9CisgICAgZXhwbGljaXQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCk7CiAK
LSAgICB2b2lkIHN0b3JlVW5jb252ZXJ0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7Ci0g
ICAgdm9pZCBoYW5kbGVDb252ZXJzaW9uKENvbnZlcnNpb24mJiwgY29uc3QgVVJMJiByZXF1ZXN0
VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCk7Cisg
ICAgdm9pZCBzdG9yZVVuYXR0cmlidXRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKKyAg
ICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3Qg
VVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0
UmVxdWVzdCk7CiAgICAgdm9pZCBjbGVhcigpOwogICAgIHZvaWQgY2xlYXJGb3JSZWdpc3RyYWJs
ZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIHZvaWQgdG9TdHJpbmcoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBjb25zdDsKICAgICB2b2lkIHNldFBpbmdM
b2FkRnVuY3Rpb24oRnVuY3Rpb248dm9pZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpPiYmIHBpbmdMb2FkRnVuY3Rpb24p
IHsgbV9waW5nTG9hZEZ1bmN0aW9uID0gV1RGTW92ZShwaW5nTG9hZEZ1bmN0aW9uKTsgfQogICAg
IHZvaWQgc2V0T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSkgeyBtX2lzUnVubmlu
Z1Rlc3QgPSB2YWx1ZTsgfQogICAgIHZvaWQgc2V0Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJM
JiYpOwotICAgIHZvaWQgbWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVzdGluZygpOwor
ICAgIHZvaWQgbWFya0FsbFVuYXR0cmlidXRlZEFzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICB2
b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVz
dGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc3RhcnRUaW1lcihT
ZWNvbmRzKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHN0YXJ0VGltZXIoU2Vjb25kcyk7Ci0gICAg
dm9pZCBjb252ZXJ0KGNvbnN0IFNvdXJjZSYsIGNvbnN0IERlc3RpbmF0aW9uJiwgQ29udmVyc2lv
biYmKTsKKyAgICB2b2lkIGNsZWFyU2VudEF0dHJpYnV0aW9ucyhWZWN0b3I8UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+JiYpOworICAgIHZvaWQgYXR0cmlidXRlKGNvbnN0IFNvdXJjZVNpdGUmLCBj
b25zdCBBdHRyaWJ1dGVPblNpdGUmLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYpOwogICAgIHZv
aWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50Jik7
Ci0gICAgdm9pZCBmaXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0cygpOworICAgIHZvaWQgZmly
ZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzKCk7CiAgICAgdm9pZCBjbGVhckV4cGlyZWQoKTsK
ICAgICBib29sIGRlYnVnTW9kZUVuYWJsZWQoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZVRpbWVy
TGFzdEZpcmVkKCk7CiAKLSAgICBIYXNoTWFwPHN0ZDo6cGFpcjxTb3VyY2UsIERlc3RpbmF0aW9u
PiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hcDsKLSAgICBIYXNoTWFwPHN0ZDo6cGFpcjxTb3VyY2UsIERlc3RpbmF0aW9uPiwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYXA7Ci0gICAgV2ViQ29yZTo6VGltZXIgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0
c1RpbWVyOworICAgIFdlYkNvcmU6OlRpbWVyIG1fZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVl
c3RzVGltZXI7CiAgICAgRnVuY3Rpb248dm9pZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpPiBtX3BpbmdMb2FkRnVuY3Rp
b247CiAgICAgYm9vbCBtX2lzUnVubmluZ1Rlc3QgeyBmYWxzZSB9OwotICAgIE9wdGlvbmFsPFVS
TD4gbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3Rpbmc7CisgICAgT3B0aW9uYWw8VVJMPiBtX2F0
dHJpYnV0aW9uQmFzZVVSTEZvclRlc3Rpbmc7CisgICAgV2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4g
bV9uZXR3b3JrU2Vzc2lvbjsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nl
c3M7CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggMDY0ODI2Y2IyNWUzNTY0YTEzMDVkNDM0YjM4
NDBhYTM0ZWZmYzk2ZC4uZWU1MTE5ZmQwY2MyNmNiOGUxNTAzNzE5NTAwZDkyN2U0MWFiNDJhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0yODkxLDYgKzI4
OTEsMjAgQEAgdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGlt
ZXJGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBib28KICAgICB9KTsKIH0KIAordm9pZCBXS1Bh
Z2VNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rp
bmcoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZU1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFj
a0NvbnRleHQpCit7CisgICAgdG9JbXBsKHBhZ2UpLT5tYXJrQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJh
Y2tdICgpIHsKKyAgICAgICAgY2FsbGJhY2soY2FsbGJhY2tDb250ZXh0KTsKKyAgICB9KTsKK30K
Kwordm9pZCBXS1BhZ2VTaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFy
dChXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlU2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vz
c2lvblJlc3RhcnRGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQorewor
ICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJl
c3RhcnQoW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2tdICgpIHsKKyAgICAgICAgY2FsbGJhY2so
Y2FsbGJhY2tDb250ZXh0KTsKKyAgICB9KTsKK30KKwogdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VS
TFJlZiBVUkxSZWYsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVS
TEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQogewog
ICAgIHRvSW1wbChwYWdlKS0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJM
Rm9yVGVzdGluZyhVUkwoVVJMKCksIHRvV1RGU3RyaW5nKFVSTFJlZikpLCBbY2FsbGJhY2tDb250
ZXh0LCBjYWxsYmFja10gKCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlUHJpdmF0ZS5oCmluZGV4IGZiZDYxMTlhZmExMWFlMDVhMjJhNjNhNjQ0NzhmM2M4NmRmODIx
OGMuLjcwM2Q2MTljNWFjMmI4N2IxN2Q2MDhiOGFlNjI0Mzk5MjcwMDdlZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKQEAgLTE3NSw2ICsxNzUs
MTAgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZ1
bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUNsZWFy
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV0tQYWdlUmVmLCBXS1BhZ2VDbGVhclByaXZhdGVDbGlj
a01lYXN1cmVtZW50RnVuY3Rpb24sIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0
aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1Bh
Z2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFdLUGFn
ZVJlZiBwYWdlLCBib29sIHZhbHVlLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29u
dGV4dCk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250
ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZU1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlTWFya0F0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rp
b24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0eXBlZGVmIHZvaWQgKCpXS1Bh
Z2VTaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydEZ1bmN0aW9uKSh2
b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2ltdWxhdGVSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZVNp
bXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0RnVuY3Rpb24gY2FsbGJh
Y2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQq
IGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJl
ZiB1cmxTdHJpbmcsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVS
TEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKIHR5
cGVkZWYgdm9pZCAoKldLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAwZjg3NDI4OTkwZGUwMDEzNDM2NzJlMjQ5
NDg5NWFkMTNkNDMzMDI4Li5hNTk4ODlkYzEwZjdhY2YwZmQxMjlhMjQ3ZDM2MTU4ODZjYmE4ZmM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ2NjAsNyAr
NDY2MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmCiAgICAgICAgIGVsc2UgaWYgKG5hdmln
YXRpb24gJiYgbmF2aWdhdGlvbi0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSkKICAgICAgICAg
ICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gbmF2aWdhdGlvbi0+cHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoKTsKICAgICAgICAgaWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50KSB7Ci0gICAg
ICAgICAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmRlc3RpbmF0aW9uKCkubWF0Y2hl
cyhmcmFtZS0+dXJsKCkpKQorICAgICAgICAgICAgaWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50
LT5hdHRyaWJ1dGVPblNpdGUoKS5tYXRjaGVzKGZyYW1lLT51cmwoKSkpCiAgICAgICAgICAgICAg
ICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OlN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQobV93ZWJzaXRlRGF0YVN0
b3JlLT5zZXNzaW9uSUQoKSwgKnByaXZhdGVDbGlja01lYXN1cmVtZW50KSwgMCk7CiAgICAgICAg
IH0KICAgICB9CkBAIC05OTY1LDYgKzk5NjUsMTYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSwK
ICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHZh
bHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0
aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcobV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQo
KSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6
OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICB3ZWJzaXRlRGF0YVN0
b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpTaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCht
X3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b252ZXJzaW9uVVJMRm9yVGVzdGluZyhjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5u
ZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcobV93
ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgdXJsKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4NzlmNzMy
YjExY2IxMjM5NzM4NjU4ZThlNThmYjg3YzUwMzRmMmI4Li5mNzkwY2M2MTA3OWVlYjg0YWM4Njkx
ZjYxM2QzOTAzMzVkZjE5MTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtMTY4OCw2ICsxNjg4LDggQEAgcHVibGljOgogICAgIHZvaWQgZHVtcFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOwog
ICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRp
bWVyRm9yVGVzdGluZyhib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzaW11bGF0
ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9u
VVJMRm9yVGVzdGluZyhjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmco
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ5YzIxZjAyNzk2MWI3MDgzOWYwZWI5MGJhYzgz
NzUwMjIyOGE5ZGYuLjc2MGQwMmZjMzg2ZGE4Y2QyNTM0NTVmOTdiMzc0NmQyY2RmNmM0M2QgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOCBAQAorMjAyMC0xMS0xOSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxl
LmNvbT4KKworICAgICAgICBQQ006IFBlcnNpc3QgcGVuZGluZyBhZCBjbGlja3MgYW5kIGF0dHJp
YnV0aW9ucyBzbyB0aGV5IGNhbiBzdXJ2aXZlIGJyb3dzZXIgcmVzdGFydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MTM0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MDQ3MDEyOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGVzdGluZyBvZiBleHBpcmVkIGFkLWNsaWNr
cyBhbmQgYXR0cmlidXRpb25zLgorICAgICAgICBVcGRhdGUgbmFtZXMgYWZ0ZXIgUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudCBzdGFuZGFyZHMgZGlzY3Vzc2lvbnMuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpU
ZXN0UnVubmVyOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzaW11bGF0ZVJlc291cmNl
TG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjptYXJr
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU2Vzc2lvblJlc3RhcnQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDIwLTExLTE5ICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Via2l0c2NtcHldIFN1cHBvcnQgcmVtb3Rl
IFN1YnZlcnNpb24gcmVwb3NpdG9yeQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggYzU2
Y2JhMmYyNzBhZWQ5NDlhNTRlZThlODMyMmIyYWQ1NmYzODJjYS4uNTE0Mzg4MWFiMDQyZjExMzgy
YTMwYjc1NTJiZDhlMGNjYjM3N2FkYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC00
Myw4ICs0Myw4IEBAIGNvbnN0IFVSTCBlbXB0eVVSTCB7IH07CiAKIFRFU1QoUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQsIFZhbGlkTWluVmFsdWVzKQogewotICAgIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKG1pbjZC
aXRWYWx1ZSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0g
ICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbihtaW42Qml0VmFsdWUsIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpQcmlvcml0eShtaW42Qml0VmFsdWUpKSk7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQobWlu
NkJpdFZhbHVlKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJLaXRV
UkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSB7IGV4YW1wbGVV
UkwgfSB9OworICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2Vu
ZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YShtaW42Qml0
VmFsdWUsIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShtaW42Qml0VmFsdWUpKSk7
CiAKICAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7CiAg
ICAgCkBAIC01NSw4ICs1NSw4IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlk
TWluVmFsdWVzKQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pZFZhbHVl
cykKIHsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpDYW1wYWlnbigodWludDMyX3QpMTIpLCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpE
ZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRH
ZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24o
KHVpbnQzMl90KTQ0LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoKHVpbnQzMl90
KTIyKSkpOworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKCh1aW50MzJfdCkxMiksIFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5h
dHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoKHVpbnQzMl90KTQ0LCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6UHJpb3JpdHkoKHVpbnQzMl90KTIyKSkpOwogCiAgICAgYXV0byBhdHRyaWJ1dGlvblVS
TCA9IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpOwogICAgIApAQCAtNjcsOCArNjcsOCBAQCBURVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pZFZhbHVlcykKIAogVEVTVChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNYXhWYWx1ZXMpCiB7Ci0gICAgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24o
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0
aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRF
YXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKKyAgICBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSksIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRy
aWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKIAogICAgIGF1dG8gYXR0cmlidXRpb25VUkwg
PSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKICAgICAKQEAgLTc5LDkgKzc5LDkgQEAgVEVTVChQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNYXhWYWx1ZXMpCiAKIFRFU1QoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsIEVhcmxpZXN0VGltZVRvU2VuZEF0dHJpYnV0aW9uTWluaW11bURlbGF5
KQogewotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRy
b3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKKyAgICBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSksIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsKICAgICBhdXRv
IG5vdyA9IFdhbGxUaW1lOjpub3coKTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFy
bGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7CisgICAgYXR0
cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7CiAgICAgYXV0byBlYXJsaWVzdFRpbWVUb1Nl
bmQgPSBhdHRyaWJ1dGlvbi5lYXJsaWVzdFRpbWVUb1NlbmQoKTsKICAgICBBU1NFUlRfVFJVRShl
YXJsaWVzdFRpbWVUb1NlbmQpOwogICAgIEFTU0VSVF9UUlVFKGVhcmxpZXN0VGltZVRvU2VuZC52
YWx1ZSgpLnNlY29uZHNTaW5jZUVwb2NoKCkgLSAyNF9oID49IG5vdy5zZWNvbmRzU2luY2VFcG9j
aCgpKTsKQEAgLTkwLDM0ICs5MCwzNCBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBF
YXJsaWVzdFRpbWVUb1NlbmRBdHRyaWJ1dGlvbk1pbmltdW1EZWxheSkKIFRFU1QoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsIFZhbGlkQ29udmVyc2lvblVSTHMpCiB7CiAgICAgY29uc3QgVVJMIGNv
bnZlcnNpb25VUkxXaXRob3V0UHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndl
bGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMiJfcyB9OwotICAgIGF1dG8gb3B0
aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lv
blJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eSk7CisgICAgYXV0byBvcHRpb25h
bENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJl
cXVlc3QoY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eSk7CiAgICAgQVNTRVJUX1RSVUUob3B0
aW9uYWxDb252ZXJzaW9uKTsKICAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRh
LCAodWludDMyX3QpMjIpOwogCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRob3V0UHJp
b3JpdHlNYXhFbnRyb3B5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3By
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvNjMiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24g
PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJz
aW9uVVJMV2l0aG91dFByaW9yaXR5TWF4RW50cm9weSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9u
ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZl
cnNpb25VUkxXaXRob3V0UHJpb3JpdHlNYXhFbnRyb3B5KTsKICAgICBBU1NFUlRfVFJVRShvcHRp
b25hbENvbnZlcnNpb24pOwogICAgIEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPmRhdGEs
ICh1aW50MzJfdCk2Myk7CiAgICAgCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRob3V0
UHJpb3JpdHlBbmRMZWFkaW5nWmVybyB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1r
bm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzAyIl9zIH07Ci0gICAgb3B0aW9uYWxDb252
ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3Qo
Y29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eUFuZExlYWRpbmdaZXJvKTsKKyAgICBvcHRpb25h
bENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJl
cXVlc3QoY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eUFuZExlYWRpbmdaZXJvKTsKICAgICBB
U1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24pOwogICAgIEFTU0VSVF9FUShvcHRpb25hbENv
bnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCkyKTsKIAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9u
VVJMV2l0aFByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3By
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvMTIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNp
b24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252
ZXJzaW9uVVJMV2l0aFByaW9yaXR5KTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdp
dGhQcmlvcml0eSk7CiAgICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKICAgICBB
U1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpMjIpOwogICAgIEFT
U0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpMTIpOwogCiAg
ICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlNYXhFbnRyb3B5IHsgeyB9LCAi
aHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQv
NjMvNjMiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5TWF4
RW50cm9weSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlNYXhF
bnRyb3B5KTsKICAgICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24pOwogICAgIEFTU0VS
VF9FUShvcHRpb25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCk2Myk7CiAgICAgQVNTRVJU
X0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+cHJpb3JpdHksICh1aW50MzJfdCk2Myk7CiAgICAgCiAg
ICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlBbmRMZWFkaW5nWmVybyB7IHsg
fSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LzIyLzAyIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQcmlvcml0
eUFuZExlYWRpbmdaZXJvKTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQcmlv
cml0eUFuZExlYWRpbmdaZXJvKTsKICAgICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24p
OwogICAgIEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCkyMik7
CiAgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+cHJpb3JpdHksICh1aW50MzJfdCky
KTsKQEAgLTEyNyw0NyArMTI3LDQ3IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZh
bGlkQ29udmVyc2lvblVSTHMpCiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFs
aWRDYW1wYWlnbklkKQogewotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9u
IHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpNYXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyB3
ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBs
ZVVSTCB9IH07Ci0gICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2Vu
ZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbihQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSkpOworICAgIFByaXZhdGVDbGlja01lYXN1
cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5hdHRy
aWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHks
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6TWF4RW50cm9weSkpKTsKIAogICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVS
TCgpLmlzRW1wdHkoKSk7CiB9CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFs
aWRTb3VyY2VIb3N0KQogewotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9u
IHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IGVtcHR5
VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwg
fSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpT
b3VyY2VTaXRlIHsgZW1wdHlVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
ZU9uU2l0ZSB7IGV4YW1wbGVVUkwgfSB9OworICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdl
dEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25U
cmlnZ2VyRGF0YShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRy
b3B5KSkpOwogCiAgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0
eSgpKTsKIH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZERlc3RpbmF0
aW9uSG9zdCkKIHsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
TWF4RW50cm9weSArIDEpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0
VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGVtcHR5VVJMIH0g
fTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpN
YXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
YXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkgKyAxKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJp
YnV0ZU9uU2l0ZSB7IGVtcHR5VVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRH
ZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHksIFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50
cm9weSkpKTsKIAogICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1w
dHkoKSk7CiB9CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRDb252ZXJz
aW9uRGF0YSkKIHsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwg
fSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07
Ci0gICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbigoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1h
eEVudHJvcHkgKyAxKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSkpOworICAgIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJp
YnV0ZU9uU2l0ZSB7IGV4YW1wbGVVUkwgfSB9OworICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFu
ZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25UcmlnZ2VyRGF0YSgoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkgKyAxKSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpNYXhFbnRyb3B5KSkpOwogCiAgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJM
KCkuaXNFbXB0eSgpKTsKIH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxp
ZFByaW9yaXR5KQogewotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVS
TCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0g
fTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpN
YXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkgKyAxKSkpOworICAgIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJp
YnV0ZU9uU2l0ZSB7IGV4YW1wbGVVUkwgfSB9OworICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFu
ZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25UcmlnZ2VyRGF0YShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhF
bnRyb3B5ICsgMSkpKTsKIAogICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgp
LmlzRW1wdHkoKSk7CiB9CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRN
aXNzaW5nQ29udmVyc2lvbikKIHsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1
dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyB3
ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBs
ZVVSTCB9IH07CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1h
eEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSB7IHdlYktpdFVS
TCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlIHsgZXhhbXBsZVVS
TCB9IH07CiAKICAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5
KCkpOwogICAgIEFTU0VSVF9GQUxTRShhdHRyaWJ1dGlvbi5lYXJsaWVzdFRpbWVUb1NlbmQoKSk7
CkBAIC0xNzYsNTUgKzE3Niw1NSBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZh
bGlkTWlzc2luZ0NvbnZlcnNpb24pCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZh
bGlkQ29udmVyc2lvblVSTHMpCiB7CiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoU2lu
Z2xlRGlnaXRDb252ZXJzaW9uRGF0YSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1r
bm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIiX3MgfTsKLSAgICBhdXRvIG9wdGlvbmFs
Q29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1
ZXN0KGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRDb252ZXJzaW9uRGF0YSk7CisgICAgYXV0
byBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRy
aWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhTaW5nbGVEaWdpdENvbnZlcnNpb25EYXRh
KTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKICAgICAKICAgICBjb25z
dCBVUkwgY29udmVyc2lvblVSTFdpdGhOb25OdW1lcmFsQ29udmVyc2lvbkRhdGEgeyB7IH0sICJo
dHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8y
cyJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbENvbnZl
cnNpb25EYXRhKTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOb25OdW1lcmFs
Q29udmVyc2lvbkRhdGEpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwog
CiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVDb252ZXJzaW9uRGF0YSB7
IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1
cmVtZW50Ly0yIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOZWdhdGl2
ZUNvbnZlcnNpb25EYXRhKTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOZWdh
dGl2ZUNvbnZlcnNpb25EYXRhKTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9u
KTsKIAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRh
dGEgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC82NCJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9v
TGFyZ2VDb252ZXJzaW9uRGF0YSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
VG9vTGFyZ2VDb252ZXJzaW9uRGF0YSk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVy
c2lvbik7CiAKICAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhTaW5nbGVEaWdpdFByaW9y
aXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2st
bWVhc3VyZW1lbnQvMjIvMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
U2luZ2xlRGlnaXRQcmlvcml0eSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
U2luZ2xlRGlnaXRQcmlvcml0eSk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lv
bik7CiAgICAgCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbFByaW9y
aXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2st
bWVhc3VyZW1lbnQvMjIvMnMiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0
aE5vbk51bWVyYWxQcmlvcml0eSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
Tm9uTnVtZXJhbFByaW9yaXR5KTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9u
KTsKICAgICAKICAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZVByaW9yaXR5
IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQvMjIvLTIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5l
Z2F0aXZlUHJpb3JpdHkpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5lZ2F0
aXZlUHJpb3JpdHkpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogICAg
IAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlUHJpb3JpdHkgeyB7IH0s
ICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dC8yMi82NCJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VQ
cmlvcml0eSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VQcmlv
cml0eSk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAKICAgICBjb25z
dCBVUkwgY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25EYXRhQW5kUHJpb3JpdHkg
eyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFz
dXJlbWVudC82NC8yMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9v
TGFyZ2VDb252ZXJzaW9uRGF0YUFuZFByaW9yaXR5KTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24g
PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVy
c2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25EYXRhQW5kUHJpb3JpdHkpOwogICAgIEFTU0VS
VF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YUFuZFRvb0xhcmdlUHJpb3JpdHkgeyB7IH0sICJo
dHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC82
NC82NCJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252
ZXJzaW9uRGF0YUFuZFRvb0xhcmdlUHJpb3JpdHkpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJz
aW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRUb29MYXJnZVByaW9yaXR5KTsKICAg
ICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKIAogICAgIGNvbnN0IFVSTCBjb252
ZXJzaW9uVVJMV2l0aEV4dHJhTGVhZGluZ1NsYXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5v
cmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8vMjIvMTIiX3MgfTsKLSAg
ICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252
ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aEV4dHJhTGVhZGluZ1NsYXNoKTsKKyAgICBv
cHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1
dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhFeHRyYUxlYWRpbmdTbGFzaCk7CiAgICAgQVNT
RVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAKICAgICBjb25zdCBVUkwgY29udmVyc2lv
blVSTFdpdGhFeHRyYVRyYWlsaW5nU2xhc2ggPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8u
d2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEyLyJfcyB9OwotICAgIG9w
dGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNp
b25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoRXh0cmFUcmFpbGluZ1NsYXNoKTsKKyAgICBvcHRp
b25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlv
blJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhFeHRyYVRyYWlsaW5nU2xhc2gpOwogICAgIEFTU0VS
VF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmsgPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8u
d2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEyPyJfcyB9OwotICAgIG9w
dGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNp
b25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmspOworICAgIG9w
dGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0
aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nUXVlc3Rpb25NYXJrKTsKICAgICBB
U1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKIH0KIApAQCAtMjMyLDQ2ICsyMzIsNDYg
QEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZENvbnZlcnNpb25XaXRoRGlz
YWxsb3dlZFVSTENvbXBvbmVudHMpCiB7CiAgICAgLy8gUHJvdG9jb2wuCiAgICAgY29uc3QgVVJM
IGNvbnZlcnNpb25VUkxXaXRoSHR0cFByb3RvY29sIHsgeyB9LCAiaHR0cDovL3dlYmtpdC5vcmcv
LndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yIl9zIH07Ci0gICAgYXV0byBv
cHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJz
aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aEh0dHBQcm90b2NvbCk7CisgICAgYXV0byBvcHRp
b25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlv
blJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhIdHRwUHJvdG9jb2wpOwogICAgIEFTU0VSVF9GQUxT
RShvcHRpb25hbENvbnZlcnNpb24pOwogCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRo
V3NzUHJvdG9jb2wgeyB7IH0sICJ3c3M6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQvMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxX
aXRoV3NzUHJvdG9jb2wpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFdzc1By
b3RvY29sKTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKIAogICAgIGNv
bnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aEZpbGVQcm90b2NvbCB7IHsgfSwgImZpbGU6Ly8vLndl
bGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yIl9zIH07Ci0gICAgb3B0aW9uYWxD
b252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVl
c3QoY29udmVyc2lvblVSTFdpdGhGaWxlUHJvdG9jb2wpOworICAgIG9wdGlvbmFsQ29udmVyc2lv
biA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252
ZXJzaW9uVVJMV2l0aEZpbGVQcm90b2NvbCk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29u
dmVyc2lvbik7CiAKICAgICAvLyBVc2VybmFtZSBhbmQgcGFzc3dvcmQuCiAgICAgY29uc3QgVVJM
IGNvbnZlcnNpb25VUkxXaXRoVXNlck5hbWUgeyB7IH0sICJodHRwczovL3VzZXJAd2Via2l0Lm9y
Zy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIiX3MgfTsKLSAgICBvcHRp
b25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9u
UmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFVzZXJOYW1lKTsKKyAgICBvcHRpb25hbENvbnZlcnNp
b24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29u
dmVyc2lvblVSTFdpdGhVc2VyTmFtZSk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVy
c2lvbik7CiAKICAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhQYXNzd29yZCA9IHsgeyB9
LCAiaHR0cHM6Ly86cHdkQHdlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFz
dXJlbWVudC8yMi8xMj8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFBh
c3N3b3JkKTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQYXNzd29yZCk7CiAg
ICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAKICAgICBjb25zdCBVUkwgY29u
dmVyc2lvblVSTFdpdGhVc2VybmFtZUFuZFBhc3N3b3JkID0geyB7IH0sICJodHRwczovL3VzZXI6
cHdkQHdlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8x
Mj8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFVzZXJuYW1lQW5kUGFz
c3dvcmQpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFVzZXJuYW1lQW5kUGFz
c3dvcmQpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogCiAgICAgLy8g
UXVlcnkgc3RyaW5nLgogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nUXVl
c3Rpb25NYXJrID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMj8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24g
PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJz
aW9uVVJMV2l0aFRyYWlsaW5nUXVlc3Rpb25NYXJrKTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24g
PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVy
c2lvblVSTFdpdGhUcmFpbGluZ1F1ZXN0aW9uTWFyayk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlv
bmFsQ29udmVyc2lvbik7CiAKICAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhRdWVyeVN0
cmluZyA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQvMjIvMTI/ZXh0cmE9ZGF0YSJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVy
c2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNv
bnZlcnNpb25VUkxXaXRoUXVlcnlTdHJpbmcpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9u
VVJMV2l0aFF1ZXJ5U3RyaW5nKTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9u
KTsKICAgICAKICAgICAvLyBGcmFnbWVudC4KICAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdp
dGhUcmFpbGluZ0hhc2ggPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9w
cml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEyIyJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVy
c2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNv
bnZlcnNpb25VUkxXaXRoVHJhaWxpbmdIYXNoKTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lv
blVSTFdpdGhUcmFpbGluZ0hhc2gpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNp
b24pOwogCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoRnJhZ21lbnQgPSB7IHsgfSwg
Imh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
LzIyLzEyI2ZyYWdtZW50Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhG
cmFnbWVudCk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoRnJhZ21lbnQpOwog
ICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogfQogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbAppbmRleCBkMGZmODE2NWZiMTk2MTkyNmNiNmI1ZjVlODMxMzU5MjFmNTIzYTVk
Li5kYjE1OTlhMmM1NjAyYWU4MWFiMmYyNGUwOGY5Zjk1NTM5YzA1YjlhIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKQEAgLTQwMSw2ICs0MDEsOCBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7
CiAgICAgdW5kZWZpbmVkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICB1bmRl
ZmluZWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1v
dmFsKCk7CiAgICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVU
aW1lckZvclRlc3RpbmcoYm9vbGVhbiB2YWx1ZSk7CisgICAgdW5kZWZpbmVkIG1hcmtBdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOworICAgIHVu
ZGVmaW5lZCBzaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOwog
ICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JU
ZXN0aW5nKERPTVN0cmluZyB1cmwpOwogICAgIHVuZGVmaW5lZCBtYXJrUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCA1YjE5NTQyZDA2
OWI4MGVmY2ZkNzJmNGQ5YjAzMTE4NDNhMGM3ZGE0Li42MzgwOTg5MjUxOGNjZTNjZmQ2YmEyZGZh
Y2RjNmY1ZWY5MDNiYWI2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIwMTUsNiArMjAxNSwxNiBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rp
bmcoYm9vbCB2YWx1ZSkKICAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyIsIHZhbHVlKTsKIH0KIAor
dm9pZCBUZXN0UnVubmVyOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0Fz
RXhwaXJlZEZvclRlc3RpbmcoKQoreworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJN
YXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmci
KTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NT
ZXNzaW9uUmVzdGFydCgpCit7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNpbXVs
YXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0Iik7Cit9CisKIHZvaWQgVGVz
dFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGlu
ZyhKU1N0cmluZ1JlZiB1cmxTdHJpbmcpCiB7CiAgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3Nh
Z2UoIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmciLApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aAppbmRleCBiMzAyYzhlMzIxMGM0NmNjYTI2OGY1ZmRjZjU5Mzk4Y2M3M2QyOTY5Li45M2E5N2Ni
ZGRlNDg3NWNiZDMzNWE3MGZjYjlmZjUzZGI0ZjI4YjQ0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNTE0LDYgKzUxNCw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVU
aW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKEpTU3RyaW5nUmVmKTsKICAgICB2b2lkIG1h
cmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgdm9p
ZCBtYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rp
bmcoKTsKKyAgICB2b2lkIHNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0
YXJ0KCk7CiAKICAgICB2b2lkIHNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRl
ZChib29sKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRl
eCA3YmE2NzJhYzlmOTI1ZjYzMjVhYTA3ZmE2ZjE2MWE1MDIzNWZiYjhjLi4wYzZjNjUxNDE3YzIx
NmJmNzczMGFkYTc3YjcxMDZkOTBmYmEyNjMzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcApAQCAtMzU5Miw2ICszNTkyLDIwIEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9v
bCB2YWx1CiAgICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9
CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29udGV4dCgqdGhpcyk7CisgICAgV0tQYWdl
TWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5n
KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJh
Y2ssICZjYWxsYmFja0NvbnRleHQpOworICAgIHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25l
LCBub1RpbWVvdXQpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzaW11bGF0ZVJlc291cmNl
TG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29udGV4dCgqdGhpcyk7CisgICAgV0tQ
YWdlU2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQobV9tYWluV2Vi
Vmlldy0+cGFnZSgpLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFjaywgJmNhbGxi
YWNrQ29udGV4dCk7CisgICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91
dCk7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tVUkxSZWYgdXJsKQogewogICAgIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGI1N2I4ZjdhMDU5NTIz
ZWNmODc3YWIwMTk3MjBkNGRiZTU4ZmNiNWYuLmRkZWNhMDg4MmEzMDk2ZTM3YmZkM2U3MGZlZDRl
MjI3M2RkOTZkMjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAg
LTM0NCw2ICszNDQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1
cmVtZW50KCk7CiAgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWwoKTsKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBtYXJrQXR0cmli
dXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICB2
b2lkIHNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCk7CiAgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdL
VVJMUmVmKTsKICAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAK
aW5kZXggMjliNjUyYzYwMzllZThjNTMwOWZmMGRlYWFlZTgwZjU4NDUzOTAyYy4uNTk4ZGZjN2Qx
YWMwZTM3YmIyMmZiNzg0YmExNTRhYjc0NzdhZWExNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEzMjksNiArMTMyOSwxNiBAQCBXS1JldGFpblB0cjxX
S1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJv
bUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgCisgICAgaWYg
KFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJNYXJrQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmciKSkgeworICAgICAg
ICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKyAgICAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNz
YWdlTmFtZSwgIlNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0Iikp
IHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNpbXVsYXRlUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKyAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdl
TmFtZSwgIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmci
KSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLVVJMR2V0
VHlwZUlEKCkpOwogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhzdGF0aWNfY2FzdDxXS1VS
TFJlZj4obWVzc2FnZUJvZHkpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4Yjc0YTNmOTdhMDQyMzIzMjVlZjBiNzk4Mzg0
OWYzZmExZmZlMWY2Li5kOGQyZWVmNjljZjI2ZDM1MDNjMTcyNmY2MjBmZDVhMjI3Yjc1MjNjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjAtMTEtMTkgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5l
X2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBQZXJzaXN0IHBlbmRpbmcgYWQgY2xp
Y2tzIGFuZCBhdHRyaWJ1dGlvbnMgc28gdGhleSBjYW4gc3Vydml2ZSBicm93c2VyIHJlc3RhcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTEzNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA0NzAxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGRlZCBsYXlvdXQgdGVzdCBjb3Zl
cmFnZS4gUmVtb3ZlZCAnQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6JworICAgICAgICBjYXRlZ29y
eSBpbiB0aGUgdG9TdHJpbmcoKSBtZXRob2QgYmVjYXVzZSBpdCB3aWxsIGFsd2F5cyBiZSBmYWxz
ZS4KKyAgICAgICAgU2VudCBjb252ZXJzaW9ucyBhcmUgcHVyZ2VkIGZyb20gdGhlIGRhdGFiYXNl
LCBzbyBpdCBpcyBub3QgYSB1c2VmdWwKKyAgICAgICAgcGllY2Ugb2YgaW5mb3JtYXRpb24gdG8g
cmVwb3J0LiBVcGRhdGVkIG5hbWluZyBiYXNlZCBvbiBzdGFuZGFyZHMKKyAgICAgICAgY292ZXJz
YXRpb25zLgorCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9h
dHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVj
dC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0
cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3ct
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13
aW5kb3cuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9y
aXR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRo
LXByaW9yaXR5Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91
dC1wcmlvcml0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJl
Y3Qtd2l0aG91dC1wcmlvcml0eS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9leHBpcmVkLWFkLWNsaWNrLWdldHMtcmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9leHBpcmVkLWFkLWNsaWNrLWdldHMtcmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWw6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
c2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVw
b3J0LWdldHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0
aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC5odG1sOiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmli
dXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA6CisgICAg
ICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29u
dmVyc2lvbkRhdGEucGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0
cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0
aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hl
ci1wcmlvcml0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNv
bnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxv
d2VyLXByaW9yaXR5Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJp
YnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBl
Y3RlZC50eHQ6CisKIDIwMjAtMTEtMTkgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlA
c29ueS5jb20+CiAKICAgICAgICAgW1RleHR1cmVNYXBwZXJHTF0gVGhlIGludmVydCBmaWx0ZXIg
d3JvbmdseSBpbnZlcnRzIHByZS1tdWx0aXBsaWVkIGFscGhhIGNvbG9yCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9u
LWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmli
dXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0
ZWQudHh0CmluZGV4IGE3ZDg2N2ZjNjIwNjg4NDVkOWVkMmY5ZDg4YTkzMjUzYjIyNTA1YTYuLjAw
NzFiOTZmOTg4ZjMxYTMyMTYzNjM5NjIzNTZjOTc0OTZmZWVhZTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmli
dXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0
ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAotVGVzdHMgdGhhdCB0cmlnZ2VyaW5nIG9mIHByaXZhdGUg
Y2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgdGhyb3VnaCBjcm9zcy1zaXRlIHJlZGlyZWN0
cyBkbyBub3Qgd29yay4KK1Rlc3RzIHRoYXQgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1l
YXN1cmVtZW50IGF0dHJpYnV0aW9ucyB0aHJvdWdoIGNyb3NzLXNpdGUgcmVkaXJlY3RzIGRvIG5v
dCB3b3JrLgogCiAKLVVuY29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorVW5h
dHRyaWJ1dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgogV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgMQotU291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhv
c3QKLUNhbXBhaWduIElEOiAzCi1ObyBjb252ZXJzaW9uIGRhdGEuCitTb3VyY2Ugc2l0ZTogMTI3
LjAuMC4xCitBdHRyaWJ1dGUgb24gc2l0ZTogbG9jYWxob3N0CitTb3VyY2UgSUQ6IDMKK05vIGF0
dHJpYnV0aW9uIHRyaWdnZXIgZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdo
LWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNy
b3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRtbAppbmRleCBmOTA5YjZlMTkzNTRlN2ZiMGZlMTcx
OGYzNDEzMDQ3ZjM3N2ZmOTMzLi4yNTM3MmU4ZDZiZDE2YmE1ZThkNTNlN2I1YTZiM2U1YjUyMDQ5
YTIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJl
ZGlyZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1y
ZWRpcmVjdC5odG1sCkBAIC03LDcgKzcsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVu
VGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgdHJpZ2dlcmluZyBv
ZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGNvbnZlcnNpb25zIHRocm91Z2ggY3Jvc3Mtc2l0
ZSByZWRpcmVjdHMgZG8gbm90IHdvcmsuPC9kaXY+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVz
dHMgdGhhdCB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRp
b25zIHRocm91Z2ggY3Jvc3Mtc2l0ZSByZWRpcmVjdHMgZG8gbm90IHdvcmsuPC9kaXY+CiA8YSBp
ZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdl
LXJlZGlyZWN0Lmh0bWw/c3RlcFR3byIgYXR0cmlidXRpb25zb3VyY2VpZD0iMyIgYXR0cmlidXRl
b249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+CiA8ZGl2IGlkPSJvdXRwdXQi
PjwvZGl2PgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdl
LXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91
Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggZTQxZDJi
ZmY1ZGQzNWI1OWZhNTNhMjYwZTY0ZGViOGNiNDViYTk3NS4uOGNkYjUwZWVlNmEzZjUzYjE2YTMw
ZjBkOTQ2NDVkMGM1ZDc0ZjcyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1h
Z2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9u
LXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTEs
MTIgKzEsMTEgQEAKLVRlc3RzIHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVu
dCBjb252ZXJzaW9ucyBpbiBhIG5ldyB3aW5kb3cuCitUZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZh
dGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRpb25zIGluIGEgbmV3IHdpbmRvdy4KIAogCi1D
b252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitBdHRyaWJ1dGVkIFByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnRzOgogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQot
U291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAz
Ci1Db252ZXJzaW9uIGRhdGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiAzCi1Db252ZXJzaW9u
IGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJl
cXVlc3Qgc2VudDogZmFsc2UKK1NvdXJjZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBz
aXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJRDogMworQXR0cmlidXRpb24gdHJpZ2dlciBkYXRhOiAx
MgorQXR0cmlidXRpb24gcHJpb3JpdHk6IDMKK0F0dHJpYnV0aW9uIGVhcmxpZXN0IHRpbWUgdG8g
c2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3Vn
aC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3Vn
aC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0bWwKaW5kZXggZWY4M2EzMTlkNzkzYmI4
Y2RiZTYyODViMzM0MTc0MjUwM2JkMjhhYy4uYjkyNzVjNzM0NzYwOTE2MDgxNDExZDZkYTJjNjBk
YmUxOWQ5NjNiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJl
Y3QtaW4tbmV3LXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJl
ZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbApAQCAtNyw3ICs3LDcgQEAKICAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJz
ZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmln
Z2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgaW4gYSBuZXcg
d2luZG93LjwvZGl2PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRyaWdnZXJpbmcgb2Yg
cHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGlvbnMgaW4gYSBuZXcgd2luZG93Ljwv
ZGl2PgogPGEgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ib3BlbmVyIiBpZD0idGFyZ2V0TGluayIgaHJl
Zj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9jb252ZXJ0QW5kUG9zdE1lc3NhZ2VCYWNrLmh0bWwiIGF0dHJpYnV0aW9uc291cmNlaWQ9IjMi
IGF0dHJpYnV0ZW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgogPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhy
b3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVy
c2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQudHh0Cmlu
ZGV4IDg0YjI3MjRmNGZiNTU5ZTU2Y2QxZDlmNGQxZmZjNTk1ZDI0YjY0YjMuLmQ2OGYwOGQ2ODZm
NTgwMTU2YzlmMGFlYjg5NTZiMTQwNWQyOWI1NmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24t
Y29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQu
dHh0CkBAIC0xLDEyICsxLDExIEBACi1UZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sg
bWVhc3VyZW1lbnQgY29udmVyc2lvbnMgd2l0aCBwcmlvcml0eS4KK1Rlc3RzIHRyaWdnZXJpbmcg
b2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGlvbnMgd2l0aCBwcmlvcml0eS4K
IAogCi1Db252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitBdHRyaWJ1dGVkIFBy
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgMQotU291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWdu
IElEOiAzCi1Db252ZXJzaW9uIGRhdGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiAzCi1Db252
ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJz
aW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKK1NvdXJjZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0
ZSBvbiBzaXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJRDogMworQXR0cmlidXRpb24gdHJpZ2dlciBk
YXRhOiAxMgorQXR0cmlidXRpb24gcHJpb3JpdHk6IDMKK0F0dHJpYnV0aW9uIGVhcmxpZXN0IHRp
bWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24t
dGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24t
dGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWwKaW5kZXggYTM4MzNmYWVj
OGUwMzdlYTEzZWE2NzIxMGRmOGFlODhkMTMwYmZlZi4uMDIxMjFlNDZlMjdmZWZmOTg3MGNlZTEw
ZmY1Y2ZhNzg2ZjA0Y2E3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2Ut
cmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWlt
YWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbApAQCAtNyw3ICs3LDcgQEAKICAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25s
b2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0
cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgd2l0
aCBwcmlvcml0eS48L2Rpdj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5n
IG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRpb25zIHdpdGggcHJpb3JpdHku
PC9kaXY+CiA8YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFn
ZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWw/c3RlcFR3byIgYXR0cmlidXRpb25zb3VyY2Vp
ZD0iMyIgYXR0cmlidXRlb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+CiA8
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lv
bi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS1leHBl
Y3RlZC50eHQKaW5kZXggNzFmNDYyY2QwZWMzMGM2YTAzODI0MTVlMDM0ZTE2NzVmMWYwMjNiMS4u
YjFlZDE4ODc2NTQ0OTA4Y2QzMjAyMzgyZTY4N2M4ODE1OTdhNDdmMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1w
cmlvcml0eS1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMTEgQEAKLVRlc3RzIHRyaWdnZXJpbmcg
b2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9ucyB3aXRob3V0IHByaW9yaXR5
LgorVGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGF0dHJpYnV0
aW9ucyB3aXRob3V0IHByaW9yaXR5LgogCiAKLUNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50czoKK0F0dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CiBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRp
b246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZl
cnNpb24gcHJpb3JpdHk6IDAKLUNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRo
aW4gMjQtNDggaG91cnMKLUNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQorU291cmNlIHNp
dGU6IDEyNy4wLjAuMQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNlIElEOiAz
CitBdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6IDEyCitBdHRyaWJ1dGlvbiBwcmlvcml0eTogMAor
QXR0cmlidXRpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
YXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJp
b3JpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQt
cHJpb3JpdHkuaHRtbAppbmRleCA0MjNkMTM1NTk0ODZkOTMyNzI4YjliNDQzOTUzMTkzZDBlZmFh
M2M4Li43MWVjNzdhNTE5ZGRjMjRlNGIwOWIxMWQ2OWI3MmRhMTM4N2Q3ZTUzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0
aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9h
dHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlv
cml0eS5odG1sCkBAIC03LDcgKzcsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVz
dCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRyaWdnZXJpbmcgb2YgcHJpdmF0
ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9ucyB3aXRob3V0IHByaW9yaXR5LjwvZGl2Pgor
PGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBt
ZWFzdXJlbWVudCBhdHRyaWJ1dGlvbnMgd2l0aG91dCBwcmlvcml0eS48L2Rpdj4KIDxhIGlkPSJ0
YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhv
dXQtcHJpb3JpdHkuaHRtbD9zdGVwVHdvIiBhdHRyaWJ1dGlvbnNvdXJjZWlkPSIzIiBhdHRyaWJ1
dGVvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KIDxkaXYgaWQ9Im91dHB1
dCI+PC9kaXY+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1z
ZXNzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBl
Y3RlZC50eHQKaW5kZXggMWYxYWEwNDJiMTAyNzM5MDQ2Mjc3ZjFkOGJjYjBjNzk5YmQ2YjU5NC4u
ODU0OGVmZWFjMjBhZWZiMWI3Y2ZjYjk1ZDEyMzhjZjRjZmIzZGJiNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRp
c2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZlcnNpb24tZGlzYWJsZWQt
aW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0CkBAIC01LDExICs1LDExIEBAIFRlc3Rz
IHRoYXQgc3RvcmVkIGF0dHJpYnV0aW9ucyBjYW5ub3QgYmUgY29udmVydGVkIGluIGFuIGVwaGVt
ZXJhbCBzZXNzaW9uLgogLS0tLS0tLS0KIEZyYW1lOiAnPCEtLWZyYW1lMS0tPicKIC0tLS0tLS0t
Ci1Db252ZXJzaW9uIG5vdCByZWNlaXZlZCAtIHRpbWVkIG91dC4KK0F0dHJpYnV0aW9uIG5vdCBy
ZWNlaXZlZCAtIHRpbWVkIG91dC4KIAotVW5jb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudHM6CitVbmF0dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CiBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRp
b246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLU5vIGNvbnZlcnNpb24gZGF0YS4KK1NvdXJj
ZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBzaXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJ
RDogMworTm8gYXR0cmlidXRpb24gdHJpZ2dlciBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWFkLWNsaWNrLWdl
dHMtcmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hZC1jbGljay1nZXRzLXJl
bW92ZWQtb24tc2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VjMjg2ZDRj
M2NhYzlhZGYzYWJkY2M3M2YxMzQ2MzU2N2ZhOWI4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hZC1jbGlj
ay1nZXRzLXJlbW92ZWQtb24tc2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitUZXN0cyB0aGF0IGFuIGV4cGlyZWQgYWQgY2xpY2sgZG9lcyBub3QgZ2V0IGNvbnZlcnRl
ZCBvbiBzZXNzaW9uIHN0YXJ0LgorCisKKworTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnQgZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hZC1jbGljay1nZXRzLXJlbW92ZWQtb24tc2Vzc2lvbi1z
dGFydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9leHBpcmVkLWFkLWNsaWNrLWdldHMtcmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTMyY2RiZDA4YzMyMDhiMzI2NzUxNTE2OWI2Y2FhMmI5NTlkMTExMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvZXhwaXJlZC1hZC1jbGljay1nZXRzLXJlbW92ZWQtb24tc2Vzc2lvbi1zdGFydC5odG1sCkBA
IC0wLDAgKzEsNzkgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJs
ZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgYW4gZXhwaXJlZCBhZCBjbGljayBkb2VzIG5vdCBn
ZXQgY29udmVydGVkIG9uIHNlc3Npb24gc3RhcnQuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayI+
TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25z
dCBwYXRoID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWFkLWNsaWNrLWdldHMt
cmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwiOworICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24g
PSBbCisgICAgICAgIHsKKyAgICAgICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
ICsgcGF0aCArICI/c3RlcFR3byIsCisgICAgICAgICAgICBhdHRyaWJ1dGlvbnNvdXJjZWlkOiAi
MyIsCisgICAgICAgICAgICBhdHRyaWJ1dGVvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKKyAg
ICAgICAgfQorICAgIF07CisKKyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gY29u
ZmlndXJlTGluayhpbmRleCkgeworICAgICAgICBsZXQgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRy
aWJ1dGUoImhyZWYiLCBjb25maWd1cmF0aW9uW2luZGV4XS5ocmVmKTsKKyAgICAgICAgbGlua0Vs
ZW1lbnQuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGlvbnNvdXJjZWlkIiwgY29uZmlndXJhdGlvbltp
bmRleF0uYXR0cmlidXRpb25zb3VyY2VpZCk7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJp
YnV0ZSgiYXR0cmlidXRlb24iLCBjb25maWd1cmF0aW9uW2luZGV4XS5hdHRyaWJ1dGVvbik7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAg
ICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAg
ICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0
aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50
Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwg
Y2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQu
IjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQor
ICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbnZlcnQoY2FsbGJhY2spIHsKKyAg
ICAgICAgbGV0IHBpeGVsRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIp
OworICAgICAgICBpZiAocGl4ZWxFbGVtZW50KQorICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChwaXhlbEVsZW1lbnQpOworCisgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9
ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOworICAgICAgICBp
bWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9
IGNhbGxiYWNrOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVu
dCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9
PT0gIiIpIHsKKyAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDApOworICAgICAgICAgICAg
ICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlm
ICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIubWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcoKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5zaW11bGF0
ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOworICAgICAgICAgICAgICAg
IGNvbnZlcnQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlu
bmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9uLXJlcG9ydC1nZXRz
LXNlbnQtb24tc2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVwb3J0LWdl
dHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjBjYzZm
NzA3ZDQxMjViMmEwMjRkNThmMzdiNDdmNTljYmJkM2RhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJp
YnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNyBAQAorVGVzdHMgc2VuZGluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50
IHJlcXVlc3RzIGFmdGVyIGFuIGF0dHJpYnV0aW9uIGhhcHBlbnMgaW1tZWRpYXRlbHkgZm9yIHJl
cG9ydHMgd2hpY2ggaGF2ZSBleHBpcmVkIHdoZW4gYSBzZXNzaW9uIGlzIGNsb3NlZC4KKworCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorQXR0cmlidXRpb24g
cmVjZWl2ZWQuCitIVFRQX0hPU1Q6IDEyNy4wLjAuMTo4MDAwCitDb250ZW50IHR5cGU6IGFwcGxp
Y2F0aW9uL2pzb24KK1JFUVVFU1RfVVJJOiAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL2NvbnZlcnNpb25SZXBvcnQucGhwCitObyBjb29raWVzIGluIGF0dHJpYnV0aW9uIHJlcXVl
c3QuCitSZXF1ZXN0IGJvZHk6Cit7InNvdXJjZS1lbmdhZ2VtZW50LXR5cGUiOiJjbGljayIsInNv
dXJjZS1zaXRlIjoiMTI3LjAuMC4xIiwic291cmNlLWlkIjozLCJhdHRyaWJ1dGVkLW9uLXNpdGUi
OiJsb2NhbGhvc3QiLCJ0cmlnZ2VyLWRhdGEiOjEyLCJyZXBvcnQtdmVyc2lvbiI6MX0KKworCitO
byBzdG9yZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJp
YnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9u
LXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyMTdh
MmY5OWYzODcxMmJhYmFjMmU3Y2M3NGIxY2M3ZTAwZTI0YWEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0
cmlidXRpb24tcmVwb3J0LWdldHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwKQEAgLTAsMCAr
MSw4MCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxl
eGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+VGVzdHMgc2VuZGluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlcXVl
c3RzIGFmdGVyIGFuIGF0dHJpYnV0aW9uIGhhcHBlbnMgaW1tZWRpYXRlbHkgZm9yIHJlcG9ydHMg
d2hpY2ggaGF2ZSBleHBpcmVkIHdoZW4gYSBzZXNzaW9uIGlzIGNsb3NlZC48L2Rpdj4KKzxhIGlk
PSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbi1yZXBvcnQtZ2V0cy1zZW50LW9uLXNlc3Npb24t
c3RhcnQuaHRtbD9zdGVwVHdvIiBhdHRyaWJ1dGlvbnNvdXJjZWlkPSIzIiBhdHRyaWJ1dGVvbj0i
aHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9k
aXY+Cis8c2NyaXB0PgorICAgIGNvbnN0IGN1cnJlbnRUaW1lTWlsbGlzID0gKG5ldyBEYXRlKCkp
LmdldFRpbWUoKTsKKyAgICBjb25zdCBoaWdoRW50cm9weUJpdHMgPSBjdXJyZW50VGltZU1pbGxp
cyAtIChNYXRoLmZsb29yKGN1cnJlbnRUaW1lTWlsbGlzIC8gMTAwMDAwMCkgKiAxMDAwMDAwKTsK
KyAgICBjb25zdCBub25jZSA9IGhpZ2hFbnRyb3B5Qml0cyArICIiICsgTWF0aC5mbG9vcihNYXRo
LnJhbmRvbSgpICogMTAwKTsKKworICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25vbmNlPSIg
KyBub25jZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJ
RCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVu
dC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRU
b3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRl
QXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21p
c2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAg
ICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVuZElmcmFt
ZSh1cmwsIG9ubG9hZENhbGxiYWNrKSB7CisgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmcmFtZUVsZW1lbnQuc3Jj
ID0gdXJsOworICAgICAgICBpZiAob25sb2FkQ2FsbGJhY2spCisgICAgICAgICAgICBpZnJhbWVF
bGVtZW50Lm9ubG9hZCA9IG9ubG9hZENhbGxiYWNrOworICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVuZENv
bnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCkgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsK
KworICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwP3RpbWVvdXRfbXM9
MjAwMCZub25jZT0iICsgbm9uY2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVhckRvd25B
bmRGaW5pc2goKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBpZiAod2lu
ZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAgICAgIGxl
dCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAg
ICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252
ZXJzaW9uRGF0YT0xMiZub25jZT0iICsgbm9uY2U7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVt
ZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBhcHBlbmRDb252ZXJzaW9uRGF0YUlm
cmFtZUFuZEZpbmlzaCgpOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIC8vIE1hcmsgdGhpcyBhdHRyaWJ1dGlvbiBhcyBwYXN0LWR1ZSBmb3Ig
cmVwb3J0aW5nLCBhbmQgc2ltdWxhdGUgYSBzZXNzaW9uIHJlc3RhcnQgdG8KKyAgICAgICAgICAg
ICAgICAvLyBtYWtlIHN1cmUgdGhlIGF0dHJpYnV0aW9uIGdldHMgc2VudCBpbW1lZGlhdGVseS4K
KyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5tYXJrQXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCk7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgi
dGFyZ2V0TGluayIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5v
IHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0
LnBocAppbmRleCBiNWMyMDI2OWM3ODQ5MDZmZmY3NDc0NDhiMzg4MWY0MDYzN2FiYzAxLi5kNWFm
YjQ0NTc5NWE4MjA3MWNjYzVmYTQyNGI2MTgwNmEzYTNhNjY2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJz
aW9uUmVwb3J0LnBocAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocApAQCAtMTUsMTQgKzE1LDE0
IEBAIGZvcmVhY2ggKCRodHRwSGVhZGVycyBhcyAkbmFtZSA9PiAkdmFsdWUpIHsKICAgICAgICAg
ICAgICRvdXRwdXRVUkwgPSBzdWJzdHIoJHZhbHVlLCAwLCAkcG9zaXRpb25PZk5vbmNlKTsKICAg
ICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIiRuYW1lOiAkb3V0cHV0VVJMXG4iKTsKICAg
ICB9IGVsc2UgaWYgKCRuYW1lID09PSAiSFRUUF9DT09LSUUiKSB7Ci0gICAgICAgIGZ3cml0ZSgk
Y29udmVyc2lvbkZpbGUsICJDb29raWVzIGluIGNvbnZlcnNpb24gcmVxdWVzdDogJHZhbHVlXG4i
KTsKKyAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIkNvb2tpZXMgaW4gYXR0cmlidXRp
b24gcmVxdWVzdDogJHZhbHVlXG4iKTsKICAgICAgICAgJGNvb2tpZXNGb3VuZCA9IHRydWU7CiAg
ICAgfSBlbHNlIGlmICgkbmFtZSA9PT0gIkNPTlRFTlRfVFlQRSIpIHsKICAgICAgICAgZndyaXRl
KCRjb252ZXJzaW9uRmlsZSwgIkNvbnRlbnQgdHlwZTogJHZhbHVlXG4iKTsKICAgICB9CiB9CiBp
ZiAoISRjb29raWVzRm91bmQpIHsKLSAgICBmd3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiTm8gY29v
a2llcyBpbiBjb252ZXJzaW9uIHJlcXVlc3QuXG4iKTsKKyAgICBmd3JpdGUoJGNvbnZlcnNpb25G
aWxlLCAiTm8gY29va2llcyBpbiBhdHRyaWJ1dGlvbiByZXF1ZXN0LlxuIik7CiB9CiAKICRyZXF1
ZXN0Qm9keSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCdwaHA6Ly9pbnB1dCcpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMv
Z2V0Q29udmVyc2lvbkRhdGEucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwCmluZGV4IDU1ZTIy
MDcxNWFmZDY3ZTBiOGVhODk1Njc5MmY0OTBhNGJlMDNhY2EuLmE5YmQzZGZkNmJiYzBkMGYzMzZl
OWRhZWU4YzAwYjk1NWEwM2RlZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAKQEAgLTI3LDcgKzI3LDcgQEAgd2hpbGUgKCRub1Rp
bWVvdXQgfHwgJHRpbWVvdXRNc2VjcyA+IDApIHsKIGVjaG8gIjxodG1sPjxib2R5PlxuIjsKIAog
aWYgKCRjb252ZXJzaW9uRmlsZUZvdW5kKSB7Ci0gICAgZWNobyAiQ29udmVyc2lvbiByZWNlaXZl
ZC4iOworICAgIGVjaG8gIkF0dHJpYnV0aW9uIHJlY2VpdmVkLiI7CiAgICAgJGNvbnZlcnNpb25G
aWxlID0gZm9wZW4oJGNvbnZlcnNpb25GaWxlUGF0aCwgJ3InKTsKICAgICB3aGlsZSAoJGxpbmUg
PSBmZ2V0cygkY29udmVyc2lvbkZpbGUpKSB7CiAgICAgICAgIGVjaG8gIjxicj4iOwpAQCAtMzcs
NyArMzcsNyBAQCBpZiAoJGNvbnZlcnNpb25GaWxlRm91bmQpIHsKICAgICBmY2xvc2UoJGNvbnZl
cnNpb25GaWxlKTsKICAgICB1bmxpbmsoJGNvbnZlcnNpb25GaWxlUGF0aCk7CiB9IGVsc2Ugewot
ICAgIGVjaG8gIkNvbnZlcnNpb24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0Ljxicj4iOworICAg
IGVjaG8gIkF0dHJpYnV0aW9uIG5vdCByZWNlaXZlZCAtIHRpbWVkIG91dC48YnI+IjsKIH0KIAog
aWYgKGlzc2V0KCRfR0VUWydlbmRUZXN0J10pKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252
ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVy
dGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dAppbmRleCBlOTBkMjZmNmFmZGJk
M2VjZGMyMTNiZmUyM2EzNjNkZDE3NDdiY2EzLi41NjU1OTMzMWMwNTI1YjMzZWRhN2I4ZGI3Mzk1
NDM2MTA0Y2IzYWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXIt
cHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hl
ci1wcmlvcml0eS1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMTEgQEAKLVRlc3RzIHRoYXQgYSBz
ZWNvbmQgYXR0cmlidXRpb24gY29udmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlvcml0eSByZXBsYWNl
cyBhbiBvbGRlciB3aXRoIGxvd2VyIHByaW9yaXR5LgorVGVzdHMgdGhhdCBhIHNlY29uZCBhdHRy
aWJ1dGlvbiB3aXRoIGhpZ2hlciBwcmlvcml0eSByZXBsYWNlcyBhbiBvbGRlciB3aXRoIGxvd2Vy
IHByaW9yaXR5LgogCiAKLUNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK0F0
dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CiBXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9z
dAotQ2FtcGFpZ24gSUQ6IDQKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJpb3Jp
dHk6IDQKLUNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91
cnMKLUNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQorU291cmNlIHNpdGU6IDEyNy4wLjAu
MQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNlIElEOiA0CitBdHRyaWJ1dGlv
biB0cmlnZ2VyIGRhdGE6IDEyCitBdHRyaWJ1dGlvbiBwcmlvcml0eTogNAorQXR0cmlidXRpb24g
ZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJp
YnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29u
dmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwKaW5kZXggZWMzY2MwZWFjMWUzNTYyMTU3
MDk4MTExMmQzNzMxMTVmZDA5ZGNkOC4uNGMyOWRmNjlkZmUyZWFmMjZjMmU1YTE2MjdkYjEwNDA3
MmVlOWI1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9y
aXR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0
bWwKQEAgLTcsNyArNyw3IEBACiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+
Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBj
b252ZXJzaW9uIHdpdGggaGlnaGVyIHByaW9yaXR5IHJlcGxhY2VzIGFuIG9sZGVyIHdpdGggbG93
ZXIgcHJpb3JpdHkuPC9kaXY+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhIHNl
Y29uZCBhdHRyaWJ1dGlvbiB3aXRoIGhpZ2hlciBwcmlvcml0eSByZXBsYWNlcyBhbiBvbGRlciB3
aXRoIGxvd2VyIHByaW9yaXR5LjwvZGl2PgogPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJy
PgogPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlv
bi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1j
b252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQKaW5kZXggYzM3ZjMxOGZj
NzY5YWYxZTZjMTk1NzVkNTA4NGMwMjU3NTJlYzZkZS4uZmU2NjIyMzhkNWE5OWY0Y2QwOGMyYzI0
YzBmZjZmOTdjNThlOTc2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93
ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxv
d2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMSBAQAotVGVzdHMgdGhhdCBh
IHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkgZG9lcyBu
b3QgcmVwbGFjZSBhbiBvbGRlciB3aXRoIGhpZ2hlciBwcmlvcml0eS4KK1Rlc3RzIHRoYXQgYSBz
ZWNvbmQgYXR0cmlidXRpb24gd2l0aCBsb3dlciBwcmlvcml0eSBkb2VzIG5vdCByZXBsYWNlIGFu
IG9sZGVyIHdpdGggaGlnaGVyIHByaW9yaXR5LgogCiAKLUNvbnZlcnRlZCBQcml2YXRlIENsaWNr
IE1lYXN1cmVtZW50czoKK0F0dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CiBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVz
dGluYXRpb246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLUNvbnZlcnNpb24gZGF0YTogMTIK
LUNvbnZlcnNpb24gcHJpb3JpdHk6IDQKLUNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5k
OiBXaXRoaW4gMjQtNDggaG91cnMKLUNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQorU291
cmNlIHNpdGU6IDEyNy4wLjAuMQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNl
IElEOiAzCitBdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6IDEyCitBdHRyaWJ1dGlvbiBwcmlvcml0
eTogNAorQXR0cmlidXRpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91
cnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29u
ZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sCmluZGV4IDRm
ODVlOGU1NmZmZDY1MjE0MzliOTkzZjhkNzQ5NjkyNzc3NDZkMjcuLjE2MjdkYmYwNzM4OTA2NzNi
MzZkNDM4OTIxYjQxZTc3Njc0MmMzNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13
aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93
ZXItcHJpb3JpdHkuaHRtbApAQCAtNyw3ICs3LDcgQEAKICAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0
KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IGEgc2Vjb25k
IGF0dHJpYnV0aW9uIGNvbnZlcnNpb24gd2l0aCBsb3dlciBwcmlvcml0eSBkb2VzIG5vdCByZXBs
YWNlIGFuIG9sZGVyIHdpdGggaGlnaGVyIHByaW9yaXR5LjwvZGl2PgorPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPlRlc3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gd2l0aCBsb3dlciBwcmlvcml0
eSBkb2VzIG5vdCByZXBsYWNlIGFuIG9sZGVyIHdpdGggaGlnaGVyIHByaW9yaXR5LjwvZGl2Pgog
PGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgogPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
IDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
c2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CmluZGV4
IDAwYTRmZmVlZDZkZmE4MmU5ODAzZjZmNmQxMjdhOTY0OThmM2I4MGUuLjNiOWZiYzkyZTE2OGE4
YWZkMzZhYWE3ZDU1YTUyMWQ3NTM0YWIwYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdo
ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3Jp
dHktZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDExIEBACi1UZXN0cyB0aGF0IHRoZSBhdHRyaWJ1
dGlvbiBpcyB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29udmVyc2lvbiB3aXRoIGhpZ2hl
ciBwcmlvcml0eS4KK1Rlc3RzIHRoYXQgdGhlIGF0dHJpYnV0aW9uIGlzIHVwZGF0ZWQgaWYgaXQg
Z2V0cyBhIHNlY29uZCBhdHRyaWJ1dGlvbiB3aXRoIGhpZ2hlciBwcmlvcml0eS4KIAogCi1Db252
ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitBdHRyaWJ1dGVkIFByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRzOgogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQotU291
cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1D
b252ZXJzaW9uIGRhdGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiA0Ci1Db252ZXJzaW9uIGVh
cmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVl
c3Qgc2VudDogZmFsc2UKK1NvdXJjZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBzaXRl
OiBsb2NhbGhvc3QKK1NvdXJjZSBJRDogMworQXR0cmlidXRpb24gdHJpZ2dlciBkYXRhOiAxMgor
QXR0cmlidXRpb24gcHJpb3JpdHk6IDQKK0F0dHJpYnV0aW9uIGVhcmxpZXN0IHRpbWUgdG8gc2Vu
ZDogV2l0aGluIDI0LTQ4IGhvdXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXBy
aW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwKaW5kZXggNzJi
NWVmN2RhZWY5Y2ZhMGY5NWE0ZmE3ZTM3YTNiNDAyNGY3NDMzOC4uZmUzZWQ0ODU3OTBmOWNkNzI1
ZjgwYjJiNjAzNjkwNzUzZjM4NzI4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1w
cmlvcml0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbApAQCAt
Nyw3ICs3LDcgQEAKICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyB1cGRhdGVkIGlm
IGl0IGdldHMgYSBzZWNvbmQgY29udmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlvcml0eS48L2Rpdj4K
KzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyB1cGRh
dGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgYXR0cmlidXRpb24gd2l0aCBoaWdoZXIgcHJpb3JpdHku
PC9kaXY+CiA8YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+CiA8ZGl2IGlkPSJvdXRwdXQi
PjwvZGl2PgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0
CmluZGV4IGIzZjVkY2Q4OTRjMDQ4MzU3YzkxODNmZjYwMDQxNjUzMmRiODJiNGEuLmNkMjUyODE3
OGUwMThkMzhjYmY1NTBkZTk2ZTNkYWYxNDYxMzAxYjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0
aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXBy
aW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMSBAQAotVGVzdHMgdGhhdCB0aGUgYXR0
cmlidXRpb24gaXMgbm90IHVwZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBjb252ZXJzaW9uIHdp
dGggbG93ZXIgcHJpb3JpdHkuCitUZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyBub3QgdXBk
YXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGF0dHJpYnV0aW9uIHdpdGggbG93ZXIgcHJpb3JpdHku
CiAKIAotQ29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorQXR0cmlidXRlZCBQ
cml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50IDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWln
biBJRDogMwotQ29udmVyc2lvbiBkYXRhOiAxMgotQ29udmVyc2lvbiBwcmlvcml0eTogNAotQ29u
dmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycwotQ29udmVy
c2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCitTb3VyY2Ugc2l0ZTogMTI3LjAuMC4xCitBdHRyaWJ1
dGUgb24gc2l0ZTogbG9jYWxob3N0CitTb3VyY2UgSUQ6IDMKK0F0dHJpYnV0aW9uIHRyaWdnZXIg
ZGF0YTogMTIKK0F0dHJpYnV0aW9uIHByaW9yaXR5OiA0CitBdHRyaWJ1dGlvbiBlYXJsaWVzdCB0
aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRo
LWxvd2VyLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbApp
bmRleCAwZDIwNGM5ZjQyMGUxMmMzOGJlZDhkMjBjYzYwYmNhYTc2ZjNiMDZiLi5mNjYxMDYyNTU5
MDhiZmIwNzg0NGJmNTBmOThhNzk4ODgyMTk5MjAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgt
bG93ZXItcHJpb3JpdHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRt
bApAQCAtNyw3ICs3LDcgQEAKICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4K
LTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyBub3Qg
dXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0aCBsb3dlciBwcmlvcml0
eS48L2Rpdj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlv
biBpcyBub3QgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGF0dHJpYnV0aW9uIHdpdGggbG93
ZXIgcHJpb3JpdHkuPC9kaXY+CiA8YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+CiA8ZGl2
IGlkPSJvdXRwdXQiPjwvZGl2PgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJz
aW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBl
Y3RlZC50eHQKaW5kZXggOTY0MmM5OWJjZDc2ZWVmYmJlM2M1NmI4ZTEyMzMwMzdmMGRmNTA0ZS4u
YjNhYWNkMmFjYjc4YmExZGMyY2E2MmRiYzVmNWUxOTA5YzlhZmY1ZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0
aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNp
b24tcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0cyBzZW5kaW5nIG9m
IHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgcmVxdWVzdHMgYWZ0ZXIgYSBjb252ZXJzaW9uLiBB
bHNvIHRlc3RzIHRoYXQgY29va2llcyBhcmUgbm90IHNlbnQgaW4gdGhvc2UgcmVxdWVzdHMgYW5k
IGNvb2tpZXMgYXJlIG5vdCBhY2NlcHRlZCBpbiB0aGUgcmVzcG9uc2VzLgorVGVzdHMgc2VuZGlu
ZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlcXVlc3RzIGFmdGVyIGFuIGF0dHJpYnV0
aW9uLiBBbHNvIHRlc3RzIHRoYXQgY29va2llcyBhcmUgbm90IHNlbnQgaW4gdGhvc2UgcmVxdWVz
dHMgYW5kIGNvb2tpZXMgYXJlIG5vdCBhY2NlcHRlZCBpbiB0aGUgcmVzcG9uc2VzLgogCiAKIApA
QCAtMTAsMTEgKzEwLDExIEBAIENvb2tpZXMgYXJlOiBjb29raWVTZXRBc0ZpcnN0UGFydHkgPSAx
CiAtLS0tLS0tLQogRnJhbWU6ICc8IS0tZnJhbWUyLS0+JwogLS0tLS0tLS0KLUNvbnZlcnNpb24g
cmVjZWl2ZWQuCitBdHRyaWJ1dGlvbiByZWNlaXZlZC4KIEhUVFBfSE9TVDogMTI3LjAuMC4xOjgw
MDAKIENvbnRlbnQgdHlwZTogYXBwbGljYXRpb24vanNvbgotUkVRVUVTVF9VUkk6IC9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAKLU5vIGNvb2tp
ZXMgaW4gY29udmVyc2lvbiByZXF1ZXN0LgorUkVRVUVTVF9VUkk6IC9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9yZXNvdXJjZXMvYXR0cmlidXRpb25SZXBvcnQucGhwCitObyBjb29raWVzIGluIGF0
dHJpYnV0aW9uIHJlcXVlc3QuCiBSZXF1ZXN0IGJvZHk6CiB7InNvdXJjZS1lbmdhZ2VtZW50LXR5
cGUiOiJjbGljayIsInNvdXJjZS1zaXRlIjoiMTI3LjAuMC4xIiwic291cmNlLWlkIjozLCJhdHRy
aWJ1dGVkLW9uLXNpdGUiOiJsb2NhbGhvc3QiLCJ0cmlnZ2VyLWRhdGEiOjEyLCJyZXBvcnQtdmVy
c2lvbiI6MX0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJp
YnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sCmluZGV4IGIyNDczMzQzMzBmNjJmZGRjMmVj
ZWNhYmIxMDMwNmE3NzIyNzcyOTcuLmFkOGQ4OGNjOWQ2MTlmMjkzMDgyMGU1NjBhMzU1MWMwNmI2
NGYzN2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmli
dXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9h
ZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMg
c2VuZGluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlcXVlc3RzIGFmdGVyIGEgY29u
dmVyc2lvbi4gQWxzbyB0ZXN0cyB0aGF0IGNvb2tpZXMgYXJlIG5vdCBzZW50IGluIHRob3NlIHJl
cXVlc3RzIGFuZCBjb29raWVzIGFyZSBub3QgYWNjZXB0ZWQgaW4gdGhlIHJlc3BvbnNlcy48L2Rp
dj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyBzZW5kaW5nIG9mIHByaXZhdGUgY2xpY2sg
bWVhc3VyZW1lbnQgcmVxdWVzdHMgYWZ0ZXIgYW4gYXR0cmlidXRpb24uIEFsc28gdGVzdHMgdGhh
dCBjb29raWVzIGFyZSBub3Qgc2VudCBpbiB0aG9zZSByZXF1ZXN0cyBhbmQgY29va2llcyBhcmUg
bm90IGFjY2VwdGVkIGluIHRoZSByZXNwb25zZXMuPC9kaXY+CiA8YSBpZD0idGFyZ2V0TGluayIg
aHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQt
YXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWw/c3RlcFR3byIgYXR0cmlidXRpb25z
b3VyY2VpZD0iMyIgYXR0cmlidXRlb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48
YnI+CiA8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1j
bGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhw
ZWN0ZWQudHh0CmluZGV4IDMzOGIxMGVlNWRlODA2NzUxZmI3YzA0ZjM1ZGJhZWQwM2E5NzMxMTcu
LmRiNTUxZDBiN2ViNjhiZWRhZGI5Zjk0NWIyZGY2NDZmMTkzNGY3YzMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKIFRlc3RzIHN0b3JhZ2Ugb2YgcHJpdmF0
ZSBjbGljayBtZWFzdXJlbWVudC4KIAogCi1VbmNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50czoKK1VuYXR0cmlidXRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKIFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0aW5h
dGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotTm8gY29udmVyc2lvbiBkYXRhLgorU291
cmNlIHNpdGU6IDEyNy4wLjAuMQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNl
IElEOiAzCitObyBhdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGEuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414691</attachid>
            <date>2020-11-20 09:45:35 -0800</date>
            <delta_ts>2020-11-20 15:59:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219134-20201120124534.patch</filename>
            <type>text/plain</type>
            <size>225066</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFiNTI2MDRkMWZjN2Q0
ZGI2NjYxMDViMTFmYmM2Yzk2YTIwNWIxMy4uMTY1OGU5YjUyMDljNzVlYjNjZTQ3NmJmN2JkYWJk
NmI4NmIxZDcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOSBAQAorMjAyMC0xMS0xOSAgS2F0
ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IFBl
cnNpc3QgcGVuZGluZyBhZCBjbGlja3MgYW5kIGF0dHJpYnV0aW9ucyBzbyB0aGV5IGNhbiBzdXJ2
aXZlIGJyb3dzZXIgcmVzdGFydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MTM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDQ3MDEyOT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IG1pZ3JhdGVzIFBDTSBkYXRhIHRvIGJlIHN0b3JlZCBvbiBkaXNrIGFuZAorICAgICAgICB1cGRh
dGVzIG5hbWluZyBvZiB2YXJpb3VzIFBDTSBkYXRhIHRvIG1hdGNoIG5hbWluZyBhZ3JlZWQKKyAg
ICAgICAgdXBvbiBpbiBzdGFuZGFyZHMgYm9kaWVzOgorCisgICAgICAgIC0gc291cmNlIOKAkz4g
c291cmNlU2l0ZQorICAgICAgICAtIGNhbXBhaWduL2NhbXBhaWduSUQg4oCTPiBzb3VyY2VJRAor
ICAgICAgICAtIGRlc3RpbmF0aW9uIOKAkz4gYXR0cmlidXRlT25TaXRlCisgICAgICAgIC0gY29u
dmVyc2lvbi9jb252ZXJzaW9uVmFsdWUg4oCTPiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhCisgICAg
ICAgIC0gdW5jb252ZXJ0ZWQg4oCTPiB1bmF0dHJpYnV0ZWQKKyAgICAgICAgLSBjb252ZXJ0KGVk
KSDigJM+IGF0dHJpYnV0ZShkKQorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2V4cGlyZWQtYWQtY2xpY2stZ2V0cy1yZW1vdmVkLW9uLXNlc3Npb24t
c3RhcnQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9leHBpcmVkLWF0dHJpYnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFy
dC5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01lYXN1cmVtZW50
IGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Om1heEFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aXNWYWxpZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlv
blJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzSGlnaGVyUHJpb3JpdHlUaGFuIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpyZXBvcnRVUkwgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ompzb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lv
blJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQpOiBEZWxldGVkLgorICAgICAg
ICBSZW5hbWluZy4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6bWFya0FzRXhwaXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzRXhwaXJlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6bWFya0NvbnZlcnNpb25Bc1NlbnQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ondh
c0NvbnZlcnNpb25TZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgV2UgY2FuIHJlbW92ZSB0
aGUgKkV4cGlyZWQoKSBmdW5jdGlvbnMgYXMgdGhleSB3ZXJlIG9ubHkgaW5kaWNhdG9ycworICAg
ICAgICBmb3IgdGhlIEhhc2hNYXAgc3RvcmFnZSB0byBrbm93IHdoYXQgYXR0cmlidXRpb25zIHRv
IGRlbGV0ZS4gVGhpcyBpcworICAgICAgICBub3cgaGFuZGxlZCBieSBTUUxpdGUuIFNpbWlsYXJs
eSwgd2UgY2FuIHJlbW92ZSB0aGUgbWFya0NvbnZlcnNpb25Bc1NlbnQKKyAgICAgICAgYW5kIHdh
c0NvbnZlcnNpb25TZW50IGZ1bmN0aW9ucyBiZWNhdXNlIGEgc2VudCBhdHRyaWJ1dGlvbiB3aWxs
IG5vdAorICAgICAgICBiZSBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLCBzbyB0aGlzIHZhbHVlIHdp
bGwgYWx3YXlzIGJlIGZhbHNlLgorCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6dG9TdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OlNvdXJjZUlEOjpTb3VyY2VJRCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZTo6U291cmNlU2l0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZTo6b3BlcmF0b3I9PSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0
ZTo6ZGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2VTaXRlOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGVIYXNoOjpoYXNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlSGFzaDo6ZXF1
YWwpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
ZU9uU2l0ZTo6QXR0cmlidXRlT25TaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGU6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZTo6ZGVs
ZXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpB
dHRyaWJ1dGVPblNpdGU6OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlSGFzaDo6aGFzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRl
SGFzaDo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpOgorICAgICAg
ICBSZW5hbWluZy4KKworICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50Ojpzb3VyY2VTaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGVPblNpdGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRpbWVPZkFkQ2xpY2sgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNldEVhcmxpZXN0VGltZVRv
U2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c291cmNl
SUQpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OnNldEF0dHJpYnV0aW9uKToKKyAgICAgICAgTm93IHRoYXQgd2Ugc3RvcmUgZGF0YSBvbiBk
aXNrLCB3ZSBuZWVkIGEgbW9yZSBmbGV4aWJsZSBjb25zdHJ1Y3RvcgorICAgICAgICBhbmQgbW9y
ZSBmdW5jdGlvbnMgdG8gcmVidWlsZCBQQ00gb2JqZWN0cyBmcm9tIHRoZSBkYXRhYmFzZS4KKwor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVjb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6OmRlY29kZSk6CisgICAgICAgIChXVEY6
Okhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGU+
OjplbXB0eVZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZT46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6Cisg
ICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlNvdXJjZVNpdGU+Ojppc0RlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZT46OmVtcHR5
VmFsdWUpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGU+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAg
ICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpB
dHRyaWJ1dGVPblNpdGU+Ojppc0RlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ246OkNhbXBhaWduKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbjo6aXNWYWxpZCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6U291cmNlOjpTb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6b3BlcmF0b3I9PSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOjptYXRjaGVzIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2U6OmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6OmRlbGV0ZWRWYWx1
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6ZGVsZXRlVmFsdWUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6aXNE
ZWxldGVkVmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUhhc2g6Omhhc2gpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUhhc2g6OmVxdWFsKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlv
bjo6RGVzdGluYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjpvcGVyYXRvcj09IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjo6bWF0
Y2hlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6RGVzdGluYXRpb246OmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5h
dGlvbjo6ZGVsZXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5h
dGlvbjo6ZGVsZXRlVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjppc0RlbGV0ZWRWYWx1ZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRp
b25IYXNoOjpoYXNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpEZXN0aW5hdGlvbkhhc2g6OmVxdWFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uOjpDb252ZXJzaW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252
ZXJzaW9uOjppc1ZhbGlkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50Ojpzb3VyY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmRlc3RpbmF0aW9uIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgUmVuYW1pbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50Ojppc0VtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgTm90IG5lZWRlZCBh
bnltb3JlLCB0aGUgZGF0YWJhc2UgdXNlcyBPcHRpb25hbHMgdG8gaW5kaWNhdGUgYW4gZW1wdHkg
cmVzdWx0LgorCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29u
dmVyc2lvbjo6ZW5jb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uOjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAg
ICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2U+OjplbXB0eVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlPjo6Y29uc3RydWN0RGVsZXRlZFZh
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlPjo6aXNEZWxldGVkVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpE
ZXN0aW5hdGlvbj46OmVtcHR5VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpIYXNoVHJh
aXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbj46OmNvbnN0
cnVjdERlbGV0ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPjo6aXNEZWxldGVkVmFs
dWUpOiBEZWxldGVkLgorICAgICAgICBSZW5hbWluZy4KKwogMjAyMC0xMS0xOSAgRG9uIE9sbXN0
ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFVzZSBmaW5hbCBpbiBnZW5l
cmF0ZWQgd3JhcHBlciBvd25lciBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM0YjQ3MWE0ZWI4MjBmNTIyNzYy
YjJhMTgzZjNkYmI3Nzc3YzliMzIuLjhhNTE1OTBiN2NiNmQxMWY0NmQ3NDMzNzU4ZTBhOWE0YzMx
NjViZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ4IEBACisyMDIwLTExLTE5ICBLYXRlIENoZW5l
eSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogUGVyc2lzdCBw
ZW5kaW5nIGFkIGNsaWNrcyBhbmQgYXR0cmlidXRpb25zIHNvIHRoZXkgY2FuIHN1cnZpdmUgYnJv
d3NlciByZXN0YXJ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTkxMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNDcwMTI5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWlncmF0
ZXMgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCB0byB1c2UgU1FMaXRlLAorICAgICAgICB3aGlj
aCBpcyBiZW5lZmljaWFsIGJlY2F1c2UgaXQgcmVxdWlyZXMgbGVzcyBpbi1tZW1vcnkgc3RvcmFn
ZSBhbmQKKyAgICAgICAgcGVyc2lzdHMgUENNIGRhdGEgYWNyb3NzIGJyb3dzZXIgc2Vzc2lvbnMu
IEl0IGFsc28gdXBkYXRlcyBuYW1pbmcKKyAgICAgICAgdG8gbWF0Y2ggbmFtaW5nIGFncmVlZCB1
cG9uIGluIHN0YW5kYXJkcyBib2RpZXM6CisKKyAgICAgICAgLSBzb3VyY2Ug4oCTPiBzb3VyY2VT
aXRlCisgICAgICAgIC0gY2FtcGFpZ24vY2FtcGFpZ25JRCDigJM+IHNvdXJjZUlECisgICAgICAg
IC0gZGVzdGluYXRpb24g4oCTPiBhdHRyaWJ1dGVPblNpdGUKKyAgICAgICAgLSBjb252ZXJzaW9u
L2NvbnZlcnNpb25WYWx1ZSDigJM+IGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEKKyAgICAgICAgLSB1
bmNvbnZlcnRlZCDigJM+IHVuYXR0cmlidXRlZAorICAgICAgICAtIGNvbnZlcnQoZWQpIOKAkz4g
YXR0cmlidXRlKGQpCisKKyAgICAgICAgVGhpcyBhZGRzIDMgU1FMaXRlIHRhYmxlczogb25lIGZv
ciBhZCBjbGlja3MgdGhhdCBoYXZlbid0IGJlZW4KKyAgICAgICAgYXR0cmlidXRlZCwgb25lIGZv
ciBhdHRyaWJ1dGlvbnMgdGhhdCBoYXZlbid0IGJlZW4gc2VudCwgYW5kIG9uZSB0bworICAgICAg
ICBzdG9yZSB0aGUgbGFzdCB0aW1lIHRoZSByZXBvcnRzIHdlcmUgc2VudCB0byBtYWtlIHN1cmUg
cmVwb3J0cyBnZXQKKyAgICAgICAgc2VudCBhcyBzb29uIGFzIHBvc3NpYmxlIGlmIG5lZWRlZCBh
ZnRlciBhIGJyb3dzZXIgcmVzdGFydC4KKworICAgICAgICBCZWhhdmlvciBpcyBpZGVudGljYWwg
dG8gZXhpc3RpbmcgUENNIGltcGxlbWVudGF0aW9uIHdpdGggdGhlIGFkZGl0aW9uCisgICAgICAg
IG9mIHBlcnNpc3RlbmNlLiBFeGlzdGluZyBQQ00gdGVzdHMgY29uZmlybSBubyByZWdyZXNzaW9u
cy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVUYWJsZVF1ZXJpZXMpOgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlVW5pcXVlSW5kaWNlcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEp
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
ZGVzdHJveVN0YXRlbWVudHMpOgorICAgICAgICBOZXcgcXVlcmllcyB0byBpbnRlcmFjdCB3aXRo
IFBDTSBkYXRhLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjp1cGRhdGVUaW1lckxhc3RGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0aW1lckxhc3RGaXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVGltZXMpOgorICAgICAgICBTZXQgZWFybGll
c3RUaW1lVG9TZW5kIHRvIGJlIHRoZSBvcmlnaW5hbCB2YWx1ZSBtaW51cyB0aGUgdGltZSBwYXNz
ZWQgc2luY2UgdGhlIGxhc3QgdGltZXIgZmlyZQorICAgICAgICBmb3IgZWFjaCBlbnRyeS4gSWYg
dGhlIHJlc3VsdCBpcyBsZXNzIHRoYW4gMCwgc2V0IHRvIDAgc28gdGhlIHJlcG9ydCBnZXRzIHNl
bnQgaW1tZWRpYXRlbHkuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmJ1aWxkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9tRGF0YWJhc2Up
OgorICAgICAgICBDcmVhdGVzIGEgUENNIG9iamVjdCBmcm9tIGRhdGEgaW4gdGhlIGRhdGFiYXNl
LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6bWFya0FsbFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9y
VGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpyZW1vdmVVbmF0dHJpYnV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6YWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktp
dDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Y2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YXR0cmlidXRp
b25Ub1N0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nKToKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyU2VudEF0dHJp
YnV0aW9ucyk6CisgICAgICAgIFRoZXNlIGZ1bmN0aW9ucyB1c2UgZGF0YWJhc2UgcXVlcmllcyB0
byBpbXBsZW1lbnQgUENNIGZ1bmN0aW9uYWxpdHkgd2l0aCBleGFjdGx5IHRoZSBzYW1lCisgICAg
ICAgIGJlaGF2aW9yIGFzIHRoZSBpbi1tZW1vcnkgUENNIGltcGxlbWVudGF0aW9uLgorCisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptYXJrQXR0
cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0
ZVRpbWVyTGFzdEZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjppbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bWFya0FsbFVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmFsbEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZvclJlZ2lzdHJhYmxlRG9tYWluKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhckV4
cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJT
ZW50QXR0cmlidXRpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpmaXJl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUaW1lckltbWVkaWF0ZWx5KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25S
ZXN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om1hcmtBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIFRl
c3QgZnVuY3Rpb25zIHRvIGhlbHAgc2ltdWxhdGUgYSBicm93c2VyIHJlc3RhcnQgYWZ0ZXIgUENN
IGRhdGEgaGFzIGV4cGlyZWQgZHVyaW5nCisgICAgICAgIGEgc2Vzc2lvbiBjbG9zZS4gVGhpcyBp
cyB0aGUgb25seSBiZWhhdmlvciBjaGFuZ2UgZnJvbSB0aGUgZXhpc3RpbmcgUENNIGltcGxlbWVu
dGF0aW9uLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNl
bmRSZWRpcmVjdGVkUmVxdWVzdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6ZmlyZVByaXZhdGVDbGlja01lYXN1cmVt
ZW50VGltZXJJbW1lZGlhdGVseSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpz
dG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb246OmhhbmRsZVByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbik6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vz
c2lvbjo6bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlcik6CisgICAgICAgIE1vdmUgY29uc3RydWN0b3IgdG8gY3BwIGZpbGUg
dG8gY2FsbCBzdGFydFRpbWVyKDVfcykgd2hpY2ggd2lsbCBraWNrCisgICAgICAgIG9mZiBzZW5k
aW5nIGFueSByZXBvcnRzIHRoYXQgaGF2ZSBleHBpcmVkIGluIHRoZSBkYXRhYmFzZS4gV2Ugc2hv
dWxkCisgICAgICAgIHdhaXQgNSBzZWNvbmRzIHNvIHdlIGFyZSBzdXJlIElUUCBpcyB1cCBhbmQg
cnVubmluZy4KKworICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVBdHRyaWJ1dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RhcnRUaW1lcik6CisgICAgICAgIChXZWJL
aXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YXR0cmlidXRlKToKKyAgICAgICAg
KFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJl
cXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OmNsZWFyU2VudEF0dHJpYnV0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlcjo6dXBkYXRlVGltZXJMYXN0RmlyZWQpOgorICAgICAgICAoV2ViS2l0
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVQZW5kaW5nQXR0cmlidXRpb25S
ZXF1ZXN0cyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cjo6Y2xlYXIpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyRXhwaXJlZCk6CisgICAgICAgIChXZWJLaXQ6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6dG9TdHJpbmcgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNldENvbnZlcnNpb25V
UkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyOjptYXJrQWxsVW5hdHRyaWJ1dGVkQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6bWFya0F0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdl
YktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdG9yZVVuY29udmVydGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpoYW5kbGVDb252ZXJzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlUGVuZGluZ0NvbnZlcnNpb25S
ZXF1ZXN0cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcjo6bWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVzdGluZyk6IERlbGV0
ZWQuCisgICAgICAgIEltcGxlbWVudGF0aW9uIG1vdmVkIHRvIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcjo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyKTogRGVsZXRlZC4K
KyAgICAgICAgTW92ZWQgdG8gY3BwIGZpbGUuCisKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjptX3Nlc3Npb25JRCk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VNYXJrQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAo
V0tQYWdlU2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
Q29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjptYXJr
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Nlc3Npb25SZXN0YXJ0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgIFRlc3Rpbmcgc3VwcG9ydC4KKwogMjAyMC0xMS0xOSAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBJc3N1ZSBzYW5kYm94IGV4
dGVuc2lvbiB0byBXZWIgSW5zcGVjdG9yIHNlcnZpY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHAKaW5kZXggN2JjMzc0OGRmYjk4YzBmZGUzMWM1YmUzYTFkZjExMTM4
OWI4MTU5ZC4uYmRmMzljNzNjOWUxMjlmMDMxNjNmZjEwZmM2NjFhMmE0ZjMyNTY4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTQwMCw5ICs0MDAsOSBA
QCBib29sIEhUTUxBbmNob3JFbGVtZW50Ojppc1N5c3RlbVByZXZpZXdMaW5rKCkKIAogT3B0aW9u
YWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZh
dGVDbGlja01lYXN1cmVtZW50KCkgY29uc3QKIHsKLSAgICB1c2luZyBDYW1wYWlnbiA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbjsKLSAgICB1c2luZyBTb3VyY2UgPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlOwotICAgIHVzaW5nIERlc3RpbmF0aW9uID0gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOworICAgIHVzaW5nIFNvdXJjZUlEID0gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEOworICAgIHVzaW5nIFNvdXJjZVNpdGUgPSBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZTsKKyAgICB1c2luZyBBdHRyaWJ1dGVP
blNpdGUgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlOwogCiAgICAg
YXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwogICAgIGlmICghcGFnZSB8fCBwYWdlLT5z
ZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpCkBAIC00NTAsNyArNDUwLDcgQEAgT3B0aW9uYWw8UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlj
a01lYXN1cmVtZW4KICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKLSAgICBy
ZXR1cm4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgeyBDYW1wYWlnbihhdHRyaWJ1dGlvblNvdXJj
ZUlELnZhbHVlKCkpLCBTb3VyY2UoZG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbiksIERlc3RpbmF0
aW9uKGF0dHJpYnV0ZU9uVVJMKSB9OworICAgIHJldHVybiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCB7IFNvdXJjZUlEKGF0dHJpYnV0aW9uU291cmNlSUQudmFsdWUoKSksIFNvdXJjZVNpdGUoZG9j
dW1lbnRSZWdpc3RyYWJsZURvbWFpbiksIEF0dHJpYnV0ZU9uU2l0ZShhdHRyaWJ1dGVPblVSTCkg
fTsKIH0KIAogdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2soRXZlbnQmIGV2ZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5j
cHAKaW5kZXggYjBiYWJiNDU5MGYxNmU4ZTlhOWE2OGM1ZDNhYWE3NDRjMDU2YTlkNS4uMWI1N2Qz
NmZhZDA3YjA4NGViZDA4NzkzMDg2ZjI1MjliY2QxZjBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0zNywyMSArMzcsMjUg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRQYXRoUHJlZml4W10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQvIjsKLWNvbnN0IHNpemVfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNp
b25EYXRhUGF0aFNlZ21lbnRTaXplID0gMjsKK2NvbnN0IHNpemVfdCBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwogY29uc3Qg
c2l6ZV90IHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUgPSAy
OwotY29uc3QgU2Vjb25kcyBtYXhBZ2UgeyAyNF9oICogNyB9OworCitjb25zdCBTZWNvbmRzIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjptYXhBZ2UoKQoreworICAgIHJldHVybiAyNF9oICogNzsK
K307CiAKIGJvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmlzVmFsaWQoKSBjb25zdAogewot
ICAgIHJldHVybiBtX2NvbnZlcnNpb24KLSAgICAgICAgJiYgbV9jb252ZXJzaW9uLnZhbHVlKCku
aXNWYWxpZCgpCi0gICAgICAgICYmIG1fY2FtcGFpZ24uaXNWYWxpZCgpCi0gICAgICAgICYmICFt
X3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5pc0VtcHR5KCkKLSAgICAgICAgJiYgIW1fZGVzdGlu
YXRpb24ucmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpCisgICAgcmV0dXJuIG1fYXR0cmlidXRp
b25UcmlnZ2VyRGF0YQorICAgICAgICAmJiBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEudmFsdWUo
KS5pc1ZhbGlkKCkKKyAgICAgICAgJiYgbV9zb3VyY2VJRC5pc1ZhbGlkKCkKKyAgICAgICAgJiYg
IW1fc291cmNlU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5pc0VtcHR5KCkKKyAgICAgICAgJiYgIW1f
YXR0cmlidXRlT25TaXRlLnJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKQogICAgICAgICAmJiBt
X2VhcmxpZXN0VGltZVRvU2VuZDsKIH0KIAotRXhwZWN0ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkNvbnZlcnNpb24sIFN0cmluZz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29u
dmVyc2lvblJlcXVlc3QoY29uc3QgVVJMJiByZWRpcmVjdFVSTCkKK0V4cGVjdGVkPFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBTdHJpbmc+IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb25zdCBVUkwmIHJlZGly
ZWN0VVJMKQogewogICAgIGlmICghcmVkaXJlY3RVUkwucHJvdG9jb2xJcygiaHR0cHMiKSB8fCBy
ZWRpcmVjdFVSTC5oYXNDcmVkZW50aWFscygpIHx8IHJlZGlyZWN0VVJMLmhhc1F1ZXJ5KCkgfHwg
cmVkaXJlY3RVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpIHsKICAgICAgICAgaWYgKFVOTElL
RUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKQEAgLTcxLDkgKzc1LDkgQEAgRXhwZWN0ZWQ8UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24sIFN0cmluZz4gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OnAKICAgICB9CiAKICAgICBhdXRvIHByZWZpeExlbmd0aCA9IHNpemVvZihwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXgpIC0gMTsKLSAgICBpZiAocGF0aC5sZW5ndGgo
KSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25EYXRh
UGF0aFNlZ21lbnRTaXplKSB7Ci0gICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGFVSW50NjQgPSBw
YXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVy
c2lvbkRhdGFQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7Ci0gICAgICAgIGlmICgh
Y29udmVyc2lvbkRhdGFVSW50NjQgfHwgKmNvbnZlcnNpb25EYXRhVUludDY0ID4gTWF4RW50cm9w
eSkgeworICAgIGlmIChwYXRoLmxlbmd0aCgpID09IHByZWZpeExlbmd0aCArIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YVBhdGhTZWdtZW50U2l6ZSkgeworICAg
ICAgICBhdXRvIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhw
cmVmaXhMZW5ndGgsIHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0
YVBhdGhTZWdtZW50U2l6ZSkudG9VSW50NjRTdHJpY3QoKTsKKyAgICAgICAgaWYgKCFhdHRyaWJ1
dGlvblRyaWdnZXJEYXRhVUludDY0IHx8ICphdHRyaWJ1dGlvblRyaWdnZXJEYXRhVUludDY0ID4g
TWF4RW50cm9weSkgewogICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQo
KSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZlcnNp
b24gZGF0YSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dl
ZCBtYXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4RW50cm9weSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVt
ZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgY29udmVyc2lvbiBk
YXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1h
eGltdW0gb2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJfcykpOwpAQCAtODEsMTIgKzg1LDEyIEBAIEV4
cGVjdGVkPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uLCBTdHJpbmc+IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpwCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
bnVsbFN0cmluZygpKTsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBDb252ZXJzaW9uIHsg
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KCpjb252ZXJzaW9uRGF0YVVJbnQ2NCksIFByaW9yaXR5IHsg
MCB9IH07CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHsgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KCphdHRyaWJ1dGlvblRyaWdnZXJEYXRhVUludDY0KSwgUHJpb3JpdHkgeyAw
IH0gfTsKICAgICB9CiAgICAgCi0gICAgaWYgKHBhdGgubGVuZ3RoKCkgPT0gcHJlZml4TGVuZ3Ro
ICsgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSAr
IDEgKyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFByaW9yaXR5UGF0aFNlZ21lbnRTaXplKSB7Ci0g
ICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhM
ZW5ndGgsIHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNp
emUpLnRvVUludDY0U3RyaWN0KCk7Ci0gICAgICAgIGlmICghY29udmVyc2lvbkRhdGFVSW50NjQg
fHwgKmNvbnZlcnNpb25EYXRhVUludDY0ID4gTWF4RW50cm9weSkgeworICAgIGlmIChwYXRoLmxl
bmd0aCgpID09IHByZWZpeExlbmd0aCArIHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25UcmlnZ2VyRGF0YVBhdGhTZWdtZW50U2l6ZSArIDEgKyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFByaW9yaXR5UGF0aFNlZ21lbnRTaXplKSB7CisgICAgICAgIGF1dG8gYXR0cmlidXRpb25Ucmln
Z2VyRGF0YVVJbnQ2NCA9IHBhdGguc3Vic3RyaW5nKHByZWZpeExlbmd0aCwgcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhUGF0aFNlZ21lbnRTaXplKS50b1VJbnQ2
NFN0cmljdCgpOworICAgICAgICBpZiAoIWF0dHJpYnV0aW9uVHJpZ2dlckRhdGFVSW50NjQgfHwg
KmF0dHJpYnV0aW9uVHJpZ2dlckRhdGFVSW50NjQgPiBNYXhFbnRyb3B5KSB7CiAgICAgICAgICAg
ICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewogICAgICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJzaW9uIHdhcyBu
b3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJz
ZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgJXtwdWJsaWN9dS4i
LCBNYXhFbnRyb3B5KTsKICAgICAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFr
ZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBh
Y2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQgbm90IGJlIHBhcnNlZCBv
ciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAiX3MsIE1heEVudHJvcHks
ICIuIl9zKSk7CkBAIC05NCw4ICs5OCw4IEBAIEV4cGVjdGVkPFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpDb252ZXJzaW9uLCBTdHJpbmc+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwCiAgICAg
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKICAgICAgICAgfQog
Ci0gICAgICAgIGF1dG8gY29udmVyc2lvblByaW9yaXR5VUludDY0ID0gcGF0aC5zdWJzdHJpbmco
cHJlZml4TGVuZ3RoICsgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uRGF0YVBhdGhT
ZWdtZW50U2l6ZSArIDEsIHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVu
dFNpemUpLnRvVUludDY0U3RyaWN0KCk7Ci0gICAgICAgIGlmICghY29udmVyc2lvblByaW9yaXR5
VUludDY0IHx8ICpjb252ZXJzaW9uUHJpb3JpdHlVSW50NjQgPiBNYXhFbnRyb3B5KSB7CisgICAg
ICAgIGF1dG8gYXR0cmlidXRpb25Qcmlvcml0eVVJbnQ2NCA9IHBhdGguc3Vic3RyaW5nKHByZWZp
eExlbmd0aCArIHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YVBh
dGhTZWdtZW50U2l6ZSArIDEsIHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2Vn
bWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7CisgICAgICAgIGlmICghYXR0cmlidXRpb25Qcmlv
cml0eVVJbnQ2NCB8fCAqYXR0cmlidXRpb25Qcmlvcml0eVVJbnQ2NCA+IE1heEVudHJvcHkpIHsK
ICAgICAgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CiAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZl
cnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBwcmlvcml0eSBjb3VsZCBub3QgYmUg
cGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGlj
fXUuIiwgTWF4RW50cm9weSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBu
b3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgcHJpb3JpdHkgY291bGQgbm90IGJlIHBhcnNlZCBvciB3
YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAiX3MsIE1heEVudHJvcHksICIu
Il9zKSk7CkBAIC0xMDMsNyArMTA3LDcgQEAgRXhwZWN0ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkNvbnZlcnNpb24sIFN0cmluZz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnAKICAgICAg
ICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChudWxsU3RyaW5nKCkpOwogICAgICAgICB9CiAK
LSAgICAgICAgcmV0dXJuIENvbnZlcnNpb24geyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oKmNvbnZl
cnNpb25EYXRhVUludDY0KSwgUHJpb3JpdHkgeyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oKmNvbnZl
cnNpb25Qcmlvcml0eVVJbnQ2NCkgfSB9OworICAgICAgICByZXR1cm4gQXR0cmlidXRpb25Ucmln
Z2VyRGF0YSB7IHN0YXRpY19jYXN0PHVpbnQzMl90PigqYXR0cmlidXRpb25UcmlnZ2VyRGF0YVVJ
bnQ2NCksIFByaW9yaXR5IHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KCphdHRyaWJ1dGlvblByaW9y
aXR5VUludDY0KSB9IH07CiAgICAgfQogCiAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJs
ZWQoKSkpIHsKQEAgLTExMywxMiArMTE3LDEyIEBAIEV4cGVjdGVkPFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpDb252ZXJzaW9uLCBTdHJpbmc+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwCiAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51bGxTdHJpbmcoKSk7CiB9CiAKLU9wdGlvbmFsPFNl
Y29uZHM+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpjb252ZXJ0QW5kR2V0RWFybGllc3RUaW1l
VG9TZW5kKENvbnZlcnNpb24mJiBjb252ZXJzaW9uKQorT3B0aW9uYWw8U2Vjb25kcz4gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBdHRy
aWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKIHsKLSAgICBpZiAo
IWNvbnZlcnNpb24uaXNWYWxpZCgpIHx8IChtX2NvbnZlcnNpb24gJiYgbV9jb252ZXJzaW9uLT5w
cmlvcml0eSA+PSBjb252ZXJzaW9uLnByaW9yaXR5KSkKKyAgICBpZiAoIWF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEuaXNWYWxpZCgpIHx8IChtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgJiYgbV9hdHRy
aWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+PSBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLnBy
aW9yaXR5KSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIG1fY29udmVyc2lvbiA9IFdURk1v
dmUoY29udmVyc2lvbik7CisgICAgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShh
dHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsKICAgICAvLyAyNC00OCBob3VyIGRlbGF5IGJlZm9yZSBz
ZW5kaW5nLiBUaGlzIGhlbHBzIHByaXZhY3kgc2luY2UgdGhlIGNvbnZlcnNpb24gYW5kIHRoZSBh
dHRyaWJ1dGlvbgogICAgIC8vIHJlcXVlc3RzIGFyZSBkZXRhY2hlZCBhbmQgdGhlIHRpbWUgb2Yg
dGhlIGF0dHJpYnV0aW9uIGRvZXMgbm90IHJldmVhbCB0aGUgdGltZSBvZiB0aGUgY29udmVyc2lv
bi4KICAgICBhdXRvIHNlY29uZHMgPSAyNF9oICsgU2Vjb25kcyhyYW5kb21OdW1iZXIoKSAqICgy
NF9oKS52YWx1ZSgpKTsKQEAgLTEyNiwyNSArMTMwLDE1IEBAIE9wdGlvbmFsPFNlY29uZHM+IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Ojpjb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKENv
bnZlCiAgICAgcmV0dXJuIHNlY29uZHM7CiB9CiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6Om1hcmtBc0V4cGlyZWQoKQotewotICAgIG1fdGltZU9mQWRDbGljayA9IHsgfTsKLX0KLQot
Ym9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzRXhwaXJlZCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIFdhbGxUaW1lOjpub3coKSA+IG1fdGltZU9mQWRDbGljayArIG1heEFnZTsKLX0KLQog
Ym9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0
IFByaXZhdGVDbGlja01lYXN1cmVtZW50JiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAoIW90aGVy
Lm1fY29udmVyc2lvbikKKyAgICBpZiAoIW90aGVyLm1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCi0gICAgaWYgKCFtX2NvbnZlcnNpb24pCisgICAg
aWYgKCFtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIHJldHVybiBtX2NvbnZlcnNpb24tPnByaW9yaXR5ID4gb3RoZXIubV9jb252ZXJzaW9uLT5w
cmlvcml0eTsKKyAgICByZXR1cm4gbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+
IG90aGVyLm1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YS0+cHJpb3JpdHk7CiB9CiAKIFVSTCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6cmVwb3J0VVJMKCkgY29uc3QKQEAgLTE1NCw3ICsxNDgsNyBA
QCBVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCgpIGNvbnN0CiAKICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJodHRwczov
LyIpOwotICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmlu
ZygpKTsKKyAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVEb21haW4u
c3RyaW5nKCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFBhdGhQcmVmaXgpOwogCiAgICAgVVJMIHVybCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5n
KCkgfTsKQEAgLTE2Nyw2MCArMTYxLDE4IEBAIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
cmVwb3J0VVJMKCkgY29uc3QKIFJlZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Ojpqc29uKCkgY29uc3QKIHsKICAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmpl
Y3Q6OmNyZWF0ZSgpOwotICAgIGlmICghbV9jb252ZXJzaW9uKQorICAgIGlmICghbV9hdHRyaWJ1
dGlvblRyaWdnZXJEYXRhKQogICAgICAgICByZXR1cm4gcmVwb3J0RGV0YWlsczsKIAogICAgIHJl
cG9ydERldGFpbHMtPnNldFN0cmluZygic291cmNlLWVuZ2FnZW1lbnQtdHlwZSJfcywgImNsaWNr
Il9zKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZS1zaXRlIl9zLCBtX3Nv
dXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0
SW50ZWdlcigic291cmNlLWlkIl9zLCBtX2NhbXBhaWduLmlkKTsKLSAgICByZXBvcnREZXRhaWxz
LT5zZXRTdHJpbmcoImF0dHJpYnV0ZWQtb24tc2l0ZSJfcywgbV9kZXN0aW5hdGlvbi5yZWdpc3Ry
YWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigidHJp
Z2dlci1kYXRhIl9zLCBtX2NvbnZlcnNpb24tPmRhdGEpOworICAgIHJlcG9ydERldGFpbHMtPnNl
dFN0cmluZygic291cmNlLXNpdGUiX3MsIG1fc291cmNlU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5z
dHJpbmcoKSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigic291cmNlLWlkIl9zLCBt
X3NvdXJjZUlELmlkKTsKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoImF0dHJpYnV0ZWQt
b24tc2l0ZSJfcywgbV9hdHRyaWJ1dGVPblNpdGUucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkp
OworICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInRyaWdnZXItZGF0YSJfcywgbV9hdHRy
aWJ1dGlvblRyaWdnZXJEYXRhLT5kYXRhKTsKICAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2Vy
KCJyZXBvcnQtdmVyc2lvbiJfcywgMSk7CiAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CiB9CiAK
LXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Om1hcmtDb252ZXJzaW9uQXNTZW50KCkKLXsK
LSAgICBBU1NFUlQobV9jb252ZXJzaW9uKTsKLSAgICBpZiAobV9jb252ZXJzaW9uKQotICAgICAg
ICBtX2NvbnZlcnNpb24tPndhc1NlbnQgPSBDb252ZXJzaW9uOjpXYXNTZW50OjpZZXM7Ci19Ci0K
LWJvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ondhc0NvbnZlcnNpb25TZW50KCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9jb252ZXJzaW9uICYmIG1fY29udmVyc2lvbi0+d2FzU2VudCA9PSBD
b252ZXJzaW9uOjpXYXNTZW50OjpZZXM7Ci19Ci0KLVN0cmluZyBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6dG9TdHJpbmcoKSBjb25zdAotewotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlNvdXJjZTogIik7Ci0gICAgYnVpbGRlci5hcHBlbmQo
bV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiXG5EZXN0aW5hdGlvbjogIik7Ci0gICAgYnVpbGRlci5hcHBlbmQobV9kZXN0aW5h
dGlvbi5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJcbkNhbXBhaWduIElEOiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NhbXBh
aWduLmlkKTsKLSAgICBpZiAobV9jb252ZXJzaW9uKSB7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiXG5Db252ZXJzaW9uIGRhdGE6ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcihtX2NvbnZlcnNpb24udmFsdWUoKS5kYXRhKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJcbkNvbnZlcnNpb24gcHJpb3JpdHk6ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcihtX2NvbnZlcnNpb24udmFsdWUoKS5wcmlvcml0eSk7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiXG5Db252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogIik7Ci0g
ICAgICAgIGlmICghbV9lYXJsaWVzdFRpbWVUb1NlbmQpCi0gICAgICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIk5vdCBzZXQiKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhdXRv
IHNlY29uZHNVbnRpbFNlbmQgPSAqbV9lYXJsaWVzdFRpbWVUb1NlbmQgLSBXYWxsVGltZTo6bm93
KCk7Ci0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgoc2Vjb25kc1VudGlsU2VuZCA+PSAyNF9o
ICYmIHNlY29uZHNVbnRpbFNlbmQgPD0gNDhfaCkgPyAiV2l0aGluIDI0LTQ4IGhvdXJzIiA6ICJP
dXRzaWRlIDI0LTQ4IGhvdXJzIik7Ci0gICAgICAgIH0KLSAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJcbkNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiAiKTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoKHdhc0NvbnZlcnNpb25TZW50KCkgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7Ci0gICAgfSBl
bHNlCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5ObyBjb252ZXJzaW9uIGRhdGEu
Iik7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOwotfQotCiBib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWJ1Z01vZGVFbmFi
bGVkKCkKIHsKICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKaW5kZXggYTYwMmY3
Y2M2OWFkYWU4OTNhOTcyZmVmMzQ1MDhhMGY1MTQzYTUyMC4uMTMyOGY3NmRmNjdhMDZkYTNjN2Fm
Njg0Zjc4ZGNlODc2YWMyNGI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1By
aXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTM5LDE1ICszOSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHsKIHB1YmxpYzoKLSAgICB1c2lu
ZyBDYW1wYWlnbklkID0gdWludDMyX3Q7Ci0gICAgdXNpbmcgQ29udmVyc2lvbkRhdGEgPSB1aW50
MzJfdDsKICAgICB1c2luZyBQcmlvcml0eVZhbHVlID0gdWludDMyX3Q7CiAKICAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnQzMl90IE1heEVudHJvcHkgPSA2MzsKIAotICAgIHN0cnVjdCBDYW1wYWln
biB7Ci0gICAgICAgIENhbXBhaWduKCkgPSBkZWZhdWx0OwotICAgICAgICBleHBsaWNpdCBDYW1w
YWlnbihDYW1wYWlnbklkIGlkKQorICAgIHN0cnVjdCBTb3VyY2VJRCB7CisgICAgICAgIFNvdXJj
ZUlEKCkgPSBkZWZhdWx0OworICAgICAgICBleHBsaWNpdCBTb3VyY2VJRCh1aW50MzJfdCBpZCkK
ICAgICAgICAgICAgIDogaWQgeyBpZCB9CiAgICAgICAgIHsKICAgICAgICAgfQpAQCAtNTcsMjcg
KzU1LDI3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBpZCA8PSBNYXhFbnRyb3B5Owog
ICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBDYW1wYWlnbklkIGlkIHsgMCB9OworICAgICAg
ICB1aW50MzJfdCBpZCB7IDAgfTsKICAgICB9OwogCi0gICAgc3RydWN0IFNvdXJjZSB7Ci0gICAg
ICAgIFNvdXJjZSgpID0gZGVmYXVsdDsKLSAgICAgICAgZXhwbGljaXQgU291cmNlKGNvbnN0IFVS
TCYgdXJsKQorICAgIHN0cnVjdCBTb3VyY2VTaXRlIHsKKyAgICAgICAgU291cmNlU2l0ZSgpID0g
ZGVmYXVsdDsKKyAgICAgICAgZXhwbGljaXQgU291cmNlU2l0ZShjb25zdCBVUkwmIHVybCkKICAg
ICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4geyB1cmwgfQogICAgICAgICB7CiAgICAgICAg
IH0KIAotICAgICAgICBleHBsaWNpdCBTb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRv
bWFpbikKKyAgICAgICAgZXhwbGljaXQgU291cmNlU2l0ZShjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZG9tYWluKQogICAgICAgICAgICAgOiByZWdpc3RyYWJsZURvbWFpbiB7IGRvbWFpbiB9CiAg
ICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIGV4cGxpY2l0IFNvdXJjZShXVEY6Okhhc2hU
YWJsZURlbGV0ZWRWYWx1ZVR5cGUpCisgICAgICAgIGV4cGxpY2l0IFNvdXJjZVNpdGUoV1RGOjpI
YXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICAgICAgOiByZWdpc3RyYWJsZURvbWFp
bihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAg
ICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNvdXJjZSYgb3RoZXIpIGNvbnN0CisgICAgICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb3VyY2VTaXRlJiBvdGhlcikgY29uc3QKICAgICAgICAg
ewogICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhYmxlRG9tYWluID09IG90aGVyLnJlZ2lzdHJh
YmxlRG9tYWluOwogICAgICAgICB9CkBAIC05MiwxNSArOTAsMTUgQEAgcHVibGljOgogICAgICAg
ICAgICAgcmV0dXJuIHJlZ2lzdHJhYmxlRG9tYWluLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7
CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgU291cmNlIGRlbGV0ZWRWYWx1ZSgpCisgICAg
ICAgIHN0YXRpYyBTb3VyY2VTaXRlIGRlbGV0ZWRWYWx1ZSgpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBTb3VyY2UgeyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OworICAgICAg
ICAgICAgcmV0dXJuIFNvdXJjZVNpdGUgeyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9Owog
ICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFNv
dXJjZSYgc291cmNlKQorICAgICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUo
U291cmNlU2l0ZSYgc291cmNlU2l0ZSkKICAgICAgICAgewotICAgICAgICAgICAgbmV3ICgmc291
cmNlKSBTb3VyY2U7Ci0gICAgICAgICAgICBzb3VyY2UgPSBTb3VyY2U6OmRlbGV0ZWRWYWx1ZSgp
OworICAgICAgICAgICAgbmV3ICgmc291cmNlU2l0ZSkgU291cmNlU2l0ZTsKKyAgICAgICAgICAg
IHNvdXJjZVNpdGUgPSBTb3VyY2VTaXRlOjpkZWxldGVkVmFsdWUoKTsKICAgICAgICAgfQogCiAg
ICAgICAgIHZvaWQgZGVsZXRlVmFsdWUoKQpAQCAtMTE2LDEzICsxMTQsMTMgQEAgcHVibGljOgog
ICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbjsKICAgICB9OwogCi0g
ICAgc3RydWN0IFNvdXJjZUhhc2ggewotICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25z
dCBTb3VyY2UmIHNvdXJjZSkKKyAgICBzdHJ1Y3QgU291cmNlU2l0ZUhhc2ggeworICAgICAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLmhhc2goKTsK
KyAgICAgICAgICAgIHJldHVybiBzb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluLmhhc2goKTsK
ICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU291
cmNlJiBhLCBjb25zdCBTb3VyY2UmIGIpCisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0
IFNvdXJjZVNpdGUmIGEsIGNvbnN0IFNvdXJjZVNpdGUmIGIpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIHJldHVybiBhID09IGI7CiAgICAgICAgIH0KQEAgLTEzMCwyNCArMTI4LDI0IEBAIHB1Ymxp
YzoKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSBmYWxzZTsKICAgICB9OwogCi0gICAgc3RydWN0IERlc3RpbmF0aW9uIHsKLSAgICAgICAg
RGVzdGluYXRpb24oKSA9IGRlZmF1bHQ7Ci0gICAgICAgIGV4cGxpY2l0IERlc3RpbmF0aW9uKGNv
bnN0IFVSTCYgdXJsKQorICAgIHN0cnVjdCBBdHRyaWJ1dGVPblNpdGUgeworICAgICAgICBBdHRy
aWJ1dGVPblNpdGUoKSA9IGRlZmF1bHQ7CisgICAgICAgIGV4cGxpY2l0IEF0dHJpYnV0ZU9uU2l0
ZShjb25zdCBVUkwmIHVybCkKICAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4geyBSZWdp
c3RyYWJsZURvbWFpbiB7IHVybCB9IH0KICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAg
ZXhwbGljaXQgRGVzdGluYXRpb24oV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQorICAg
ICAgICBleHBsaWNpdCBBdHRyaWJ1dGVPblNpdGUoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVU
eXBlKQogICAgICAgICAgICAgOiByZWdpc3RyYWJsZURvbWFpbiB7IFdURjo6SGFzaFRhYmxlRGVs
ZXRlZFZhbHVlIH0KICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgZXhwbGljaXQgRGVz
dGluYXRpb24oUmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCisgICAgICAgIGV4cGxpY2l0IEF0
dHJpYnV0ZU9uU2l0ZShSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbikKICAgICAgICAgICAgIDog
cmVnaXN0cmFibGVEb21haW4geyBXVEZNb3ZlKGRvbWFpbikgfQogICAgICAgICB7CiAgICAgICAg
IH0KICAgICAgICAgCi0gICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBEZXN0aW5hdGlvbiYg
b3RoZXIpIGNvbnN0CisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdHRyaWJ1dGVPblNp
dGUmIG90aGVyKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFi
bGVEb21haW4gPT0gb3RoZXIucmVnaXN0cmFibGVEb21haW47CiAgICAgICAgIH0KQEAgLTE2Miwx
NSArMTYwLDE1IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFp
bi5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGlj
IERlc3RpbmF0aW9uIGRlbGV0ZWRWYWx1ZSgpCisgICAgICAgIHN0YXRpYyBBdHRyaWJ1dGVPblNp
dGUgZGVsZXRlZFZhbHVlKCkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIERlc3RpbmF0
aW9uIHsgV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUgfTsKKyAgICAgICAgICAgIHJldHVybiBB
dHRyaWJ1dGVPblNpdGUgeyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwogICAgICAgICB9
CiAKLSAgICAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKERlc3RpbmF0aW9u
JiBkZXN0aW5hdGlvbikKKyAgICAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVl
KEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25TaXRlKQogICAgICAgICB7Ci0gICAgICAgICAg
ICBuZXcgKCZkZXN0aW5hdGlvbikgRGVzdGluYXRpb247Ci0gICAgICAgICAgICBkZXN0aW5hdGlv
biA9IERlc3RpbmF0aW9uOjpkZWxldGVkVmFsdWUoKTsKKyAgICAgICAgICAgIG5ldyAoJmF0dHJp
YnV0ZU9uU2l0ZSkgQXR0cmlidXRlT25TaXRlOworICAgICAgICAgICAgYXR0cmlidXRlT25TaXRl
ID0gQXR0cmlidXRlT25TaXRlOjpkZWxldGVkVmFsdWUoKTsKICAgICAgICAgfQogCiAgICAgICAg
IHZvaWQgZGVsZXRlVmFsdWUoKQpAQCAtMTg2LDEzICsxODQsMTMgQEAgcHVibGljOgogICAgICAg
ICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbjsKICAgICB9OwogCi0gICAgc3Ry
dWN0IERlc3RpbmF0aW9uSGFzaCB7Ci0gICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0
IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikKKyAgICBzdHJ1Y3QgQXR0cmlidXRlT25TaXRlSGFz
aCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYg
YXR0cmlidXRlT25TaXRlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gZGVzdGluYXRp
b24ucmVnaXN0cmFibGVEb21haW4uaGFzaCgpOworICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0
ZU9uU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5oYXNoKCk7CiAgICAgICAgIH0KICAgICAgICAgCi0g
ICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IERlc3RpbmF0aW9uJiBhLCBjb25zdCBEZXN0
aW5hdGlvbiYgYikKKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQXR0cmlidXRlT25T
aXRlJiBhLCBjb25zdCBBdHRyaWJ1dGVPblNpdGUmIGIpCiAgICAgICAgIHsKICAgICAgICAgICAg
IHJldHVybiBhID09IGI7CiAgICAgICAgIH0KQEAgLTIwOSwxMCArMjA3LDEwIEBAIHB1YmxpYzoK
ICAgICAgICAgUHJpb3JpdHlWYWx1ZSB2YWx1ZTsKICAgICB9OwogICAgIAotICAgIHN0cnVjdCBD
b252ZXJzaW9uIHsKKyAgICBzdHJ1Y3QgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSB7CiAgICAgICAg
IGVudW0gY2xhc3MgV2FzU2VudCA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgICAgIAotICAgICAg
ICBDb252ZXJzaW9uKENvbnZlcnNpb25EYXRhIGRhdGEsIFByaW9yaXR5IHByaW9yaXR5LCBXYXNT
ZW50IHdhc1NlbnQgPSBXYXNTZW50OjpObykKKyAgICAgICAgQXR0cmlidXRpb25UcmlnZ2VyRGF0
YSh1aW50MzJfdCBkYXRhLCBQcmlvcml0eSBwcmlvcml0eSwgV2FzU2VudCB3YXNTZW50ID0gV2Fz
U2VudDo6Tm8pCiAgICAgICAgICAgICA6IGRhdGEgeyBkYXRhIH0KICAgICAgICAgICAgICwgcHJp
b3JpdHkgeyBwcmlvcml0eS52YWx1ZSB9CiAgICAgICAgICAgICAsIHdhc1NlbnQgeyB3YXNTZW50
IH0KQEAgLTIyNCwzOSArMjIyLDM3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBkYXRh
IDw9IE1heEVudHJvcHkgJiYgcHJpb3JpdHkgPD0gTWF4RW50cm9weTsKICAgICAgICAgfQogICAg
ICAgICAKLSAgICAgICAgQ29udmVyc2lvbkRhdGEgZGF0YTsKKyAgICAgICAgdWludDMyX3QgZGF0
YTsKICAgICAgICAgUHJpb3JpdHlWYWx1ZSBwcmlvcml0eTsKICAgICAgICAgV2FzU2VudCB3YXNT
ZW50ID0gV2FzU2VudDo6Tm87CiAKICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgT3B0aW9uYWw8Q29udmVyc2lvbj4gZGVjb2RlKERlY29kZXImKTsKKyAgICAgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGE+IGRlY29kZShEZWNvZGVyJik7CiAgICAgfTsKIAogICAgIFByaXZhdGVDbGlja01lYXN1
cmVtZW50KCkgPSBkZWZhdWx0OwotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50KENhbXBhaWdu
IGNhbXBhaWduLCBjb25zdCBTb3VyY2UmIHNvdXJjZSwgY29uc3QgRGVzdGluYXRpb24mIGRlc3Rp
bmF0aW9uKQotICAgICAgICA6IG1fY2FtcGFpZ24geyBjYW1wYWlnbiB9Ci0gICAgICAgICwgbV9z
b3VyY2UgeyBzb3VyY2UgfQotICAgICAgICAsIG1fZGVzdGluYXRpb24geyBkZXN0aW5hdGlvbiB9
Ci0gICAgICAgICwgbV90aW1lT2ZBZENsaWNrIHsgV2FsbFRpbWU6Om5vdygpIH0KKyAgICBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChTb3VyY2VJRCBzb3VyY2VJRCwgY29uc3QgU291cmNlU2l0ZSYg
c291cmNlU2l0ZSwgY29uc3QgQXR0cmlidXRlT25TaXRlJiBhdHRyaWJ1dGVPblNpdGUsIFdhbGxU
aW1lIHRpbWVPZkFkQ2xpY2sgPSBXYWxsVGltZTo6bm93KCkpCisgICAgICAgIDogbV9zb3VyY2VJ
RCB7IHNvdXJjZUlEIH0KKyAgICAgICAgLCBtX3NvdXJjZVNpdGUgeyBzb3VyY2VTaXRlIH0KKyAg
ICAgICAgLCBtX2F0dHJpYnV0ZU9uU2l0ZSB7IGF0dHJpYnV0ZU9uU2l0ZSB9CisgICAgICAgICwg
bV90aW1lT2ZBZENsaWNrIHsgdGltZU9mQWRDbGljayB9CiAgICAgewogICAgIH0KIAotICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBFeHBlY3RlZDxDb252ZXJzaW9uLCBTdHJpbmc+IHBhcnNlQ29u
dmVyc2lvblJlcXVlc3QoY29uc3QgVVJMJiByZWRpcmVjdFVSTCk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgT3B0aW9uYWw8U2Vjb25kcz4gY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChDb252
ZXJzaW9uJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1heEFn
ZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeHBlY3RlZDxBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhLCBTdHJpbmc+IHBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnN0IFVSTCYgcmVkaXJl
Y3RVUkwpOworICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFNlY29uZHM+IGF0dHJpYnV0ZUFu
ZEdldEVhcmxpZXN0VGltZVRvU2VuZChBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYpOwogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgaGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50JikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgVVJMIHJlcG9ydFVSTCgp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IGpzb24oKSBjb25z
dDsKLSAgICBjb25zdCBTb3VyY2UmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9
OwotICAgIGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
ZGVzdGluYXRpb247IH07CisgICAgY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlU2l0ZTsgfTsKKyAgICBjb25zdCBBdHRyaWJ1dGVPblNpdGUmIGF0
dHJpYnV0ZU9uU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlT25TaXRlOyB9OworICAg
IFdhbGxUaW1lIHRpbWVPZkFkQ2xpY2soKSBjb25zdCB7IHJldHVybiBtX3RpbWVPZkFkQ2xpY2s7
IH0KICAgICBPcHRpb25hbDxXYWxsVGltZT4gZWFybGllc3RUaW1lVG9TZW5kKCkgY29uc3QgeyBy
ZXR1cm4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7IH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBt
YXJrQXNFeHBpcmVkKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNFeHBpcmVkKCkgY29u
c3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYXJrQ29udmVyc2lvbkFzU2VudCgpOwotICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgd2FzQ29udmVyc2lvblNlbnQoKSBjb25zdDsKLQotICAgIGJv
b2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLmlz
RW1wdHkoKTsgfTsKLQotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyB0b1N0cmluZygpIGNvbnN0
OworICAgIHZvaWQgc2V0RWFybGllc3RUaW1lVG9TZW5kKFdhbGxUaW1lIHRpbWUpIHsgbV9lYXJs
aWVzdFRpbWVUb1NlbmQgPSB0aW1lOyB9CisgICAgU291cmNlSUQgc291cmNlSUQoKSB7IHJldHVy
biBtX3NvdXJjZUlEOyB9CisgICAgT3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gYXR0
cmlidXRpb25UcmlnZ2VyRGF0YSgpIHsgcmV0dXJuIG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsg
fQorICAgIHZvaWQgc2V0QXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEpIHsgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShh
dHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gZGVjb2RlKERlY29kZXIm
KTsKQEAgLTI2NSwyNyArMjYxLDI3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29u
c3Q7CiAgICAgc3RhdGljIGJvb2wgZGVidWdNb2RlRW5hYmxlZCgpOwogCi0gICAgQ2FtcGFpZ24g
bV9jYW1wYWlnbjsKLSAgICBTb3VyY2UgbV9zb3VyY2U7Ci0gICAgRGVzdGluYXRpb24gbV9kZXN0
aW5hdGlvbjsKKyAgICBTb3VyY2VJRCBtX3NvdXJjZUlEOworICAgIFNvdXJjZVNpdGUgbV9zb3Vy
Y2VTaXRlOworICAgIEF0dHJpYnV0ZU9uU2l0ZSBtX2F0dHJpYnV0ZU9uU2l0ZTsKICAgICBXYWxs
VGltZSBtX3RpbWVPZkFkQ2xpY2s7CiAKLSAgICBPcHRpb25hbDxDb252ZXJzaW9uPiBtX2NvbnZl
cnNpb247CisgICAgT3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gbV9hdHRyaWJ1dGlv
blRyaWdnZXJEYXRhOwogICAgIE9wdGlvbmFsPFdhbGxUaW1lPiBtX2VhcmxpZXN0VGltZVRvU2Vu
ZDsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8
IG1fY2FtcGFpZ24uaWQgPDwgbV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4gPDwgbV9kZXN0aW5h
dGlvbi5yZWdpc3RyYWJsZURvbWFpbiA8PCBtX3RpbWVPZkFkQ2xpY2sgPDwgbV9jb252ZXJzaW9u
IDw8IG1fZWFybGllc3RUaW1lVG9TZW5kOworICAgIGVuY29kZXIgPDwgbV9zb3VyY2VJRC5pZCA8
PCBtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVEb21haW4gPDwgbV9hdHRyaWJ1dGVPblNpdGUucmVn
aXN0cmFibGVEb21haW4gPDwgbV90aW1lT2ZBZENsaWNrIDw8IG1fYXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSA8PCBtX2VhcmxpZXN0VGltZVRvU2VuZDsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4KIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgT3B0aW9uYWw8Q2FtcGFpZ25J
ZD4gY2FtcGFpZ25JZDsKLSAgICBkZWNvZGVyID4+IGNhbXBhaWduSWQ7Ci0gICAgaWYgKCFjYW1w
YWlnbklkKQorICAgIE9wdGlvbmFsPHVpbnQzMl90PiBzb3VyY2VJRDsKKyAgICBkZWNvZGVyID4+
IHNvdXJjZUlEOworICAgIGlmICghc291cmNlSUQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAgICAgCiAgICAgT3B0aW9uYWw8UmVnaXN0cmFibGVEb21haW4+IHNvdXJjZVJlZ2lzdHJh
YmxlRG9tYWluOwpAQCAtMjkzLDkgKzI4OSw5IEBAIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1
cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVjb2RlKERlY29kZXImIGRlY29kCiAg
ICAgaWYgKCFzb3VyY2VSZWdpc3RyYWJsZURvbWFpbikKICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKICAgICAKLSAgICBPcHRpb25hbDxSZWdpc3RyYWJsZURvbWFpbj4gZGVzdGluYXRpb25S
ZWdpc3RyYWJsZURvbWFpbjsKLSAgICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uUmVnaXN0cmFibGVE
b21haW47Ci0gICAgaWYgKCFkZXN0aW5hdGlvblJlZ2lzdHJhYmxlRG9tYWluKQorICAgIE9wdGlv
bmFsPFJlZ2lzdHJhYmxlRG9tYWluPiBhdHRyaWJ1dGVPblJlZ2lzdHJhYmxlRG9tYWluOworICAg
IGRlY29kZXIgPj4gYXR0cmlidXRlT25SZWdpc3RyYWJsZURvbWFpbjsKKyAgICBpZiAoIWF0dHJp
YnV0ZU9uUmVnaXN0cmFibGVEb21haW4pCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAg
ICAgCiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+IHRpbWVPZkFkQ2xpY2s7CkBAIC0zMDMsOSArMjk5
LDkgQEAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpkZWNvZGUoRGVjb2RlciYgZGVjb2QKICAgICBpZiAoIXRpbWVPZkFkQ2xpY2spCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCi0gICAgT3B0aW9uYWw8T3B0aW9uYWw8
Q29udmVyc2lvbj4+IGNvbnZlcnNpb247Ci0gICAgZGVjb2RlciA+PiBjb252ZXJzaW9uOwotICAg
IGlmICghY29udmVyc2lvbikKKyAgICBPcHRpb25hbDxPcHRpb25hbDxBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhPj4gYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsKKyAgICBkZWNvZGVyID4+IGF0dHJpYnV0
aW9uVHJpZ2dlckRhdGE7CisgICAgaWYgKCFhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAogICAgIE9wdGlvbmFsPE9wdGlvbmFsPFdhbGxU
aW1lPj4gZWFybGllc3RUaW1lVG9TZW5kOwpAQCAtMzEzLDIzICszMDksMjMgQEAgT3B0aW9uYWw8
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2QKICAgICBpZiAoIWVhcmxpZXN0VGltZVRvU2VuZCkKICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKICAgICAKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRy
aWJ1dGlvbiB7IENhbXBhaWduIHsgV1RGTW92ZSgqY2FtcGFpZ25JZCkgfSwgU291cmNlIHsgV1RG
TW92ZSgqc291cmNlUmVnaXN0cmFibGVEb21haW4pIH0sIERlc3RpbmF0aW9uIHsgV1RGTW92ZSgq
ZGVzdGluYXRpb25SZWdpc3RyYWJsZURvbWFpbikgfSB9OwotICAgIGF0dHJpYnV0aW9uLm1fY29u
dmVyc2lvbiA9IFdURk1vdmUoKmNvbnZlcnNpb24pOworICAgIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50IGF0dHJpYnV0aW9uIHsgU291cmNlSUQgeyBXVEZNb3ZlKCpzb3VyY2VJRCkgfSwgU291cmNl
U2l0ZSB7IFdURk1vdmUoKnNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluKSB9LCBBdHRyaWJ1dGVPblNp
dGUgeyBXVEZNb3ZlKCphdHRyaWJ1dGVPblJlZ2lzdHJhYmxlRG9tYWluKSB9IH07CisgICAgYXR0
cmlidXRpb24ubV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZSgqYXR0cmlidXRpb25U
cmlnZ2VyRGF0YSk7CiAgICAgYXR0cmlidXRpb24ubV9lYXJsaWVzdFRpbWVUb1NlbmQgPSBXVEZN
b3ZlKCplYXJsaWVzdFRpbWVUb1NlbmQpOwogICAgIAogICAgIHJldHVybiBhdHRyaWJ1dGlvbjsK
IH0KIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkNvbnZlcnNpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBkYXRhIDw8IHByaW9yaXR5IDw8
IHdhc1NlbnQ7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1PcHRpb25hbDxQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbj4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNv
bnZlcnNpb246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorT3B0aW9uYWw8UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsK
LSAgICBPcHRpb25hbDxDb252ZXJzaW9uRGF0YT4gZGF0YTsKKyAgICBPcHRpb25hbDx1aW50MzJf
dD4gZGF0YTsKICAgICBkZWNvZGVyID4+IGRhdGE7CiAgICAgaWYgKCFkYXRhKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtMzQ0LDcgKzM0MCw3IEBAIE9wdGlvbmFsPFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uPiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29u
dmVyc2lvCiAgICAgaWYgKCF3YXNTZW50KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owog
ICAgIAotICAgIHJldHVybiBDb252ZXJzaW9uIHsgV1RGTW92ZSgqZGF0YSksIFByaW9yaXR5IHsg
KnByaW9yaXR5IH0sICp3YXNTZW50IH07CisgICAgcmV0dXJuIEF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEgeyBXVEZNb3ZlKCpkYXRhKSwgUHJpb3JpdHkgeyAqcHJpb3JpdHkgfSwgKndhc1NlbnQgfTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpAQCAtMzUyLDE3ICszNDgsMTcgQEAgT3B0aW9u
YWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24+IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpDb252ZXJzaW8KIG5hbWVzcGFjZSBXVEYgewogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IERlZmF1bHRIYXNoOwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlPiA6IFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpTb3VyY2VIYXNoIHsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hU
cmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZT4gOiBHZW5lcmlj
SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlPiB7Ci0g
ICAgc3RhdGljIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgZW1wdHlW
YWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRW
YWx1ZShXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlJiBzbG90KSB7IFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6OmNvbnN0cnVjdERlbGV0ZWRW
YWx1ZShzbG90KTsgfQotICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UmIHNsb3QpIHsgcmV0dXJuIHNsb3Qu
aXNEZWxldGVkVmFsdWUoKTsgfQordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGU+IDogV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGVIYXNoIHsgfTsKK3RlbXBsYXRlPD4gc3RydWN0
IEhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGU+
IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGU+IHsKKyAgICBzdGF0aWMgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlNvdXJjZVNpdGUgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyB2b2lk
IGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlU2l0ZSYgc2xvdCkgeyBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlU2l0ZTo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKHNsb3QpOyB9CisgICAgc3RhdGljIGJvb2wg
aXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGUmIHNsb3QpIHsgcmV0dXJuIHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQogfTsKIAot
dGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkRlc3RpbmF0aW9uPiA6IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpE
ZXN0aW5hdGlvbkhhc2ggeyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24+IDogR2VuZXJpY0hhc2hUcmFp
dHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPiB7Ci0gICAg
c3RhdGljIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiBlbXB0
eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9Ci0gICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRl
ZFZhbHVlKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiYgc2xv
dCkgeyBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb246OmNvbnN0
cnVjdERlbGV0ZWRWYWx1ZShzbG90KTsgfQotICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVl
KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiYgc2xv
dCkgeyByZXR1cm4gc2xvdC5pc0RlbGV0ZWRWYWx1ZSgpOyB9Cit0ZW1wbGF0ZTw+IHN0cnVjdCBE
ZWZhdWx0SGFzaDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25T
aXRlPiA6IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGVI
YXNoIHsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlPiB7CisgICAgc3Rh
dGljIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgZW1w
dHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0
ZWRWYWx1ZShXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRl
JiBzbG90KSB7IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNp
dGU6OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZShzbG90KTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVs
ZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGVPblNpdGUmIHNsb3QpIHsgcmV0dXJuIHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQogfTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
Y3BwCmluZGV4IGI3MzBkZGU4OGI0MDQ2Y2Y1OTAzZWMzZDY5ODEzZjYyZDc2MTdmZTcuLjg4MmJi
YzYwMmFiMTUyZjY1M2Y1ZTY5Njc3M2U4MDAyMmU3ZWRhMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcApAQCAtODAsNiArODAs
MTEgQEAgY29uc3RleHByIGF1dG8gdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNp
dGVTdHJpY3RFbmZvcmNlbWVudFF1ZXJ5ID0gIkkKIGNvbnN0ZXhwciBhdXRvIHRvcEZyYW1lVW5p
cXVlUmVkaXJlY3RzRnJvbVF1ZXJ5ID0gIklOU0VSVCBPUiBJR05PUkUgSU5UTyBUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c0Zyb20gKHRhcmdldERvbWFpbklELCBmcm9tRG9tYWluSUQpIFNFTEVDVCA/
LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiBp
biAoICJfczsKIGNvbnN0ZXhwciBhdXRvIHRvcEZyYW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHNR
dWVyeSA9ICJJTlNFUlQgT1IgSUdOT1JFIGludG8gVG9wRnJhbWVMb2FkZWRUaGlyZFBhcnR5U2Ny
aXB0cyAodG9wRnJhbWVEb21haW5JRCwgc3VicmVzb3VyY2VEb21haW5JRCkgU0VMRUNUID8sIGRv
bWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIHdoZXJlIHJlZ2lzdHJhYmxlRG9tYWluIGluICgg
Il9zOwogY29uc3RleHByIGF1dG8gc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tUXVlcnkg
PSAiSU5TRVJUIE9SIElHTk9SRSBJTlRPIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSAo
c3VicmVzb3VyY2VEb21haW5JRCwgZnJvbURvbWFpbklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJP
TSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25z
dGV4cHIgYXV0byBpbnNlcnRVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5
ID0gIklOU0VSVCBPUiBSRVBMQUNFIElOVE8gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgKHNvdXJjZVNpdGVEb21haW5JRCwgYXR0cmlidXRlT25TaXRlRG9tYWluSUQsICIKKyAg
ICAic291cmNlSUQsIHRpbWVPZkFkQ2xpY2spIFZBTFVFUyAoPywgPywgPywgPykiX3M7Citjb25z
dGV4cHIgYXV0byBpbnNlcnRBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSA9
ICJJTlNFUlQgT1IgUkVQTEFDRSBJTlRPIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCAoc291cmNlU2l0ZURvbWFpbklELCBhdHRyaWJ1dGVPblNpdGVEb21haW5JRCwgIgorICAgICJz
b3VyY2VJRCwgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgcHJpb3JpdHksIHRpbWVPZkFkQ2xpY2ss
IGVhcmxpZXN0VGltZVRvU2VuZCkgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/KSJfczsKK2Nv
bnN0ZXhwciBhdXRvIHVwZGF0ZVRpbWVyTGFzdEZpcmVkUXVlcnkgPSAiSU5TRVJUIE9SIFJFUExB
Q0UgSU5UTyBUaW1lckxhc3RGaXJlZCAoa2V5LCB0aW1lTGFzdEZpcmVkU2Vjb25kcykgVkFMVUVT
ICgxLCA/KSJfczsKIAogLy8gSU5TRVJUIE9SIFJFUExBQ0UgUXVlcmllcwogY29uc3RleHByIGF1
dG8gc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc1F1ZXJ5ID0gIklOU0VSVCBPUiBSRVBMQUNF
IGludG8gU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucyAoc3ViRnJhbWVEb21haW5JRCwgbGFz
dFVwZGF0ZWQsIHRvcEZyYW1lRG9tYWluSUQpIFNFTEVDVCA/LCA/LCBkb21haW5JRCBGUk9NIE9i
c2VydmVkRG9tYWlucyB3aGVyZSByZWdpc3RyYWJsZURvbWFpbiBpbiAoICJfczsKQEAgLTExMCw2
ICsxMTUsMTEgQEAgY29uc3RleHByIGF1dG8gdXBkYXRlVmVyeVByZXZhbGVudFJlc291cmNlUXVl
cnkgPSAiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgaXMKIGNvbnN0ZXhwciBhdXRvIGNsZWFy
UHJldmFsZW50UmVzb3VyY2VRdWVyeSA9ICJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBpc1By
ZXZhbGVudCA9IDAsIGlzVmVyeVByZXZhbGVudCA9IDAgV0hFUkUgcmVnaXN0cmFibGVEb21haW4g
PSA/Il9zOwogY29uc3RleHByIGF1dG8gdXBkYXRlR3JhbmRmYXRoZXJlZFF1ZXJ5ID0gIlVQREFU
RSBPYnNlcnZlZERvbWFpbnMgU0VUIGdyYW5kZmF0aGVyZWQgPSA/IFdIRVJFIHJlZ2lzdHJhYmxl
RG9tYWluID0gPyJfczsKIGNvbnN0ZXhwciBhdXRvIHVwZGF0ZUlzU2NoZWR1bGVkRm9yQWxsQnV0
Q29va2llRGF0YVJlbW92YWxRdWVyeSA9ICJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBpc1Nj
aGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsID0gPyBXSEVSRSByZWdpc3RyYWJsZURv
bWFpbiA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBzZXRVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEFzRXhwaXJlZFF1ZXJ5ID0gIlVQREFURSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCBTRVQgdGltZU9mQWRDbGljayA9IC0xLjAiX3M7Citjb25zdGV4cHIgYXV0
byB1cGRhdGVBdHRyaWJ1dGlvbnNFYXJsaWVzdFRpbWVUb1NlbmRRdWVyeSA9ICJVUERBVEUgQXR0
cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IGFzIGMgU0VUICIKKyAgICAiZWFybGllc3RU
aW1lVG9TZW5kID0gKFNFTEVDVCBNQVgoMC4wLCBuZXdUaW1lKSBGUk9NIChTRUxFQ1QgKGVhcmxp
ZXN0VGltZVRvU2VuZCAtID8pIGFzIG5ld1RpbWUgRlJPTSAiCisgICAgIkF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCBhcyBkIFdIRVJFIGMuc291cmNlU2l0ZURvbWFpbklEID0gZC5z
b3VyY2VTaXRlRG9tYWluSUQgQU5EIGMuYXR0cmlidXRlT25TaXRlRG9tYWluSUQgPSAiCisgICAg
ImQuYXR0cmlidXRlT25TaXRlRG9tYWluSUQpKSJfczsKIAogLy8gU0VMRUNUIFF1ZXJpZXMKIGNv
bnN0ZXhwciBhdXRvIGRvbWFpbklERnJvbVN0cmluZ1F1ZXJ5ID0gIlNFTEVDVCBkb21haW5JRCBG
Uk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7CkBAIC0x
MjgsNiArMTM4LDExIEBAIGNvbnN0ZXhwciBhdXRvIGdldEFsbERvbWFpbnNRdWVyeSA9ICJTRUxF
Q1QgcmVnaXN0cmFibGVEb21haW4gRlJPTSBPYnNlcnZlZERvbWFpCiBjb25zdGV4cHIgYXV0byBn
ZXRBbGxTdWJTdGF0aXN0aWNzVW5kZXJEb21haW5RdWVyeSA9ICJTRUxFQ1QgdG9wRnJhbWVEb21h
aW5JRCBGUk9NIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3ViRnJhbWVEb21h
aW5JRCA9ID8iCiAgICAgIlVOSU9OIEFMTCBTRUxFQ1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1
YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9
ID8iCiAgICAgIlVOSU9OIEFMTCBTRUxFQ1QgdG9Eb21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzVG8gV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8iX3M7Citjb25zdGV4
cHIgYXV0byBhbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9u
c1F1ZXJ5ID0gIlNFTEVDVCAqIEZST00gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQiX3M7Citjb25zdGV4cHIgYXV0byBhbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCJfczsKK2NvbnN0ZXhwciBhdXRvIGZpbmRVbmF0dHJpYnV0ZWRRdWVyeSA9ICJTRUxFQ1QgKiBG
Uk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVE
b21haW5JRCA9ID8gQU5EIGF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEID0gPyJfczsKK2NvbnN0ZXhw
ciBhdXRvIGZpbmRBdHRyaWJ1dGVkUXVlcnkgPSAiU0VMRUNUICogRlJPTSBBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgYXR0
cmlidXRlT25TaXRlRG9tYWluSUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gdGltZXJMYXN0Rmly
ZWRRdWVyeSA9ICJTRUxFQ1QgdGltZUxhc3RGaXJlZFNlY29uZHMgRlJPTSBUaW1lckxhc3RGaXJl
ZCBXSEVSRSBrZXkgPSAxIl9zOwogCiAvLyBFWElTVFMgZm9yIHRlc3RpbmcgcXVlcmllcwogY29u
c3RleHByIGF1dG8gbGlua0RlY29yYXRpb25FeGlzdHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChT
RUxFQ1QgKiBGUk9NIFRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbSBXSEVSRSB0b0RvbWFpbklE
ID0gPyBPUiBmcm9tRG9tYWluSUQgPSA/KSJfczsKQEAgLTEzOSw2ICsxNTQsMTAgQEAgY29uc3Rl
eHByIGF1dG8gb2JzZXJ2ZWREb21haW5zRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VM
RUNUICogRlJPTSBPYnNlcnYKIAogLy8gREVMRVRFIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIHJl
bW92ZUFsbERhdGFRdWVyeSA9ICJERUxFVEUgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgZG9t
YWluSUQgPSA/Il9zOworY29uc3RleHByIGF1dG8gY2xlYXJVbmF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFF1ZXJ5ID0gIkRFTEVURSBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCBMSUtFID8gT1IgYXR0cmlidXRl
T25TaXRlRG9tYWluSUQgTElLRSA/Il9zOworY29uc3RleHByIGF1dG8gY2xlYXJBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSA9ICJERUxFVEUgRlJPTSBBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEIExJS0UgPyBPUiBh
dHRyaWJ1dGVPblNpdGVEb21haW5JRCBMSUtFID8iX3M7Citjb25zdGV4cHIgYXV0byBjbGVhckV4
cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5ID0gIkRFTEVURSBGUk9NIFVuYXR0cmli
dXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFID8gPiB0aW1lT2ZBZENsaWNrIl9zOwor
Y29uc3RleHByIGF1dG8gcmVtb3ZlVW5hdHRyaWJ1dGVkUXVlcnkgPSAiREVMRVRFIEZST00gVW5h
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklE
ID0gPyBBTkQgYXR0cmlidXRlT25TaXRlRG9tYWluSUQgPSA/Il9zOwogCiBjb25zdGV4cHIgYXV0
byBjcmVhdGVPYnNlcnZlZERvbWFpbiA9ICJDUkVBVEUgVEFCTEUgT2JzZXJ2ZWREb21haW5zICgi
CiAgICAgImRvbWFpbklEIElOVEVHRVIgUFJJTUFSWSBLRVksIHJlZ2lzdHJhYmxlRG9tYWluIFRF
WFQgTk9UIE5VTEwgVU5JUVVFIE9OIENPTkZMSUNUIEZBSUwsIGxhc3RTZWVuIFJFQUwgTk9UIE5V
TEwsICIKQEAgLTIxOSw4ICsyMzgsMjEgQEAgY29uc3RleHByIGF1dG8gY3JlYXRlU3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdHNGcm9tID0gIkNSRUFURSBUQUJMRSBTdWJyZXNvdXJjZVUKIGNvbnN0
ZXhwciBhdXRvIGNyZWF0ZU9wZXJhdGluZ0RhdGVzID0gIkNSRUFURSBUQUJMRSBPcGVyYXRpbmdE
YXRlcyAoIgogICAgICJ5ZWFyIElOVEVHRVIgTk9UIE5VTEwsIG1vbnRoIElOVEVHRVIgTk9UIE5V
TEwsIG1vbnRoRGF5IElOVEVHRVIgTk9UIE5VTEwpOyJfczsKIAorY29uc3RleHByIGF1dG8gY3Jl
YXRlVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSAiQ1JFQVRFIFRBQkxFIFVu
YXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50ICgiCisgICAgInNvdXJjZVNpdGVEb21h
aW5JRCBJTlRFR0VSIE5PVCBOVUxMLCBhdHRyaWJ1dGVPblNpdGVEb21haW5JRCBJTlRFR0VSIE5P
VCBOVUxMLCBzb3VyY2VJRCBJTlRFR0VSIE5PVCBOVUxMLCAiCisgICAgInRpbWVPZkFkQ2xpY2sg
UkVBTCBOT1QgTlVMTCwgRk9SRUlHTiBLRVkoc291cmNlU2l0ZURvbWFpbklEKSBSRUZFUkVOQ0VT
IE9ic2VydmVkRG9tYWlucyhkb21haW5JRCkgT04gREVMRVRFIENBU0NBREUsICIKKyAgICAiRk9S
RUlHTiBLRVkoYXR0cmlidXRlT25TaXRlRG9tYWluSUQpIFJFRkVSRU5DRVMgT2JzZXJ2ZWREb21h
aW5zKGRvbWFpbklEKSBPTiBERUxFVEUgQ0FTQ0FERSk7Il9zOwogCi0vLyBDUkVBVEUgVU5JUVVF
IElOREVYIFF1ZXJpZXMKK2NvbnN0ZXhwciBhdXRvIGNyZWF0ZUF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCA9ICJDUkVBVEUgVEFCTEUgQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50ICgiCisgICAgInNvdXJjZVNpdGVEb21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCBhdHRy
aWJ1dGVPblNpdGVEb21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCBzb3VyY2VJRCBJTlRFR0VSIE5P
VCBOVUxMLCAiCisgICAgImF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgSU5URUdFUiBOT1QgTlVMTCwg
cHJpb3JpdHkgSU5URUdFUiBOT1QgTlVMTCwgdGltZU9mQWRDbGljayBSRUFMIE5PVCBOVUxMLCBl
YXJsaWVzdFRpbWVUb1NlbmQgUkVBTCBOT1QgTlVMTCwgIgorICAgICJGT1JFSUdOIEtFWShzb3Vy
Y2VTaXRlRG9tYWluSUQpIFJFRkVSRU5DRVMgT2JzZXJ2ZWREb21haW5zKGRvbWFpbklEKSBPTiBE
RUxFVEUgQ0FTQ0FERSwgIgorICAgICJGT1JFSUdOIEtFWShhdHRyaWJ1dGVPblNpdGVEb21haW5J
RCkgUkVGRVJFTkNFUyBPYnNlcnZlZERvbWFpbnMoZG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURF
KTsiX3M7CisKK2NvbnN0ZXhwciBhdXRvIGNyZWF0ZVRpbWVyTGFzdEZpcmVkID0gIkNSRUFURSBU
QUJMRSBUaW1lckxhc3RGaXJlZCAoIGtleSBJTlRFR0VSIFBSSU1BUlkgS0VZLCAiCisgICAgIiB0
aW1lTGFzdEZpcmVkU2Vjb25kcyBSRUFMIE5PVCBOVUxMICkiX3M7CisKKy8vIENSRUFURSBVTklR
VUUgSU5ERVggUXVlcmllcy4KIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4U3RvcmFn
ZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9U
IEVYSVNUUyBTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNfZG9tYWluSURfdG9wTGV2
ZWxEb21haW5JRCBvbiBTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgKCBkb21haW5J
RCwgdG9wTGV2ZWxEb21haW5JRCApOyJfczsKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUlu
ZGV4VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbyA9ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5P
VCBFWElTVFMgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb19zb3VyY2VEb21haW5JRF90b0RvbWFp
bklEIG9uIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8gKCBzb3VyY2VEb21haW5JRCwgdG9Eb21h
aW5JRCApOyJfczsKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4VG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudCA9ICJDUkVBVEUgVU5J
UVVFIElOREVYIElGIE5PVCBFWElTVFMgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudF9zb3VyY2VEb21haW5JRF90b0RvbWFpbklEIG9uIFRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQgKCBzb3Vy
Y2VEb21haW5JRCwgdG9Eb21haW5JRCApOyJfczsKQEAgLTIzMiw2ICsyNjQsOCBAQCBjb25zdGV4
cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMg
PSAiQ1JFQVRFIFVOSVFVRQogY29uc3RleHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c1RvID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNU
UyBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvX3N1YnJlc291cmNlRG9tYWluSURfdG9Eb21h
aW5JRCBvbiBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvICggc3VicmVzb3VyY2VEb21haW5J
RCwgdG9Eb21haW5JRCApOyJfczsKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4U3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9U
IEVYSVNUUyBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21fc3VicmVzb3VyY2VEb21haW5J
RF9mcm9tRG9tYWluSUQgb24gU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucyAoIHN1YnJl
c291cmNlRG9tYWluSUQsIGZyb21Eb21haW5JRCApOyJfczsKIGNvbnN0ZXhwciBhdXRvIGNyZWF0
ZVVuaXF1ZUluZGV4T3BlcmF0aW5nRGF0ZXMgPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1Qg
RVhJU1RTIE9wZXJhdGluZ0RhdGVzX3llYXJfbW9udGhfbW9udGhEYXkgb24gT3BlcmF0aW5nRGF0
ZXMgKCB5ZWFyLCBtb250aCwgbW9udGhEYXkgKTsiX3M7Citjb25zdGV4cHIgYXV0byBjcmVhdGVV
bmlxdWVJbmRleFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gIkNSRUFURSBV
TklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudF9zb3VyY2VTaXRlRG9tYWluSURfYXR0cmlidXRlT25TaXRlRG9tYWluSUQgb24gVW5hdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKCBzb3VyY2VTaXRlRG9tYWluSUQsIGF0dHJp
YnV0ZU9uU2l0ZURvbWFpbklEICk7Il9zOworY29uc3RleHByIGF1dG8gY3JlYXRlVW5pcXVlSW5k
ZXhBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSAiQ1JFQVRFIFVOSVFVRSBJTkRF
WCBJRiBOT1QgRVhJU1RTIEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudF9zb3VyY2VT
aXRlRG9tYWluSURfYXR0cmlidXRlT25TaXRlRG9tYWluSUQgb24gQXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50ICggc291cmNlU2l0ZURvbWFpbklELCBhdHRyaWJ1dGVPblNpdGVEb21h
aW5JRCApOyJfczsKIAogc3RhdGljIGNvbnN0IFN0cmluZyBPYnNlcnZlZERvbWFpbnNUYWJsZVNj
aGVtYVYxKCkKIHsKQEAgLTI2Myw3ICsyOTcsMTAgQEAgc3RhdGljIGNvbnN0IEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+JiBjcmVhdGVUYWJsZVF1ZXJpZXMoKQogICAgICAgICB7ICJTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVEb21haW5zIl9zLCBjcmVhdGVTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVE
b21haW5zfSwKICAgICAgICAgeyAiU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyJfcywgY3Jl
YXRlU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb30sCiAgICAgICAgIHsgIlN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzRnJvbSJfcywgY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNG
cm9tfSwKLSAgICAgICAgeyAiT3BlcmF0aW5nRGF0ZXMiX3MsIGNyZWF0ZU9wZXJhdGluZ0RhdGVz
fQorICAgICAgICB7ICJPcGVyYXRpbmdEYXRlcyJfcywgY3JlYXRlT3BlcmF0aW5nRGF0ZXN9LAor
ICAgICAgICB7ICJVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcywgY3JlYXRl
VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnR9LAorICAgICAgICB7ICJBdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiX3MsIGNyZWF0ZUF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudH0sCisgICAgICAgIHsgIlRpbWVyTGFzdEZpcmVkIl9zLCBjcmVhdGVUaW1l
ckxhc3RGaXJlZH0KICAgICB9KTsKICAgICAKICAgICByZXR1cm4gY3JlYXRlVGFibGVRdWVyaWVz
OwpAQCAtMjk0LDYgKzMzMSw3IEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvCiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjp0dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0gZmFpbGVkLCBlcnJvciBtZXNz
YWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7CiAKICAgICBpbmNsdWRlVG9kYXlBc09wZXJhdGluZ0RhdGVJZk5lY2Vzc2FyeSgpOworICAg
IHVwZGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UaW1lcygpOwogICAgIGFs
bFN0b3JlcygpLmFkZCh0aGlzKTsKIH0KIApAQCAtNTU1LDcgKzU5Myw5IEBAIGJvb2wgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVVuaXF1ZUluZGljZXMoKQogICAg
ICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMpCiAgICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1
dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbykK
ICAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zKQotICAgICAgICB8fCAhbV9kYXRhYmFzZS5l
eGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleE9wZXJhdGluZ0RhdGVzKSkgeworICAgICAg
ICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleE9wZXJhdGlu
Z0RhdGVzKQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlx
dWVJbmRleFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KQorICAgICAgICB8fCAh
bV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleEF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29y
aywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVVuaXF1
ZUluZGljZXMgZmFpbGVkIHRvIGV4ZWN1dGUsIGVycm9yIG1lc3NhZ2U6ICUiIFBVQkxJQ19MT0df
U1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KQEAgLTYzMCw3ICs2NzAsMjIgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlU2NoZW1hKCkKICAgICAgICAgTE9HX0VSUk9SKCJD
b3VsZCBub3QgY3JlYXRlIE9wZXJhdGluZ0RhdGVzIHRhYmxlIGluIGRhdGFiYXNlICglaSkgLSAl
cyIsIG1fZGF0YWJhc2UubGFzdEVycm9yKCksIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorCisgICAgaWYgKCFtX2RhdGFiYXNlLmV4ZWN1
dGVDb21tYW5kKGNyZWF0ZVVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KSkgewor
ICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBjcmVhdGUgVW5hdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgdGFibGUgaW4gZGF0YWJhc2UgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS5s
YXN0RXJyb3IoKSwgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICBpZiAoIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRl
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KSkgeworICAgICAgICBMT0dfRVJST1Io
IkNvdWxkIG5vdCBjcmVhdGUgQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IHRhYmxl
IGluIGRhdGFiYXNlICglaSkgLSAlcyIsIG1fZGF0YWJhc2UubGFzdEVycm9yKCksIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIAor
ICAgIGlmICghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVUaW1lckxhc3RGaXJlZCkp
IHsKKyAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIFRpbWVyTGFzdEZpcmVkIHRh
YmxlIGluIGRhdGFiYXNlICglaSkgLSAlcyIsIG1fZGF0YWJhc2UubGFzdEVycm9yKCksIG1fZGF0
YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAg
ICAgaWYgKCFjcmVhdGVVbmlxdWVJbmRpY2VzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApA
QCAtNjc4LDYgKzczMywyMCBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpkZXN0cm95U3RhdGVtZW50cygpCiAgICAgbV91bmlxdWVSZWRpcmVjdEV4aXN0c1N0YXRl
bWVudCA9IG51bGxwdHI7CiAgICAgbV9vYnNlcnZlZERvbWFpbnNFeGlzdHNTdGF0ZW1lbnQgPSBu
dWxscHRyOwogICAgIG1fcmVtb3ZlQWxsRGF0YVN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9p
bnNlcnRVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudCA9IG51bGxw
dHI7CisgICAgbV9pbnNlcnRBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZW1l
bnQgPSBudWxscHRyOworICAgIG1fc2V0VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBc0V4cGlyZWRTdGF0ZW1lbnQgPSBudWxscHRyOworICAgIG1fY2xlYXJVbmF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9jbGVhckF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAg
bV9jbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudCA9IG51bGxwdHI7
CisgICAgbV9hbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9u
c1N0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9hbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRTdGF0ZW1lbnQgPSBudWxscHRyOworICAgIG1fZmluZFVuYXR0cmlidXRlZFN0YXRl
bWVudCA9IG51bGxwdHI7CisgICAgbV9maW5kQXR0cmlidXRlZFN0YXRlbWVudCA9IG51bGxwdHI7
CisgICAgbV91cGRhdGVUaW1lckxhc3RGaXJlZFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV90
aW1lckxhc3RGaXJlZFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV91cGRhdGVBdHRyaWJ1dGlv
bnNFYXJsaWVzdFRpbWVUb1NlbmRTdGF0ZW1lbnQgPSBudWxscHRyOworICAgIG1fcmVtb3ZlVW5h
dHRyaWJ1dGVkU3RhdGVtZW50ID0gbnVsbHB0cjsKIH0KIAogYm9vbCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyYgbG9hZFN0YXRpc3RpY3MpCkBAIC0yODE0LDYgKzI4ODMsNDUyIEBAIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydEV4cGlyZWRTdGF0
aXN0aWNGb3JUZXN0aW5nKGNvbnN0CiAgICAgfQogfQogCit2b2lkIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVUaW1lckxhc3RGaXJlZCgpCit7CisgICAgYXV0byBz
Y29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV91cGRhdGVUaW1lckxhc3RG
aXJlZFN0YXRlbWVudCwgdXBkYXRlVGltZXJMYXN0RmlyZWRRdWVyeSwgInVwZGF0ZVRpbWVyTGFz
dEZpcmVkIl9zKTsKKworICAgIGF1dG8gbm93ID0gV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5j
ZUVwb2NoKCkudmFsdWUoKTsKKworICAgIGlmICghc2NvcGVkU3RhdGVtZW50CisgICAgICAgIHx8
IHNjb3BlZFN0YXRlbWVudC0+YmluZERvdWJsZSgxLCBub3cpICE9IFNRTElURV9PSworICAgICAg
ICB8fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6dXBkYXRlVGltZXJMYXN0RmlyZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAl
e3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK1dhbGxUaW1lIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0aW1lckxhc3RGaXJlZCgpCit7CisgICAgYXV0byBzY29w
ZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV90aW1lckxhc3RGaXJlZFN0YXRl
bWVudCwgdGltZXJMYXN0RmlyZWRRdWVyeSwgInRpbWVyTGFzdEZpcmVkIl9zKTsKKworICAgIGlm
ICghc2NvcGVkU3RhdGVtZW50KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9X
RUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojp0aW1lckxhc3RGaXJlZCwgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgfQorCisgICAgaWYgKHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpID09IFNRTElURV9ST1cpCisg
ICAgICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoc2NvcGVkU3RhdGVtZW50LT5n
ZXRDb2x1bW5Eb3VibGUoMCkpOworICAgIAorICAgIHJldHVybiBXYWxsVGltZTo6bm93KCk7Cit9
CisKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZVByaXZh
dGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UaW1lcygpCit7CisgICAgLy8gV2Ugc2hvdWxk
IHVwZGF0ZSBhdHRyaWJ1dGlvbnMgb24gc2Vzc2lvbi1zdGFydCB0byBhY2NvdW50IGZvciB0aGUg
dGltZQorICAgIC8vIHRoYXQgcGFzc2VkIHdoaWxlIHRoZSBzZXNzaW9uIHdhcyBjbG9zZWQuIElm
IHRoZSBhbW91bnQgb2YgdGltZSBzaW5jZSB0aGUgbGFzdAorICAgIC8vIHRpbWVyIGZpcmUgaXMg
Z3JlYXRlciB0aGFuIHRoZSBlYXJsaWVzdFRpbWVUb1NlbmQsIHdlIHNob3VsZCBzZXQgZWFybGll
c3RUaW1lVG9TZW5kCisgICAgLy8gdG8gYmUgaW1tZWRpYXRlbHkuCisgICAgYXV0byBsYXN0Rmly
ZWQgPSB0aW1lckxhc3RGaXJlZCgpOworICAgIGF1dG8gdGltZVBhc3NlZCA9IFdhbGxUaW1lOjpu
b3coKSAtIGxhc3RGaXJlZDsKKworICAgIGF1dG8gc2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2Nv
cGVkU3RhdGVtZW50KG1fdXBkYXRlQXR0cmlidXRpb25zRWFybGllc3RUaW1lVG9TZW5kU3RhdGVt
ZW50LCB1cGRhdGVBdHRyaWJ1dGlvbnNFYXJsaWVzdFRpbWVUb1NlbmRRdWVyeSwgInVwZGF0ZVBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UaW1lcyJfcyk7CisKKyAgICBpZiAoIXNj
b3BlZFN0YXRlbWVudAorICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmREb3VibGUoMSwg
dGltZVBhc3NlZC52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVt
ZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnVwZGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UaW1lcywg
ZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCitQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YnVp
bGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21EYXRhYmFzZShXZWJDb3JlOjpTUUxpdGVTdGF0
ZW1lbnQqIHN0YXRlbWVudCwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUg
YXR0cmlidXRpb25UeXBlKQoreworICAgIGF1dG8gc291cmNlU2l0ZURvbWFpbiA9IGdldERvbWFp
blN0cmluZ0Zyb21Eb21haW5JRChzdGF0ZW1lbnQtPmdldENvbHVtbkludCgwKSk7CisgICAgYXV0
byBhdHRyaWJ1dGVPblNpdGVEb21haW4gPSBnZXREb21haW5TdHJpbmdGcm9tRG9tYWluSUQoc3Rh
dGVtZW50LT5nZXRDb2x1bW5JbnQoMSkpOworICAgIGF1dG8gc291cmNlSUQgPSBzdGF0ZW1lbnQt
PmdldENvbHVtbkludCgyKTsKKyAgICBhdXRvIHRpbWVPZkFkQ2xpY2sgPSBhdHRyaWJ1dGlvblR5
cGUgPT0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OkF0dHJpYnV0ZWQg
PyBzdGF0ZW1lbnQtPmdldENvbHVtbkRvdWJsZSg1KSA6IHN0YXRlbWVudC0+Z2V0Q29sdW1uRG91
YmxlKDMpOworCisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24oV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKHNvdXJjZUlEKSwgV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUoUmVnaXN0cmFibGVEb21haW46OnVu
Y2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0cmluZyhzb3VyY2VTaXRlRG9tYWlu
KSksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUoUmVn
aXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0cmlu
ZyhhdHRyaWJ1dGVPblNpdGVEb21haW4pKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWVP
ZkFkQ2xpY2spKTsKKyAgICAKKyAgICBpZiAoYXR0cmlidXRpb25UeXBlID09IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlOjpBdHRyaWJ1dGVkKSB7CisgICAgICAgIGF1dG8g
YXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IHN0YXRlbWVudC0+Z2V0Q29sdW1uSW50KDMpOworICAg
ICAgICBhdXRvIHByaW9yaXR5ID0gc3RhdGVtZW50LT5nZXRDb2x1bW5JbnQoNCk7CisgICAgICAg
IGF1dG8gZWFybGllc3RUaW1lVG9TZW5kID0gc3RhdGVtZW50LT5nZXRDb2x1bW5Eb3VibGUoNik7
CisgICAgICAgIAorICAgICAgICBpZiAoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSAhPSAtMSkKKyAg
ICAgICAgICAgIGF0dHJpYnV0aW9uLnNldEF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHsgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6UHJpb3JpdHkocHJpb3JpdHkpIH0pOworCisgICAgICAgIGF0dHJpYnV0aW9uLnNldEVh
cmxpZXN0VGltZVRvU2VuZChXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZWFybGllc3RUaW1lVG9T
ZW5kKSk7CisgICAgfQorCisgICAgcmV0dXJuIGF0dHJpYnV0aW9uOworfQorCitzdGQ6OnBhaXI8
T3B0aW9uYWw8VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBPcHRpb25hbDxB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+PiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlJiBhdHRyaWJ1
dGVPblNpdGUpCit7CisgICAgYXV0byBzb3VyY2VTaXRlRG9tYWluSUQgPSBkb21haW5JRChzb3Vy
Y2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICBhdXRvIGF0dHJpYnV0ZU9uU2l0ZURvbWFp
bklEID0gZG9tYWluSUQoYXR0cmlidXRlT25TaXRlLnJlZ2lzdHJhYmxlRG9tYWluKTsKKworICAg
IGlmICghc291cmNlU2l0ZURvbWFpbklEIHx8ICFhdHRyaWJ1dGVPblNpdGVEb21haW5JRCkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KTsK
KworICAgIGF1dG8gZmluZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3Bl
ZFN0YXRlbWVudChtX2ZpbmRVbmF0dHJpYnV0ZWRTdGF0ZW1lbnQsIGZpbmRVbmF0dHJpYnV0ZWRR
dWVyeSwgImZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CisgICAgaWYgKCFmaW5kVW5h
dHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50CisgICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29w
ZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09L
CisgICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwg
KmF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBmaW5kVW5h
dHRyaWJ1dGVkUXVlcnksIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IH0KKworICAgIGF1dG8gZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29w
ZWRTdGF0ZW1lbnQobV9maW5kQXR0cmlidXRlZFN0YXRlbWVudCwgZmluZEF0dHJpYnV0ZWRRdWVy
eSwgImZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CisgICAgaWYgKCFmaW5kQXR0cmli
dXRlZFNjb3BlZFN0YXRlbWVudAorICAgICAgICB8fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRl
bWVudC0+YmluZEludCgxLCAqc291cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAg
ICAgfHwgZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmF0dHJpYnV0
ZU9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBmaW5kQXR0cmlidXRlZFF1
ZXJ5LCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBP
cHRpb25hbDxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gdW5hdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CisgICAgaWYgKGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRT
dGF0ZW1lbnQtPnN0ZXAoKSA9PSBTUUxJVEVfUk9XKQorICAgICAgICB1bmF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCA9IGJ1aWxkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9tRGF0
YWJhc2UoZmluZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC5nZXQoKSwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OlVuYXR0cmlidXRlZCk7CisKKyAgICBPcHRpb25h
bDxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDsKKyAgICBpZiAoZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPnN0
ZXAoKSA9PSBTUUxJVEVfUk9XKQorICAgICAgICBhdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgPSBidWlsZFByaXZhdGVDbGlja01lYXN1cmVtZW50RnJvbURhdGFiYXNlKGZpbmRBdHRy
aWJ1dGVkU2NvcGVkU3RhdGVtZW50LmdldCgpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uVHlwZTo6QXR0cmlidXRlZCk7CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIodW5h
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIGF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCk7Cit9CisKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6Omluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50KFByaXZhdGVDbGlja01lYXN1cmVtZW50
JiYgYXR0cmlidXRpb24sIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlIGF0
dHJpYnV0aW9uVHlwZSkKK3sKKyAgICBhdXRvIHNvdXJjZURhdGEgPSBlbnN1cmVSZXNvdXJjZVN0
YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihhdHRyaWJ1dGlvbi5zb3VyY2VTaXRlKCkucmVn
aXN0cmFibGVEb21haW4pOworICAgIGF1dG8gYXR0cmlidXRlT25EYXRhID0gZW5zdXJlUmVzb3Vy
Y2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oYXR0cmlidXRpb24uYXR0cmlidXRlT25T
aXRlKCkucmVnaXN0cmFibGVEb21haW4pOworCisgICAgaWYgKCFzb3VyY2VEYXRhLnNlY29uZCB8
fCAhYXR0cmlidXRlT25EYXRhLnNlY29uZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF0
dHJpYnV0aW9uVHlwZSA9PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6
QXR0cmlidXRlZCkgeworICAgICAgICBhdXRvIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBhdHRy
aWJ1dGlvbi5hdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkgPyBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlv
blRyaWdnZXJEYXRhKCkudmFsdWUoKS5kYXRhIDogLTE7CisgICAgICAgIGF1dG8gcHJpb3JpdHkg
PSBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkgPyBhdHRyaWJ1dGlvbi5hdHRy
aWJ1dGlvblRyaWdnZXJEYXRhKCkudmFsdWUoKS5wcmlvcml0eSA6IC0xOworICAgICAgICBhdXRv
IGVhcmxpZXN0VGltZVRvU2VuZCA9IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGltZVRvU2VuZCgpID8g
YXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCkudmFsdWUoKS5zZWNvbmRzU2luY2VFcG9j
aCgpLnZhbHVlKCkgOiAtMTsKKworICAgICAgICBhdXRvIHN0YXRlbWVudCA9IFNRTGl0ZVN0YXRl
bWVudChtX2RhdGFiYXNlLCBpbnNlcnRBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRR
dWVyeSk7CisgICAgICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAg
ICAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoMSwgKnNvdXJjZURhdGEuc2Vjb25kKSAhPSBT
UUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kSW50KDIsICphdHRyaWJ1dGVP
bkRhdGEuc2Vjb25kKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHN0YXRlbWVudC5iaW5k
SW50KDMsIGF0dHJpYnV0aW9uLnNvdXJjZUlEKCkuaWQpICE9IFNRTElURV9PSworICAgICAgICAg
ICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoNCwgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkgIT0gU1FM
SVRFX09LCisgICAgICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZEludCg1LCBwcmlvcml0eSkgIT0g
U1FMSVRFX09LCisgICAgICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZERvdWJsZSg2LCBhdHRyaWJ1
dGlvbi50aW1lT2ZBZENsaWNrKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJ
VEVfT0sKKyAgICAgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kRG91YmxlKDcsIGVhcmxpZXN0VGlt
ZVRvU2VuZCkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9
IFNRTElURV9ET05FKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgaW5zZXJ0QXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50UXVlcnksIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzdGF0ZW1l
bnQgPSBTUUxpdGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwgaW5zZXJ0VW5hdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSk7CisgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0g
U1FMSVRFX09LCisgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kSW50KDEsICpzb3VyY2VEYXRhLnNl
Y29uZCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kSW50KDIsICphdHRy
aWJ1dGVPbkRhdGEuc2Vjb25kKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50LmJp
bmRJbnQoMywgYXR0cmlidXRpb24uc291cmNlSUQoKS5pZCkgIT0gU1FMSVRFX09LCisgICAgICAg
IHx8IHN0YXRlbWVudC5iaW5kRG91YmxlKDQsIGF0dHJpYnV0aW9uLnRpbWVPZkFkQ2xpY2soKS5z
ZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpICE9IFNRTElURV9PSworICAgICAgICB8fCBzdGF0
ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjppbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBpbnNlcnRVbmF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9
cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Om1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhw
aXJlZEZvclRlc3RpbmcoKQoreworICAgIGF1dG8gc2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2Nv
cGVkU3RhdGVtZW50KG1fc2V0VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4
cGlyZWRTdGF0ZW1lbnQsIHNldFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNF
eHBpcmVkUXVlcnksICJtYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
c0V4cGlyZWRGb3JUZXN0aW5nIl9zKTsKKworICAgIGlmICghc2NvcGVkU3RhdGVtZW50IHx8IHNj
b3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjptYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRo
aXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnJlbW92ZVVuYXR0cmlidXRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYgYXR0cmlidXRp
b24pCit7CisgICAgYXV0byBzb3VyY2VTaXRlRG9tYWluSUQgPSBkb21haW5JRChhdHRyaWJ1dGlv
bi5zb3VyY2VTaXRlKCkucmVnaXN0cmFibGVEb21haW4pOworICAgIGF1dG8gYXR0cmlidXRlT25T
aXRlRG9tYWluSUQgPSBkb21haW5JRChhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVPblNpdGUoKS5yZWdp
c3RyYWJsZURvbWFpbik7CisKKyAgICBpZiAoIXNvdXJjZVNpdGVEb21haW5JRCB8fCAhYXR0cmli
dXRlT25TaXRlRG9tYWluSUQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBhdXRvIHNjb3Bl
ZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX3JlbW92ZVVuYXR0cmlidXRlZFN0
YXRlbWVudCwgcmVtb3ZlVW5hdHRyaWJ1dGVkUXVlcnksICJyZW1vdmVVbmF0dHJpYnV0ZWQiX3Mp
OworCisgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50
LT5iaW5kSW50KDEsICpzb3VyY2VTaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8
fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEKSAh
PSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRF
X0RPTkUpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25J
RCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbW92ZVVuYXR0
cmlidXRlZCwgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQor
CitPcHRpb25hbDxTZWNvbmRzPiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgU291cmNlU2l0ZSYgc291cmNl
U2l0ZSwgY29uc3QgQXR0cmlidXRlT25TaXRlJiBhdHRyaWJ1dGVPblNpdGUsIEF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQoreworICAgIGNsZWFyRXhwaXJl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisKKyAgICBpZiAoIWF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEuaXNWYWxpZCgpKSB7CisgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVk
KCkpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCAiR290IGFuIGludmFsaWQgYXR0cmlidXRpb24uIik7CisgICAgICAgICAgICBkZWJ1Z0Jy
b2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEdv
dCBhbiBpbnZhbGlkIGF0dHJpYnV0aW9uLiJfcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBhdXRvIGRhdGEgPSBhdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhLmRhdGE7CisgICAgYXV0byBwcmlvcml0eSA9IGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEu
cHJpb3JpdHk7CisKKyAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAg
ICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiR290IGFuIGF0
dHJpYnV0aW9uIHdpdGggYXR0cmlidXRpb24gdHJpZ2dlciBkYXRhOiAle3B1YmxpY311IGFuZCBw
cmlvcml0eTogJXtwdWJsaWN9dS4iLCBkYXRhLCBwcmlvcml0eSk7CisgICAgICAgIGRlYnVnQnJv
YWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnRdIEdvdCBhbiBhdHRyaWJ1dGlvbiB3aXRoIGF0dHJpYnV0aW9uIHRyaWdnZXIgZGF0YTog
JyJfcywgZGF0YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBwcmlvcml0eSwgIicuIl9zKSk7Cisg
ICAgfQorCisgICAgYXV0byBzZWNvbmRzVW50aWxTZW5kID0gU2Vjb25kczo6aW5maW5pdHkoKTsK
KworICAgIGF1dG8gYXR0cmlidXRpb24gPSBmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291
cmNlU2l0ZSwgYXR0cmlidXRlT25TaXRlKTsKKyAgICBhdXRvJiBwcmV2aW91c2x5VW5hdHRyaWJ1
dGVkID0gYXR0cmlidXRpb24uZmlyc3Q7CisgICAgYXV0byYgcHJldmlvdXNseUF0dHJpYnV0ZWQg
PSBhdHRyaWJ1dGlvbi5zZWNvbmQ7CisKKyAgICBpZiAocHJldmlvdXNseVVuYXR0cmlidXRlZCkg
eworICAgICAgICAvLyBBbHdheXMgY29udmVydCB0aGUgcGVuZGluZyBhdHRyaWJ1dGlvbiBhbmQg
cmVtb3ZlIGl0IGZyb20gdGhlIHVuYXR0cmlidXRlZCBtYXAuCisgICAgICAgIHJlbW92ZVVuYXR0
cmlidXRlZCgqcHJldmlvdXNseVVuYXR0cmlidXRlZCk7CisgICAgICAgIGlmIChhdXRvIG9wdGlv
bmFsU2Vjb25kc1VudGlsU2VuZCA9IHByZXZpb3VzbHlVbmF0dHJpYnV0ZWQudmFsdWUoKS5hdHRy
aWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJE
YXRhKSkpIHsKKyAgICAgICAgICAgIHNlY29uZHNVbnRpbFNlbmQgPSAqb3B0aW9uYWxTZWNvbmRz
VW50aWxTZW5kOworICAgICAgICAgICAgQVNTRVJUKHNlY29uZHNVbnRpbFNlbmQgIT0gU2Vjb25k
czo6aW5maW5pdHkoKSk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxl
ZCgpKSkgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsICJDb252ZXJ0ZWQgYSBzdG9yZWQgYWQgY2xpY2sgd2l0aCBhdHRyaWJ1dGlvbiB0
cmlnZ2VyIGRhdGE6ICV7cHVibGljfXUgYW5kIHByaW9yaXR5OiAle3B1YmxpY311LiIsIGRhdGEs
IHByaW9yaXR5KTsKKyAgICAgICAgICAgICAgICBkZWJ1Z0Jyb2FkY2FzdENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6Oklu
Zm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJ0ZWQgYSBz
dG9yZWQgYWQgY2xpY2sgd2l0aCBhdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6ICciX3MsIGRhdGEs
ICInIGFuZCBwcmlvcml0eTogJyJfcywgcHJpb3JpdHksICInLiJfcykpOworICAgICAgICAgICAg
fQorICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gcHJldmlvdXMgYXR0cmli
dXRpb24sIG9yIHRoZSBuZXcgYXR0cmlidXRpb24gaGFzIGhpZ2hlciBwcmlvcml0eSwgaW5zZXJ0
L3VwZGF0ZSB0aGUgZGF0YWJhc2UuCisgICAgICAgIGlmICghcHJldmlvdXNseUF0dHJpYnV0ZWQg
fHwgcHJldmlvdXNseVVuYXR0cmlidXRlZC52YWx1ZSgpLmhhc0hpZ2hlclByaW9yaXR5VGhhbigq
cHJldmlvdXNseUF0dHJpYnV0ZWQpKSB7CisgICAgICAgICAgICBpbnNlcnRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChXVEZNb3ZlKCpwcmV2aW91c2x5VW5hdHRyaWJ1dGVkKSwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OkF0dHJpYnV0ZWQpOworCisgICAgICAgICAgICBp
ZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJSZXBsYWNlZCBhIHByZXZpb3Vz
bHkgY29udmVydGVkIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggYXR0cmlidXRpb24gZGF0
YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUgYmVjYXVzZSBpdCBoYWQgaGln
aGVyIHByaW9yaXR5LiIsIGRhdGEsIHByaW9yaXR5KTsKKyAgICAgICAgICAgICAgICBkZWJ1Z0Jy
b2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50XSBSZXBsYWNlZCBhIHByZXZpb3VzbHkgY29udmVydGVkIGFkIGNsaWNrIHdpdGggYSBu
ZXcgb25lIHdpdGggYXR0cmlidXRpb24gdHJpZ2dlciBkYXRhOiAnIl9zLCBkYXRhLCAiJyBhbmQg
cHJpb3JpdHk6ICciX3MsIHByaW9yaXR5LCAiJyBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3Jp
dHkuIl9zKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHByZXZp
b3VzbHlBdHRyaWJ1dGVkKSB7CisgICAgICAgIC8vIElmIHdlIGhhdmUgbm8gbmV3IGF0dHJpYnV0
aW9uLCByZS1hdHRyaWJ1dGUgdGhlIG9sZCBvbmUgdG8gcmVzcGVjdCB0aGUgbmV3IHByaW9yaXR5
LgorICAgICAgICBpZiAoYXV0byBvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQgPSBwcmV2aW91c2x5
QXR0cmlidXRlZC52YWx1ZSgpLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChXVEZN
b3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpKSkgeworICAgICAgICAgICAgaW5zZXJ0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92ZSgqcHJldmlvdXNseUF0dHJpYnV0ZWQpLCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRlZCk7CisKKyAgICAgICAg
ICAgIHNlY29uZHNVbnRpbFNlbmQgPSAqb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kOworICAgICAg
ICAgICAgQVNTRVJUKHNlY29uZHNVbnRpbFNlbmQgIT0gU2Vjb25kczo6aW5maW5pdHkoKSk7CisK
KyAgICAgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIlJlLWNv
bnZlcnRlZCBhbiBhZCBjbGljayB3aXRoIGEgbmV3IG9uZSB3aXRoIGF0dHJpYnV0aW9uIHRyaWdn
ZXIgZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUgYmVjYXVzZSBpdCBo
YWQgaGlnaGVyIHByaW9yaXR5LiIsIGRhdGEsIHByaW9yaXR5KTsKKyAgICAgICAgICAgICAgICBk
ZWJ1Z0Jyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNr
IE1lYXN1cmVtZW50XSBSZS1jb252ZXJ0ZWQgYW4gYWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0
aCBhdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6ICciX3MsIGRhdGEsICInIGFuZCBwcmlvcml0eTog
JyJfcywgcHJpb3JpdHksICInJyBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIl9zKSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoc2Vjb25kc1VudGls
U2VuZCA9PSBTZWNvbmRzOjppbmZpbml0eSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgcmV0dXJuIHNlY29uZHNVbnRpbFNlbmQ7Cit9CisKK1ZlY3RvcjxXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmFsbEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpCit7CisgICAgYXV0byBh
dHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fYWxsQXR0
cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50LCBhbGxBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSwgInByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJp
bmciX3MpOworCisgICAgaWYgKCFhdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50KSB7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3Ry
aW5nLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBW
ZWN0b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGF0dHJpYnV0aW9uczsKKyAg
ICB3aGlsZSAoYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+c3RlcCgpID09IFNRTElURV9ST1cp
CisgICAgICAgIGF0dHJpYnV0aW9ucy5hcHBlbmQoYnVpbGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEZyb21EYXRhYmFzZShhdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LmdldCgpLCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRlZCkpOworCisgICAgcmV0dXJu
IGF0dHJpYnV0aW9uczsKK30KKwordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChPcHRpb25hbDxSZWdpc3RyYWJsZURv
bWFpbj4gZG9tYWluKQoreworICAgIC8vIERlZmF1bHQgdG8gY2xlYXIgYWxsIGVudHJpZXMgaWYg
bm8gZG9tYWluIGlzIHNwZWNpZmllZC4KKyAgICBTdHJpbmcgYmluZFBhcmFtZXRlciA9ICIlIjsK
KyAgICBpZiAoZG9tYWluKSB7CisgICAgICAgIGF1dG8gZG9tYWluSURUb01hdGNoID0gZG9tYWlu
SUQoKmRvbWFpbik7CisgICAgICAgIGlmICghZG9tYWluSURUb01hdGNoKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIGJpbmRQYXJhbWV0ZXIgPSBTdHJpbmc6Om51bWJlcigqZG9tYWlu
SURUb01hdGNoKTsKKyAgICB9CisKKyAgICBhdXRvIGNsZWFyVW5hdHRyaWJ1dGVkU2NvcGVkU3Rh
dGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fY2xlYXJVbmF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudCwgY2xlYXJVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFF1ZXJ5LCAiY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CisKKyAg
ICBpZiAoIWNsZWFyVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50CisgICAgICAgIHx8IGNsZWFy
VW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgxLCBiaW5kUGFyYW1ldGVyKSAh
PSBTUUxJVEVfT0sKKyAgICAgICAgfHwgY2xlYXJVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQt
PmJpbmRUZXh0KDIsIGJpbmRQYXJhbWV0ZXIpICE9IFNRTElURV9PSworICAgICAgICB8fCBjbGVh
clVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclByaXZhdGVDbGlja01lYXN1
cmVtZW50IGNsZWFyVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LCBlcnJvciBtZXNzYWdlOiAl
e3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBhdXRvIGNsZWFyQXR0cmlidXRlZFNj
b3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX2NsZWFyQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50LCBjbGVhckF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFF1ZXJ5LCAiY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CisK
KyAgICBpZiAoIWNsZWFyQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudAorICAgICAgICB8fCBjbGVh
ckF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDEsIGJpbmRQYXJhbWV0ZXIpICE9
IFNRTElURV9PSworICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJp
bmRUZXh0KDIsIGJpbmRQYXJhbWV0ZXIpICE9IFNRTElURV9PSworICAgICAgICB8fCBjbGVhckF0
dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCBjbGVhckF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0
ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIH0KK30KKwordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Y2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQoreworICAg
IGF1dG8gZXhwaXJhdGlvblRpbWVGcmFtZSA9IFdhbGxUaW1lOjpub3coKSAtIFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjptYXhBZ2UoKTsKKyAgICBhdXRvIHNjb3BlZFN0YXRlbWVu
dCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX2NsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50U3RhdGVtZW50LCBjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5
LCAiY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiX3MpOworCisgICAgaWYgKCFz
Y29wZWRTdGF0ZW1lbnQKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kRG91YmxlKDEs
IGV4cGlyYXRpb25UaW1lRnJhbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJ
VEVfT0sKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUp
IHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyRXhwaXJlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50LCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICB9Cit9CisKK1N0cmluZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
YXR0cmlidXRpb25Ub1N0cmluZyhXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQqIHN0YXRlbWVudCwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUgYXR0cmlidXRpb25UeXBlKQor
eworICAgIGF1dG8gc291cmNlU2l0ZURvbWFpbiA9IGdldERvbWFpblN0cmluZ0Zyb21Eb21haW5J
RChzdGF0ZW1lbnQtPmdldENvbHVtbkludCgwKSk7CisgICAgYXV0byBhdHRyaWJ1dGVPblNpdGVE
b21haW4gPSBnZXREb21haW5TdHJpbmdGcm9tRG9tYWluSUQoc3RhdGVtZW50LT5nZXRDb2x1bW5J
bnQoMSkpOworICAgIGF1dG8gc291cmNlSUQgPSBzdGF0ZW1lbnQtPmdldENvbHVtbkludCgyKTsK
KworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IlNvdXJjZSBzaXRlOiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZChzb3VyY2VTaXRlRG9tYWluKTsK
KyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQXR0cmlidXRlIG9uIHNpdGU6ICIpOworICAg
IGJ1aWxkZXIuYXBwZW5kKGF0dHJpYnV0ZU9uU2l0ZURvbWFpbik7CisgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJcblNvdXJjZSBJRDogIik7CisgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc291
cmNlSUQpOworCisgICAgaWYgKGF0dHJpYnV0aW9uVHlwZSA9PSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRlZCkgeworICAgICAgICBhdXRvIGF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEgPSBzdGF0ZW1lbnQtPmdldENvbHVtbkludCgzKTsKKyAgICAgICAgYXV0
byBwcmlvcml0eSA9IHN0YXRlbWVudC0+Z2V0Q29sdW1uSW50KDQpOworICAgICAgICBhdXRvIGVh
cmxpZXN0VGltZVRvU2VuZCA9IHN0YXRlbWVudC0+Z2V0Q29sdW1uSW50KDYpOworCisgICAgICAg
IGlmIChhdHRyaWJ1dGlvblRyaWdnZXJEYXRhICE9IC0xKSB7CisgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIlxuQXR0cmlidXRpb24gdHJpZ2dlciBkYXRhOiAiKTsKKyAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpOworICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkF0dHJpYnV0aW9uIHByaW9yaXR5OiAiKTsK
KyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHByaW9yaXR5KTsKKyAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5BdHRyaWJ1dGlvbiBlYXJsaWVzdCB0aW1lIHRvIHNl
bmQ6ICIpOworICAgICAgICAgICAgaWYgKGVhcmxpZXN0VGltZVRvU2VuZCA9PSAtMSkKKyAgICAg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIk5vdCBzZXQiKTsKKyAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgIGF1dG8gc2Vjb25kc1VudGlsU2VuZCA9IFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhlYXJsaWVzdFRpbWVUb1NlbmQpIC0gV2FsbFRpbWU6Om5vdygpOwor
ICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKChzZWNvbmRzVW50aWxTZW5kID49IDI0X2gg
JiYgc2Vjb25kc1VudGlsU2VuZCA8PSA0OF9oKSA/ICJXaXRoaW4gMjQtNDggaG91cnMiIDogIk91
dHNpZGUgMjQtNDggaG91cnMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuTm8gYXR0cmlidXRpb24gdHJpZ2dlciBk
YXRhLiIpOworICAgIH0gZWxzZQorICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuTm8g
YXR0cmlidXRpb24gdHJpZ2dlciBkYXRhLiIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwor
CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKworU3RyaW5nIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5n
KCkKK3sKKyAgICBTUUxpdGVTdGF0ZW1lbnQgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhRXhp
c3RzKG1fZGF0YWJhc2UsICJTRUxFQ1QgKFNFTEVDVCBDT1VOVCgqKSBGUk9NIFVuYXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50KSBhcyBjbnQxLCAoU0VMRUNUIENPVU5UKCopIEZST00g
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KSBhcyBjbnQyIl9zKTsKKyAgICBpZiAo
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhRXhpc3RzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sg
fHwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhRXhpc3RzLnN0ZXAoKSAhPSBTUUxJVEVfUk9X
KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5n
IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybiB7IH07CisgICAgfQorCisgICAgaWYgKCFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFF
eGlzdHMuZ2V0Q29sdW1uSW50KDApICYmICFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFFeGlz
dHMuZ2V0Q29sdW1uSW50KDEpKQorICAgICAgICByZXR1cm4gIlxuTm8gc3RvcmVkIFByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnQgZGF0YS5cbiJfczsKKworICAgIGF1dG8gdW5hdHRyaWJ1dGVkU2Nv
cGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fYWxsVW5hdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvbnNTdGF0ZW1lbnQsIGFsbFVuYXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25zUXVlcnksICJwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRvU3RyaW5nIl9zKTsKKworICAgIGlmICghdW5hdHRyaWJ1dGVkU2NvcGVkU3Rh
dGVtZW50KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9u
SUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFRvU3RyaW5nLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCB1bmF0dHJpYnV0ZWROdW1iZXIgPSAwOworICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICB3aGlsZSAodW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVt
ZW50LT5zdGVwKCkgPT0gU1FMSVRFX1JPVykgeworICAgICAgICBpZiAoIXVuYXR0cmlidXRlZE51
bWJlcikKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVW5hdHRyaWJ1dGVkIFBy
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOlxuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50ICIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcigrK3VuYXR0cmlidXRlZE51bWJlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdc
bicpOworICAgICAgICBidWlsZGVyLmFwcGVuZChhdHRyaWJ1dGlvblRvU3RyaW5nKHVuYXR0cmli
dXRlZFNjb3BlZFN0YXRlbWVudC5nZXQoKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvblR5cGU6OlVuYXR0cmlidXRlZCkpOworICAgIH0KKworICAgIGF1dG8gYXR0cmlidXRlZFNj
b3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX2FsbEF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudCwgYWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50UXVlcnksICJwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nIl9zKTsKKwor
ICAgIGlmICghYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCkgeworICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZywgZXJyb3Ig
bWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgdW5zaWduZWQgYXR0
cmlidXRlZE51bWJlciA9IDA7CisgICAgd2hpbGUgKGF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQt
PnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CisgICAgICAgIGlmICh1bmF0dHJpYnV0ZWROdW1iZXIp
CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgaWYgKCFhdHRyaWJ1
dGVkTnVtYmVyKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJBdHRyaWJ1dGVk
IFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOlxuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IldlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50ICIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcigrK2F0dHJpYnV0ZWROdW1iZXIgKyB1bmF0dHJpYnV0ZWROdW1iZXIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXR0cmli
dXRpb25Ub1N0cmluZyhhdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LmdldCgpLCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRlZCkpOworICAgIH0KKyAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworfQorCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbnMoVmVjdG9yPFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50PiYmIGF0dHJpYnV0aW9ucykKK3sKKyAgICBmb3IgKGF1dG8m
IGF0dHJpYnV0aW9uIDogYXR0cmlidXRpb25zKSB7CisgICAgICAgIGF1dG8gc291cmNlU2l0ZURv
bWFpbklEID0gZG9tYWluSUQoYXR0cmlidXRpb24uc291cmNlU2l0ZSgpLnJlZ2lzdHJhYmxlRG9t
YWluKTsKKyAgICAgICAgYXV0byBhdHRyaWJ1dGVPblNpdGVEb21haW5JRCA9IGRvbWFpbklEKGF0
dHJpYnV0aW9uLmF0dHJpYnV0ZU9uU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluKTsKKworICAgICAg
ICBpZiAoIXNvdXJjZVNpdGVEb21haW5JRCB8fCAhYXR0cmlidXRlT25TaXRlRG9tYWluSUQpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgU1FMaXRlU3RhdGVtZW50IGNsZWFyQXR0cmli
dXRlZFN0YXRlbWVudChtX2RhdGFiYXNlLCAiREVMRVRFIEZST00gQXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGF0dHJpYnV0
ZU9uU2l0ZURvbWFpbklEID0gPyJfcyk7CisgICAgICAgIGlmIChjbGVhckF0dHJpYnV0ZWRTdGF0
ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgY2xlYXJBdHRyaWJ1
dGVkU3RhdGVtZW50LmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09L
CisgICAgICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQuYmluZEludCgyLCAqYXR0
cmlidXRlT25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgY2xlYXJB
dHRyaWJ1dGVkU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyU2VudEF0dHJpYnV0aW9ucyBmYWlsZWQg
dG8gc3RlcCwgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICB9CisgICAgICAgIGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudC5yZXNldCgpOworICAgIH0KK30K
Kwordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0F0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCkKK3sKKyAgICAv
LyBVcGRhdGUgdGhlIGxhc3QgdGltZXIgZmlyZWQgdGltZSB0byBiZSBvbmUgZGF5IGFnby4KKyAg
ICBhdXRvIHllc3RlcmRheSA9IChXYWxsVGltZTo6bm93KCkgLSAyNF9oKS5zZWNvbmRzU2luY2VF
cG9jaCgpLnZhbHVlKCk7CisgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRT
dGF0ZW1lbnQobV91cGRhdGVUaW1lckxhc3RGaXJlZFN0YXRlbWVudCwgdXBkYXRlVGltZXJMYXN0
RmlyZWRRdWVyeSwgImluc2VydEV4cGlyZWRBdHRyaWJ1dGlvblRlc3RpbmciX3MpOworICAgIGlm
ICghc2NvcGVkU3RhdGVtZW50CisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZERvdWJs
ZSgxLCB5ZXN0ZXJkYXkpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQt
PnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3
b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RXhw
aXJlZEF0dHJpYnV0aW9uVGVzdGluZyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1z
IiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIH0KKworICAgIGF1dG8gZXhwaXJlZFRpbWVUb1NlbmQgPSAxX2g7IC8v
IE11c3QgYmUgbGVzcyB0aGFuIDEgZGF5LgorICAgIAorICAgIGF1dG8gc3RhdGVtZW50ID0gU1FM
aXRlU3RhdGVtZW50KG1fZGF0YWJhc2UsICJVUERBVEUgQXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50IFNFVCBlYXJsaWVzdFRpbWVUb1NlbmQgPSA/Iik7CisgICAgaWYgKHN0YXRlbWVu
dC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kSW50KDEs
IGV4cGlyZWRUaW1lVG9TZW5kLnZhbHVlKCkpICE9IFNRTElURV9PSworICAgICAgICB8fCBzdGF0
ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjppbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgZXJyb3IgbWVzc2FnZTog
JXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJldHVybjsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCAyNjRlYWFhMDVlNDU3MmNkZTFkMDAyNDUwMWJj
NGM5ZjUxN2M3MWViLi42MDc0MjBhNDMyNzk0NGU3ZGYxZjJhNDA3YjdkNGM5OTBmNjNjOWRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
aApAQCAtNTMsNiArNTMsMTMgQEAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbnVtYmVyT2ZTdGF0
aXN0aWNzID0gNzsKIHN0YXRpYyBjb25zdGV4cHIgc3RkOjphcnJheTx1bnNpZ25lZCwgbnVtYmVy
T2ZCdWNrZXRzUGVyU3RhdGlzdGljPiBidWNrZXRTaXplcyB7eyAxLCAzLCAxMCwgNTAsIDEwMCB9
fTsKIAogY2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOworY2xhc3MgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOworCit1c2luZyBBdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgPSBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKK3VzaW5n
IFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ7Cit1c2luZyBTb3VyY2VTaXRlID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGU7Cit1c2luZyBBdHRyaWJ1dGVPblNpdGUgPSBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlOwordXNpbmcgQXR0cmli
dXRpb25UcmlnZ2VyRGF0YSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRy
aWJ1dGlvblRyaWdnZXJEYXRhOwogCiAvLyBUaGlzIGlzIGFsd2F5cyBjb25zdHJ1Y3RlZCAvIHVz
ZWQgLyBkZXN0cm95ZWQgb24gdGhlIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSdzIHN0
YXRpc3RpY3MgcXVldWUuCiBjbGFzcyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZSBmaW5hbCA6IHB1YmxpYyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgewpAQCAtMTI0LDYg
KzEzMSwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVz
dGluZyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaGFzVXNlckludGVyYWN0aW9uLCBi
b29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxl
bnQpIG92ZXJyaWRlOwogICAgIHZvaWQgaW50ZXJydXB0KCk7CiAKKyAgICAvLyBQcml2YXRlIENs
aWNrIE1lYXN1cmVtZW50LgorICAgIHZvaWQgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblR5cGUpIG92ZXJyaWRlOworICAgIHZvaWQgbWFya0FsbFVuYXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZygpIG92ZXJyaWRlOwor
ICAgIE9wdGlvbmFsPFNlY29uZHM+IGF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNv
bnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3Qg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSYsIFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYpIG92
ZXJyaWRlOworICAgIFZlY3RvcjxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gYWxs
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBj
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KE9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9tYWluPikg
b3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgp
IG92ZXJyaWRlOworICAgIFN0cmluZyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nKCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclNlbnRBdHRyaWJ1dGlvbnMoVmVjdG9yPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHVwZGF0ZVRp
bWVyTGFzdEZpcmVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBtYXJrQXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKSBvdmVycmlkZTsKKyAgICB2b2lk
IHVwZGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UaW1lcygpOworCiBwcml2
YXRlOgogICAgIHZvaWQgaW5jbHVkZVRvZGF5QXNPcGVyYXRpbmdEYXRlSWZOZWNlc3NhcnkoKSBv
dmVycmlkZTsKICAgICB2b2lkIGNsZWFyT3BlcmF0aW5nRGF0ZXMoKSBvdmVycmlkZSB7IH0KQEAg
LTIxMyw2ICsyMzMsMTIgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZW5zdXJlQW5kTWFrZURvbWFp
bkxpc3QoY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mKTsKICAgICBPcHRpb25hbDxX
YWxsVGltZT4gbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUoY29uc3QgRG9tYWluRGF0YSYp
OwogICAgIAorICAgIHZvaWQgcmVtb3ZlVW5hdHRyaWJ1dGVkKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50Jik7CisgICAgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYnVp
bGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21EYXRhYmFzZShXZWJDb3JlOjpTUUxpdGVTdGF0
ZW1lbnQqLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSk7CisgICAgU3Ry
aW5nIGF0dHJpYnV0aW9uVG9TdHJpbmcoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50KiwgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUpOworICAgIHN0ZDo6cGFpcjxPcHRpb25h
bDxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4sIE9wdGlvbmFsPEF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IGZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChj
b25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUmKTsKKyAg
ICBXYWxsVGltZSB0aW1lckxhc3RGaXJlZCgpOworCiAgICAgY29uc3QgU3RyaW5nIG1fc3RvcmFn
ZURpcmVjdG9yeVBhdGg7CiAgICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZSBtX2Rh
dGFiYXNlOwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRl
bWVudD4gbV9vYnNlcnZlZERvbWFpbkNvdW50U3RhdGVtZW50OwpAQCAtMjUyLDYgKzI3OCwyMSBA
QCBwcml2YXRlOgogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudD4gbV91bmlxdWVSZWRpcmVjdEV4aXN0c1N0YXRlbWVudDsKICAgICBtdXRhYmxlIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fb2JzZXJ2ZWREb21haW5z
RXhpc3RzU3RhdGVtZW50OwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNR
TGl0ZVN0YXRlbWVudD4gbV9yZW1vdmVBbGxEYXRhU3RhdGVtZW50OworICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1faW5zZXJ0VW5hdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZW1lbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlNRTGl0ZVN0YXRlbWVudD4gbV9pbnNlcnRBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRTdGF0ZW1lbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVu
dD4gbV9zZXRVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZFN0YXRl
bWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2Ns
ZWFyVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZW1lbnQ7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9jbGVhckF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2NsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50U3RhdGVtZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1l
bnQ+IG1fYWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvbnNT
dGF0ZW1lbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4g
bV9hbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZW1lbnQ7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9maW5kVW5hdHRyaWJ1dGVk
U3RhdGVtZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+
IG1fZmluZEF0dHJpYnV0ZWRTdGF0ZW1lbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlNRTGl0ZVN0YXRlbWVudD4gbV91cGRhdGVUaW1lckxhc3RGaXJlZFN0YXRlbWVudDsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX3RpbWVyTGFzdEZpcmVk
U3RhdGVtZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+
IG1fdXBkYXRlQXR0cmlidXRpb25zRWFybGllc3RUaW1lVG9TZW5kU3RhdGVtZW50OworICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fcmVtb3ZlVW5hdHRyaWJ1
dGVkU3RhdGVtZW50OworICAgIAogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAg
IGJvb2wgbV9pc05ld1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZUZpbGUgeyBmYWxzZSB9
OwogICAgIHVuc2lnbmVkIG1fb3BlcmF0aW5nRGF0ZXNTaXplIHsgMCB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IGIxNTg2Yjk3OWRk
ODhlNGZiYzJhNTE1ODAzODkwMjNmZWVlZWJkYjUuLmY4NWExNWRjNGZhNjM1YzY5NTMzNjBmNGE0
YWU3Yzc4ZWFjZjk2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlLmgKQEAgLTEwOCw2ICsxMDgsMTggQEAgcHVibGljOgogICAgIFZlY3RvcjxS
ZWdpc3RyYWJsZURvbWFpbj4gYWxsRG9tYWlucygpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgaW5z
ZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBi
b29sIGhhc1VzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURh
dGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50KSBvdmVycmlkZTsKIAorICAgIC8vIFByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnQgaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBJVFAgbWVtb3J5IHN0
b3JlLgorICAgIHZvaWQgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlv
blR5cGUpIG92ZXJyaWRlIHsgfTsKKyAgICB2b2lkIG1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKSBvdmVycmlkZSB7IH07CisgICAg
T3B0aW9uYWw8U2Vjb25kcz4gYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3Qg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlJiwgV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJikgb3ZlcnJp
ZGUgeyByZXR1cm4geyB9OyB9OworICAgIFZlY3RvcjxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudD4gYWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkgb3ZlcnJpZGUg
eyByZXR1cm4geyB9OyB9OworICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChP
cHRpb25hbDxSZWdpc3RyYWJsZURvbWFpbj4pIG92ZXJyaWRlIHsgfTsKKyAgICB2b2lkIGNsZWFy
RXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkgb3ZlcnJpZGUgeyB9OworICAgIFN0cmlu
ZyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gU3Ry
aW5nKCk7IH07CisgICAgdm9pZCBjbGVhclNlbnRBdHRyaWJ1dGlvbnMoVmVjdG9yPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmKSBvdmVycmlkZSB7IH07CisgICAgdm9pZCBtYXJr
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKSBv
dmVycmlkZSB7IH07CisgICAgdm9pZCB1cGRhdGVUaW1lckxhc3RGaXJlZCgpIG92ZXJyaWRlIHsg
fTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGluY2x1ZGVUb2RheUFzT3BlcmF0aW5nRGF0ZUlmTmVj
ZXNzYXJ5KCkgb3ZlcnJpZGU7CiAgICAgY29uc3QgVmVjdG9yPE9wZXJhdGluZ0RhdGU+JiBvcGVy
YXRpbmdEYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fb3BlcmF0aW5nRGF0ZXM7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCA3N2QwNTVjY2Q3MTM2NmI2YmRm
NzliY2EyNDVkODcxNjBiYzM2OTY5Li42MmUwMzViZTAwZDAxODY2MmE3NTI2Y2Y4Zjk3MTAwMTBm
ZDQxYzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0y
MDIsNiArMjAyLDE4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPcGVyYXRpbmdE
YXRlcygpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU3RhdGlzdGljc0V4cGlyZWQoV2FsbFRp
bWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIE9wZXJhdGluZ0RhdGVzV2luZG93KSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0
aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgYm9vbCBoYXNVc2VySW50ZXJhY3Rpb24sIGJv
b2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCkgPSAwOworICAg
IAorICAgIC8vIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQuCisgICAgdmlydHVhbCB2b2lkIGlu
c2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIG1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFz
RXhwaXJlZEZvclRlc3RpbmcoKSA9IDA7CisgICAgdmlydHVhbCBPcHRpb25hbDxTZWNvbmRzPiBh
dHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKSA9IDA7CisgICAgdmlydHVhbCBWZWN0b3I8
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGFsbEF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChPcHRpb25hbDxSZWdpc3RyYWJsZURvbWFpbj4pID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSA9IDA7CisgICAgdmly
dHVhbCBTdHJpbmcgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZygpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJTZW50QXR0cmlidXRpb25zKFZlY3RvcjxXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudD4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBtYXJrQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZVRpbWVyTGFzdEZpcmVkKCkgPSAwOwogCiBwcm90ZWN0ZWQ6CiAg
ICAgc3RhdGljIHVuc2lnbmVkIGNvbXB1dGVJbXBvcnRhbmNlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3MmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAKaW5kZXggYTE3MzA5ODcyZTkyODYzMmViNjUyYjk5OTZiMzAwODkzZTY4
ZGI2Yy4uMjY2NzZlNjhkNTQ3YjIxYWY2Y2RkNGM3ODliNGMzYjRkZmU1NmY5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTE0NzUsNiAr
MTQ3NSwyMDAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omluc2VydEV4
cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2kKICAgICB9KTsKIH0KIAordm9pZCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZVRpbWVyTGFzdEZpcmVkKCkKK3sK
KyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGlzRXBoZW1lcmFsKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIHBvc3RUYXNrKFt0aGlzXSgpIG11dGFibGUgeworICAg
ICAgICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIG1fc3RhdGlzdGljc1N0b3JlLT51cGRhdGVUaW1lckxhc3RGaXJlZCgpOworICAgIH0pOwor
fQorCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aW5zZXJ0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBhdHRyaWJ1dGlvbiwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUgYXR0cmlidXRpb25UeXBlKQorewor
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgcG9zdFRhc2soW3RoaXMsIGF0dHJpYnV0aW9uID0gV1RG
TW92ZShhdHRyaWJ1dGlvbiksIGF0dHJpYnV0aW9uVHlwZV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
aWYgKCFtX3N0YXRpc3RpY3NTdG9yZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBt
X3N0YXRpc3RpY3NTdG9yZS0+aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92ZShh
dHRyaWJ1dGlvbiksIGF0dHJpYnV0aW9uVHlwZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjptYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKCkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOworCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHBvc3RUYXNrKFt0aGlzXSgpIHsKKyAgICAgICAgaWYgKCFtX3N0YXRpc3RpY3NTdG9yZSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX3N0YXRpc3RpY3NTdG9yZS0+bWFya0Fs
bFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZygp
OworICAgIH0pOworfQorCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6YXR0
cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpBdHRyaWJ1dGVPblNpdGUmIGF0dHJpYnV0ZU9uU2l0ZSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFNlY29uZHM+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGlzRXBoZW1l
cmFsKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIHBvc3RUYXNrKFt0aGlzLCBzb3VyY2VTaXRlLCBhdHRyaWJ1dGVPblNp
dGUsIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11
dGFibGUgeworICAgICAgICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlKSB7CisgICAgICAgICAgICBw
b3N0VGFza1JlcGx5KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6
bnVsbG9wdCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGF1dG8gc2Vjb25kcyA9IG1fc3RhdGlzdGljc1N0b3JlLT5hdHRyaWJ1dGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3VyY2VTaXRlLCBhdHRyaWJ1dGVPblNpdGUsIFdURk1v
dmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkpOworICAgICAgICBwb3N0VGFza1JlcGx5KFtzZWNv
bmRzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11
dGFibGUgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc2Vjb25kcyk7CisgICAgICAg
IH0pOworICAgIH0pOworfQorCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
YWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGlzRXBoZW1l
cmFsKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIHBvc3RUYXNrKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICBpZiAoIW1fc3RhdGlz
dGljc1N0b3JlKSB7CisgICAgICAgICAgICBwb3N0VGFza1JlcGx5KFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gY29udmVydGVkQXR0cmlidXRpb25z
ID0gbV9zdGF0aXN0aWNzU3RvcmUtPmFsbEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCgpOworICAgICAgICBwb3N0VGFza1JlcGx5KFtjb252ZXJ0ZWRBdHRyaWJ1dGlvbnMgPSBXVEZN
b3ZlKGNvbnZlcnRlZEF0dHJpYnV0aW9ucyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKGNvbnZlcnRlZEF0dHJpYnV0aW9ucykpOworICAgICAgICB9KTsKKyAgICB9
KTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNsZWFyUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisK
KyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcG9zdFRhc2so
W3RoaXNdKCkgeworICAgICAgICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5jbGVhclByaXZhdGVDbGlja01l
YXN1cmVtZW50KFdURjo6bnVsbG9wdCk7CisgICAgfSk7Cit9CisgICAgCit2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZvclJl
Z2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pCit7CisgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChpc0VwaGVtZXJhbCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBwb3N0VGFzayhbdGhpcywgZG9tYWluID0gZG9tYWluLmlzb2xh
dGVkQ29weSgpXSgpIG11dGFibGUgeworICAgICAgICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5jbGVhclBy
aXZhdGVDbGlja01lYXN1cmVtZW50KGRvbWFpbik7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCgpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChpc0Vw
aGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwb3N0VGFzayhbdGhpc10oKSB7Cisg
ICAgICAgIGlmICghbV9zdGF0aXN0aWNzU3RvcmUpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPmNsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Ojpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOworCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoIlxuTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS5cbiJfcyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwb3N0VGFzayhbdGhpcywgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgaWYgKCFtX3N0YXRpc3RpY3NTdG9yZSkgeworICAgICAgICAgICAgcG9zdFRhc2tSZXBseShb
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhdXRvIHJlc3Vs
dCA9IG1fc3RhdGlzdGljc1N0b3JlLT5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nKCk7
CisgICAgICAgIHBvc3RUYXNrUmVwbHkoW3Jlc3VsdCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHJlc3VsdCk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2b2lkIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJTZW50QXR0cmlidXRpb25zKFZlY3RvcjxX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJiBhdHRyaWJ1dGlvbnNUb0NsZWFyKQor
eworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAoaXNFcGhlbWVyYWwo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcG9zdFRhc2soW3RoaXMsIGF0dHJpYnV0aW9uc1Rv
Q2xlYXIgPSBXVEZNb3ZlKGF0dHJpYnV0aW9uc1RvQ2xlYXIpXSgpIG11dGFibGUgeworICAgICAg
ICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IG1fc3RhdGlzdGljc1N0b3JlLT5jbGVhclNlbnRBdHRyaWJ1dGlvbnMoV1RGTW92ZShhdHRyaWJ1
dGlvbnNUb0NsZWFyKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAoaXNFcGhlbWVy
YWwoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgcG9zdFRhc2soW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChtX3N0YXRpc3RpY3NT
dG9yZSkKKyAgICAgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5tYXJrQXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKworICAgICAgICBwb3N0
VGFza1JlcGx5KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB9KTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGUzZmUzNzE5OTMzMTBiZWVmZTJlY2FmNGY0ZDlhN2I3
MjAzMzkzOTkuLmFlNmFkZjI2MzY2NmZlNWYwYzdkYTBlM2NlODAxZjJiMTQ5NDZlYjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRl
bnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUxvYWRPYnNlcnZlci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxl
ci5oPgpAQCAtNjUsNiArNjYsNyBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNsYXNzIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CiBjbGFzcyBXZWJQ
cm9jZXNzUHJveHk7CitlbnVtIGNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25UeXBlOwogZW51bSBjbGFzcyBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MgOiBib29sOwog
ZW51bSBjbGFzcyBTaG91bGRJbmNsdWRlTG9jYWxob3N0IDogYm9vbCB7IE5vLCBZZXMgfTsKIGVu
dW0gY2xhc3MgRW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA6IGJvb2wgeyBO
bywgWWVzIH07CkBAIC0zMDQsNiArMzA2LDE5IEBAIHN0cnVjdCBUaGlyZFBhcnR5RGF0YSB7CiAg
ICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFcGhlbWVyYWwgPT0gV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWw6OlllczsgfTsKICAgICB2
b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRD
b29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAorICAgIC8vIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQuCisgICAgdm9pZCBp
bnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSk7CisgICAgdm9p
ZCBtYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JU
ZXN0aW5nKCk7CisgICAgdm9pZCBhdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25z
dCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0IFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUmLCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFNlY29uZHM+KT4mJik7CisgICAgdm9pZCBhbGxB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYpPiYmKTsKKyAgICB2b2lk
IGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICB2b2lkIGNsZWFyUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYpOworICAgIHZvaWQgY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoKTsKKyAgICB2b2lkIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmcoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKKyAgICB2b2lkIGNsZWFyU2VudEF0dHJpYnV0aW9u
cyhWZWN0b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYpOworICAgIHZvaWQg
dXBkYXRlVGltZXJMYXN0RmlyZWQoKTsKKyAgICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYsIFNob3VsZEluY2x1ZGVMb2Nh
bGhvc3QsIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1lcmFsKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRl
eCA4YTlkMmYzOTM5ZTcxODZiODFlOGE3ZWZkNGJiZWI1MGE2M2IyZjU5Li4yOTFhNTI2NWMzYTA3
YmQ4MDQ0YzMxYTIyNjY1NzkwNTNkNDA5MWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjU2Miw2ICsyNTYyLDMzIEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZv
clRlc3RpbmcoUEFMOjpTZXNzCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAordm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVs
eShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBu
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQorICAgICAgICBzZXNzaW9uLT5maXJlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRUaW1lckltbWVkaWF0ZWx5KCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nl
c3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgeworICAgICAgICBzZXNzaW9uLT5yZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0
b3JlKFt0aGlzLCBzZXNzaW9uSUQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAgICAgICAgICAgZmlyZVByaXZhdGVDbGlja01l
YXN1cmVtZW50VGltZXJJbW1lZGlhdGVseShzZXNzaW9uSUQpOworICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6bWFya0F0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgeworICAgICAgICBzZXNzaW9uLT5tYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVS
TEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1cmwsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byog
c2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYmU1MjZlZmYxZThjOTFkMzZlYTg5
Yjg3ZTdiNTY3OTU4YTk1NmZiMi4uNjBkMzZiYjU3NTY3ZjMyOGU3ZmFjY2QyZTgwYTJlMTBhNDM5
ODExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aApAQCAtMzM2LDYgKzMzNiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcp
PiYmKTsKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBib29s
IHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWFya0F0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2ltdWxhdGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBVUkwmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogCkBAIC00NzksNiArNDgxLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGFk
ZFNlcnZpY2VXb3JrZXJTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBib29sIHByb2Nlc3NUZXJtaW5h
dGlvbkRlbGF5RW5hYmxlZCwgU3RyaW5nJiYgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeSwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7CiAjZW5kaWYKIAorICAgIHZv
aWQgZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseShQQUw6OlNlc3Np
b25JRCk7CisKICAgICBjbGFzcyBTZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlciB7CiAgICAgICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4
IDBmMDE5MDU2ZTViNTdmNTMzNGI4Y2U3MzgyNmUyZmEwNTY4ODkzYmYuLjYwMWUyNGNiMjU2MzZl
MTdiZDU1NGQ2OGYwZThiZmFmNTJkYWIyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTY1LDYgKzE2
NSw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBE
dW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAo
U3RyaW5nIHByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGUpIEFzeW5jCiAgICAgQ2xlYXJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5j
CiAgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpIEFzeW5jCisgICAgTWFy
a0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBTaW11bGF0ZVJlc291cmNl
TG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+
ICgpIEFzeW5jCiAgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwpIC0+ICgpIEFzeW5jCiAg
ICAgTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIEdldExvY2FsU3RvcmFnZU9yaWdp
bkRldGFpbHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYktpdDo6TG9j
YWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpPcmlnaW5EZXRhaWxzPiBkZXRhaWxzKSBBc3luYwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCmluZGV4IDM1ZTk5OTRkNzRkNTEwYWE0ZTE0NTg0OGM3MmQyYjU4NWUwYmMwYzgu
LjI5MDVkNTFlMTdhMTYzYWEzNDRjMjMxYWFkZDQzNjQzYWFkZjg2OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAK
QEAgLTgxNCwxMCArODE0LDEwIEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU2Vu
ZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgKyttX3Jl
ZGlyZWN0Q291bnQ7CiAgICAgbV9yZWRpcmVjdFJlc3BvbnNlID0gcmVkaXJlY3RSZXNwb25zZTsK
IAotICAgIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uPiBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb247CisgICAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IHByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YTsKICAgICBpZiAoIXNlc3Npb25JRCgpLmlzRXBoZW1l
cmFsKCkpIHsKLSAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QocmVkaXJlY3RSZXF1ZXN0LnVybCgpKSkKLSAgICAg
ICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbiA9IHJlc3VsdC52YWx1ZSgp
OworICAgICAgICBpZiAoYXV0byByZXN1bHQgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFy
c2VBdHRyaWJ1dGlvblJlcXVlc3QocmVkaXJlY3RSZXF1ZXN0LnVybCgpKSkKKyAgICAgICAgICAg
IHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IHJlc3VsdC52
YWx1ZSgpOwogICAgICAgICBlbHNlIGlmICghcmVzdWx0LmVycm9yKCkuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIHJlc3VsdC5lcnJvcigpKTsKICAgICB9CkBA
IC04MjcsMTIgKzgyNywxMiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRS
ZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgICAgICBtX2Nh
Y2hlLT5zdG9yZVJlZGlyZWN0KHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UsIHJlZGlyZWN0UmVx
dWVzdCwgbWF4QWdlQ2FwKTsKIAogICAgIGlmIChtX25ldHdvcmtMb2FkQ2hlY2tlcikgewotICAg
ICAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKQorICAgICAgICBpZiAo
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogICAgICAgICAg
ICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPmVuYWJsZUNvbnRlbnRFeHRlbnNpb25zQ2hlY2soKTsK
ICAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPnN0b3JlUmVkaXJlY3Rpb25JZk5lZWRlZChy
ZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKIAogICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiBDaGVja2luZyByZWRpcmVjdCB1c2luZyBO
ZXR3b3JrTG9hZENoZWNrZXIiKTsKLSAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPmNoZWNr
UmVkaXJlY3Rpb24oV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlcXVlc3QpLCBX
VEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB0aGlzLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCB0aGlzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IG1fbmV0d29ya0xvYWRDaGVj
a2VyLT5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSgpLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb24gPSBXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbildKGF1
dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBtX25ldHdvcmtMb2FkQ2hlY2tlci0+Y2hl
Y2tSZWRpcmVjdGlvbihXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVxdWVzdCks
IFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHRoaXMsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIHRoaXMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gbV9uZXR3b3JrTG9hZENo
ZWNrZXItPnN0b3JlZENyZWRlbnRpYWxzUG9saWN5KCksIHByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBpZiAoIXJlc3VsdC5oYXNfdmFsdWUoKSkgewogICAgICAgICAgICAgICAgIGlmIChyZXN1
bHQuZXJyb3IoKS5pc0NhbmNlbGxhdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Q6IE5ldHdvcmtMb2Fk
Q2hlY2tlcjo6Y2hlY2tSZWRpcmVjdGlvbiByZXR1cm5lZCB3aXRoIGEgY2FuY2VsbGF0aW9uIik7
CkBAIC04NjUsMTYgKzg2NSwxNiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFNl
bmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICBtX3Nob3VsZFJlc3RhcnRMb2FkID0gc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgIT0gbV9uZXR3b3JrTG9hZENoZWNrZXItPnN0b3JlZENyZWRlbnRpYWxzUG9saWN5
KCk7Ci0gICAgICAgICAgICB0aGlzLT5jb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Qo
V1RGTW92ZShyZXN1bHQtPnJlcXVlc3QpLCBXVEZNb3ZlKHJlc3VsdC0+cmVkaXJlY3RSZXF1ZXN0
KSwgV1RGTW92ZShyZXN1bHQtPnJlZGlyZWN0UmVzcG9uc2UpLCBXVEZNb3ZlKHByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29udmVyc2lvbikpOworICAgICAgICAgICAgdGhpcy0+Y29udGludWVXaWxs
U2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUocmVzdWx0LT5yZXF1ZXN0KSwgV1RGTW92ZShy
ZXN1bHQtPnJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUocmVzdWx0LT5yZWRpcmVjdFJlc3BvbnNl
KSwgV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEp
KTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY29udGludWVXaWxs
U2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVkaXJlY3RS
ZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgV1RGTW92ZShwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbnZlcnNpb24pKTsKKyAgICBjb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJl
cXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3Zl
KHJlZGlyZWN0UmVzcG9uc2UpLCBXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25UcmlnZ2VyRGF0YSkpOwogfQogCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29u
dGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IFJlc291cmNlUmVxdWVzdCYmIHJlZGlyZWN0UmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJl
ZGlyZWN0UmVzcG9uc2UsIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJz
aW9uPiYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbikKK3ZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBSZXNv
dXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdDogKG1faXNLZXB0QWxpdmU9JWQsIGhh
c0FkQ2xpY2tDb252ZXJzaW9uPSVkKSIsIG1faXNLZXB0QWxpdmUsICEhcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb252ZXJzaW9uKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb250aW51
ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Q6IChtX2lzS2VwdEFsaXZlPSVkLCBoYXNBZENsaWNr
Q29udmVyc2lvbj0lZCkiLCBtX2lzS2VwdEFsaXZlLCAhIXByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25UcmlnZ2VyRGF0YSk7CiAgICAgQVNTRVJUKCFpc1N5bmNocm9ub3VzKCkpOwog
CiAgICAgaWYgKG1faXNLZXB0QWxpdmUpIHsKQEAgLTg4Myw4ICs4ODMsOCBAQCB2b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6Y29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCYmCiAgICAgfQogCiAgICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9u
ID0gbnVsbHB0cjsKLSAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uICYm
IChuZXR3b3JrU2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQoKSkpKQotICAgICAgICBuZXR3b3JrU2Vzc2lvbi0+aGFuZGxlUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFdURk1vdmUoKnByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29udmVyc2lvbiksIHJlcXVlc3QudXJsKCksIHJlZGlyZWN0UmVxdWVzdCk7CisgICAg
aWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YSAmJiAobmV0
d29ya1Nlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKCkpKSkKKyAgICAgICAgbmV0d29ya1Nlc3Npb24tPmhhbmRsZVByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29udmVyc2lvbihXVEZNb3ZlKCpwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCByZXF1ZXN0LnVybCgpLCByZWRpcmVjdFJlcXVlc3Qp
OwogCiAgICAgLy8gV2Ugc2VuZCB0aGUgcmVxdWVzdCBib2R5IHNlcGFyYXRlbHkgYmVjYXVzZSB0
aGUgUmVzb3VyY2VSZXF1ZXN0IGJvZHkgbm9ybWFsbHkgZG9lcyBub3QgZ2V0IGVuY29kZWQgd2hl
biBzZW50IG92ZXIgSVBDLCBhcyBhbiBvcHRpbWl6YXRpb24uCiAgICAgLy8gSG93ZXZlciwgd2Ug
cmVhbGx5IG5lZWQgdGhlIGJvZHkgaGVyZSBiZWNhdXNlIGEgcmVkaXJlY3QgY3Jvc3Mtc2l0ZSBt
YXkgY2F1c2UgYSBwcm9jZXNzLXN3YXAgYW5kIHRoZSByZXF1ZXN0IHRvIHN0YXJ0IGFnYWluIGlu
IGEgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDU2MTVmZmU3NTM0NWYyNGUy
NTFlYmE2YTUwNGVmM2MxMDk1MGRiZTguLjQ2MzNhMTYyNmRkMTQzNjI5MzBiYzEwMTM3ZTE0MTdk
ZGM1OWY3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMTkxLDcgKzE5MSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBsb2dDb29raWVJbmZvcm1hdGlvbigpIGNvbnN0OwogI2VuZGlmCiAKLSAgICB2b2lkIGNvbnRp
bnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpDb252ZXJzaW9uPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVx
dWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIE9wdGlvbmFs
PFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRh
PiYmKTsKICAgICB2b2lkIGRpZEZpbmlzaFdpdGhSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVjdFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSBzYW5pdGl6ZVJlc3BvbnNlSWZQb3NzaWJsZShXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OlNhbml0aXphdGlvblR5cGUpOwogCkBA
IC0yMDIsNyArMjAyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbG9nU2xvd0NhY2hlUmV0cmll
dmVJZk5lZWRlZChjb25zdCBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpSZXRyaWV2ZUluZm8mKTsKIAot
ICAgIHZvaWQgaGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uJiYsIGNvbnN0IFVSTCYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZvaWQgaGFuZGxlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb252ZXJzaW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpOwogCiAgICAgT3B0aW9uYWw8U2Vjb25kcz4gdmFsaWRhdGVDYWNoZUVudHJ5
Rm9yTWF4QWdlQ2FwVmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDhjZTU5MTQxMjM0YWViZjVlNDllMmJkYzhh
NjgyZmI1ODRjYTI4NTEuLmJjNTU1ZWYyMGIzMmRlMzdiNmQxZDAxNWJlNTcxN2FkMWFjNWU2MTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
CkBAIC05MCw3ICs5MCw3IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3Jr
UHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAgICAgLCBtX2ZpcnN0
UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUpCiAgICAgLCBt
X3N0YW5kYWxvbmVBcHBsaWNhdGlvbkRvbWFpbihwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzLnN0YW5kYWxvbmVBcHBsaWNhdGlvbkRvbWFpbikKICNlbmRpZgotICAg
ICwgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudChtYWtlVW5pcXVlUmVmPFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlcj4obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMuc2Vzc2lvbklEKSkK
KyAgICAsIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQobWFrZVVuaXF1ZVJlZjxQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXI+KCp0aGlzLCBuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycy5z
ZXNzaW9uSUQpKQogICAgICwgbV90ZXN0U3BlZWRNdWx0aXBsaWVyKHBhcmFtZXRlcnMudGVzdFNw
ZWVkTXVsdGlwbGllcikKICAgICAsIG1fYWxsb3dzU2VydmVyUHJlY29ubmVjdChwYXJhbWV0ZXJz
LmFsbG93c1NlcnZlclByZWNvbm5lY3QpCiB7CkBAIC0xODgsNiArMTg4LDExIEBAIHZvaWQgTmV0
d29ya1Nlc3Npb246OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxl
KQogICAgIGZvcndhcmRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0dGluZ3MoKTsKIH0KIAordm9p
ZCBOZXR3b3JrU2Vzc2lvbjo6ZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlh
dGVseSgpCit7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+c3RhcnRUaW1lcigwX3Mp
OworfQorCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpyZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y1N0b3JlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBkZXN0cm95UmVzb3VyY2VMb2FkU3RhdGlzdGljcyhbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildICgpIG11dGFibGUgewpAQCAtMzA1LDEyICszMTAsMTIgQEAgdm9pZCBOZXR3b3JrU2Vz
c2lvbjo6cmVzZXRDTkFNRURvbWFpbkRhdGEoKQogCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzdG9y
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCiB7Ci0gICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC0+c3RvcmVVbmNvbnZlcnRlZChXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50KSk7
CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+c3RvcmVVbmF0dHJpYnV0ZWQoV1RGTW92
ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkpOwogfQogCi12b2lkIE5ldHdvcmtTZXNzaW9uOjpo
YW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkNvbnZlcnNpb24mJiBjb252ZXJzaW9uLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQordm9pZCBOZXR3
b3JrU2Vzc2lvbjo6aGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25U
cmlnZ2VyRGF0YSwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCkKIHsKLSAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50LT5oYW5kbGVDb252ZXJzaW9uKFdURk1vdmUoY29udmVyc2lvbiksIHJlcXVlc3RVUkwsIHJl
ZGlyZWN0UmVxdWVzdCk7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+aGFuZGxlQXR0
cmlidXRpb24oV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgcmVxdWVzdFVSTCwgcmVk
aXJlY3RSZXF1ZXN0KTsKIH0KIAogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6ZHVtcFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKQEAgLTMzMyw2ICszMzgsMTEgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHUKICAg
ICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LT5zZXRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyh2
YWx1ZSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb246Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC0+bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0
aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9pZCBOZXR3b3JrU2Vzc2lv
bjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwm
JiB1cmwpCiB7CiAgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+c2V0Q29udmVyc2lvblVS
TEZvclRlc3RpbmcoV1RGTW92ZSh1cmwpKTsKQEAgLTM0MCw3ICszNTAsNyBAQCB2b2lkIE5ldHdv
cmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0
aW5nKFVSTCYmIHVybAogCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjptYXJrUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpCiB7Ci0gICAgbV9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC0+bWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVzdGluZygpOworICAgIG1f
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPm1hcmtBbGxVbmF0dHJpYnV0ZWRBc0V4cGlyZWRGb3JU
ZXN0aW5nKCk7CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb246OmFkZEtlcHRBbGl2ZUxvYWQoUmVm
PE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggY2E0YTU3NjY3ZDRiNGFjOTIwNDdiYzc5
NDIxNzcxMDFmZjNiYmEyZi4uN2Y3N2IzMjliZmY3ZmIyN2Y1ZDQ0YTdkNzM3NTcxYzU3ZTMxY2E5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApA
QCAtMTE3LDEzICsxMTcsMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGVhckFwcEJv
dW5kU2Vzc2lvbigpIHsgfQogI2VuZGlmCiAgICAgdm9pZCBzdG9yZVByaXZhdGVDbGlja01lYXN1
cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpOwotICAgIHZvaWQgaGFu
ZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpDb252ZXJzaW9uJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpOworICAgIHZvaWQgaGFu
ZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYgcmVxdWVz
dFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpOwog
ICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RyaW5nKT4mJik7CiAgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7
CiAgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50Rm9yUmVnaXN0cmFibGVEb21h
aW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJik7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpOworICAgIHZv
aWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0
aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmKTsKICAgICB2b2lkIG1h
cmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgdm9p
ZCBmaXJlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUaW1lckltbWVkaWF0ZWx5KCk7CiAKICAgICB2
b2lkIGFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAg
dm9pZCByZW1vdmVLZXB0QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXIuY3BwCmluZGV4IDg4YmVhYWE2NDFlZmVkZTFiNzMwMzMyY2M5ZDg2
ZjBmMmVlMjhiNTYuLmM5MDcwZTZlMDU2OWNiMmFiN2I4ZTNiZjEyYTU1MTk3OTcwOWM3NzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKQEAgLTQyLDE0ICs0MiwyNiBAQAogbmFtZXNw
YWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotdXNpbmcgU291cmNlID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTsKLXVzaW5nIERlc3RpbmF0aW9uID0gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOwotdXNpbmcgRGVzdGluYXRpb25NYXAg
PSBIYXNoTWFwPERlc3RpbmF0aW9uLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD47Ci11c2luZyBD
b252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb247Cit1c2luZyBT
b3VyY2VTaXRlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGU7Cit1c2luZyBB
dHRyaWJ1dGVPblNpdGUgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRl
OwordXNpbmcgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogCiBjb25zdGV4cHIgU2Vjb25kcyBkZWJ1Z01vZGVT
ZWNvbmRzVW50aWxTZW5kIHsgNjBfcyB9OwogCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6c3RvcmVVbmNvbnZlcnRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIGF0dHJp
YnV0aW9uKQorUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIoTmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uLCBOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IG1f
ZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzVGltZXIoKnRoaXMsICZQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVQZW5kaW5nQXR0cmlidXRpb25SZXF1ZXN0cykKKyAgICAs
IG1fbmV0d29ya1Nlc3Npb24obWFrZVdlYWtQdHIobmV0d29ya1Nlc3Npb24pKQorICAgICwgbV9u
ZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKKyAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25J
RCkKKyAgICAsIG1fcGluZ0xvYWRGdW5jdGlvbihbXShOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyYmIHBhcmFtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSB7CisgICAgICAgIFVOVVNFRF9QQVJBTShwYXJhbXMpOworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihXZWJDb3JlOjpSZXNvdXJjZUVycm9yKCksIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UoKSk7CisgICAgfSkKK3sKKyAgICBzdGFydFRpbWVyKDVfcyk7Cit9CisKK3ZvaWQg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdG9yZVVuYXR0cmlidXRlZChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCYmIGF0dHJpYnV0aW9uKQogewogICAgIGNsZWFyRXhwaXJlZCgpOwog
CkBAIC01OCwxMCArNzAsMTEgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OnN0b3JlVW5jb252ZXJ0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJgogICAgICAgICBtX25l
dHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2Fn
ZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJb
UHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gU3RvcmluZyBhbiBhZCBjbGljay4iX3MpOwogICAg
IH0KIAotICAgIG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5zZXQoc3Rk
OjptYWtlX3BhaXIoYXR0cmlidXRpb24uc291cmNlKCksIGF0dHJpYnV0aW9uLmRlc3RpbmF0aW9u
KCkpLCBXVEZNb3ZlKGF0dHJpYnV0aW9uKSk7CisgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MgPSBtX25ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCisg
ICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmluc2VydFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KFdURk1vdmUoYXR0cmlidXRpb24pLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uVHlwZTo6VW5hdHRyaWJ1dGVkKTsKIH0KIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OmhhbmRsZUNvbnZlcnNpb24oQ29udmVyc2lvbiYmIGNvbnZlcnNpb24sIGNvbnN0
IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVj
dFJlcXVlc3QpCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0
cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEs
IGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZWRpcmVjdFJlcXVlc3QpCiB7CiAgICAgaWYgKG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTcxLDExMiArODQsNTUgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmhhbmRsZUNvbnZlcnNpb24oQ29udmVyc2lvbiYmIGNvbnZlcnNpb24s
IGMKIAogICAgIGlmICghcmVkaXJlY3REb21haW4ubWF0Y2hlcyhyZXF1ZXN0VVJMKSkgewogICAg
ICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgUkVM
RUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnNpb24gd2FzIG5v
dCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBIVFRQIHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1zaXRlLiIp
OwotICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uo
bV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24g
d2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBIVFRQIHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1z
aXRlLiJfcyk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCAiQXR0cmlidXRpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBIVFRQIHJl
ZGlyZWN0IHdhcyBub3Qgc2FtZS1zaXRlLiIpOworICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIEF0dHJpYnV0aW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUg
SFRUUCByZWRpcmVjdCB3YXMgbm90IHNhbWUtc2l0ZS4iX3MpOwogICAgICAgICB9CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBpZiAocmVkaXJlY3REb21haW4ubWF0Y2hlcyhmaXJzdFBh
cnR5VVJMKSkgewogICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewot
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNv
bnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIGl0IHdhcyByZXF1ZXN0ZWQgaW4gYW4g
SFRUUCByZWRpcmVjdCB0aGF0IGlzIHNhbWUtc2l0ZSBhcyB0aGUgZmlyc3QtcGFydHkuIik7Ci0g
ICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nl
c3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMg
bm90IGFjY2VwdGVkIGJlY2F1c2UgaXQgd2FzIHJlcXVlc3RlZCBpbiBhbiBIVFRQIHJlZGlyZWN0
IHRoYXQgaXMgc2FtZS1zaXRlIGFzIHRoZSBmaXJzdC1wYXJ0eS4iX3MpOworICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkF0dHJpYnV0aW9uIHdh
cyBub3QgYWNjZXB0ZWQgYmVjYXVzZSBpdCB3YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJl
Y3QgdGhhdCBpcyBzYW1lLXNpdGUgYXMgdGhlIGZpcnN0LXBhcnR5LiIpOworICAgICAgICAgICAg
bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1l
c3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9y
LCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEF0dHJpYnV0aW9uIHdhcyBub3QgYWNjZXB0
ZWQgYmVjYXVzZSBpdCB3YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJlY3QgdGhhdCBpcyBz
YW1lLXNpdGUgYXMgdGhlIGZpcnN0LXBhcnR5LiJfcyk7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGNvbnZlcnQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJj
ZSB7IFdURk1vdmUocmVkaXJlY3REb21haW4pIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpE
ZXN0aW5hdGlvbiB7IGZpcnN0UGFydHlVUkwgfSwgV1RGTW92ZShjb252ZXJzaW9uKSk7CisgICAg
YXR0cmlidXRlKFNvdXJjZVNpdGUgeyBXVEZNb3ZlKHJlZGlyZWN0RG9tYWluKSB9LCBBdHRyaWJ1
dGVPblNpdGUgeyBmaXJzdFBhcnR5VVJMIH0sIFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0
YSkpOwogfQogCiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RhcnRUaW1l
cihTZWNvbmRzIHNlY29uZHMpCiB7Ci0gICAgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0
c1RpbWVyLnN0YXJ0T25lU2hvdChtX2lzUnVubmluZ1Rlc3QgPyAwX3MgOiBzZWNvbmRzKTsKKyAg
ICBtX2ZpcmVQZW5kaW5nQXR0cmlidXRpb25SZXF1ZXN0c1RpbWVyLnN0YXJ0T25lU2hvdChtX2lz
UnVubmluZ1Rlc3QgPyAwX3MgOiBzZWNvbmRzKTsKIH0KIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmNvbnZlcnQoY29uc3QgU291cmNlJiBzb3VyY2UsIGNvbnN0IERlc3Rp
bmF0aW9uJiBkZXN0aW5hdGlvbiwgQ29udmVyc2lvbiYmIGNvbnZlcnNpb24pCit2b2lkIFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YXR0cmlidXRlKGNvbnN0IFNvdXJjZVNpdGUmIHNv
dXJjZVNpdGUsIGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25TaXRlLCBBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKIHsKLSAgICBjbGVhckV4
cGlyZWQoKTsKLQotICAgIGlmICghY29udmVyc2lvbi5pc1ZhbGlkKCkpIHsKLSAgICAgICAgaWYg
KFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJHb3QgYW4gaW52YWxpZCBjb252ZXJzaW9u
LiIpOwotICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3Nh
Z2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBN
ZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEdvdCBhbiBp
bnZhbGlkIGNvbnZlcnNpb24uIl9zKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgYXV0byBjb252ZXJzaW9uRGF0YSA9IGNvbnZlcnNpb24uZGF0YTsKLSAgICBhdXRv
IGNvbnZlcnNpb25Qcmlvcml0eSA9IGNvbnZlcnNpb24ucHJpb3JpdHk7Ci0KLSAgICBpZiAoVU5M
SUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50LCAiR290IGEgY29udmVyc2lvbiB3aXRoIGNvbnZlcnNpb24g
ZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUuIiwgY29udmVyc2lvbkRh
dGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2Fk
Y2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudF0gR290IGEgY29udmVyc2lvbiB3aXRoIGNvbnZlcnNpb24gZGF0YTog
JyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblBy
aW9yaXR5LCAiJy4iX3MpKTsKLSAgICB9Ci0KLSAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQgPSBT
ZWNvbmRzOjppbmZpbml0eSgpOwotCi0gICAgYXV0byBwYWlyID0gc3RkOjptYWtlX3BhaXIoc291
cmNlLCBkZXN0aW5hdGlvbik7Ci0gICAgYXV0byBwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1
dGlvbiA9IG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC50YWtlKHBhaXIp
OwotICAgIGF1dG8gcHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlciA9IG1fY29udmVy
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuZmluZChwYWlyKTsKLQotICAgIGlmICghcHJl
dmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24uaXNFbXB0eSgpKSB7Ci0gICAgICAgIC8vIEFs
d2F5cyBjb252ZXJ0IHRoZSBwZW5kaW5nIGF0dHJpYnV0aW9uIGFuZCByZW1vdmUgaXQgZnJvbSB0
aGUgdW5jb252ZXJ0ZWQgbWFwLgotICAgICAgICBpZiAoYXV0byBvcHRpb25hbFNlY29uZHNVbnRp
bFNlbmQgPSBwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFy
bGllc3RUaW1lVG9TZW5kKFdURk1vdmUoY29udmVyc2lvbikpKSB7Ci0gICAgICAgICAgICBzZWNv
bmRzVW50aWxTZW5kID0gKm9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZDsKLSAgICAgICAgICAgIEFT
U0VSVChzZWNvbmRzVW50aWxTZW5kICE9IFNlY29uZHM6OmluZmluaXR5KCkpOwotCi0gICAgICAg
ICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJ0ZWQgYSBz
dG9yZWQgYWQgY2xpY2sgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUgYW5kIHByaW9y
aXR5OiAle3B1YmxpY311LiIsIGNvbnZlcnNpb25EYXRhLCBjb252ZXJzaW9uUHJpb3JpdHkpOwot
ICAgICAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdl
KG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVz
c2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0g
Q29udmVydGVkIGEgc3RvcmVkIGFkIGNsaWNrIHdpdGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBj
b252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHks
ICInLiJfcykpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHByZXZp
b3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXIgPT0gbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hcC5lbmQoKSkKLSAgICAgICAgICAgIG1fY29udmVydGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYXAuYWRkKHBhaXIsIFdURk1vdmUocHJldmlvdXNseVVuY29udmVydGVkQXR0
cmlidXRpb24pKTsKLSAgICAgICAgZWxzZSBpZiAocHJldmlvdXNseVVuY29udmVydGVkQXR0cmli
dXRpb24uaGFzSGlnaGVyUHJpb3JpdHlUaGFuKHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlv
bkl0ZXItPnZhbHVlKSkgewotICAgICAgICAgICAgLy8gSWYgdGhlIG5ld2x5IGNvbnZlcnRlZCBh
dHRyaWJ1dGlvbiBoYXMgaGlnaGVyIHByaW9yaXR5LCByZXBsYWNlIHRoZSBvbGQgb25lLgotICAg
ICAgICAgICAgbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5zZXQocGFpciwg
V1RGTW92ZShwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbikpOwotCi0gICAgICAgICAg
ICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJSZXBsYWNlZCBhIHByZXZp
b3VzbHkgY29udmVydGVkIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBk
YXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0IGhhZCBo
aWdoZXIgcHJpb3JpdHkuIiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0g
ICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uo
bV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNz
YWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBS
ZXBsYWNlZCBhIHByZXZpb3VzbHkgY29udmVydGVkIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdp
dGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9yaXR5
OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInIGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlv
cml0eS4iX3MpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAocHJl
dmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlciAhPSBtX2NvbnZlcnRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFwLmVuZCgpKSB7Ci0gICAgICAgIC8vIElmIHdlIGhhdmUgbm8gbmV3bHkg
Y29udmVydGVkIGF0dHJpYnV0aW9uLCByZS1jb252ZXJ0IHRoZSBvbGQgb25lIHRvIHJlc3BlY3Qg
dGhlIG5ldyBwcmlvcml0eS4KLSAgICAgICAgaWYgKGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxT
ZW5kID0gcHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlci0+dmFsdWUuY29udmVydEFu
ZEdldEVhcmxpZXN0VGltZVRvU2VuZChXVEZNb3ZlKGNvbnZlcnNpb24pKSkgewotICAgICAgICAg
ICAgc2Vjb25kc1VudGlsU2VuZCA9ICpvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQ7Ci0gICAgICAg
ICAgICBBU1NFUlQoc2Vjb25kc1VudGlsU2VuZCAhPSBTZWNvbmRzOjppbmZpbml0eSgpKTsKLQot
ICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAg
ICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiUmUtY29u
dmVydGVkIGFuIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAl
e3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0IGhhZCBoaWdoZXIg
cHJpb3JpdHkuIiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAg
ICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNz
aW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2
ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZS1jb252
ZXJ0ZWQgYW4gYWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICci
X3MsIGNvbnZlcnNpb25EYXRhLCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIGNvbnZlcnNpb25Qcmlv
cml0eSwgIicnIGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iX3MpKTsKKyAgICBpZiAo
YXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKSkgeworICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5hdHRy
aWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3VyY2VTaXRlLCBhdHRyaWJ1dGVPblNpdGUs
IFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIFt0aGlzXSAoYXV0byBvcHRpb25hbFNl
Y29uZHNVbnRpbFNlbmQpIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25hbFNlY29uZHNVbnRpbFNl
bmQpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQgPSAqb3B0aW9uYWxT
ZWNvbmRzVW50aWxTZW5kOworICAgICAgICAgICAgICAgIGlmIChtX2ZpcmVQZW5kaW5nQXR0cmli
dXRpb25SZXF1ZXN0c1RpbWVyLmlzQWN0aXZlKCkgJiYgbV9maXJlUGVuZGluZ0F0dHJpYnV0aW9u
UmVxdWVzdHNUaW1lci5uZXh0RmlyZUludGVydmFsKCkgPCBzZWNvbmRzVW50aWxTZW5kKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBpZiAoVU5MSUtFTFko
ZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19J
TkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiU2V0dGluZyB0aW1lciBmb3IgZmlyaW5nIGF0
dHJpYnV0aW9uIHJlcXVlc3RzIHRvIHRoZSBkZWJ1ZyBtb2RlIHRpbWVvdXQgb2YgJXtwdWJsaWN9
ZiBzZWNvbmRzIHdoZXJlIHRoZSByZWd1bGFyIHRpbWVvdXQgd291bGQgaGF2ZSBiZWVuICV7cHVi
bGljfWYgc2Vjb25kcy4iLCBkZWJ1Z01vZGVTZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSwgc2Vj
b25kc1VudGlsU2VuZC5zZWNvbmRzKCkpOworICAgICAgICAgICAgICAgICAgICBtX25ldHdvcmtQ
cm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJj
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmlu
ZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFNldHRpbmcgdGltZXIgZm9yIGZpcmluZyBh
dHRyaWJ1dGlvbiByZXF1ZXN0cyB0byB0aGUgZGVidWcgbW9kZSB0aW1lb3V0IG9mICJfcywgZGVi
dWdNb2RlU2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCksICIgc2Vjb25kcyB3aGVyZSB0aGUgcmVn
dWxhciB0aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAiX3MsIHNlY29uZHNVbnRpbFNlbmQuc2Vjb25k
cygpLCAiIHNlY29uZHMuIl9zKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRzVW50
aWxTZW5kID0gZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZDsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgc3RhcnRUaW1lcihzZWNvbmRzVW50aWxTZW5kKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChzZWNvbmRzVW50aWxTZW5kID09IFNlY29u
ZHM6OmluZmluaXR5KCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBpZiAobV9maXJlUGVu
ZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLmlzQWN0aXZlKCkgJiYgbV9maXJlUGVuZGluZ0Nv
bnZlcnNpb25SZXF1ZXN0c1RpbWVyLm5leHRGaXJlSW50ZXJ2YWwoKSA8IHNlY29uZHNVbnRpbFNl
bmQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVk
KCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
ICJTZXR0aW5nIHRpbWVyIGZvciBmaXJpbmcgY29udmVyc2lvbiByZXF1ZXN0cyB0byB0aGUgZGVi
dWcgbW9kZSB0aW1lb3V0IG9mICV7cHVibGljfWYgc2Vjb25kcyB3aGVyZSB0aGUgcmVndWxhciB0
aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAle3B1YmxpY31mIHNlY29uZHMuIiwgZGVidWdNb2RlU2Vj
b25kc1VudGlsU2VuZC5zZWNvbmRzKCksIHNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpKTsKLSAg
ICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9u
SUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6
OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBTZXR0aW5nIHRp
bWVyIGZvciBmaXJpbmcgY29udmVyc2lvbiByZXF1ZXN0cyB0byB0aGUgZGVidWcgbW9kZSB0aW1l
b3V0IG9mICJfcywgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCksICIgc2Vjb25k
cyB3aGVyZSB0aGUgcmVndWxhciB0aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAiX3MsIHNlY29uZHNV
bnRpbFNlbmQuc2Vjb25kcygpLCAiIHNlY29uZHMuIl9zKSk7Ci0gICAgICAgIHNlY29uZHNVbnRp
bFNlbmQgPSBkZWJ1Z01vZGVTZWNvbmRzVW50aWxTZW5kOworICAgICAgICB9KTsKICAgICB9Ci0K
LSAgICBzdGFydFRpbWVyKHNlY29uZHNVbnRpbFNlbmQpOwogfQogCiB2b2lkIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IFByaXZhdGVD
bGlja01lYXN1cmVtZW50JiBhdHRyaWJ1dGlvbikKIHsKLSAgICBhdXRvIGNvbnZlcnNpb25VUkwg
PSBtX2NvbnZlcnNpb25CYXNlVVJMRm9yVGVzdGluZyA/ICptX2NvbnZlcnNpb25CYXNlVVJMRm9y
VGVzdGluZyA6IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpOwotICAgIGlmIChjb252ZXJzaW9uVVJM
LmlzRW1wdHkoKSB8fCAhY29udmVyc2lvblVSTC5pc1ZhbGlkKCkpCisgICAgYXV0byBhdHRyaWJ1
dGlvblVSTCA9IG1fYXR0cmlidXRpb25CYXNlVVJMRm9yVGVzdGluZyA/ICptX2F0dHJpYnV0aW9u
QmFzZVVSTEZvclRlc3RpbmcgOiBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICBpZiAoYXR0
cmlidXRpb25VUkwuaXNFbXB0eSgpIHx8ICFhdHRyaWJ1dGlvblVSTC5pc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgV1RGTW92ZShjb252
ZXJzaW9uVVJMKSB9OworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgV1RGTW92ZShhdHRy
aWJ1dGlvblVSTCkgfTsKICAgICAKICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1QiX3Mp
OwogICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDYWNoZUNv
bnRyb2wsIFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6Om1heEFnZTAoKSk7CkBAIC0yMDAsOCAr
MTU2LDggQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVDb252ZXJz
aW9uUmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWEKICAgICBsb2FkUGFyYW1ldGVycy5zaG91
bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyA9IGZhbHNlOwogCiAgICAgaWYgKFVOTElLRUxZ
KGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdCBm
b3IgYSBjb252ZXJzaW9uLiIpOwotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RD
b25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVu
dF0gQWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1ZXN0IGZvciBhIGNvbnZlcnNpb24u
Il9zKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
IkFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdC4iKTsKKyAgICAgICAgbV9uZXR3
b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VT
b3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1By
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVx
dWVzdC4iX3MpOwogICAgIH0KIAogICAgIG1fcGluZ0xvYWRGdW5jdGlvbihXVEZNb3ZlKGxvYWRQ
YXJhbWV0ZXJzKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpIHsKQEAgLTIyMSwxMTEgKzE3Nyw5MiBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IFByaXZhdGVDbGlja01l
YQogICAgIH0pOwogfQogCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Zmly
ZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHMoKQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OmNsZWFyU2VudEF0dHJpYnV0aW9ucyhWZWN0b3I8UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ+JiYgc2VudENvbnZlcnNpb25zKQogewotICAgIGF1dG8gbmV4dFRpbWVUb0ZpcmUgPSBT
ZWNvbmRzOjppbmZpbml0eSgpOwotICAgIGZvciAoYXV0byYgYXR0cmlidXRpb24gOiBtX2NvbnZl
cnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmIChh
dHRyaWJ1dGlvbi53YXNDb252ZXJzaW9uU2VudCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGF1
dG8gZWFybGllc3RUaW1lVG9TZW5kID0gYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCk7
Ci0gICAgICAgIGlmICghZWFybGllc3RUaW1lVG9TZW5kKSB7Ci0gICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9CisgICAgaWYg
KGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBtX25ldHdvcmtTZXNzaW9uLT5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKCkpCisgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmNsZWFy
U2VudEF0dHJpYnV0aW9ucyhXVEZNb3ZlKHNlbnRDb252ZXJzaW9ucykpOworfQogCi0gICAgICAg
IGF1dG8gbm93ID0gV2FsbFRpbWU6Om5vdygpOwotICAgICAgICBpZiAoKmVhcmxpZXN0VGltZVRv
U2VuZCA8PSBub3cgfHwgbV9pc1J1bm5pbmdUZXN0IHx8IGRlYnVnTW9kZUVuYWJsZWQoKSkgewot
ICAgICAgICAgICAgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGF0dHJpYnV0aW9uKTsKLSAgICAgICAg
ICAgIGF0dHJpYnV0aW9uLm1hcmtDb252ZXJzaW9uQXNTZW50KCk7Ci0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgfQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnVw
ZGF0ZVRpbWVyTGFzdEZpcmVkKCkKK3sKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlz
dGljcyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAg
ICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+dXBkYXRlVGltZXJMYXN0RmlyZWQoKTsKK30KIAot
ICAgICAgICBhdXRvIHNlY29uZHMgPSAqZWFybGllc3RUaW1lVG9TZW5kIC0gbm93OwotICAgICAg
ICBuZXh0VGltZVRvRmlyZSA9IHN0ZDo6bWluKG5leHRUaW1lVG9GaXJlLCBzZWNvbmRzKTsKLSAg
ICB9Cit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZVBlbmRpbmdBdHRy
aWJ1dGlvblJlcXVlc3RzKCkKK3sKKyAgICBhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0g
bV9uZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOworICAgIGlmICghcmVz
b3VyY2VMb2FkU3RhdGlzdGljcykKKyAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jb252ZXJ0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbXShhdXRvJiBrZXlBbmRWYWx1ZSkg
ewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUud2FzQ29udmVyc2lvblNlbnQoKTsK
LSAgICB9KTsKKyAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5hbGxBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoW3RoaXNdIChhdXRvJiYgYXR0cmlidXRpb25zKSB7CisgICAgICAg
IGF1dG8gbmV4dFRpbWVUb0ZpcmUgPSBTZWNvbmRzOjppbmZpbml0eSgpOworICAgICAgICBWZWN0
b3I8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHNlbnRBdHRyaWJ1dGlvbnM7CisgICAgICAgIAor
ICAgICAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogYXR0cmlidXRpb25zKSB7CisgICAgICAg
ICAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGltZVRv
U2VuZCgpOworICAgICAgICAgICAgaWYgKCFlYXJsaWVzdFRpbWVUb1NlbmQpIHsKKyAgICAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBub3cgPSBXYWxsVGltZTo6bm93KCk7
CisgICAgICAgICAgICBpZiAoKmVhcmxpZXN0VGltZVRvU2VuZCA8PSBub3cgfHwgbV9pc1J1bm5p
bmdUZXN0IHx8IGRlYnVnTW9kZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgICAgIGZpcmVDb252
ZXJzaW9uUmVxdWVzdChhdHRyaWJ1dGlvbik7CisgICAgICAgICAgICAgICAgc2VudEF0dHJpYnV0
aW9ucy5hcHBlbmQoV1RGTW92ZShhdHRyaWJ1dGlvbikpOworICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhdXRvIHNlY29uZHMgPSAqZWFybGll
c3RUaW1lVG9TZW5kIC0gbm93OworICAgICAgICAgICAgbmV4dFRpbWVUb0ZpcmUgPSBzdGQ6Om1p
bihuZXh0VGltZVRvRmlyZSwgc2Vjb25kcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IGNsZWFyU2VudEF0dHJpYnV0aW9ucyhXVEZNb3ZlKHNlbnRBdHRyaWJ1dGlvbnMpKTsKKyAgICAg
ICAgdXBkYXRlVGltZXJMYXN0RmlyZWQoKTsKIAotICAgIGlmIChuZXh0VGltZVRvRmlyZSA8IFNl
Y29uZHM6OmluZmluaXR5KCkpCi0gICAgICAgIHN0YXJ0VGltZXIobmV4dFRpbWVUb0ZpcmUpOwor
ICAgICAgICBpZiAobmV4dFRpbWVUb0ZpcmUgPCBTZWNvbmRzOjppbmZpbml0eSgpKQorICAgICAg
ICAgICAgc3RhcnRUaW1lcihuZXh0VGltZVRvRmlyZSk7CisgICAgfSk7CiB9CiAKIHZvaWQgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhcigpCiB7Ci0gICAgbV9maXJlUGVuZGlu
Z0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLnN0b3AoKTsKLSAgICBtX3VuY29udmVydGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYXAuY2xlYXIoKTsKLSAgICBtX2NvbnZlcnRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFwLmNsZWFyKCk7CisgICAgbV9maXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVx
dWVzdHNUaW1lci5zdG9wKCk7CisKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwog
fQogCiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXJGb3JSZWdpc3Ry
YWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogewotICAgIG1fdW5j
b252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbJmRvbWFpbl0oYXV0
byYga2V5QW5kVmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLmtleS5maXJzdC5y
ZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW4gfHwga2V5QW5kVmFsdWUua2V5LnNlY29uZC5yZWdp
c3RyYWJsZURvbWFpbiA9PSBkb21haW47Ci0gICAgfSk7Ci0KLSAgICBtX2NvbnZlcnRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFwLnJlbW92ZUlmKFsmZG9tYWluXShhdXRvJiBrZXlBbmRWYWx1
ZSkgewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUua2V5LmZpcnN0LnJlZ2lzdHJhYmxlRG9t
YWluID09IGRvbWFpbiB8fCBrZXlBbmRWYWx1ZS5rZXkuc2Vjb25kLnJlZ2lzdHJhYmxlRG9tYWlu
ID09IGRvbWFpbjsKLSAgICB9KTsKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZvclJl
Z2lzdHJhYmxlRG9tYWluKGRvbWFpbik7CiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyOjpjbGVhckV4cGlyZWQoKQogewotICAgIG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbXShhdXRvJiBrZXlBbmRWYWx1ZSkgewotICAgICAg
ICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUuaGFzRXhwaXJlZCgpOwotICAgIH0pOworICAgIGlm
IChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbV9uZXR3b3JrU2Vzc2lvbi0+cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcygpKQorICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5jbGVh
ckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogfQogCiB2b2lkIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6dG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJp
bmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAogewotICAgIGlmIChtX3VuY29udmVydGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuaXNFbXB0eSgpICYmIG1fY29udmVydGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYXAuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoIlxuTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS5cbiJf
cyk7Ci0KLSAgICB1bnNpZ25lZCB1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyID0gMDsKLSAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgZm9yIChhdXRvJiBhdHRyaWJ1dGlvbiA6IG1f
dW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC52YWx1ZXMoKSkgewotICAgICAg
ICBpZiAoIXVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCi0gICAgICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIlVuY29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOlxu
Iik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigrK3VuY29udmVydGVkQXR0cmli
dXRpb25OdW1iZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgYnVp
bGRlci5hcHBlbmQoYXR0cmlidXRpb24udG9TdHJpbmcoKSk7Ci19Ci0KLSAgICB1bnNpZ25lZCBj
b252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlciA9IDA7Ci0gICAgZm9yIChhdXRvJiBhdHRyaWJ1dGlv
biA6IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAudmFsdWVzKCkpIHsKLSAg
ICAgICAgaWYgKHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCi0gICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaWYgKCFjb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJl
cikKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQ29udmVydGVkIFByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnRzOlxuIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cigrK2NvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyICsgdW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51
bWJlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBidWlsZGVyLmFw
cGVuZChhdHRyaWJ1dGlvbi50b1N0cmluZygpKTsKLSAgICB9Ci0KLSAgICBjb21wbGV0aW9uSGFu
ZGxlcihidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzID0gbV9uZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQorICAg
ICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3Ry
aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6OnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmIHRlc3RV
UkwpCiB7CiAgICAgaWYgKHRlc3RVUkwuaXNFbXB0eSgpKQotICAgICAgICBtX2NvbnZlcnNpb25C
YXNlVVJMRm9yVGVzdGluZyA9IHsgfTsKKyAgICAgICAgbV9hdHRyaWJ1dGlvbkJhc2VVUkxGb3JU
ZXN0aW5nID0geyB9OwogICAgIGVsc2UKLSAgICAgICAgbV9jb252ZXJzaW9uQmFzZVVSTEZvclRl
c3RpbmcgPSBXVEZNb3ZlKHRlc3RVUkwpOworICAgICAgICBtX2F0dHJpYnV0aW9uQmFzZVVSTEZv
clRlc3RpbmcgPSBXVEZNb3ZlKHRlc3RVUkwpOwogfQogCi12b2lkIFByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcjo6bWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVzdGluZygpCit2
b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6bWFya0FsbFVuYXR0cmlidXRlZEFz
RXhwaXJlZEZvclRlc3RpbmcoKQogewotICAgIGZvciAoYXV0byYgYXR0cmlidXRpb24gOiBtX3Vu
Y29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAudmFsdWVzKCkpCi0gICAgICAgIGF0
dHJpYnV0aW9uLm1hcmtBc0V4cGlyZWQoKTsKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAg
ICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bWFya0FsbFVuYXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZygpOwogfQogCiBib29sIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0CkBAIC0zMzMs
NCArMjcwLDEzIEBAIGJvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpkZWJ1Z01v
ZGVFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKSAm
JiAhbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKTsKIH0KIAordm9pZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNF
eHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBtX25ldHdv
cmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKKyAgICAgICAgcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy0+bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4
cGlyZWRGb3JUZXN0aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCmluZGV4IDQzZDQzNzFiNjdkZjU5ODky
ZmI3ZWJkNDVhNTE0OWQyZTlkOGJkNjEuLmUyY2U5ODVkNWQ1YmEyMzQwMjkzM2VhZTMxYzI1YzAy
YzIzMTUxNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaApAQCAtNDAsNTMgKzQwLDQ4IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitlbnVtIGNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25UeXBlIHsgVW5hdHRyaWJ1dGVkLCBBdHRyaWJ1dGVkIH07CisKIGNsYXNz
IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKIAogICAgIHVzaW5nIFJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKLSAgICB1c2luZyBTb3VyY2UgPSBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOwotICAgIHVzaW5nIERlc3RpbmF0
aW9uID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOwotICAg
IHVzaW5nIENvbnZlcnNpb24gPSBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29u
dmVyc2lvbjsKKyAgICB1c2luZyBTb3VyY2VTaXRlID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OlNvdXJjZVNpdGU7CisgICAgdXNpbmcgQXR0cmlidXRlT25TaXRlID0gV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZTsKKyAgICB1c2luZyBB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAKLSAgICBleHBsaWNpdCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCi0gICAgICAgIDogbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0
c1RpbWVyKCp0aGlzLCAmUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlUGVuZGlu
Z0NvbnZlcnNpb25SZXF1ZXN0cykKLSAgICAgICAgLCBtX3BpbmdMb2FkRnVuY3Rpb24oW10oTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbXMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICAgICAgVU5VU0VEX1BB
UkFNKHBhcmFtcyk7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpSZXNv
dXJjZUVycm9yKCksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UoKSk7Ci0gICAgICAgIH0pCi0g
ICAgICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKLSAgICAgICAgLCBtX3Nl
c3Npb25JRChzZXNzaW9uSUQpCi0gICAgewotICAgIH0KKyAgICBleHBsaWNpdCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXIoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrUHJvY2VzcyYsIFBB
TDo6U2Vzc2lvbklEKTsKIAotICAgIHZvaWQgc3RvcmVVbmNvbnZlcnRlZChQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCYmKTsKLSAgICB2b2lkIGhhbmRsZUNvbnZlcnNpb24oQ29udmVyc2lvbiYmLCBj
b25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVk
aXJlY3RSZXF1ZXN0KTsKKyAgICB2b2lkIHN0b3JlVW5hdHRyaWJ1dGVkKFByaXZhdGVDbGlja01l
YXN1cmVtZW50JiYpOworICAgIHZvaWQgaGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25Ucmln
Z2VyRGF0YSYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KTsKICAgICB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCBj
bGVhckZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CiAgICAg
dm9pZCB0b1N0cmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGNvbnN0Owog
ICAgIHZvaWQgc2V0UGluZ0xvYWRGdW5jdGlvbihGdW5jdGlvbjx2b2lkKE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJik+JiYg
cGluZ0xvYWRGdW5jdGlvbikgeyBtX3BpbmdMb2FkRnVuY3Rpb24gPSBXVEZNb3ZlKHBpbmdMb2Fk
RnVuY3Rpb24pOyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZh
bHVlKSB7IG1faXNSdW5uaW5nVGVzdCA9IHZhbHVlOyB9CiAgICAgdm9pZCBzZXRDb252ZXJzaW9u
VVJMRm9yVGVzdGluZyhVUkwmJik7Ci0gICAgdm9pZCBtYXJrQWxsVW5jb252ZXJ0ZWRBc0V4cGly
ZWRGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBtYXJrQWxsVW5hdHRyaWJ1dGVkQXNFeHBpcmVkRm9y
VGVzdGluZygpOworICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAg
dm9pZCBzdGFydFRpbWVyKFNlY29uZHMpOwogCiBwcml2YXRlOgotICAgIHZvaWQgc3RhcnRUaW1l
cihTZWNvbmRzKTsKLSAgICB2b2lkIGNvbnZlcnQoY29uc3QgU291cmNlJiwgY29uc3QgRGVzdGlu
YXRpb24mLCBDb252ZXJzaW9uJiYpOworICAgIHZvaWQgY2xlYXJTZW50QXR0cmlidXRpb25zKFZl
Y3RvcjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4mJik7CisgICAgdm9pZCBhdHRyaWJ1dGUoY29u
c3QgU291cmNlU2l0ZSYsIGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYsIEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEmJik7CiAgICAgdm9pZCBmaXJlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQmKTsKLSAgICB2b2lkIGZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3Rz
KCk7CisgICAgdm9pZCBmaXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVxdWVzdHMoKTsKICAgICB2b2lk
IGNsZWFyRXhwaXJlZCgpOwogICAgIGJvb2wgZGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0OworICAg
IHZvaWQgdXBkYXRlVGltZXJMYXN0RmlyZWQoKTsKIAotICAgIEhhc2hNYXA8c3RkOjpwYWlyPFNv
dXJjZSwgRGVzdGluYXRpb24+LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gbV91bmNvbnZlcnRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwOwotICAgIEhhc2hNYXA8c3RkOjpwYWlyPFNvdXJj
ZSwgRGVzdGluYXRpb24+LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gbV9jb252ZXJ0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hcDsKLSAgICBXZWJDb3JlOjpUaW1lciBtX2ZpcmVQZW5kaW5n
Q29udmVyc2lvblJlcXVlc3RzVGltZXI7Ci0gICAgRnVuY3Rpb248dm9pZChOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpPiBt
X3BpbmdMb2FkRnVuY3Rpb247CisgICAgV2ViQ29yZTo6VGltZXIgbV9maXJlUGVuZGluZ0F0dHJp
YnV0aW9uUmVxdWVzdHNUaW1lcjsKICAgICBib29sIG1faXNSdW5uaW5nVGVzdCB7IGZhbHNlIH07
Ci0gICAgT3B0aW9uYWw8VVJMPiBtX2NvbnZlcnNpb25CYXNlVVJMRm9yVGVzdGluZzsKKyAgICBP
cHRpb25hbDxVUkw+IG1fYXR0cmlidXRpb25CYXNlVVJMRm9yVGVzdGluZzsKKyAgICBXZWFrUHRy
PE5ldHdvcmtTZXNzaW9uPiBtX25ldHdvcmtTZXNzaW9uOwogICAgIFJlZjxOZXR3b3JrUHJvY2Vz
cz4gbV9uZXR3b3JrUHJvY2VzczsKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAg
ICBGdW5jdGlvbjx2b2lkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJik+IG1fcGluZ0xvYWRGdW5jdGlvbjsKIH07CiAgICAg
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCmluZGV4IDA2NDgyNmNiMjVlMzU2NGExMzA1ZDQzNGIzODQwYWEzNGVmZmM5NmQuLmVl
NTExOWZkMGNjMjZjYjhlMTUwMzcxOTUwMGQ5MjdlNDFhYjQyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjg5MSw2ICsyODkxLDIwIEBAIHZvaWQgV0tQ
YWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhXS1Bh
Z2VSZWYgcGFnZSwgYm9vCiAgICAgfSk7CiB9CiAKK3ZvaWQgV0tQYWdlTWFya0F0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdl
LCBXS1BhZ2VNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZv
clRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQoreworICAg
IHRvSW1wbChwYWdlKS0+bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4
cGlyZWRGb3JUZXN0aW5nKFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CisgICAgICAg
IGNhbGxiYWNrKGNhbGxiYWNrQ29udGV4dCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV0tQYWdlU2lt
dWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoV0tQYWdlUmVmIHBhZ2Us
IFdLUGFnZVNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0RnVuY3Rp
b24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKK3sKKyAgICB0b0ltcGwocGFnZSkt
PnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KFtjYWxsYmFja0Nv
bnRleHQsIGNhbGxiYWNrXSAoKSB7CisgICAgICAgIGNhbGxiYWNrKGNhbGxiYWNrQ29udGV4dCk7
CisgICAgfSk7Cit9CisKIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uVVJMRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgVVJMUmVmLCBXS1Bh
Z2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rp
b24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKIHsKICAgICB0b0ltcGwocGFnZSkt
PnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMKFVS
TCgpLCB0b1dURlN0cmluZyhVUkxSZWYpKSwgW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2tdICgp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAppbmRl
eCBmYmQ2MTE5YWZhMTFhZTA1YTIyYTYzYTY0NDc4ZjNjODZkZjgyMThjLi43MDNkNjE5YzVhYzJi
ODdiMTdkNjA4YjhhZTYyNDM5OTI3MDA3ZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCkBAIC0xNzUsNiArMTc1LDEwIEBAIHR5cGVkZWYgdm9p
ZCAoKldLUGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGdW5jdGlvbikodm9pZCogZnVu
Y3Rpb25Db250ZXh0CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VDbGVhclByaXZhdGVDbGlja01lYXN1
cmVtZW50KFdLUGFnZVJlZiwgV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZ1bmN0
aW9uLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lk
KiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgYm9vbCB2
YWx1ZSwgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVz
dGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwordHlwZWRlZiB2
b2lkICgqV0tQYWdlTWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGly
ZWRGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQg
dm9pZCBXS1BhZ2VNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZU1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lk
KiBjYWxsYmFja0NvbnRleHQpOwordHlwZWRlZiB2b2lkICgqV0tQYWdlU2ltdWxhdGVSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnRGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250
ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1Nlc3Npb25SZXN0YXJ0KFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VTaW11bGF0ZVJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydEZ1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFj
a0NvbnRleHQpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQp
OwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uVVJMRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgdXJsU3RyaW5nLCBXS1Bh
Z2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rp
b24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7CiB0eXBlZGVmIHZvaWQgKCpXS1Bh
Z2VNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9u
KSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggMGY4NzQyODk5MGRlMDAxMzQzNjcyZTI0OTQ4OTVhZDEzZDQzMzAyOC4u
YTU5ODg5ZGMxMGY3YWNmMGZkMTI5YTI0N2QzNjE1ODg2Y2JhOGZjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC00NjYwLDcgKzQ2NjAsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBGcmFtZUluZm9EYXRhJgogICAgICAgICBlbHNlIGlmIChuYXZpZ2F0aW9uICYmIG5hdmlnYXRp
b24tPnByaXZhdGVDbGlja01lYXN1cmVtZW50KCkpCiAgICAgICAgICAgICBwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCA9IG5hdmlnYXRpb24tPnByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CiAgICAg
ICAgIGlmIChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgewotICAgICAgICAgICAgaWYgKHByaXZh
dGVDbGlja01lYXN1cmVtZW50LT5kZXN0aW5hdGlvbigpLm1hdGNoZXMoZnJhbWUtPnVybCgpKSkK
KyAgICAgICAgICAgIGlmIChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+YXR0cmlidXRlT25TaXRl
KCkubWF0Y2hlcyhmcmFtZS0+dXJsKCkpKQogICAgICAgICAgICAgICAgIHdlYnNpdGVEYXRhU3Rv
cmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTdG9y
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCks
ICpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCksIDApOwogICAgICAgICB9CiAgICAgfQpAQCAtOTk2
NSw2ICs5OTY1LDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUsCiAgICAgd2Vic2l0ZURhdGFT
dG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVz
dGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCB2YWx1ZSksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6Om1hcmtBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgd2Vic2l0ZURhdGFTdG9y
ZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6TWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaW11bGF0ZVJlc291cmNl
TG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9j
ZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2ltdWxh
dGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQobV93ZWJzaXRlRGF0YVN0b3Jl
LT5zZXNzaW9uSUQoKSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9pZCBX
ZWJQYWdlUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRl
c3RpbmcoY29uc3QgVVJMJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+
c2Vzc2lvbklEKCksIHVybCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggODc5ZjczMmIxMWNiMTIzOTczODY1OGU4
ZTU4ZmI4N2M1MDM0ZjJiOC4uZjc5MGNjNjEwNzllZWI4NGFjODY5MWY2MTNkMzkwMzM1ZGYxOTE0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE2ODgsNiArMTY4
OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKTsKICAgICB2b2lkIGNsZWFyUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9v
bCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1hcmtBdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU2Vzc2lvblJlc3RhcnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoY29u
c3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG1hcmtQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA0OWMyMWYwMjc5NjFiNzA4MzlmMGViOTBiYWM4Mzc1MDIyMjhhOWRmLi43NjBk
MDJmYzM4NmRhOGNkMjUzNDU1Zjk3YjM3NDZkMmNkZjZjNDNkIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjAtMTEt
MTkgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAg
UENNOiBQZXJzaXN0IHBlbmRpbmcgYWQgY2xpY2tzIGFuZCBhdHRyaWJ1dGlvbnMgc28gdGhleSBj
YW4gc3Vydml2ZSBicm93c2VyIHJlc3RhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxOTEzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA0NzAx
Mjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHRlc3Rpbmcgb2YgZXhwaXJlZCBhZC1jbGlja3MgYW5kIGF0dHJpYnV0aW9u
cy4KKyAgICAgICAgVXBkYXRlIG5hbWVzIGFmdGVyIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQg
c3RhbmRhcmRzIGRpc2N1c3Npb25zLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6bWFya0F0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vz
c2lvblJlc3RhcnQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6bWFya0F0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKToKKwogMjAyMC0xMS0xOSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW3dlYmtpdHNjbXB5XSBTdXBwb3J0IHJlbW90ZSBTdWJ2ZXJzaW9uIHJlcG9z
aXRvcnkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IGM1NmNiYTJmMjcwYWVkOTQ5YTU0
ZWU4ZTgzMjJiMmFkNTZmMzgyY2EuLjUxNDM4ODFhYjA0MmYxMTM4MmEzMGI3NTUyYmQ4ZTBjY2Iz
NzdhZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAtNDMsOCArNDMsOCBAQCBjb25z
dCBVUkwgZW1wdHlVUkwgeyB9OwogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxp
ZE1pblZhbHVlcykKIHsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihtaW42Qml0VmFsdWUpLCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNv
bnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNv
bnZlcnNpb24obWluNkJpdFZhbHVlLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHko
bWluNkJpdFZhbHVlKSkpOworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9u
IHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKG1pbjZCaXRWYWx1ZSksIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRy
aWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEobWluNkJpdFZhbHVlLCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6UHJpb3JpdHkobWluNkJpdFZhbHVlKSkpOwogCiAgICAgYXV0byBhdHRy
aWJ1dGlvblVSTCA9IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpOwogICAgIApAQCAtNTUsOCArNTUs
OCBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pblZhbHVlcykKIAogVEVT
VChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNaWRWYWx1ZXMpCiB7Ci0gICAgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
Q2FtcGFpZ24oKHVpbnQzMl90KTEyKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7
IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFt
cGxlVVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9T
ZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKCh1aW50MzJfdCk0NCwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KCh1aW50MzJfdCkyMikpKTsKKyAgICBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2VJRCgodWludDMyX3QpMTIpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNl
U2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25T
aXRlIHsgZXhhbXBsZVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFy
bGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhKCh1aW50MzJfdCk0NCwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KCh1
aW50MzJfdCkyMikpKTsKIAogICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5y
ZXBvcnRVUkwoKTsKICAgICAKQEAgLTY3LDggKzY3LDggQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgVmFsaWRNaWRWYWx1ZXMpCiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
IFZhbGlkTWF4VmFsdWVzKQogewotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0
aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdl
YktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFtcGxl
VVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5k
KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRlT25TaXRlIHsgZXhhbXBsZVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uYXR0cmlidXRl
QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1h
eEVudHJvcHkpKSk7CiAKICAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24ucmVw
b3J0VVJMKCk7CiAgICAgCkBAIC03OSw5ICs3OSw5IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQsIFZhbGlkTWF4VmFsdWVzKQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBF
YXJsaWVzdFRpbWVUb1NlbmRBdHRyaWJ1dGlvbk1pbmltdW1EZWxheSkKIHsKLSAgICBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpD
YW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07CisgICAgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRlT25TaXRlIHsgZXhhbXBsZVVSTCB9IH07CiAgICAgYXV0byBub3cgPSBXYWxsVGltZTo6
bm93KCk7Ci0gICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSkpOworICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0
ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmli
dXRpb25UcmlnZ2VyRGF0YShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpN
YXhFbnRyb3B5KSkpOwogICAgIGF1dG8gZWFybGllc3RUaW1lVG9TZW5kID0gYXR0cmlidXRpb24u
ZWFybGllc3RUaW1lVG9TZW5kKCk7CiAgICAgQVNTRVJUX1RSVUUoZWFybGllc3RUaW1lVG9TZW5k
KTsKICAgICBBU1NFUlRfVFJVRShlYXJsaWVzdFRpbWVUb1NlbmQudmFsdWUoKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpIC0gMjRfaCA+PSBub3cuc2Vjb25kc1NpbmNlRXBvY2goKSk7CkBAIC05MCwzNCAr
OTAsMzQgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgRWFybGllc3RUaW1lVG9TZW5k
QXR0cmlidXRpb25NaW5pbXVtRGVsYXkpCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBW
YWxpZENvbnZlcnNpb25VUkxzKQogewogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91
dFByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQvMjIiX3MgfTsKLSAgICBhdXRvIG9wdGlvbmFsQ29udmVyc2lvbiA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNp
b25VUkxXaXRob3V0UHJpb3JpdHkpOworICAgIGF1dG8gb3B0aW9uYWxDb252ZXJzaW9uID0gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25V
UkxXaXRob3V0UHJpb3JpdHkpOwogICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7
CiAgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIyKTsK
IAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5TWF4RW50cm9weSB7
IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1
cmVtZW50LzYzIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhvdXRQcmlv
cml0eU1heEVudHJvcHkpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aG91dFBy
aW9yaXR5TWF4RW50cm9weSk7CiAgICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsK
ICAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpNjMpOwog
ICAgIAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5QW5kTGVhZGlu
Z1plcm8geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGlj
ay1tZWFzdXJlbWVudC8wMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
b3V0UHJpb3JpdHlBbmRMZWFkaW5nWmVybyk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25V
UkxXaXRob3V0UHJpb3JpdHlBbmRMZWFkaW5nWmVybyk7CiAgICAgQVNTRVJUX1RSVUUob3B0aW9u
YWxDb252ZXJzaW9uKTsKICAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAo
dWludDMyX3QpMik7CiAKICAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhQcmlvcml0eSB7
IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1
cmVtZW50LzIyLzEyIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQcmlv
cml0eSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHkpOwogICAg
IEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAgICAgQVNTRVJUX0VRKG9wdGlvbmFs
Q29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIyKTsKICAgICBBU1NFUlRfRVEob3B0aW9uYWxD
b252ZXJzaW9uLT5wcmlvcml0eSwgKHVpbnQzMl90KTEyKTsKIAogICAgIGNvbnN0IFVSTCBjb252
ZXJzaW9uVVJMV2l0aFByaW9yaXR5TWF4RW50cm9weSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9y
Zy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzYzLzYzIl9zIH07Ci0gICAg
b3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVy
c2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQcmlvcml0eU1heEVudHJvcHkpOworICAgIG9w
dGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0
aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5TWF4RW50cm9weSk7CiAgICAgQVNT
RVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKICAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252
ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpNjMpOwogICAgIEFTU0VSVF9FUShvcHRpb25hbENvbnZl
cnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpNjMpOwogICAgIAogICAgIGNvbnN0IFVSTCBjb252
ZXJzaW9uVVJMV2l0aFByaW9yaXR5QW5kTGVhZGluZ1plcm8geyB7IH0sICJodHRwczovL3dlYmtp
dC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8wMiJfcyB9Owot
ICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNv
bnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlBbmRMZWFkaW5nWmVybyk7
CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNl
QXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlBbmRMZWFkaW5nWmVy
byk7CiAgICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKICAgICBBU1NFUlRfRVEo
b3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpMjIpOwogICAgIEFTU0VSVF9FUShv
cHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpMik7CkBAIC0xMjcsNDcgKzEy
Nyw0NyBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZENvbnZlcnNpb25VUkxz
KQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQ2FtcGFpZ25JZCkKIHsK
LSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSAr
IDEpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0
dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHks
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6TWF4RW50cm9weSkpKTsKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlv
biB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6TWF4RW50cm9weSArIDEpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0
ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRl
IHsgZXhhbXBsZVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGll
c3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7
CiAKICAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwog
fQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlSG9zdCkKIHsK
LSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSks
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyBlbXB0eVVSTCB9LCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBhdHRyaWJ1
dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpDb252ZXJzaW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1h
eEVudHJvcHkpKSk7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSB7IGVtcHR5
VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxl
VVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1Nl
bmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQ
cmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKIAogICAgIEFT
U0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7CiB9CiAKIFRFU1Qo
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWREZXN0aW5hdGlvbkhvc3QpCiB7Ci0gICAg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkgKyAxKSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBlbXB0eVVSTCB9IH07Ci0gICAgYXR0cmlidXRp
b24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6Q29udmVyc2lvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhF
bnRyb3B5KSkpOworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpN
YXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2Vi
S2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBlbXB0
eVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1lVG9T
ZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7CiAKICAgICBB
U1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwogfQogCiBURVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQ29udmVyc2lvbkRhdGEpCiB7Ci0gICAg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9u
LmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkNvbnZlcnNpb24oKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5ICsgMSksIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
TWF4RW50cm9weSkpKTsKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2Vi
S2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFt
cGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVU
b1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsK
IAogICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7CiB9
CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRQcmlvcml0eSkKIHsKLSAg
ICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSksIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0gICAgYXR0cmlidXRp
b24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6Q29udmVyc2lvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhF
bnRyb3B5ICsgMSkpKTsKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2Vi
S2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFt
cGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVU
b1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSArIDEpKSk7CiAK
ICAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwogfQog
CiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkTWlzc2luZ0NvbnZlcnNpb24p
CiB7Ci0gICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJv
cHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OworICAgIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSwgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSB7IGV4YW1wbGVVUkwgfSB9OwogCiAgICAgQVNT
RVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKICAgICBBU1NFUlRf
RkFMU0UoYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCkpOwpAQCAtMTc2LDU1ICsxNzYs
NTUgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZE1pc3NpbmdDb252ZXJz
aW9uKQogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZENvbnZlcnNpb25VUkxz
KQogewogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0Q29udmVyc2lv
bkRhdGEgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGlj
ay1tZWFzdXJlbWVudC8yIl9zIH07Ci0gICAgYXV0byBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJM
V2l0aFNpbmdsZURpZ2l0Q29udmVyc2lvbkRhdGEpOworICAgIGF1dG8gb3B0aW9uYWxDb252ZXJz
aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNv
bnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRDb252ZXJzaW9uRGF0YSk7CiAgICAgQVNTRVJUX0ZB
TFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAgICAgCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRoTm9uTnVtZXJhbENvbnZlcnNpb25EYXRhIHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3Jn
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMnMiX3MgfTsKLSAgICBvcHRp
b25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9u
UmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5vbk51bWVyYWxDb252ZXJzaW9uRGF0YSk7CisgICAg
b3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmli
dXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbENvbnZlcnNpb25EYXRhKTsK
ICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKIAogICAgIGNvbnN0IFVSTCBj
b252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlQ29udmVyc2lvbkRhdGEgeyB7IH0sICJodHRwczovL3dl
YmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8tMiJfcyB9Owot
ICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNv
bnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVDb252ZXJzaW9uRGF0YSk7
CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNl
QXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVDb252ZXJzaW9uRGF0
YSk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAKICAgICBjb25zdCBV
UkwgY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25EYXRhIHsgeyB9LCAiaHR0cHM6
Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvNjQiX3Mg
fTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFy
c2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRh
dGEpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
YXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lv
bkRhdGEpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogCiAgICAgY29u
c3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRQcmlvcml0eSB7IHsgfSwgImh0dHBz
Oi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzIi
X3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0UHJpb3Jp
dHkpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
YXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0UHJpb3Jp
dHkpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogICAgIAogICAgIGNv
bnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aE5vbk51bWVyYWxQcmlvcml0eSB7IHsgfSwgImh0dHBz
Oi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzJz
Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOb25OdW1lcmFsUHJpb3Jp
dHkpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
YXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5vbk51bWVyYWxQcmlvcml0
eSk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAgICAgCiAgICAgY29u
c3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8v
d2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLy0yIl9z
IH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBh
cnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZVByaW9yaXR5KTsK
KyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VB
dHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZVByaW9yaXR5KTsKICAg
ICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKICAgICAKICAgICBjb25zdCBVUkwg
Y29udmVyc2lvblVSTFdpdGhUb29MYXJnZVByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQu
b3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvNjQiX3MgfTsKLSAg
ICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252
ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlUHJpb3JpdHkpOworICAgIG9w
dGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0
aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlUHJpb3JpdHkpOwogICAgIEFTU0VS
VF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YUFuZFByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93
ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvNjQvMjIiX3Mg
fTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFy
c2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRh
dGFBbmRQcmlvcml0eSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFy
Z2VDb252ZXJzaW9uRGF0YUFuZFByaW9yaXR5KTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxD
b252ZXJzaW9uKTsKIAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29u
dmVyc2lvbkRhdGFBbmRUb29MYXJnZVByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3Jn
Ly53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvNjQvNjQiX3MgfTsKLSAgICBv
cHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJz
aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRUb29M
YXJnZVByaW9yaXR5KTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhUb29MYXJn
ZUNvbnZlcnNpb25EYXRhQW5kVG9vTGFyZ2VQcmlvcml0eSk7CiAgICAgQVNTRVJUX0ZBTFNFKG9w
dGlvbmFsQ29udmVyc2lvbik7CiAKICAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhFeHRy
YUxlYWRpbmdTbGFzaCA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3By
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvLzIyLzEyIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJz
aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29u
dmVyc2lvblVSTFdpdGhFeHRyYUxlYWRpbmdTbGFzaCk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9u
ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZl
cnNpb25VUkxXaXRoRXh0cmFMZWFkaW5nU2xhc2gpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25h
bENvbnZlcnNpb24pOwogCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoRXh0cmFUcmFp
bGluZ1NsYXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMi8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24g
PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJz
aW9uVVJMV2l0aEV4dHJhVHJhaWxpbmdTbGFzaCk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNp
b25VUkxXaXRoRXh0cmFUcmFpbGluZ1NsYXNoKTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxD
b252ZXJzaW9uKTsKIAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nUXVl
c3Rpb25NYXJrID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMj8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24g
PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJz
aW9uVVJMV2l0aFRyYWlsaW5nUXVlc3Rpb25NYXJrKTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24g
PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVy
c2lvblVSTFdpdGhUcmFpbGluZ1F1ZXN0aW9uTWFyayk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlv
bmFsQ29udmVyc2lvbik7CiB9CiAKQEAgLTIzMiw0NiArMjMyLDQ2IEBAIFRFU1QoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsIEludmFsaWRDb252ZXJzaW9uV2l0aERpc2FsbG93ZWRVUkxDb21wb25l
bnRzKQogewogICAgIC8vIFByb3RvY29sLgogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0
aEh0dHBQcm90b2NvbCB7IHsgfSwgImh0dHA6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZh
dGUtY2xpY2stbWVhc3VyZW1lbnQvMiJfcyB9OwotICAgIGF1dG8gb3B0aW9uYWxDb252ZXJzaW9u
ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVy
c2lvblVSTFdpdGhIdHRwUHJvdG9jb2wpOworICAgIGF1dG8gb3B0aW9uYWxDb252ZXJzaW9uID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNp
b25VUkxXaXRoSHR0cFByb3RvY29sKTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJz
aW9uKTsKIAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFdzc1Byb3RvY29sIHsgeyB9
LCAid3NzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
LzIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFdzc1Byb3RvY29sKTsK
KyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VB
dHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhXc3NQcm90b2NvbCk7CiAgICAgQVNT
RVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAKICAgICBjb25zdCBVUkwgY29udmVyc2lv
blVSTFdpdGhGaWxlUHJvdG9jb2wgeyB7IH0sICJmaWxlOi8vLy53ZWxsLWtub3duL3ByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQvMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxX
aXRoRmlsZVByb3RvY29sKTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhGaWxl
UHJvdG9jb2wpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogCiAgICAg
Ly8gVXNlcm5hbWUgYW5kIHBhc3N3b3JkLgogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0
aFVzZXJOYW1lIHsgeyB9LCAiaHR0cHM6Ly91c2VyQHdlYmtpdC5vcmcvLndlbGwta25vd24vcHJp
dmF0ZS1jbGljay1tZWFzdXJlbWVudC8yIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lv
blVSTFdpdGhVc2VyTmFtZSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVXNl
ck5hbWUpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogCiAgICAgY29u
c3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUGFzc3dvcmQgPSB7IHsgfSwgImh0dHBzOi8vOnB3ZEB3
ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvMTI/Il9z
IH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBh
cnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQYXNzd29yZCk7CisgICAgb3B0
aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRp
b25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUGFzc3dvcmQpOwogICAgIEFTU0VSVF9GQUxTRShv
cHRpb25hbENvbnZlcnNpb24pOwogCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVXNl
cm5hbWVBbmRQYXNzd29yZCA9IHsgeyB9LCAiaHR0cHM6Ly91c2VyOnB3ZEB3ZWJraXQub3JnLy53
ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvMTI/Il9zIH07Ci0gICAgb3B0
aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lv
blJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhVc2VybmFtZUFuZFBhc3N3b3JkKTsKKyAgICBvcHRp
b25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlv
blJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhVc2VybmFtZUFuZFBhc3N3b3JkKTsKICAgICBBU1NF
UlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKIAogICAgIC8vIFF1ZXJ5IHN0cmluZy4KICAg
ICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhUcmFpbGluZ1F1ZXN0aW9uTWFyayA9IHsgeyB9
LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1l
bnQvMjIvMTI/Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhUcmFpbGlu
Z1F1ZXN0aW9uTWFyayk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxp
bmdRdWVzdGlvbk1hcmspOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwog
CiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUXVlcnlTdHJpbmcgPSB7IHsgfSwgImh0
dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIy
LzEyP2V4dHJhPWRhdGEiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFF1
ZXJ5U3RyaW5nKTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhRdWVyeVN0cmlu
Zyk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAgICAgCiAgICAgLy8g
RnJhZ21lbnQuCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdIYXNoID0g
eyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFz
dXJlbWVudC8yMi8xMiMiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRy
YWlsaW5nSGFzaCk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdI
YXNoKTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKIAogICAgIGNvbnN0
IFVSTCBjb252ZXJzaW9uVVJMV2l0aEZyYWdtZW50ID0geyB7IH0sICJodHRwczovL3dlYmtpdC5v
cmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMiNmcmFnbWVudCJf
cyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoRnJhZ21lbnQpOworICAgIG9w
dGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0
aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aEZyYWdtZW50KTsKICAgICBBU1NFUlRfRkFMU0Uo
b3B0aW9uYWxDb252ZXJzaW9uKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXgg
ZDBmZjgxNjVmYjE5NjE5MjZjYjZiNWY1ZTgzMTM1OTIxZjUyM2E1ZC4uZGIxNTk5YTJjNTYwMmFl
ODFhYjJmMjRlMDhmOWY5NTUzOWMwNWI5YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBA
IC00MDEsNiArNDAxLDggQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVmaW5lZCBj
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CiAgICAgdW5kZWZpbmVkIGNsZWFyUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpOwogICAgIHVuZGVm
aW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJv
b2xlYW4gdmFsdWUpOworICAgIHVuZGVmaW5lZCBtYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICB1bmRlZmluZWQgc2ltdWxhdGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoKTsKICAgICB1bmRlZmluZWQgc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhET01TdHJpbmcg
dXJsKTsKICAgICB1bmRlZmluZWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggNWIxOTU0MmQwNjliODBlZmNmZDcyZjRkOWIw
MzExODQzYTBjN2RhNC4uNjM4MDk4OTI1MThjY2UzY2ZkNmJhMmRmYWNkYzZmNWVmOTAzYmFiNiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCkBAIC0yMDE1LDYgKzIwMTUsMTYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCiAg
ICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
T3ZlcnJpZGVUaW1lckZvclRlc3RpbmciLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6
bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5n
KCkKK3sKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiTWFya0F0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nIik7Cit9CisKK3ZvaWQgVGVz
dFJ1bm5lcjo6c2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoKQor
eworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTaW11bGF0ZVJlc291cmNlTG9hZFN0
YXRpc3RpY3NTZXNzaW9uUmVzdGFydCIpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoSlNTdHJpbmdSZWYgdXJs
U3RyaW5nKQogewogICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nIiwKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggYjMwMmM4ZTMy
MTBjNDZjY2EyNjhmNWZkY2Y1OTM5OGNjNzNkMjk2OS4uOTNhOTdjYmRkZTQ4NzVjYmQzMzVhNzBm
Y2I5ZmY1M2RiNGYyOGI0NCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTUxNCw2ICs1MTQsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJv
b2wgdmFsdWUpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9u
VVJMRm9yVGVzdGluZyhKU1N0cmluZ1JlZik7CiAgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOworICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBz
aW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOwogCiAgICAgdm9p
ZCBzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggN2JhNjcyYWM5ZjkyNWY2
MzI1YWEwN2ZhNmYxNjFhNTAyMzVmYmI4Yy4uMGM2YzY1MTQxN2MyMTZiZjc3MzBhZGE3N2I3MTA2
ZDkwZmJhMjYzMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
QEAgLTM1OTIsNiArMzU5MiwyMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdQogICAgIHJ1blVu
dGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQogCit2b2lkIFRlc3RDb250
cm9sbGVyOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZv
clRlc3RpbmcoKQoreworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29u
dGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOworICAgIFdLUGFnZU1hcmtBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhtX21haW5XZWJWaWV3LT5w
YWdlKCksIHByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrLCAmY2FsbGJhY2tDb250
ZXh0KTsKKyAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vz
c2lvblJlc3RhcnQoKQoreworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNr
Q29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOworICAgIFdLUGFnZVNpbXVsYXRlUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOworICAg
IHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOworfQorCiB2b2lkIFRl
c3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JU
ZXN0aW5nKFdLVVJMUmVmIHVybCkKIHsKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRD
YWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBiNTdiOGY3YTA1OTUyM2VjZjg3N2FiMDE5NzIwZDRk
YmU1OGZjYjVmLi5kZGVjYTA4ODJhMzA5NmUzN2JmZDNlNzBmZWQ0ZTIyNzNkZDk2ZDI5IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0zNDQsNiArMzQ0LDggQEAg
cHVibGljOgogICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogICAgIHZv
aWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFs
KCk7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKGJvb2wgdmFsdWUpOworICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBzaW11bGF0ZVJlc291
cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXS1VSTFJlZik7CiAgICAgdm9p
ZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDI5YjY1MmM2MDM5
ZWU4YzUzMDlmZjBkZWFhZWU4MGY1ODQ1MzkwMmMuLjU5OGRmYzdkMWFjMGUzN2JiMjJmYjc4NGJh
MTU0YWI3NDc3YWVhMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwCkBAIC0xMzI5LDYgKzEzMjksMTYgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52
b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiTWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLm1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBp
cmVkRm9yVGVzdGluZygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgCisg
ICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTaW11bGF0
ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCIpKSB7CisgICAgICAgIFRlc3RD
b250cm9sbGVyOjpzaW5nbGV0b24oKS5zaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNz
aW9uUmVzdGFydCgpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgCiAgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nIikpIHsKICAgICAgICAgQVNT
RVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1VSTEdldFR5cGVJRCgpKTsKICAgICAg
ICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvblVSTEZvclRlc3Rpbmcoc3RhdGljX2Nhc3Q8V0tVUkxSZWY+KG1lc3NhZ2VCb2R5
KSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggOGI3NGEzZjk3YTA0MjMyMzI1ZWYwYjc5ODM4NDlmM2ZhMWZmZTFmNi4uZDhk
MmVlZjY5Y2YyNmQzNTAzYzE3MjZmNjIwZmQ1YTIyN2I3NTIzYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0
IEBACisyMDIwLTExLTE5ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29t
PgorCisgICAgICAgIFBDTTogUGVyc2lzdCBwZW5kaW5nIGFkIGNsaWNrcyBhbmQgYXR0cmlidXRp
b25zIHNvIHRoZXkgY2FuIHN1cnZpdmUgYnJvd3NlciByZXN0YXJ0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkxMzQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzcwNDcwMTI5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
ICAgICAgICAKKyAgICAgICAgQWRkZWQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuIFJlbW92ZWQgJ0Nv
bnZlcnNpb24gcmVxdWVzdCBzZW50OicKKyAgICAgICAgY2F0ZWdvcnkgaW4gdGhlIHRvU3RyaW5n
KCkgbWV0aG9kIGJlY2F1c2UgaXQgd2lsbCBhbHdheXMgYmUgZmFsc2UuCisgICAgICAgIFNlbnQg
Y29udmVyc2lvbnMgYXJlIHB1cmdlZCBmcm9tIHRoZSBkYXRhYmFzZSwgc28gaXQgaXMgbm90IGEg
dXNlZnVsCisgICAgICAgIHBpZWNlIG9mIGluZm9ybWF0aW9uIHRvIHJlcG9ydC4gVXBkYXRlZCBu
YW1pbmcgYmFzZWQgb24gc3RhbmRhcmRzCisgICAgICAgIGNvdmVyc2F0aW9ucy4KKworICAgICAg
ICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVy
c2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNp
b24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252
ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24t
Y29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0
cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3Jp
dHkuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2Nv
bnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hZC1jbGlj
ay1nZXRzLXJlbW92ZWQtb24tc2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hZC1jbGlj
ay1nZXRzLXJlbW92ZWQtb24tc2Vzc2lvbi1zdGFydC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9u
LXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24t
c2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbi1yZXBvcnQtZ2V0cy1z
ZW50LW9uLXNlc3Npb24tc3RhcnQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24t
cmVxdWVzdC5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRy
aWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0
aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRl
ZC13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0
aC1sb3dlci1wcmlvcml0eS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vj
b25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93
ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRy
aWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9u
LXJlcXVlc3QuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0OgorCiAyMDIw
LTExLTE5ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAg
ICAgIFtUZXh0dXJlTWFwcGVyR0xdIFRoZSBpbnZlcnQgZmlsdGVyIHdyb25nbHkgaW52ZXJ0cyBw
cmUtbXVsdGlwbGllZCBhbHBoYSBjb2xvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxv
Y2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50eHQKaW5kZXggYjFmYWFiZTli
MjljNWY1MmExYzZmNTExMzlmZWUyNTEyZmMwNzk4My4uZDMwZTllODk3NDFlMDQ1MTdmYmI5ZDQ3
ZGE4MjAwODhhZjEwZmM1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250
ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXBy
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC03LDExICs3LDExIEBAIFRl
c3RzIHRoYXQgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCByZWRpcmVjdHMgdG8gd2VsbC1rbm93
biBsb2NhdGlvbiBkb24ndCB0cmlnCiAtLS0tLS0tLQogRnJhbWU6ICc8IS0tZnJhbWUxLS0+Jwog
LS0tLS0tLS0KLUNvbnZlcnNpb24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0LgorQXR0cmlidXRp
b24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0LgogCi1VbmNvbnZlcnRlZCBQcml2YXRlIENsaWNr
IE1lYXN1cmVtZW50czoKK1VuYXR0cmlidXRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoK
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKLVNvdXJjZTogMTI3LjAuMC4xCi1E
ZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotTm8gY29udmVyc2lvbiBkYXRh
LgorU291cmNlIHNpdGU6IDEyNy4wLjAuMQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAor
U291cmNlIElEOiAzCitObyBhdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGEuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9u
LWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmli
dXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0
ZWQudHh0CmluZGV4IGE3ZDg2N2ZjNjIwNjg4NDVkOWVkMmY5ZDg4YTkzMjUzYjIyNTA1YTYuLjAw
NzFiOTZmOTg4ZjMxYTMyMTYzNjM5NjIzNTZjOTc0OTZmZWVhZTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmli
dXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0
ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAotVGVzdHMgdGhhdCB0cmlnZ2VyaW5nIG9mIHByaXZhdGUg
Y2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgdGhyb3VnaCBjcm9zcy1zaXRlIHJlZGlyZWN0
cyBkbyBub3Qgd29yay4KK1Rlc3RzIHRoYXQgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1l
YXN1cmVtZW50IGF0dHJpYnV0aW9ucyB0aHJvdWdoIGNyb3NzLXNpdGUgcmVkaXJlY3RzIGRvIG5v
dCB3b3JrLgogCiAKLVVuY29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorVW5h
dHRyaWJ1dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgogV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgMQotU291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhv
c3QKLUNhbXBhaWduIElEOiAzCi1ObyBjb252ZXJzaW9uIGRhdGEuCitTb3VyY2Ugc2l0ZTogMTI3
LjAuMC4xCitBdHRyaWJ1dGUgb24gc2l0ZTogbG9jYWxob3N0CitTb3VyY2UgSUQ6IDMKK05vIGF0
dHJpYnV0aW9uIHRyaWdnZXIgZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdo
LWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNy
b3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRtbAppbmRleCBmOTA5YjZlMTkzNTRlN2ZiMGZlMTcx
OGYzNDEzMDQ3ZjM3N2ZmOTMzLi4yNTM3MmU4ZDZiZDE2YmE1ZThkNTNlN2I1YTZiM2U1YjUyMDQ5
YTIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJl
ZGlyZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1y
ZWRpcmVjdC5odG1sCkBAIC03LDcgKzcsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVu
VGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgdHJpZ2dlcmluZyBv
ZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGNvbnZlcnNpb25zIHRocm91Z2ggY3Jvc3Mtc2l0
ZSByZWRpcmVjdHMgZG8gbm90IHdvcmsuPC9kaXY+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVz
dHMgdGhhdCB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRp
b25zIHRocm91Z2ggY3Jvc3Mtc2l0ZSByZWRpcmVjdHMgZG8gbm90IHdvcmsuPC9kaXY+CiA8YSBp
ZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdl
LXJlZGlyZWN0Lmh0bWw/c3RlcFR3byIgYXR0cmlidXRpb25zb3VyY2VpZD0iMyIgYXR0cmlidXRl
b249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+CiA8ZGl2IGlkPSJvdXRwdXQi
PjwvZGl2PgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdl
LXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91
Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggZTQxZDJi
ZmY1ZGQzNWI1OWZhNTNhMjYwZTY0ZGViOGNiNDViYTk3NS4uOGNkYjUwZWVlNmEzZjUzYjE2YTMw
ZjBkOTQ2NDVkMGM1ZDc0ZjcyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1h
Z2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9u
LXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3RlZC50eHQKQEAgLTEs
MTIgKzEsMTEgQEAKLVRlc3RzIHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVu
dCBjb252ZXJzaW9ucyBpbiBhIG5ldyB3aW5kb3cuCitUZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZh
dGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRpb25zIGluIGEgbmV3IHdpbmRvdy4KIAogCi1D
b252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitBdHRyaWJ1dGVkIFByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnRzOgogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQot
U291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAz
Ci1Db252ZXJzaW9uIGRhdGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiAzCi1Db252ZXJzaW9u
IGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJl
cXVlc3Qgc2VudDogZmFsc2UKK1NvdXJjZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBz
aXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJRDogMworQXR0cmlidXRpb24gdHJpZ2dlciBkYXRhOiAx
MgorQXR0cmlidXRpb24gcHJpb3JpdHk6IDMKK0F0dHJpYnV0aW9uIGVhcmxpZXN0IHRpbWUgdG8g
c2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3Vn
aC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3Vn
aC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0bWwKaW5kZXggZWY4M2EzMTlkNzkzYmI4
Y2RiZTYyODViMzM0MTc0MjUwM2JkMjhhYy4uYjkyNzVjNzM0NzYwOTE2MDgxNDExZDZkYTJjNjBk
YmUxOWQ5NjNiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJl
Y3QtaW4tbmV3LXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJl
ZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbApAQCAtNyw3ICs3LDcgQEAKICAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJz
ZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmln
Z2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgaW4gYSBuZXcg
d2luZG93LjwvZGl2PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRyaWdnZXJpbmcgb2Yg
cHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGlvbnMgaW4gYSBuZXcgd2luZG93Ljwv
ZGl2PgogPGEgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ib3BlbmVyIiBpZD0idGFyZ2V0TGluayIgaHJl
Zj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9jb252ZXJ0QW5kUG9zdE1lc3NhZ2VCYWNrLmh0bWwiIGF0dHJpYnV0aW9uc291cmNlaWQ9IjMi
IGF0dHJpYnV0ZW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgogPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhy
b3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVy
c2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQudHh0Cmlu
ZGV4IDg0YjI3MjRmNGZiNTU5ZTU2Y2QxZDlmNGQxZmZjNTk1ZDI0YjY0YjMuLmQ2OGYwOGQ2ODZm
NTgwMTU2YzlmMGFlYjg5NTZiMTQwNWQyOWI1NmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24t
Y29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQu
dHh0CkBAIC0xLDEyICsxLDExIEBACi1UZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sg
bWVhc3VyZW1lbnQgY29udmVyc2lvbnMgd2l0aCBwcmlvcml0eS4KK1Rlc3RzIHRyaWdnZXJpbmcg
b2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGlvbnMgd2l0aCBwcmlvcml0eS4K
IAogCi1Db252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitBdHRyaWJ1dGVkIFBy
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgMQotU291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWdu
IElEOiAzCi1Db252ZXJzaW9uIGRhdGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiAzCi1Db252
ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJz
aW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKK1NvdXJjZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0
ZSBvbiBzaXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJRDogMworQXR0cmlidXRpb24gdHJpZ2dlciBk
YXRhOiAxMgorQXR0cmlidXRpb24gcHJpb3JpdHk6IDMKK0F0dHJpYnV0aW9uIGVhcmxpZXN0IHRp
bWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24t
dGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24t
dGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWwKaW5kZXggYTM4MzNmYWVj
OGUwMzdlYTEzZWE2NzIxMGRmOGFlODhkMTMwYmZlZi4uMDIxMjFlNDZlMjdmZWZmOTg3MGNlZTEw
ZmY1Y2ZhNzg2ZjA0Y2E3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2Ut
cmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWlt
YWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbApAQCAtNyw3ICs3LDcgQEAKICAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25s
b2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0
cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgd2l0
aCBwcmlvcml0eS48L2Rpdj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5n
IG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRpb25zIHdpdGggcHJpb3JpdHku
PC9kaXY+CiA8YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFn
ZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWw/c3RlcFR3byIgYXR0cmlidXRpb25zb3VyY2Vp
ZD0iMyIgYXR0cmlidXRlb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+CiA8
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lv
bi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS1leHBl
Y3RlZC50eHQKaW5kZXggNzFmNDYyY2QwZWMzMGM2YTAzODI0MTVlMDM0ZTE2NzVmMWYwMjNiMS4u
YjFlZDE4ODc2NTQ0OTA4Y2QzMjAyMzgyZTY4N2M4ODE1OTdhNDdmMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1w
cmlvcml0eS1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMTEgQEAKLVRlc3RzIHRyaWdnZXJpbmcg
b2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9ucyB3aXRob3V0IHByaW9yaXR5
LgorVGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGF0dHJpYnV0
aW9ucyB3aXRob3V0IHByaW9yaXR5LgogCiAKLUNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50czoKK0F0dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CiBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRp
b246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZl
cnNpb24gcHJpb3JpdHk6IDAKLUNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRo
aW4gMjQtNDggaG91cnMKLUNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQorU291cmNlIHNp
dGU6IDEyNy4wLjAuMQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNlIElEOiAz
CitBdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6IDEyCitBdHRyaWJ1dGlvbiBwcmlvcml0eTogMAor
QXR0cmlidXRpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
YXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJp
b3JpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQt
cHJpb3JpdHkuaHRtbAppbmRleCA0MjNkMTM1NTk0ODZkOTMyNzI4YjliNDQzOTUzMTkzZDBlZmFh
M2M4Li43MWVjNzdhNTE5ZGRjMjRlNGIwOWIxMWQ2OWI3MmRhMTM4N2Q3ZTUzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0
aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9h
dHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlv
cml0eS5odG1sCkBAIC03LDcgKzcsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVz
dCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRyaWdnZXJpbmcgb2YgcHJpdmF0
ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9ucyB3aXRob3V0IHByaW9yaXR5LjwvZGl2Pgor
PGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBt
ZWFzdXJlbWVudCBhdHRyaWJ1dGlvbnMgd2l0aG91dCBwcmlvcml0eS48L2Rpdj4KIDxhIGlkPSJ0
YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhv
dXQtcHJpb3JpdHkuaHRtbD9zdGVwVHdvIiBhdHRyaWJ1dGlvbnNvdXJjZWlkPSIzIiBhdHRyaWJ1
dGVvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KIDxkaXYgaWQ9Im91dHB1
dCI+PC9kaXY+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1z
ZXNzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBl
Y3RlZC50eHQKaW5kZXggMWYxYWEwNDJiMTAyNzM5MDQ2Mjc3ZjFkOGJjYjBjNzk5YmQ2YjU5NC4u
ODU0OGVmZWFjMjBhZWZiMWI3Y2ZjYjk1ZDEyMzhjZjRjZmIzZGJiNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRp
c2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZlcnNpb24tZGlzYWJsZWQt
aW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0CkBAIC01LDExICs1LDExIEBAIFRlc3Rz
IHRoYXQgc3RvcmVkIGF0dHJpYnV0aW9ucyBjYW5ub3QgYmUgY29udmVydGVkIGluIGFuIGVwaGVt
ZXJhbCBzZXNzaW9uLgogLS0tLS0tLS0KIEZyYW1lOiAnPCEtLWZyYW1lMS0tPicKIC0tLS0tLS0t
Ci1Db252ZXJzaW9uIG5vdCByZWNlaXZlZCAtIHRpbWVkIG91dC4KK0F0dHJpYnV0aW9uIG5vdCBy
ZWNlaXZlZCAtIHRpbWVkIG91dC4KIAotVW5jb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudHM6CitVbmF0dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CiBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRp
b246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLU5vIGNvbnZlcnNpb24gZGF0YS4KK1NvdXJj
ZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBzaXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJ
RDogMworTm8gYXR0cmlidXRpb24gdHJpZ2dlciBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWFkLWNsaWNrLWdl
dHMtcmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hZC1jbGljay1nZXRzLXJl
bW92ZWQtb24tc2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VjMjg2ZDRj
M2NhYzlhZGYzYWJkY2M3M2YxMzQ2MzU2N2ZhOWI4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hZC1jbGlj
ay1nZXRzLXJlbW92ZWQtb24tc2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitUZXN0cyB0aGF0IGFuIGV4cGlyZWQgYWQgY2xpY2sgZG9lcyBub3QgZ2V0IGNvbnZlcnRl
ZCBvbiBzZXNzaW9uIHN0YXJ0LgorCisKKworTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnQgZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hZC1jbGljay1nZXRzLXJlbW92ZWQtb24tc2Vzc2lvbi1z
dGFydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9leHBpcmVkLWFkLWNsaWNrLWdldHMtcmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTMyY2RiZDA4YzMyMDhiMzI2NzUxNTE2OWI2Y2FhMmI5NTlkMTExMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvZXhwaXJlZC1hZC1jbGljay1nZXRzLXJlbW92ZWQtb24tc2Vzc2lvbi1zdGFydC5odG1sCkBA
IC0wLDAgKzEsNzkgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJs
ZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgYW4gZXhwaXJlZCBhZCBjbGljayBkb2VzIG5vdCBn
ZXQgY29udmVydGVkIG9uIHNlc3Npb24gc3RhcnQuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayI+
TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25z
dCBwYXRoID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWFkLWNsaWNrLWdldHMt
cmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwiOworICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24g
PSBbCisgICAgICAgIHsKKyAgICAgICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
ICsgcGF0aCArICI/c3RlcFR3byIsCisgICAgICAgICAgICBhdHRyaWJ1dGlvbnNvdXJjZWlkOiAi
MyIsCisgICAgICAgICAgICBhdHRyaWJ1dGVvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKKyAg
ICAgICAgfQorICAgIF07CisKKyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gY29u
ZmlndXJlTGluayhpbmRleCkgeworICAgICAgICBsZXQgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRy
aWJ1dGUoImhyZWYiLCBjb25maWd1cmF0aW9uW2luZGV4XS5ocmVmKTsKKyAgICAgICAgbGlua0Vs
ZW1lbnQuc2V0QXR0cmlidXRlKCJhdHRyaWJ1dGlvbnNvdXJjZWlkIiwgY29uZmlndXJhdGlvbltp
bmRleF0uYXR0cmlidXRpb25zb3VyY2VpZCk7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJp
YnV0ZSgiYXR0cmlidXRlb24iLCBjb25maWd1cmF0aW9uW2luZGV4XS5hdHRyaWJ1dGVvbik7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAg
ICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAg
ICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0
aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50
Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwg
Y2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQu
IjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQor
ICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbnZlcnQoY2FsbGJhY2spIHsKKyAg
ICAgICAgbGV0IHBpeGVsRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIp
OworICAgICAgICBpZiAocGl4ZWxFbGVtZW50KQorICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChwaXhlbEVsZW1lbnQpOworCisgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9
ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOworICAgICAgICBp
bWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9
IGNhbGxiYWNrOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVu
dCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9
PT0gIiIpIHsKKyAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDApOworICAgICAgICAgICAg
ICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlm
ICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIubWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcoKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5zaW11bGF0
ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOworICAgICAgICAgICAgICAg
IGNvbnZlcnQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlu
bmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9uLXJlcG9ydC1nZXRz
LXNlbnQtb24tc2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVwb3J0LWdl
dHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjBjYzZm
NzA3ZDQxMjViMmEwMjRkNThmMzdiNDdmNTljYmJkM2RhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJp
YnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNyBAQAorVGVzdHMgc2VuZGluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50
IHJlcXVlc3RzIGFmdGVyIGFuIGF0dHJpYnV0aW9uIGhhcHBlbnMgaW1tZWRpYXRlbHkgZm9yIHJl
cG9ydHMgd2hpY2ggaGF2ZSBleHBpcmVkIHdoZW4gYSBzZXNzaW9uIGlzIGNsb3NlZC4KKworCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorQXR0cmlidXRpb24g
cmVjZWl2ZWQuCitIVFRQX0hPU1Q6IDEyNy4wLjAuMTo4MDAwCitDb250ZW50IHR5cGU6IGFwcGxp
Y2F0aW9uL2pzb24KK1JFUVVFU1RfVVJJOiAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL2NvbnZlcnNpb25SZXBvcnQucGhwCitObyBjb29raWVzIGluIGF0dHJpYnV0aW9uIHJlcXVl
c3QuCitSZXF1ZXN0IGJvZHk6Cit7InNvdXJjZS1lbmdhZ2VtZW50LXR5cGUiOiJjbGljayIsInNv
dXJjZS1zaXRlIjoiMTI3LjAuMC4xIiwic291cmNlLWlkIjozLCJhdHRyaWJ1dGVkLW9uLXNpdGUi
OiJsb2NhbGhvc3QiLCJ0cmlnZ2VyLWRhdGEiOjEyLCJyZXBvcnQtdmVyc2lvbiI6MX0KKworCitO
byBzdG9yZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJp
YnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9u
LXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxODM2
NmQzZDkxMGFkM2UxNWI5MTc1OGRhN2JiM2MzY2RiMmE3NmQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0
cmlidXRpb24tcmVwb3J0LWdldHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwKQEAgLTAsMCAr
MSw3OSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxl
eGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+VGVzdHMgc2VuZGluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlcXVl
c3RzIGFmdGVyIGFuIGF0dHJpYnV0aW9uIGhhcHBlbnMgaW1tZWRpYXRlbHkgZm9yIHJlcG9ydHMg
d2hpY2ggaGF2ZSBleHBpcmVkIHdoZW4gYSBzZXNzaW9uIGlzIGNsb3NlZC48L2Rpdj4KKzxhIGlk
PSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbi1yZXBvcnQtZ2V0cy1zZW50LW9uLXNlc3Npb24t
c3RhcnQuaHRtbD9zdGVwVHdvIiBhdHRyaWJ1dGlvbnNvdXJjZWlkPSIzIiBhdHRyaWJ1dGVvbj0i
aHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9k
aXY+Cis8c2NyaXB0PgorICAgIGNvbnN0IGN1cnJlbnRUaW1lTWlsbGlzID0gKG5ldyBEYXRlKCkp
LmdldFRpbWUoKTsKKyAgICBjb25zdCBoaWdoRW50cm9weUJpdHMgPSBjdXJyZW50VGltZU1pbGxp
cyAtIChNYXRoLmZsb29yKGN1cnJlbnRUaW1lTWlsbGlzIC8gMTAwMDAwMCkgKiAxMDAwMDAwKTsK
KyAgICBjb25zdCBub25jZSA9IGhpZ2hFbnRyb3B5Qml0cyArICIiICsgTWF0aC5mbG9vcihNYXRo
LnJhbmRvbSgpICogMTAwKTsKKworICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25vbmNlPSIg
KyBub25jZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJ
RCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVu
dC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRU
b3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRl
QXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21p
c2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAg
ICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVuZElmcmFt
ZSh1cmwsIG9ubG9hZENhbGxiYWNrKSB7CisgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmcmFtZUVsZW1lbnQuc3Jj
ID0gdXJsOworICAgICAgICBpZiAob25sb2FkQ2FsbGJhY2spCisgICAgICAgICAgICBpZnJhbWVF
bGVtZW50Lm9ubG9hZCA9IG9ubG9hZENhbGxiYWNrOworICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVuZENv
bnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCkgeworICAgICAgICAvLyBNYXJrIHRoaXMgYXR0
cmlidXRpb24gYXMgcGFzdC1kdWUgZm9yIHJlcG9ydGluZywgYW5kIHNpbXVsYXRlIGEgc2Vzc2lv
biByZXN0YXJ0IHRvCisgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgYXR0cmlidXRpb24gZ2V0cyBz
ZW50IGltbWVkaWF0ZWx5LgorICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5tYXJrQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5zaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgp
OworICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXRMaW5rIikpOworICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKworICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29u
dmVyc2lvbkRhdGEucGhwP3RpbWVvdXRfbXM9MjAwMCZub25jZT0iICsgbm9uY2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVw
VHdvIikgeworICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0
dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3Jl
ZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZub25jZT0iICsgbm9uY2U7
CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAg
ICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpOworICAgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVs
ZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVs
ZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAi
RkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lv
blJlcG9ydC5waHAKaW5kZXggYjVjMjAyNjljNzg0OTA2ZmZmNzQ3NDQ4YjM4ODFmNDA2MzdhYmMw
MS4uZDVhZmI0NDU3OTVhODIwNzFjY2M1ZmE0MjRiNjE4MDZhM2EzYTY2NiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMv
Y29udmVyc2lvblJlcG9ydC5waHAKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAKQEAgLTE1LDE0
ICsxNSwxNCBAQCBmb3JlYWNoICgkaHR0cEhlYWRlcnMgYXMgJG5hbWUgPT4gJHZhbHVlKSB7CiAg
ICAgICAgICAgICAkb3V0cHV0VVJMID0gc3Vic3RyKCR2YWx1ZSwgMCwgJHBvc2l0aW9uT2ZOb25j
ZSk7CiAgICAgICAgIGZ3cml0ZSgkY29udmVyc2lvbkZpbGUsICIkbmFtZTogJG91dHB1dFVSTFxu
Iik7CiAgICAgfSBlbHNlIGlmICgkbmFtZSA9PT0gIkhUVFBfQ09PS0lFIikgewotICAgICAgICBm
d3JpdGUoJGNvbnZlcnNpb25GaWxlLCAiQ29va2llcyBpbiBjb252ZXJzaW9uIHJlcXVlc3Q6ICR2
YWx1ZVxuIik7CisgICAgICAgIGZ3cml0ZSgkY29udmVyc2lvbkZpbGUsICJDb29raWVzIGluIGF0
dHJpYnV0aW9uIHJlcXVlc3Q6ICR2YWx1ZVxuIik7CiAgICAgICAgICRjb29raWVzRm91bmQgPSB0
cnVlOwogICAgIH0gZWxzZSBpZiAoJG5hbWUgPT09ICJDT05URU5UX1RZUEUiKSB7CiAgICAgICAg
IGZ3cml0ZSgkY29udmVyc2lvbkZpbGUsICJDb250ZW50IHR5cGU6ICR2YWx1ZVxuIik7CiAgICAg
fQogfQogaWYgKCEkY29va2llc0ZvdW5kKSB7Ci0gICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwg
Ik5vIGNvb2tpZXMgaW4gY29udmVyc2lvbiByZXF1ZXN0LlxuIik7CisgICAgZndyaXRlKCRjb252
ZXJzaW9uRmlsZSwgIk5vIGNvb2tpZXMgaW4gYXR0cmlidXRpb24gcmVxdWVzdC5cbiIpOwogfQog
CiAkcmVxdWVzdEJvZHkgPSBmaWxlX2dldF9jb250ZW50cygncGhwOi8vaW5wdXQnKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVz
b3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocAppbmRl
eCA1NWUyMjA3MTVhZmQ2N2UwYjhlYTg5NTY3OTJmNDkwYTRiZTAzYWNhLi5hOWJkM2RmZDZiYmMw
ZDBmMzM2ZTlkYWVlOGMwMGI5NTVhMDNkZWQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0
YS5waHAKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwCkBAIC0yNyw3ICsyNyw3IEBAIHdoaWxl
ICgkbm9UaW1lb3V0IHx8ICR0aW1lb3V0TXNlY3MgPiAwKSB7CiBlY2hvICI8aHRtbD48Ym9keT5c
biI7CiAKIGlmICgkY29udmVyc2lvbkZpbGVGb3VuZCkgewotICAgIGVjaG8gIkNvbnZlcnNpb24g
cmVjZWl2ZWQuIjsKKyAgICBlY2hvICJBdHRyaWJ1dGlvbiByZWNlaXZlZC4iOwogICAgICRjb252
ZXJzaW9uRmlsZSA9IGZvcGVuKCRjb252ZXJzaW9uRmlsZVBhdGgsICdyJyk7CiAgICAgd2hpbGUg
KCRsaW5lID0gZmdldHMoJGNvbnZlcnNpb25GaWxlKSkgewogICAgICAgICBlY2hvICI8YnI+IjsK
QEAgLTM3LDcgKzM3LDcgQEAgaWYgKCRjb252ZXJzaW9uRmlsZUZvdW5kKSB7CiAgICAgZmNsb3Nl
KCRjb252ZXJzaW9uRmlsZSk7CiAgICAgdW5saW5rKCRjb252ZXJzaW9uRmlsZVBhdGgpOwogfSBl
bHNlIHsKLSAgICBlY2hvICJDb252ZXJzaW9uIG5vdCByZWNlaXZlZCAtIHRpbWVkIG91dC48YnI+
IjsKKyAgICBlY2hvICJBdHRyaWJ1dGlvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQuPGJyPiI7
CiB9CiAKIGlmIChpc3NldCgkX0dFVFsnZW5kVGVzdCddKSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRp
b24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9u
LWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKaW5kZXggZTkwZDI2
ZjZhZmRiZDNlY2RjMjEzYmZlMjNhMzYzZGQxNzQ3YmNhMy4uNTY1NTkzMzFjMDUyNWIzM2VkYTdi
OGRiNzM5NTQzNjEwNGNiM2FkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgt
aGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0
aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDExIEBACi1UZXN0cyB0
aGF0IGEgc2Vjb25kIGF0dHJpYnV0aW9uIGNvbnZlcnNpb24gd2l0aCBoaWdoZXIgcHJpb3JpdHkg
cmVwbGFjZXMgYW4gb2xkZXIgd2l0aCBsb3dlciBwcmlvcml0eS4KK1Rlc3RzIHRoYXQgYSBzZWNv
bmQgYXR0cmlidXRpb24gd2l0aCBoaWdoZXIgcHJpb3JpdHkgcmVwbGFjZXMgYW4gb2xkZXIgd2l0
aCBsb3dlciBwcmlvcml0eS4KIAogCi1Db252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVu
dHM6CitBdHRyaWJ1dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgogV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQotU291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBs
b2NhbGhvc3QKLUNhbXBhaWduIElEOiA0Ci1Db252ZXJzaW9uIGRhdGE6IDEyCi1Db252ZXJzaW9u
IHByaW9yaXR5OiA0Ci1Db252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0
LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKK1NvdXJjZSBzaXRlOiAx
MjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBzaXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJRDogNAorQXR0
cmlidXRpb24gdHJpZ2dlciBkYXRhOiAxMgorQXR0cmlidXRpb24gcHJpb3JpdHk6IDQKK0F0dHJp
YnV0aW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29u
ZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0
aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCmluZGV4IGVjM2NjMGVhYzFl
MzU2MjE1NzA5ODExMTJkMzczMTE1ZmQwOWRjZDguLjRjMjlkZjY5ZGZlMmVhZjI2YzJlNWExNjI3
ZGIxMDQwNzJlZTliNTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hl
ci1wcmlvcml0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlv
cml0eS5odG1sCkBAIC03LDcgKzcsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVz
dCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgYSBzZWNvbmQgYXR0cmli
dXRpb24gY29udmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlvcml0eSByZXBsYWNlcyBhbiBvbGRlciB3
aXRoIGxvd2VyIHByaW9yaXR5LjwvZGl2PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRo
YXQgYSBzZWNvbmQgYXR0cmlidXRpb24gd2l0aCBoaWdoZXIgcHJpb3JpdHkgcmVwbGFjZXMgYW4g
b2xkZXIgd2l0aCBsb3dlciBwcmlvcml0eS48L2Rpdj4KIDxhIGlkPSJ0YXJnZXRMaW5rIj5MaW5r
PC9hPjxicj4KIDxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0
cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmli
dXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CmluZGV4IGMz
N2YzMThmYzc2OWFmMWU2YzE5NTc1ZDUwODRjMDI1NzUyZWM2ZGUuLmZlNjYyMjM4ZDVhOTlmNGNk
MDhjMmMyNGMwZmY2Zjk3YzU4ZTk3NmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13
aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQt
d2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMTEgQEAKLVRlc3Rz
IHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gY29udmVyc2lvbiB3aXRoIGxvd2VyIHByaW9yaXR5
IGRvZXMgbm90IHJlcGxhY2UgYW4gb2xkZXIgd2l0aCBoaWdoZXIgcHJpb3JpdHkuCitUZXN0cyB0
aGF0IGEgc2Vjb25kIGF0dHJpYnV0aW9uIHdpdGggbG93ZXIgcHJpb3JpdHkgZG9lcyBub3QgcmVw
bGFjZSBhbiBvbGRlciB3aXRoIGhpZ2hlciBwcmlvcml0eS4KIAogCi1Db252ZXJ0ZWQgUHJpdmF0
ZSBDbGljayBNZWFzdXJlbWVudHM6CitBdHRyaWJ1dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1l
bnRzOgogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQotU291cmNlOiAxMjcuMC4w
LjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1Db252ZXJzaW9uIGRh
dGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiA0Ci1Db252ZXJzaW9uIGVhcmxpZXN0IHRpbWUg
dG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFs
c2UKK1NvdXJjZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBzaXRlOiBsb2NhbGhvc3QK
K1NvdXJjZSBJRDogMworQXR0cmlidXRpb24gdHJpZ2dlciBkYXRhOiAxMgorQXR0cmlidXRpb24g
cHJpb3JpdHk6IDQKK0F0dHJpYnV0aW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0
LTQ4IGhvdXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlv
cml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbApp
bmRleCA0Zjg1ZThlNTZmZmQ2NTIxNDM5Yjk5M2Y4ZDc0OTY5Mjc3NzQ2ZDI3Li4xNjI3ZGJmMDcz
ODkwNjczYjM2ZDQzODkyMWI0MWU3NzY3NDJjMzYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252
ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13
aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0ic2V0
VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBh
IHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkgZG9lcyBu
b3QgcmVwbGFjZSBhbiBvbGRlciB3aXRoIGhpZ2hlciBwcmlvcml0eS48L2Rpdj4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IGEgc2Vjb25kIGF0dHJpYnV0aW9uIHdpdGggbG93ZXIg
cHJpb3JpdHkgZG9lcyBub3QgcmVwbGFjZSBhbiBvbGRlciB3aXRoIGhpZ2hlciBwcmlvcml0eS48
L2Rpdj4KIDxhIGlkPSJ0YXJnZXRMaW5rIj5MaW5rPC9hPjxicj4KIDxkaXYgaWQ9Im91dHB1dCI+
PC9kaXY+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4
dAppbmRleCAwMGE0ZmZlZWQ2ZGZhODJlOTgwM2Y2ZjZkMTI3YTk2NDk4ZjNiODBlLi4zYjlmYmM5
MmUxNjhhOGFmZDM2YWFhN2Q1NWE1MjFkNzUzNGFiMGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdp
dGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVy
LXByaW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMSBAQAotVGVzdHMgdGhhdCB0aGUg
YXR0cmlidXRpb24gaXMgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0
aCBoaWdoZXIgcHJpb3JpdHkuCitUZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyB1cGRhdGVk
IGlmIGl0IGdldHMgYSBzZWNvbmQgYXR0cmlidXRpb24gd2l0aCBoaWdoZXIgcHJpb3JpdHkuCiAK
IAotQ29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorQXR0cmlidXRlZCBQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50czoKIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
IDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJ
RDogMwotQ29udmVyc2lvbiBkYXRhOiAxMgotQ29udmVyc2lvbiBwcmlvcml0eTogNAotQ29udmVy
c2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycwotQ29udmVyc2lv
biByZXF1ZXN0IHNlbnQ6IGZhbHNlCitTb3VyY2Ugc2l0ZTogMTI3LjAuMC4xCitBdHRyaWJ1dGUg
b24gc2l0ZTogbG9jYWxob3N0CitTb3VyY2UgSUQ6IDMKK0F0dHJpYnV0aW9uIHRyaWdnZXIgZGF0
YTogMTIKK0F0dHJpYnV0aW9uIHByaW9yaXR5OiA0CitBdHRyaWJ1dGlvbiBlYXJsaWVzdCB0aW1l
IHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhp
Z2hlci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCmlu
ZGV4IDcyYjVlZjdkYWVmOWNmYTBmOTVhNGZhN2UzN2EzYjQwMjRmNzQzMzguLmZlM2VkNDg1Nzkw
ZjljZDcyNWY4MGIyYjYwMzY5MDc1M2YzODcyOGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1o
aWdoZXItcHJpb3JpdHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0
bWwKQEAgLTcsNyArNyw3IEBACiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+
Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCB0aGUgYXR0cmlidXRpb24gaXMgdXBk
YXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0aCBoaWdoZXIgcHJpb3JpdHku
PC9kaXY+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCB0aGUgYXR0cmlidXRpb24g
aXMgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGF0dHJpYnV0aW9uIHdpdGggaGlnaGVyIHBy
aW9yaXR5LjwvZGl2PgogPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgogPGRpdiBpZD0i
b3V0cHV0Ij48L2Rpdj4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXIt
cHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVj
dGVkLnR4dAppbmRleCBiM2Y1ZGNkODk0YzA0ODM1N2M5MTgzZmY2MDA0MTY1MzJkYjgyYjRhLi5j
ZDI1MjgxNzhlMDE4ZDM4Y2JmNTUwZGU5NmUzZGFmMTQ2MTMwMWI2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJz
aW9uLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1s
b3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMTEgQEAKLVRlc3RzIHRoYXQg
dGhlIGF0dHJpYnV0aW9uIGlzIG5vdCB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29udmVy
c2lvbiB3aXRoIGxvd2VyIHByaW9yaXR5LgorVGVzdHMgdGhhdCB0aGUgYXR0cmlidXRpb24gaXMg
bm90IHVwZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBhdHRyaWJ1dGlvbiB3aXRoIGxvd2VyIHBy
aW9yaXR5LgogCiAKLUNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK0F0dHJp
YnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CiBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9zdAot
Q2FtcGFpZ24gSUQ6IDMKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJpb3JpdHk6
IDQKLUNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMK
LUNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQorU291cmNlIHNpdGU6IDEyNy4wLjAuMQor
QXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNlIElEOiAzCitBdHRyaWJ1dGlvbiB0
cmlnZ2VyIGRhdGE6IDEyCitBdHRyaWJ1dGlvbiBwcmlvcml0eTogNAorQXR0cmlidXRpb24gZWFy
bGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNp
b24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5
Lmh0bWwKaW5kZXggMGQyMDRjOWY0MjBlMTJjMzhiZWQ4ZDIwY2M2MGJjYWE3NmYzYjA2Yi4uZjY2
MTA2MjU1OTA4YmZiMDc4NDRiZjUwZjk4YTc5ODg4MjE5OTIwMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lv
bi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9y
aXR5Lmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGls
LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0
LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCB0aGUgYXR0cmlidXRpb24g
aXMgbm90IHVwZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBjb252ZXJzaW9uIHdpdGggbG93ZXIg
cHJpb3JpdHkuPC9kaXY+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCB0aGUgYXR0
cmlidXRpb24gaXMgbm90IHVwZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBhdHRyaWJ1dGlvbiB3
aXRoIGxvd2VyIHByaW9yaXR5LjwvZGl2PgogPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJy
PgogPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24t
Y29udmVyc2lvbi1yZXF1ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVl
c3QtZXhwZWN0ZWQudHh0CmluZGV4IDk2NDJjOTliY2Q3NmVlZmJiZTNjNTZiOGUxMjMzMDM3ZjBk
ZjUwNGUuLmRlNGI1MzNkODg5MDkwN2YwMTcwNzE2NTkwODljOWZiYTUxNTljZWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1h
dHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdHMgc2Vu
ZGluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlcXVlc3RzIGFmdGVyIGEgY29udmVy
c2lvbi4gQWxzbyB0ZXN0cyB0aGF0IGNvb2tpZXMgYXJlIG5vdCBzZW50IGluIHRob3NlIHJlcXVl
c3RzIGFuZCBjb29raWVzIGFyZSBub3QgYWNjZXB0ZWQgaW4gdGhlIHJlc3BvbnNlcy4KK1Rlc3Rz
IHNlbmRpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCByZXF1ZXN0cyBhZnRlciBhbiBh
dHRyaWJ1dGlvbi4gQWxzbyB0ZXN0cyB0aGF0IGNvb2tpZXMgYXJlIG5vdCBzZW50IGluIHRob3Nl
IHJlcXVlc3RzIGFuZCBjb29raWVzIGFyZSBub3QgYWNjZXB0ZWQgaW4gdGhlIHJlc3BvbnNlcy4K
IAogCiAKQEAgLTEwLDExICsxMCwxMSBAQCBDb29raWVzIGFyZTogY29va2llU2V0QXNGaXJzdFBh
cnR5ID0gMQogLS0tLS0tLS0KIEZyYW1lOiAnPCEtLWZyYW1lMi0tPicKIC0tLS0tLS0tCi1Db252
ZXJzaW9uIHJlY2VpdmVkLgorQXR0cmlidXRpb24gcmVjZWl2ZWQuCiBIVFRQX0hPU1Q6IDEyNy4w
LjAuMTo4MDAwCiBDb250ZW50IHR5cGU6IGFwcGxpY2F0aW9uL2pzb24KIFJFUVVFU1RfVVJJOiAv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwCi1O
byBjb29raWVzIGluIGNvbnZlcnNpb24gcmVxdWVzdC4KK05vIGNvb2tpZXMgaW4gYXR0cmlidXRp
b24gcmVxdWVzdC4KIFJlcXVlc3QgYm9keToKIHsic291cmNlLWVuZ2FnZW1lbnQtdHlwZSI6ImNs
aWNrIiwic291cmNlLXNpdGUiOiIxMjcuMC4wLjEiLCJzb3VyY2UtaWQiOjMsImF0dHJpYnV0ZWQt
b24tc2l0ZSI6ImxvY2FsaG9zdCIsInRyaWdnZXItZGF0YSI6MTIsInJlcG9ydC12ZXJzaW9uIjox
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24t
Y29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKaW5kZXggYjI0NzMzNDMzMGY2MmZkZGMyZWNlY2FiYjEw
MzA2YTc3MjI3NzI5Ny4uYWQ4ZDg4Y2M5ZDYxOWYyOTMwODIwZTU2MGEzNTUxYzA2YjY0ZjM3YyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXJlcXVlc3QuaHRtbApAQCAtNyw3ICs3LDcgQEAKICAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJzZXRU
aW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyBzZW5kaW5n
IG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgcmVxdWVzdHMgYWZ0ZXIgYSBjb252ZXJzaW9u
LiBBbHNvIHRlc3RzIHRoYXQgY29va2llcyBhcmUgbm90IHNlbnQgaW4gdGhvc2UgcmVxdWVzdHMg
YW5kIGNvb2tpZXMgYXJlIG5vdCBhY2NlcHRlZCBpbiB0aGUgcmVzcG9uc2VzLjwvZGl2PgorPGRp
diBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHNlbmRpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJl
bWVudCByZXF1ZXN0cyBhZnRlciBhbiBhdHRyaWJ1dGlvbi4gQWxzbyB0ZXN0cyB0aGF0IGNvb2tp
ZXMgYXJlIG5vdCBzZW50IGluIHRob3NlIHJlcXVlc3RzIGFuZCBjb29raWVzIGFyZSBub3QgYWNj
ZXB0ZWQgaW4gdGhlIHJlc3BvbnNlcy48L2Rpdj4KIDxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbD9zdGVwVHdvIiBhdHRyaWJ1dGlvbnNvdXJjZWlk
PSIzIiBhdHRyaWJ1dGVvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KIDxk
aXYgaWQ9Im91dHB1dCI+PC9kaXY+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1l
YXN1cmVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50
eHQKaW5kZXggMzM4YjEwZWU1ZGU4MDY3NTFmYjdjMDRmMzVkYmFlZDAzYTk3MzExNy4uZGI1NTFk
MGI3ZWI2OGJlZGFkYjlmOTQ1YjJkZjY0NmYxOTM0ZjdjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhw
ZWN0ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAogVGVzdHMgc3RvcmFnZSBvZiBwcml2YXRlIGNsaWNr
IG1lYXN1cmVtZW50LgogCiAKLVVuY29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRz
OgorVW5hdHRyaWJ1dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgogV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQotU291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBs
b2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1ObyBjb252ZXJzaW9uIGRhdGEuCitTb3VyY2Ugc2l0
ZTogMTI3LjAuMC4xCitBdHRyaWJ1dGUgb24gc2l0ZTogbG9jYWxob3N0CitTb3VyY2UgSUQ6IDMK
K05vIGF0dHJpYnV0aW9uIHRyaWdnZXIgZGF0YS4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414742</attachid>
            <date>2020-11-20 15:59:57 -0800</date>
            <delta_ts>2020-11-20 16:38:53 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219134-20201120185956.patch</filename>
            <type>text/plain</type>
            <size>225356</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFiNTI2MDRkMWZjN2Q0
ZGI2NjYxMDViMTFmYmM2Yzk2YTIwNWIxMy4uNjY4ODNmZmI4OGJiYjI0Y2YxY2IwNzI4NzZjMmM0
MmNlNDYzM2ZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOSBAQAorMjAyMC0xMS0xOSAgS2F0
ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IFBl
cnNpc3QgcGVuZGluZyBhZCBjbGlja3MgYW5kIGF0dHJpYnV0aW9ucyBzbyB0aGV5IGNhbiBzdXJ2
aXZlIGJyb3dzZXIgcmVzdGFydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MTM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDQ3MDEyOT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBKb2huIFdpbGFuZGVyLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bWlncmF0ZXMgUENNIGRhdGEgdG8gYmUgc3RvcmVkIG9uIGRpc2sgYW5kCisgICAgICAgIHVwZGF0
ZXMgbmFtaW5nIG9mIHZhcmlvdXMgUENNIGRhdGEgdG8gbWF0Y2ggbmFtaW5nIGFncmVlZAorICAg
ICAgICB1cG9uIGluIHN0YW5kYXJkcyBib2RpZXM6CisKKyAgICAgICAgLSBzb3VyY2UgLT4gc291
cmNlU2l0ZQorICAgICAgICAtIGNhbXBhaWduL2NhbXBhaWduSUQgLT4gc291cmNlSUQKKyAgICAg
ICAgLSBkZXN0aW5hdGlvbiAtPiBhdHRyaWJ1dGVPblNpdGUKKyAgICAgICAgLSBjb252ZXJzaW9u
L2NvbnZlcnNpb25WYWx1ZSAtPiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhCisgICAgICAgIC0gdW5j
b252ZXJ0ZWQgLT4gdW5hdHRyaWJ1dGVkCisgICAgICAgIC0gY29udmVydChlZCkgLT4gYXR0cmli
dXRlKGQpCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvZXhwaXJlZC1hZC1jbGljay1nZXRzLXJlbW92ZWQtb24tc2Vzc2lvbi1zdGFydC5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQt
YXR0cmlidXRpb24tcmVwb3J0LWdldHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwKKworICAg
ICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEFuY2hvckVsZW1lbnQ6OnBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgY29uc3QpOgorICAg
ICAgICAqIGxvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6bWF4QWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRlQW5kR2V0
RWFybGllc3RUaW1lVG9TZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpoYXNIaWdoZXJQcmlvcml0eVRoYW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6anNvbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Y29udmVy
dEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZCk6IERlbGV0ZWQuCisgICAgICAgIFJlbmFtaW5nLgor
ICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjptYXJr
QXNFeHBpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpoYXNFeHBpcmVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjptYXJrQ29udmVyc2lvbkFzU2VudCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6d2FzQ29udmVyc2lvblNl
bnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICBXZSBjYW4gcmVtb3ZlIHRoZSAqRXhwaXJlZCgp
IGZ1bmN0aW9ucyBhcyB0aGV5IHdlcmUgb25seSBpbmRpY2F0b3JzCisgICAgICAgIGZvciB0aGUg
SGFzaE1hcCBzdG9yYWdlIHRvIGtub3cgd2hhdCBhdHRyaWJ1dGlvbnMgdG8gZGVsZXRlLiBUaGlz
IGlzCisgICAgICAgIG5vdyBoYW5kbGVkIGJ5IFNRTGl0ZS4gU2ltaWxhcmx5LCB3ZSBjYW4gcmVt
b3ZlIHRoZSBtYXJrQ29udmVyc2lvbkFzU2VudAorICAgICAgICBhbmQgd2FzQ29udmVyc2lvblNl
bnQgZnVuY3Rpb25zIGJlY2F1c2UgYSBzZW50IGF0dHJpYnV0aW9uIHdpbGwgbm90CisgICAgICAg
IGJlIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UsIHNvIHRoaXMgdmFsdWUgd2lsbCBhbHdheXMgYmUg
ZmFsc2UuCisKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b1N0
cmluZyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlSUQ6OlNvdXJjZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2VTaXRlOjpTb3VyY2VTaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlOjpkZWxldGVkVmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNp
dGU6OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZUhhc2g6Omhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGVIYXNoOjplcXVhbCk6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlOjpBdHRy
aWJ1dGVPblNpdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0ZU9uU2l0ZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlOjpkZWxldGVkVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0
ZTo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGVIYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGVIYXNoOjplcXVhbCk6
CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25U
cmlnZ2VyRGF0YTo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSk6CisgICAgICAgIFJlbmFtaW5nLgor
CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnNvdXJjZVNpdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OmF0dHJpYnV0ZU9uU2l0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6dGltZU9mQWRDbGljayBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0RWFybGllc3RUaW1lVG9TZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpzb3VyY2VJRCk6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25UcmlnZ2VyRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c2V0QXR0cmli
dXRpb24pOgorICAgICAgICBOb3cgdGhhdCB3ZSBzdG9yZSBkYXRhIG9uIGRpc2ssIHdlIG5lZWQg
YSBtb3JlIGZsZXhpYmxlIGNvbnN0cnVjdG9yCisgICAgICAgIGFuZCBtb3JlIGZ1bmN0aW9ucyB0
byByZWJ1aWxkIFBDTSBvYmplY3RzIGZyb20gdGhlIGRhdGFiYXNlLgorCisgICAgICAgIChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRpb25UcmlnZ2VyRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZT46OmVtcHR5VmFsdWUp
OgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2VTaXRlPjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdURjo6
SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZT46
OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlPjo6ZW1wdHlWYWx1ZSk6CisgICAg
ICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0ZU9uU2l0ZT46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhh
c2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0
ZT46OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpDYW1wYWlnbjo6Q2FtcGFpZ24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduOjppc1ZhbGlkIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6OlNv
dXJjZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6U291cmNlOjpvcGVyYXRvcj09IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6Om1hdGNoZXMgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6aXNI
YXNoVGFibGVEZWxldGVkVmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTo6ZGVsZXRlZFZhbHVlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U6OmNvbnN0
cnVjdERlbGV0ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlOjpkZWxldGVWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOjppc0RlbGV0ZWRWYWx1ZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6U291cmNlSGFzaDo6aGFzaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlSGFzaDo6ZXF1YWwpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjpEZXN0aW5hdGlv
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
RGVzdGluYXRpb246Om9wZXJhdG9yPT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjptYXRjaGVzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0
aW5hdGlvbjo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjpkZWxldGVk
VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkRlc3RpbmF0aW9uOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOjpkZWxldGVW
YWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6RGVzdGluYXRpb246OmlzRGVsZXRlZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbkhhc2g6Omhhc2gp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRl
c3RpbmF0aW9uSGFzaDo6ZXF1YWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb246OkNvbnZlcnNpb24pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb246OmlzVmFs
aWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OnNvdXJjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6ZGVzdGluYXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICBS
ZW5hbWluZy4KKworICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Omlz
RW1wdHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICBOb3QgbmVlZGVkIGFueW1vcmUsIHRoZSBk
YXRhYmFzZSB1c2VzIE9wdGlvbmFscyB0byBpbmRpY2F0ZSBhbiBlbXB0eSByZXN1bHQuCisKKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uOjplbmNv
ZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkNvbnZlcnNpb246OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Okhhc2hU
cmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZT46OmVtcHR5VmFs
dWUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpTb3VyY2U+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOiBEZWxldGVk
LgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2U+Ojppc0RlbGV0ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Okhh
c2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPjo6
ZW1wdHlWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPjo6Y29uc3RydWN0RGVsZXRlZFZh
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24+Ojppc0RlbGV0ZWRWYWx1ZSk6IERlbGV0ZWQu
CisgICAgICAgIFJlbmFtaW5nLgorCiAyMDIwLTExLTE5ICBEb24gT2xtc3RlYWQgIDxkb24ub2xt
c3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgVXNlIGZpbmFsIGluIGdlbmVyYXRlZCB3cmFwcGVy
IG93bmVyIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzRiNDcxYTRlYjgyMGY1MjI3NjJiMmExODNmM2RiYjc3
NzdjOWIzMi4uNDFmYjNiMGFjYzA3NTdiMjI2YmNiMzgxYjI0MzVkNjZkOTdlOGY2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNDggQEAKKzIwMjAtMTEtMTkgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5l
X2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBQZXJzaXN0IHBlbmRpbmcgYWQgY2xp
Y2tzIGFuZCBhdHRyaWJ1dGlvbnMgc28gdGhleSBjYW4gc3Vydml2ZSBicm93c2VyIHJlc3RhcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTEzNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA0NzAxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Sm9obiBXaWxhbmRlci4KKworICAgICAgICBUaGlzIHBhdGNoIG1pZ3JhdGVzIFByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnQgdG8gdXNlIFNRTGl0ZSwKKyAgICAgICAgd2hpY2ggaXMgYmVuZWZpY2lh
bCBiZWNhdXNlIGl0IHJlcXVpcmVzIGxlc3MgaW4tbWVtb3J5IHN0b3JhZ2UgYW5kCisgICAgICAg
IHBlcnNpc3RzIFBDTSBkYXRhIGFjcm9zcyBicm93c2VyIHNlc3Npb25zLiBJdCBhbHNvIHVwZGF0
ZXMgbmFtaW5nCisgICAgICAgIHRvIG1hdGNoIG5hbWluZyBhZ3JlZWQgdXBvbiBpbiBzdGFuZGFy
ZHMgYm9kaWVzOgorCisgICAgICAgIC0gc291cmNlIC0+IHNvdXJjZVNpdGUKKyAgICAgICAgLSBj
YW1wYWlnbi9jYW1wYWlnbklEIC0+IHNvdXJjZUlECisgICAgICAgIC0gZGVzdGluYXRpb24gLT4g
YXR0cmlidXRlT25TaXRlCisgICAgICAgIC0gY29udmVyc2lvbi9jb252ZXJzaW9uVmFsdWUgLT4g
YXR0cmlidXRpb25UcmlnZ2VyRGF0YQorICAgICAgICAtIHVuY29udmVydGVkIC0+IHVuYXR0cmli
dXRlZAorICAgICAgICAtIGNvbnZlcnQoZWQpIC0+IGF0dHJpYnV0ZShkKQorCisgICAgICAgIFRo
aXMgYWRkcyAzIFNRTGl0ZSB0YWJsZXM6IG9uZSBmb3IgY2xpY2tzIHRoYXQgaGF2ZW4ndCBiZWVu
CisgICAgICAgIGF0dHJpYnV0ZWQsIG9uZSBmb3IgYXR0cmlidXRpb25zIHRoYXQgaGF2ZW4ndCBi
ZWVuIHNlbnQsIGFuZCBvbmUgdG8KKyAgICAgICAgc3RvcmUgdGhlIGxhc3QgdGltZSB0aGUgcmVw
b3J0cyB3ZXJlIHNlbnQgdG8gbWFrZSBzdXJlIHJlcG9ydHMgZ2V0CisgICAgICAgIHNlbnQgYXMg
c29vbiBhcyBwb3NzaWJsZSBpZiBuZWVkZWQgYWZ0ZXIgYSBicm93c2VyIHJlc3RhcnQuCisKKyAg
ICAgICAgQmVoYXZpb3IgaXMgaWRlbnRpY2FsIHRvIGV4aXN0aW5nIFBDTSBpbXBsZW1lbnRhdGlv
biB3aXRoIHRoZSBhZGRpdGlvbgorICAgICAgICBvZiBwZXJzaXN0ZW5jZS4gRXhpc3RpbmcgUENN
IHRlc3RzIGNvbmZpcm0gbm8gcmVncmVzc2lvbnMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9o
biBXaWxhbmRlci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVUYWJsZVF1ZXJpZXMpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUpOgorICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRl
VW5pcXVlSW5kaWNlcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZGVzdHJveVN0YXRlbWVudHMpOgorICAgICAgICBO
ZXcgcXVlcmllcyB0byBpbnRlcmFjdCB3aXRoIFBDTSBkYXRhLgorCisgICAgICAgIChXZWJLaXQ6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVUaW1lckxhc3RGaXJl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojp0aW1lckxhc3RGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9u
VGltZXMpOgorICAgICAgICBTZXQgZWFybGllc3RUaW1lVG9TZW5kIHRvIGJlIHRoZSBvcmlnaW5h
bCB2YWx1ZSBtaW51cyB0aGUgdGltZSBwYXNzZWQgc2luY2UgdGhlIGxhc3QgdGltZXIgZmlyZQor
ICAgICAgICBmb3IgZWFjaCBlbnRyeS4gSWYgdGhlIHJlc3VsdCBpcyBsZXNzIHRoYW4gMCwgc2V0
IHRvIDAgc28gdGhlIHJlcG9ydCBnZXRzIHNlbnQgaW1tZWRpYXRlbHkuCisKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmJ1aWxkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRGcm9tRGF0YWJhc2UpOgorICAgICAgICBDcmVhdGVzIGEgUENNIG9iamVj
dCBmcm9tIGRhdGEgaW4gdGhlIGRhdGFiYXNlLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpmaW5kUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQp
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0FsbFVuYXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZW1vdmVVbmF0dHJpYnV0ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YXR0
cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJFeHBpcmVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6YXR0cmlidXRpb25Ub1N0cmluZyk6CisgICAgICAgIChXZWJLaXQ6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFRvU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmNsZWFyU2VudEF0dHJpYnV0aW9ucyk6CisgICAgICAgIFRoZXNlIGZ1bmN0
aW9ucyB1c2UgZGF0YWJhc2UgcXVlcmllcyB0byBpbXBsZW1lbnQgUENNIGZ1bmN0aW9uYWxpdHkg
d2l0aCBleGFjdGx5IHRoZSBzYW1lCisgICAgICAgIGJlaGF2aW9yIGFzIHRoZSBpbi1tZW1vcnkg
UENNIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZVRpbWVyTGFzdEZpcmVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjppbnNlcnRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6bWFya0FsbFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVk
Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmFsbEF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEZvclJlZ2lzdHJhYmxlRG9tYWluKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJTZW50QXR0cmlidXRpb25zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjptYXJrQXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpmaXJlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUaW1lcklt
bWVkaWF0ZWx5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBp
cmVkRm9yVGVzdGluZyk6CisgICAgICAgIFRlc3QgZnVuY3Rpb25zIHRvIGhlbHAgc2ltdWxhdGUg
YSBicm93c2VyIHJlc3RhcnQgYWZ0ZXIgUENNIGRhdGEgaGFzIGV4cGlyZWQgZHVyaW5nCisgICAg
ICAgIGEgc2Vzc2lvbiBjbG9zZS4gVGhpcyBpcyB0aGUgb25seSBiZWhhdmlvciBjaGFuZ2UgZnJv
bSB0aGUgZXhpc3RpbmcgUENNIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bjo6ZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseSk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmhhbmRsZVByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29udmVyc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjptYXJr
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6bWFya1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmg6CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXI6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcik6CisgICAgICAgIE1v
dmUgY29uc3RydWN0b3IgdG8gY3BwIGZpbGUgdG8gY2FsbCBzdGFydFRpbWVyKDVfcykgd2hpY2gg
d2lsbCBraWNrCisgICAgICAgIG9mZiBzZW5kaW5nIGFueSByZXBvcnRzIHRoYXQgaGF2ZSBleHBp
cmVkIGluIHRoZSBkYXRhYmFzZS4gV2Ugc2hvdWxkCisgICAgICAgIHdhaXQgNSBzZWNvbmRzIHNv
IHdlIGFyZSBzdXJlIElUUCBpcyB1cCBhbmQgcnVubmluZy4KKworICAgICAgICAoV2ViS2l0OjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKToKKyAgICAg
ICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVBdHRyaWJ1
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6
c3RhcnRUaW1lcik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcjo6YXR0cmlidXRlKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyU2VudEF0dHJpYnV0aW9ucyk6CisgICAg
ICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6dXBkYXRlVGltZXJM
YXN0RmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OmZpcmVQZW5kaW5nQXR0cmlidXRpb25SZXF1ZXN0cyk6CisgICAgICAgIChXZWJLaXQ6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViS2l0OjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4p
OgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFy
RXhwaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cjo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXI6OnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktp
dDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjptYXJrQWxsVW5hdHRyaWJ1dGVkQXNF
eHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcjo6bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGly
ZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyOjpzdG9yZVVuY29udmVydGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVDb252ZXJzaW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjb252ZXJ0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpmaXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0cyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6bWFya0FsbFVuY29udmVydGVk
QXNFeHBpcmVkRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIEltcGxlbWVudGF0aW9uIG1v
dmVkIHRvIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmg6CisgICAgICAg
IChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgTW92ZWQgdG8gY3BwIGZpbGUuCisK
KyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjptX3Nlc3Np
b25JRCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6Cisg
ICAgICAgIChXS1BhZ2VNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhw
aXJlZEZvclRlc3RpbmcpOgorICAgICAgICAoV0tQYWdlU2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU2Vzc2lvblJlc3RhcnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIFRlc3Rpbmcgc3VwcG9ydC4KKwog
MjAyMC0xMS0xOSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW21hY09TXSBJc3N1ZSBzYW5kYm94IGV4dGVuc2lvbiB0byBXZWIgSW5zcGVjdG9yIHNlcnZp
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggN2JjMzc0
OGRmYjk4YzBmZGUzMWM1YmUzYTFkZjExMTM4OWI4MTU5ZC4uYmRmMzljNzNjOWUxMjlmMDMxNjNm
ZjEwZmM2NjFhMmE0ZjMyNTY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5jcHAKQEAgLTQwMCw5ICs0MDAsOSBAQCBib29sIEhUTUxBbmNob3JFbGVtZW50Ojppc1N5
c3RlbVByZXZpZXdMaW5rKCkKIAogT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IEhU
TUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01lYXN1cmVtZW50KCkgY29uc3QKIHsK
LSAgICB1c2luZyBDYW1wYWlnbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbjsK
LSAgICB1c2luZyBTb3VyY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOwotICAg
IHVzaW5nIERlc3RpbmF0aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9u
OworICAgIHVzaW5nIFNvdXJjZUlEID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlE
OworICAgIHVzaW5nIFNvdXJjZVNpdGUgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNl
U2l0ZTsKKyAgICB1c2luZyBBdHRyaWJ1dGVPblNpdGUgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRlT25TaXRlOwogCiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgp
OwogICAgIGlmICghcGFnZSB8fCBwYWdlLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpCkBAIC00
NTAsNyArNDUwLDcgQEAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IEhUTUxBbmNo
b3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01lYXN1cmVtZW4KICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKICAgICB9CiAKLSAgICByZXR1cm4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
eyBDYW1wYWlnbihhdHRyaWJ1dGlvblNvdXJjZUlELnZhbHVlKCkpLCBTb3VyY2UoZG9jdW1lbnRS
ZWdpc3RyYWJsZURvbWFpbiksIERlc3RpbmF0aW9uKGF0dHJpYnV0ZU9uVVJMKSB9OworICAgIHJl
dHVybiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7IFNvdXJjZUlEKGF0dHJpYnV0aW9uU291cmNl
SUQudmFsdWUoKSksIFNvdXJjZVNpdGUoZG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbiksIEF0dHJp
YnV0ZU9uU2l0ZShhdHRyaWJ1dGVPblVSTCkgfTsKIH0KIAogdm9pZCBIVE1MQW5jaG9yRWxlbWVu
dDo6aGFuZGxlQ2xpY2soRXZlbnQmIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggYjBiYWJiNDU5MGYxNmU4ZTlhOWE2
OGM1ZDNhYWE3NDRjMDU2YTlkNS4uMWI1N2QzNmZhZDA3YjA4NGViZDA4NzkzMDg2ZjI1MjliY2Qx
ZjBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQuY3BwCkBAIC0zNywyMSArMzcsMjUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Rh
dGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRQYXRoUHJlZml4W10gPSAiLy53
ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIjsKLWNvbnN0IHNpemVfdCBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplID0gMjsKK2Nv
bnN0IHNpemVfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGFQ
YXRoU2VnbWVudFNpemUgPSAyOwogY29uc3Qgc2l6ZV90IHByaXZhdGVDbGlja01lYXN1cmVtZW50
UHJpb3JpdHlQYXRoU2VnbWVudFNpemUgPSAyOwotY29uc3QgU2Vjb25kcyBtYXhBZ2UgeyAyNF9o
ICogNyB9OworCitjb25zdCBTZWNvbmRzIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjptYXhBZ2Uo
KQoreworICAgIHJldHVybiAyNF9oICogNzsKK307CiAKIGJvb2wgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OmlzVmFsaWQoKSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnZlcnNpb24KLSAgICAg
ICAgJiYgbV9jb252ZXJzaW9uLnZhbHVlKCkuaXNWYWxpZCgpCi0gICAgICAgICYmIG1fY2FtcGFp
Z24uaXNWYWxpZCgpCi0gICAgICAgICYmICFtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5pc0Vt
cHR5KCkKLSAgICAgICAgJiYgIW1fZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4uaXNFbXB0
eSgpCisgICAgcmV0dXJuIG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YQorICAgICAgICAmJiBtX2F0
dHJpYnV0aW9uVHJpZ2dlckRhdGEudmFsdWUoKS5pc1ZhbGlkKCkKKyAgICAgICAgJiYgbV9zb3Vy
Y2VJRC5pc1ZhbGlkKCkKKyAgICAgICAgJiYgIW1fc291cmNlU2l0ZS5yZWdpc3RyYWJsZURvbWFp
bi5pc0VtcHR5KCkKKyAgICAgICAgJiYgIW1fYXR0cmlidXRlT25TaXRlLnJlZ2lzdHJhYmxlRG9t
YWluLmlzRW1wdHkoKQogICAgICAgICAmJiBtX2VhcmxpZXN0VGltZVRvU2VuZDsKIH0KIAotRXhw
ZWN0ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24sIFN0cmluZz4gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgVVJMJiByZWRp
cmVjdFVSTCkKK0V4cGVjdGVkPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhLCBTdHJpbmc+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0
aW9uUmVxdWVzdChjb25zdCBVUkwmIHJlZGlyZWN0VVJMKQogewogICAgIGlmICghcmVkaXJlY3RV
UkwucHJvdG9jb2xJcygiaHR0cHMiKSB8fCByZWRpcmVjdFVSTC5oYXNDcmVkZW50aWFscygpIHx8
IHJlZGlyZWN0VVJMLmhhc1F1ZXJ5KCkgfHwgcmVkaXJlY3RVUkwuaGFzRnJhZ21lbnRJZGVudGlm
aWVyKCkpIHsKICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKQEAg
LTcxLDkgKzc1LDkgQEAgRXhwZWN0ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNp
b24sIFN0cmluZz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnAKICAgICB9CiAKICAgICBhdXRv
IHByZWZpeExlbmd0aCA9IHNpemVvZihwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXgp
IC0gMTsKLSAgICBpZiAocGF0aC5sZW5ndGgoKSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplKSB7Ci0gICAgICAgIGF1
dG8gY29udmVyc2lvbkRhdGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUpLnRvVUlu
dDY0U3RyaWN0KCk7Ci0gICAgICAgIGlmICghY29udmVyc2lvbkRhdGFVSW50NjQgfHwgKmNvbnZl
cnNpb25EYXRhVUludDY0ID4gTWF4RW50cm9weSkgeworICAgIGlmIChwYXRoLmxlbmd0aCgpID09
IHByZWZpeExlbmd0aCArIHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2Vy
RGF0YVBhdGhTZWdtZW50U2l6ZSkgeworICAgICAgICBhdXRvIGF0dHJpYnV0aW9uVHJpZ2dlckRh
dGFVSW50NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIHByaXZhdGVDbGlja01lYXN1
cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YVBhdGhTZWdtZW50U2l6ZSkudG9VSW50NjRTdHJp
Y3QoKTsKKyAgICAgICAgaWYgKCFhdHRyaWJ1dGlvblRyaWdnZXJEYXRhVUludDY0IHx8ICphdHRy
aWJ1dGlvblRyaWdnZXJEYXRhVUludDY0ID4gTWF4RW50cm9weSkgewogICAgICAgICAgICAgaWYg
KFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNF
X0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQ29udmVyc2lvbiB3YXMgbm90IGFj
Y2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZlcnNpb24gZGF0YSBjb3VsZCBub3QgYmUgcGFyc2VkIG9y
IHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4
RW50cm9weSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJp
bmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0
ZWQgYmVjYXVzZSB0aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2Fz
IGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJf
cykpOwpAQCAtODEsMTIgKzg1LDEyIEBAIEV4cGVjdGVkPFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpDb252ZXJzaW9uLCBTdHJpbmc+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwCiAgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKICAgICAgICAgfQogCi0g
ICAgICAgIHJldHVybiBDb252ZXJzaW9uIHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KCpjb252ZXJz
aW9uRGF0YVVJbnQ2NCksIFByaW9yaXR5IHsgMCB9IH07CisgICAgICAgIHJldHVybiBBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhIHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KCphdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhVUludDY0KSwgUHJpb3JpdHkgeyAwIH0gfTsKICAgICB9CiAgICAgCi0gICAgaWYgKHBh
dGgubGVuZ3RoKCkgPT0gcHJlZml4TGVuZ3RoICsgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSArIDEgKyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBy
aW9yaXR5UGF0aFNlZ21lbnRTaXplKSB7Ci0gICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGFVSW50
NjQgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIHByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7Ci0gICAgICAg
IGlmICghY29udmVyc2lvbkRhdGFVSW50NjQgfHwgKmNvbnZlcnNpb25EYXRhVUludDY0ID4gTWF4
RW50cm9weSkgeworICAgIGlmIChwYXRoLmxlbmd0aCgpID09IHByZWZpeExlbmd0aCArIHByaXZh
dGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YVBhdGhTZWdtZW50U2l6ZSAr
IDEgKyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFByaW9yaXR5UGF0aFNlZ21lbnRTaXplKSB7Cisg
ICAgICAgIGF1dG8gYXR0cmlidXRpb25UcmlnZ2VyRGF0YVVJbnQ2NCA9IHBhdGguc3Vic3RyaW5n
KHByZWZpeExlbmd0aCwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhUGF0aFNlZ21lbnRTaXplKS50b1VJbnQ2NFN0cmljdCgpOworICAgICAgICBpZiAoIWF0dHJp
YnV0aW9uVHJpZ2dlckRhdGFVSW50NjQgfHwgKmF0dHJpYnV0aW9uVHJpZ2dlckRhdGFVSW50NjQg
PiBNYXhFbnRyb3B5KSB7CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxl
ZCgpKSkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgY29udmVy
c2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxv
d2VkIG1heGltdW0gb2YgJXtwdWJsaWN9dS4iLCBNYXhFbnRyb3B5KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJzaW9u
IGRhdGEgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQg
bWF4aW11bSBvZiAiX3MsIE1heEVudHJvcHksICIuIl9zKSk7CkBAIC05NCw4ICs5OCw4IEBAIEV4
cGVjdGVkPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uLCBTdHJpbmc+IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpwCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
bnVsbFN0cmluZygpKTsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gY29udmVyc2lvblByaW9y
aXR5VUludDY0ID0gcGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3RoICsgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb252ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSArIDEsIHByaXZhdGVDbGlja01l
YXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7Ci0gICAg
ICAgIGlmICghY29udmVyc2lvblByaW9yaXR5VUludDY0IHx8ICpjb252ZXJzaW9uUHJpb3JpdHlV
SW50NjQgPiBNYXhFbnRyb3B5KSB7CisgICAgICAgIGF1dG8gYXR0cmlidXRpb25Qcmlvcml0eVVJ
bnQ2NCA9IHBhdGguc3Vic3RyaW5nKHByZWZpeExlbmd0aCArIHByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YVBhdGhTZWdtZW50U2l6ZSArIDEsIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7Cisg
ICAgICAgIGlmICghYXR0cmlidXRpb25Qcmlvcml0eVVJbnQ2NCB8fCAqYXR0cmlidXRpb25Qcmlv
cml0eVVJbnQ2NCA+IE1heEVudHJvcHkpIHsKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1
Z01vZGVFbmFibGVkKCkpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNl
IHRoZSBwcmlvcml0eSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUg
YWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4RW50cm9weSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgcHJpb3Jp
dHkgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4
aW11bSBvZiAiX3MsIE1heEVudHJvcHksICIuIl9zKSk7CkBAIC0xMDMsNyArMTA3LDcgQEAgRXhw
ZWN0ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24sIFN0cmluZz4gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OnAKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChu
dWxsU3RyaW5nKCkpOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIENvbnZlcnNpb24geyBz
dGF0aWNfY2FzdDx1aW50MzJfdD4oKmNvbnZlcnNpb25EYXRhVUludDY0KSwgUHJpb3JpdHkgeyBz
dGF0aWNfY2FzdDx1aW50MzJfdD4oKmNvbnZlcnNpb25Qcmlvcml0eVVJbnQ2NCkgfSB9OworICAg
ICAgICByZXR1cm4gQXR0cmlidXRpb25UcmlnZ2VyRGF0YSB7IHN0YXRpY19jYXN0PHVpbnQzMl90
PigqYXR0cmlidXRpb25UcmlnZ2VyRGF0YVVJbnQ2NCksIFByaW9yaXR5IHsgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KCphdHRyaWJ1dGlvblByaW9yaXR5VUludDY0KSB9IH07CiAgICAgfQogCiAgICAg
aWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKQEAgLTExMywxMiArMTE3LDEyIEBA
IEV4cGVjdGVkPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uLCBTdHJpbmc+IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpwCiAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51bGxT
dHJpbmcoKSk7CiB9CiAKLU9wdGlvbmFsPFNlY29uZHM+IFByaXZhdGVDbGlja01lYXN1cmVtZW50
Ojpjb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKENvbnZlcnNpb24mJiBjb252ZXJzaW9u
KQorT3B0aW9uYWw8U2Vjb25kcz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0ZUFu
ZEdldEVhcmxpZXN0VGltZVRvU2VuZChBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRp
b25UcmlnZ2VyRGF0YSkKIHsKLSAgICBpZiAoIWNvbnZlcnNpb24uaXNWYWxpZCgpIHx8IChtX2Nv
bnZlcnNpb24gJiYgbV9jb252ZXJzaW9uLT5wcmlvcml0eSA+PSBjb252ZXJzaW9uLnByaW9yaXR5
KSkKKyAgICBpZiAoIWF0dHJpYnV0aW9uVHJpZ2dlckRhdGEuaXNWYWxpZCgpIHx8IChtX2F0dHJp
YnV0aW9uVHJpZ2dlckRhdGEgJiYgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+
PSBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLnByaW9yaXR5KSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIG1fY29udmVyc2lvbiA9IFdURk1vdmUoY29udmVyc2lvbik7CisgICAgbV9hdHRyaWJ1
dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsKICAgICAv
LyAyNC00OCBob3VyIGRlbGF5IGJlZm9yZSBzZW5kaW5nLiBUaGlzIGhlbHBzIHByaXZhY3kgc2lu
Y2UgdGhlIGNvbnZlcnNpb24gYW5kIHRoZSBhdHRyaWJ1dGlvbgogICAgIC8vIHJlcXVlc3RzIGFy
ZSBkZXRhY2hlZCBhbmQgdGhlIHRpbWUgb2YgdGhlIGF0dHJpYnV0aW9uIGRvZXMgbm90IHJldmVh
bCB0aGUgdGltZSBvZiB0aGUgY29udmVyc2lvbi4KICAgICBhdXRvIHNlY29uZHMgPSAyNF9oICsg
U2Vjb25kcyhyYW5kb21OdW1iZXIoKSAqICgyNF9oKS52YWx1ZSgpKTsKQEAgLTEyNiwyNSArMTMw
LDE1IEBAIE9wdGlvbmFsPFNlY29uZHM+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpjb252ZXJ0
QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKENvbnZlCiAgICAgcmV0dXJuIHNlY29uZHM7CiB9CiAK
LXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Om1hcmtBc0V4cGlyZWQoKQotewotICAgIG1f
dGltZU9mQWRDbGljayA9IHsgfTsKLX0KLQotYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
aGFzRXhwaXJlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKSA+IG1fdGlt
ZU9mQWRDbGljayArIG1heEFnZTsKLX0KLQogYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
aGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50JiBvdGhl
cikgY29uc3QKIHsKLSAgICBpZiAoIW90aGVyLm1fY29udmVyc2lvbikKKyAgICBpZiAoIW90aGVy
Lm1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCi0g
ICAgaWYgKCFtX2NvbnZlcnNpb24pCisgICAgaWYgKCFtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBtX2NvbnZlcnNpb24tPnByaW9y
aXR5ID4gb3RoZXIubV9jb252ZXJzaW9uLT5wcmlvcml0eTsKKyAgICByZXR1cm4gbV9hdHRyaWJ1
dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+IG90aGVyLm1fYXR0cmlidXRpb25UcmlnZ2VyRGF0
YS0+cHJpb3JpdHk7CiB9CiAKIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cmVwb3J0VVJM
KCkgY29uc3QKQEAgLTE1NCw3ICsxNDgsNyBAQCBVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnJlcG9ydFVSTCgpIGNvbnN0CiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJodHRwczovLyIpOwotICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291
cmNlLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBidWlsZGVyLmFwcGVuZChtX3Nv
dXJjZVNpdGUucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOwogICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXgpOwogCiAgICAgVVJMIHVy
bCB7IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKQEAgLTE2Nyw2MCArMTYxLDE4IEBAIFVS
TCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cmVwb3J0VVJMKCkgY29uc3QKIFJlZjxKU09OOjpP
YmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpqc29uKCkgY29uc3QKIHsKICAgICBhdXRv
IHJlcG9ydERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotICAgIGlmICghbV9jb252
ZXJzaW9uKQorICAgIGlmICghbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogICAgICAgICByZXR1
cm4gcmVwb3J0RGV0YWlsczsKIAogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygic291cmNl
LWVuZ2FnZW1lbnQtdHlwZSJfcywgImNsaWNrIl9zKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRT
dHJpbmcoInNvdXJjZS1zaXRlIl9zLCBtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmco
KSk7Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigic291cmNlLWlkIl9zLCBtX2NhbXBh
aWduLmlkKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoImF0dHJpYnV0ZWQtb24tc2l0
ZSJfcywgbV9kZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgcmVw
b3J0RGV0YWlscy0+c2V0SW50ZWdlcigidHJpZ2dlci1kYXRhIl9zLCBtX2NvbnZlcnNpb24tPmRh
dGEpOworICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygic291cmNlLXNpdGUiX3MsIG1fc291
cmNlU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgcmVwb3J0RGV0YWlscy0+
c2V0SW50ZWdlcigic291cmNlLWlkIl9zLCBtX3NvdXJjZUlELmlkKTsKKyAgICByZXBvcnREZXRh
aWxzLT5zZXRTdHJpbmcoImF0dHJpYnV0ZWQtb24tc2l0ZSJfcywgbV9hdHRyaWJ1dGVPblNpdGUu
cmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOworICAgIHJlcG9ydERldGFpbHMtPnNldEludGVn
ZXIoInRyaWdnZXItZGF0YSJfcywgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5kYXRhKTsKICAg
ICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJyZXBvcnQtdmVyc2lvbiJfcywgMSk7CiAgICAg
cmV0dXJuIHJlcG9ydERldGFpbHM7CiB9CiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
Om1hcmtDb252ZXJzaW9uQXNTZW50KCkKLXsKLSAgICBBU1NFUlQobV9jb252ZXJzaW9uKTsKLSAg
ICBpZiAobV9jb252ZXJzaW9uKQotICAgICAgICBtX2NvbnZlcnNpb24tPndhc1NlbnQgPSBDb252
ZXJzaW9uOjpXYXNTZW50OjpZZXM7Ci19Ci0KLWJvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
Ondhc0NvbnZlcnNpb25TZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb252ZXJzaW9uICYm
IG1fY29udmVyc2lvbi0+d2FzU2VudCA9PSBDb252ZXJzaW9uOjpXYXNTZW50OjpZZXM7Ci19Ci0K
LVN0cmluZyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6dG9TdHJpbmcoKSBjb25zdAotewotICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlNvdXJj
ZTogIik7Ci0gICAgYnVpbGRlci5hcHBlbmQobV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uc3Ry
aW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5EZXN0aW5hdGlvbjogIik7Ci0g
ICAgYnVpbGRlci5hcHBlbmQobV9kZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmco
KSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNhbXBhaWduIElEOiAiKTsKLSAgICBi
dWlsZGVyLmFwcGVuZE51bWJlcihtX2NhbXBhaWduLmlkKTsKLSAgICBpZiAobV9jb252ZXJzaW9u
KSB7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5Db252ZXJzaW9uIGRhdGE6ICIp
OwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NvbnZlcnNpb24udmFsdWUoKS5kYXRh
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gcHJpb3JpdHk6
ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NvbnZlcnNpb24udmFsdWUoKS5w
cmlvcml0eSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5Db252ZXJzaW9uIGVh
cmxpZXN0IHRpbWUgdG8gc2VuZDogIik7Ci0gICAgICAgIGlmICghbV9lYXJsaWVzdFRpbWVUb1Nl
bmQpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIk5vdCBzZXQiKTsKLSAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQgPSAqbV9lYXJsaWVz
dFRpbWVUb1NlbmQgLSBXYWxsVGltZTo6bm93KCk7Ci0gICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgoc2Vjb25kc1VudGlsU2VuZCA+PSAyNF9oICYmIHNlY29uZHNVbnRpbFNlbmQgPD0gNDhfaCkg
PyAiV2l0aGluIDI0LTQ4IGhvdXJzIiA6ICJPdXRzaWRlIDI0LTQ4IGhvdXJzIik7Ci0gICAgICAg
IH0KLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gcmVxdWVzdCBz
ZW50OiAiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoKHdhc0NvbnZlcnNpb25TZW50KCkgPyAi
dHJ1ZSIgOiAiZmFsc2UiKSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiXG5ObyBjb252ZXJzaW9uIGRhdGEuIik7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7
Ci0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwotfQotCiBib29sIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpkZWJ1Z01vZGVFbmFibGVkKCkKIHsKICAgICByZXR1cm4gUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudERl
YnVnTW9kZUVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmgKaW5kZXggYTYwMmY3Y2M2OWFkYWU4OTNhOTcyZmVmMzQ1MDhhMGY1MTQz
YTUyMC4uMTMyOGY3NmRmNjdhMDZkYTNjN2FmNjg0Zjc4ZGNlODc2YWMyNGI1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTM5LDE1
ICszOSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByaXZhdGVDbGlja01lYXN1
cmVtZW50IHsKIHB1YmxpYzoKLSAgICB1c2luZyBDYW1wYWlnbklkID0gdWludDMyX3Q7Ci0gICAg
dXNpbmcgQ29udmVyc2lvbkRhdGEgPSB1aW50MzJfdDsKICAgICB1c2luZyBQcmlvcml0eVZhbHVl
ID0gdWludDMyX3Q7CiAKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IE1heEVudHJvcHkg
PSA2MzsKIAotICAgIHN0cnVjdCBDYW1wYWlnbiB7Ci0gICAgICAgIENhbXBhaWduKCkgPSBkZWZh
dWx0OwotICAgICAgICBleHBsaWNpdCBDYW1wYWlnbihDYW1wYWlnbklkIGlkKQorICAgIHN0cnVj
dCBTb3VyY2VJRCB7CisgICAgICAgIFNvdXJjZUlEKCkgPSBkZWZhdWx0OworICAgICAgICBleHBs
aWNpdCBTb3VyY2VJRCh1aW50MzJfdCBpZCkKICAgICAgICAgICAgIDogaWQgeyBpZCB9CiAgICAg
ICAgIHsKICAgICAgICAgfQpAQCAtNTcsMjcgKzU1LDI3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IHJldHVybiBpZCA8PSBNYXhFbnRyb3B5OwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBD
YW1wYWlnbklkIGlkIHsgMCB9OworICAgICAgICB1aW50MzJfdCBpZCB7IDAgfTsKICAgICB9Owog
Ci0gICAgc3RydWN0IFNvdXJjZSB7Ci0gICAgICAgIFNvdXJjZSgpID0gZGVmYXVsdDsKLSAgICAg
ICAgZXhwbGljaXQgU291cmNlKGNvbnN0IFVSTCYgdXJsKQorICAgIHN0cnVjdCBTb3VyY2VTaXRl
IHsKKyAgICAgICAgU291cmNlU2l0ZSgpID0gZGVmYXVsdDsKKyAgICAgICAgZXhwbGljaXQgU291
cmNlU2l0ZShjb25zdCBVUkwmIHVybCkKICAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4g
eyB1cmwgfQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBleHBsaWNpdCBTb3VyY2Uo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikKKyAgICAgICAgZXhwbGljaXQgU291cmNl
U2l0ZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogICAgICAgICAgICAgOiByZWdp
c3RyYWJsZURvbWFpbiB7IGRvbWFpbiB9CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAg
IGV4cGxpY2l0IFNvdXJjZShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCisgICAgICAg
IGV4cGxpY2l0IFNvdXJjZVNpdGUoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAg
ICAgICAgICAgOiByZWdpc3RyYWJsZURvbWFpbihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkK
ICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNv
dXJjZSYgb3RoZXIpIGNvbnN0CisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb3VyY2VT
aXRlJiBvdGhlcikgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJh
YmxlRG9tYWluID09IG90aGVyLnJlZ2lzdHJhYmxlRG9tYWluOwogICAgICAgICB9CkBAIC05Miwx
NSArOTAsMTUgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhYmxlRG9tYWlu
LmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMg
U291cmNlIGRlbGV0ZWRWYWx1ZSgpCisgICAgICAgIHN0YXRpYyBTb3VyY2VTaXRlIGRlbGV0ZWRW
YWx1ZSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTb3VyY2UgeyBXVEY6Okhhc2hU
YWJsZURlbGV0ZWRWYWx1ZSB9OworICAgICAgICAgICAgcmV0dXJuIFNvdXJjZVNpdGUgeyBXVEY6
Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIHZv
aWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFNvdXJjZSYgc291cmNlKQorICAgICAgICBzdGF0aWMg
dm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoU291cmNlU2l0ZSYgc291cmNlU2l0ZSkKICAgICAg
ICAgewotICAgICAgICAgICAgbmV3ICgmc291cmNlKSBTb3VyY2U7Ci0gICAgICAgICAgICBzb3Vy
Y2UgPSBTb3VyY2U6OmRlbGV0ZWRWYWx1ZSgpOworICAgICAgICAgICAgbmV3ICgmc291cmNlU2l0
ZSkgU291cmNlU2l0ZTsKKyAgICAgICAgICAgIHNvdXJjZVNpdGUgPSBTb3VyY2VTaXRlOjpkZWxl
dGVkVmFsdWUoKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZGVsZXRlVmFsdWUoKQpAQCAt
MTE2LDEzICsxMTQsMTMgQEAgcHVibGljOgogICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdp
c3RyYWJsZURvbWFpbjsKICAgICB9OwogCi0gICAgc3RydWN0IFNvdXJjZUhhc2ggewotICAgICAg
ICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBTb3VyY2UmIHNvdXJjZSkKKyAgICBzdHJ1Y3Qg
U291cmNlU2l0ZUhhc2ggeworICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBTb3Vy
Y2VTaXRlJiBzb3VyY2VTaXRlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gc291cmNl
LnJlZ2lzdHJhYmxlRG9tYWluLmhhc2goKTsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2VTaXRl
LnJlZ2lzdHJhYmxlRG9tYWluLmhhc2goKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAg
c3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU291cmNlJiBhLCBjb25zdCBTb3VyY2UmIGIpCisgICAg
ICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFNvdXJjZVNpdGUmIGEsIGNvbnN0IFNvdXJjZVNp
dGUmIGIpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBhID09IGI7CiAgICAgICAgIH0K
QEAgLTEzMCwyNCArMTI4LDI0IEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCi0gICAgc3Ry
dWN0IERlc3RpbmF0aW9uIHsKLSAgICAgICAgRGVzdGluYXRpb24oKSA9IGRlZmF1bHQ7Ci0gICAg
ICAgIGV4cGxpY2l0IERlc3RpbmF0aW9uKGNvbnN0IFVSTCYgdXJsKQorICAgIHN0cnVjdCBBdHRy
aWJ1dGVPblNpdGUgeworICAgICAgICBBdHRyaWJ1dGVPblNpdGUoKSA9IGRlZmF1bHQ7CisgICAg
ICAgIGV4cGxpY2l0IEF0dHJpYnV0ZU9uU2l0ZShjb25zdCBVUkwmIHVybCkKICAgICAgICAgICAg
IDogcmVnaXN0cmFibGVEb21haW4geyBSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9IH0KICAgICAg
ICAgewogICAgICAgICB9CiAKLSAgICAgICAgZXhwbGljaXQgRGVzdGluYXRpb24oV1RGOjpIYXNo
VGFibGVEZWxldGVkVmFsdWVUeXBlKQorICAgICAgICBleHBsaWNpdCBBdHRyaWJ1dGVPblNpdGUo
V1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICAgICAgOiByZWdpc3RyYWJs
ZURvbWFpbiB7IFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlIH0KICAgICAgICAgewogICAgICAg
ICB9CiAKLSAgICAgICAgZXhwbGljaXQgRGVzdGluYXRpb24oUmVnaXN0cmFibGVEb21haW4mJiBk
b21haW4pCisgICAgICAgIGV4cGxpY2l0IEF0dHJpYnV0ZU9uU2l0ZShSZWdpc3RyYWJsZURvbWFp
biYmIGRvbWFpbikKICAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4geyBXVEZNb3ZlKGRv
bWFpbikgfQogICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBEZXN0aW5hdGlvbiYgb3RoZXIpIGNvbnN0CisgICAgICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBBdHRyaWJ1dGVPblNpdGUmIG90aGVyKSBjb25zdAogICAgICAgICB7CiAg
ICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4gPT0gb3RoZXIucmVnaXN0cmFibGVE
b21haW47CiAgICAgICAgIH0KQEAgLTE2MiwxNSArMTYwLDE1IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbi5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOwog
ICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIERlc3RpbmF0aW9uIGRlbGV0ZWRWYWx1ZSgpCisg
ICAgICAgIHN0YXRpYyBBdHRyaWJ1dGVPblNpdGUgZGVsZXRlZFZhbHVlKCkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIERlc3RpbmF0aW9uIHsgV1RGOjpIYXNoVGFibGVEZWxldGVkVmFs
dWUgfTsKKyAgICAgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPblNpdGUgeyBXVEY6Okhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSB9OwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIHZvaWQgY29uc3Ry
dWN0RGVsZXRlZFZhbHVlKERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikKKyAgICAgICAgc3RhdGlj
IHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25T
aXRlKQogICAgICAgICB7Ci0gICAgICAgICAgICBuZXcgKCZkZXN0aW5hdGlvbikgRGVzdGluYXRp
b247Ci0gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IERlc3RpbmF0aW9uOjpkZWxldGVkVmFsdWUo
KTsKKyAgICAgICAgICAgIG5ldyAoJmF0dHJpYnV0ZU9uU2l0ZSkgQXR0cmlidXRlT25TaXRlOwor
ICAgICAgICAgICAgYXR0cmlidXRlT25TaXRlID0gQXR0cmlidXRlT25TaXRlOjpkZWxldGVkVmFs
dWUoKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZGVsZXRlVmFsdWUoKQpAQCAtMTg2LDEz
ICsxODQsMTMgQEAgcHVibGljOgogICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJs
ZURvbWFpbjsKICAgICB9OwogCi0gICAgc3RydWN0IERlc3RpbmF0aW9uSGFzaCB7Ci0gICAgICAg
IHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikKKyAg
ICBzdHJ1Y3QgQXR0cmlidXRlT25TaXRlSGFzaCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBo
YXNoKGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25TaXRlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4uaGFzaCgpOwor
ICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZU9uU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5oYXNo
KCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0
IERlc3RpbmF0aW9uJiBhLCBjb25zdCBEZXN0aW5hdGlvbiYgYikKKyAgICAgICAgc3RhdGljIGJv
b2wgZXF1YWwoY29uc3QgQXR0cmlidXRlT25TaXRlJiBhLCBjb25zdCBBdHRyaWJ1dGVPblNpdGUm
IGIpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBhID09IGI7CiAgICAgICAgIH0KQEAg
LTIwOSwxMCArMjA3LDEwIEBAIHB1YmxpYzoKICAgICAgICAgUHJpb3JpdHlWYWx1ZSB2YWx1ZTsK
ICAgICB9OwogICAgIAotICAgIHN0cnVjdCBDb252ZXJzaW9uIHsKKyAgICBzdHJ1Y3QgQXR0cmli
dXRpb25UcmlnZ2VyRGF0YSB7CiAgICAgICAgIGVudW0gY2xhc3MgV2FzU2VudCA6IGJvb2wgeyBO
bywgWWVzIH07CiAgICAgICAgIAotICAgICAgICBDb252ZXJzaW9uKENvbnZlcnNpb25EYXRhIGRh
dGEsIFByaW9yaXR5IHByaW9yaXR5LCBXYXNTZW50IHdhc1NlbnQgPSBXYXNTZW50OjpObykKKyAg
ICAgICAgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSh1aW50MzJfdCBkYXRhLCBQcmlvcml0eSBwcmlv
cml0eSwgV2FzU2VudCB3YXNTZW50ID0gV2FzU2VudDo6Tm8pCiAgICAgICAgICAgICA6IGRhdGEg
eyBkYXRhIH0KICAgICAgICAgICAgICwgcHJpb3JpdHkgeyBwcmlvcml0eS52YWx1ZSB9CiAgICAg
ICAgICAgICAsIHdhc1NlbnQgeyB3YXNTZW50IH0KQEAgLTIyNCwzOSArMjIyLDM3IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHJldHVybiBkYXRhIDw9IE1heEVudHJvcHkgJiYgcHJpb3JpdHkgPD0g
TWF4RW50cm9weTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgQ29udmVyc2lvbkRhdGEg
ZGF0YTsKKyAgICAgICAgdWludDMyX3QgZGF0YTsKICAgICAgICAgUHJpb3JpdHlWYWx1ZSBwcmlv
cml0eTsKICAgICAgICAgV2FzU2VudCB3YXNTZW50ID0gV2FzU2VudDo6Tm87CiAKICAgICAgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAg
ICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8Q29udmVyc2lvbj4g
ZGVjb2RlKERlY29kZXImKTsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IGRlY29kZShEZWNvZGVyJik7CiAgICAg
fTsKIAogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkgPSBkZWZhdWx0OwotICAgIFByaXZh
dGVDbGlja01lYXN1cmVtZW50KENhbXBhaWduIGNhbXBhaWduLCBjb25zdCBTb3VyY2UmIHNvdXJj
ZSwgY29uc3QgRGVzdGluYXRpb24mIGRlc3RpbmF0aW9uKQotICAgICAgICA6IG1fY2FtcGFpZ24g
eyBjYW1wYWlnbiB9Ci0gICAgICAgICwgbV9zb3VyY2UgeyBzb3VyY2UgfQotICAgICAgICAsIG1f
ZGVzdGluYXRpb24geyBkZXN0aW5hdGlvbiB9Ci0gICAgICAgICwgbV90aW1lT2ZBZENsaWNrIHsg
V2FsbFRpbWU6Om5vdygpIH0KKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChTb3VyY2VJRCBz
b3VyY2VJRCwgY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgQXR0cmlidXRlT25T
aXRlJiBhdHRyaWJ1dGVPblNpdGUsIFdhbGxUaW1lIHRpbWVPZkFkQ2xpY2sgPSBXYWxsVGltZTo6
bm93KCkpCisgICAgICAgIDogbV9zb3VyY2VJRCB7IHNvdXJjZUlEIH0KKyAgICAgICAgLCBtX3Nv
dXJjZVNpdGUgeyBzb3VyY2VTaXRlIH0KKyAgICAgICAgLCBtX2F0dHJpYnV0ZU9uU2l0ZSB7IGF0
dHJpYnV0ZU9uU2l0ZSB9CisgICAgICAgICwgbV90aW1lT2ZBZENsaWNrIHsgdGltZU9mQWRDbGlj
ayB9CiAgICAgewogICAgIH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeHBlY3RlZDxD
b252ZXJzaW9uLCBTdHJpbmc+IHBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgVVJMJiByZWRp
cmVjdFVSTCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8U2Vjb25kcz4gY29udmVydEFu
ZEdldEVhcmxpZXN0VGltZVRvU2VuZChDb252ZXJzaW9uJiYpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBjb25zdCBTZWNvbmRzIG1heEFnZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBFeHBlY3RlZDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBTdHJpbmc+IHBhcnNlQXR0cmlidXRp
b25SZXF1ZXN0KGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpOworICAgIFdFQkNPUkVfRVhQT1JUIE9w
dGlvbmFsPFNlY29uZHM+IGF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzSGlnaGVyUHJp
b3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50JikgY29uc3Q7CiAgICAgV0VC
Q09SRV9FWFBPUlQgVVJMIHJlcG9ydFVSTCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFJl
ZjxKU09OOjpPYmplY3Q+IGpzb24oKSBjb25zdDsKLSAgICBjb25zdCBTb3VyY2UmIHNvdXJjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9OwotICAgIGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0
aW5hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH07CisgICAgY29uc3QgU291
cmNlU2l0ZSYgc291cmNlU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlU2l0ZTsgfTsKKyAg
ICBjb25zdCBBdHRyaWJ1dGVPblNpdGUmIGF0dHJpYnV0ZU9uU2l0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fYXR0cmlidXRlT25TaXRlOyB9OworICAgIFdhbGxUaW1lIHRpbWVPZkFkQ2xpY2soKSBjb25z
dCB7IHJldHVybiBtX3RpbWVPZkFkQ2xpY2s7IH0KICAgICBPcHRpb25hbDxXYWxsVGltZT4gZWFy
bGllc3RUaW1lVG9TZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7IH07
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYXJrQXNFeHBpcmVkKCk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBoYXNFeHBpcmVkKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBt
YXJrQ29udmVyc2lvbkFzU2VudCgpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgd2FzQ29udmVy
c2lvblNlbnQoKSBjb25zdDsKLQotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlLnJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKTsgfTsKLQotICAgIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworICAgIHZvaWQgc2V0RWFybGllc3RUaW1lVG9T
ZW5kKFdhbGxUaW1lIHRpbWUpIHsgbV9lYXJsaWVzdFRpbWVUb1NlbmQgPSB0aW1lOyB9CisgICAg
U291cmNlSUQgc291cmNlSUQoKSB7IHJldHVybiBtX3NvdXJjZUlEOyB9CisgICAgT3B0aW9uYWw8
QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gYXR0cmlidXRpb25UcmlnZ2VyRGF0YSgpIHsgcmV0dXJu
IG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsgfQorICAgIHZvaWQgc2V0QXR0cmlidXRpb24oQXR0
cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpIHsgbV9hdHRyaWJ1
dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsgfQogCiAg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Owog
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudD4gZGVjb2RlKERlY29kZXImKTsKQEAgLTI2NSwyNyArMjYxLDI3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVidWdNb2Rl
RW5hYmxlZCgpOwogCi0gICAgQ2FtcGFpZ24gbV9jYW1wYWlnbjsKLSAgICBTb3VyY2UgbV9zb3Vy
Y2U7Ci0gICAgRGVzdGluYXRpb24gbV9kZXN0aW5hdGlvbjsKKyAgICBTb3VyY2VJRCBtX3NvdXJj
ZUlEOworICAgIFNvdXJjZVNpdGUgbV9zb3VyY2VTaXRlOworICAgIEF0dHJpYnV0ZU9uU2l0ZSBt
X2F0dHJpYnV0ZU9uU2l0ZTsKICAgICBXYWxsVGltZSBtX3RpbWVPZkFkQ2xpY2s7CiAKLSAgICBP
cHRpb25hbDxDb252ZXJzaW9uPiBtX2NvbnZlcnNpb247CisgICAgT3B0aW9uYWw8QXR0cmlidXRp
b25UcmlnZ2VyRGF0YT4gbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogICAgIE9wdGlvbmFsPFdh
bGxUaW1lPiBtX2VhcmxpZXN0VGltZVRvU2VuZDsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+CiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IG1fY2FtcGFpZ24uaWQgPDwgbV9zb3VyY2UucmVn
aXN0cmFibGVEb21haW4gPDwgbV9kZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFpbiA8PCBtX3Rp
bWVPZkFkQ2xpY2sgPDwgbV9jb252ZXJzaW9uIDw8IG1fZWFybGllc3RUaW1lVG9TZW5kOworICAg
IGVuY29kZXIgPDwgbV9zb3VyY2VJRC5pZCA8PCBtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVEb21h
aW4gPDwgbV9hdHRyaWJ1dGVPblNpdGUucmVnaXN0cmFibGVEb21haW4gPDwgbV90aW1lT2ZBZENs
aWNrIDw8IG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA8PCBtX2VhcmxpZXN0VGltZVRvU2VuZDsK
IH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1
cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CiB7Ci0gICAgT3B0aW9uYWw8Q2FtcGFpZ25JZD4gY2FtcGFpZ25JZDsKLSAgICBkZWNvZGVyID4+
IGNhbXBhaWduSWQ7Ci0gICAgaWYgKCFjYW1wYWlnbklkKQorICAgIE9wdGlvbmFsPHVpbnQzMl90
PiBzb3VyY2VJRDsKKyAgICBkZWNvZGVyID4+IHNvdXJjZUlEOworICAgIGlmICghc291cmNlSUQp
CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCiAgICAgT3B0aW9uYWw8UmVnaXN0
cmFibGVEb21haW4+IHNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluOwpAQCAtMjkzLDkgKzI4OSw5IEBA
IE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6ZGVjb2RlKERlY29kZXImIGRlY29kCiAgICAgaWYgKCFzb3VyY2VSZWdpc3RyYWJsZURvbWFp
bikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAKLSAgICBPcHRpb25hbDxSZWdp
c3RyYWJsZURvbWFpbj4gZGVzdGluYXRpb25SZWdpc3RyYWJsZURvbWFpbjsKLSAgICBkZWNvZGVy
ID4+IGRlc3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW47Ci0gICAgaWYgKCFkZXN0aW5hdGlvblJl
Z2lzdHJhYmxlRG9tYWluKQorICAgIE9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9tYWluPiBhdHRyaWJ1
dGVPblJlZ2lzdHJhYmxlRG9tYWluOworICAgIGRlY29kZXIgPj4gYXR0cmlidXRlT25SZWdpc3Ry
YWJsZURvbWFpbjsKKyAgICBpZiAoIWF0dHJpYnV0ZU9uUmVnaXN0cmFibGVEb21haW4pCiAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+IHRp
bWVPZkFkQ2xpY2s7CkBAIC0zMDMsOSArMjk5LDkgQEAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUoRGVjb2RlciYgZGVjb2QK
ICAgICBpZiAoIXRpbWVPZkFkQ2xpY2spCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAg
ICAgCi0gICAgT3B0aW9uYWw8T3B0aW9uYWw8Q29udmVyc2lvbj4+IGNvbnZlcnNpb247Ci0gICAg
ZGVjb2RlciA+PiBjb252ZXJzaW9uOwotICAgIGlmICghY29udmVyc2lvbikKKyAgICBPcHRpb25h
bDxPcHRpb25hbDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPj4gYXR0cmlidXRpb25UcmlnZ2VyRGF0
YTsKKyAgICBkZWNvZGVyID4+IGF0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CisgICAgaWYgKCFhdHRy
aWJ1dGlvblRyaWdnZXJEYXRhKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAog
ICAgIE9wdGlvbmFsPE9wdGlvbmFsPFdhbGxUaW1lPj4gZWFybGllc3RUaW1lVG9TZW5kOwpAQCAt
MzEzLDIzICszMDksMjMgQEAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUoRGVjb2RlciYgZGVjb2QKICAgICBpZiAoIWVhcmxp
ZXN0VGltZVRvU2VuZCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAKLSAgICBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IENhbXBhaWduIHsgV1RGTW92ZSgq
Y2FtcGFpZ25JZCkgfSwgU291cmNlIHsgV1RGTW92ZSgqc291cmNlUmVnaXN0cmFibGVEb21haW4p
IH0sIERlc3RpbmF0aW9uIHsgV1RGTW92ZSgqZGVzdGluYXRpb25SZWdpc3RyYWJsZURvbWFpbikg
fSB9OwotICAgIGF0dHJpYnV0aW9uLm1fY29udmVyc2lvbiA9IFdURk1vdmUoKmNvbnZlcnNpb24p
OworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgU291cmNlSUQgeyBX
VEZNb3ZlKCpzb3VyY2VJRCkgfSwgU291cmNlU2l0ZSB7IFdURk1vdmUoKnNvdXJjZVJlZ2lzdHJh
YmxlRG9tYWluKSB9LCBBdHRyaWJ1dGVPblNpdGUgeyBXVEZNb3ZlKCphdHRyaWJ1dGVPblJlZ2lz
dHJhYmxlRG9tYWluKSB9IH07CisgICAgYXR0cmlidXRpb24ubV9hdHRyaWJ1dGlvblRyaWdnZXJE
YXRhID0gV1RGTW92ZSgqYXR0cmlidXRpb25UcmlnZ2VyRGF0YSk7CiAgICAgYXR0cmlidXRpb24u
bV9lYXJsaWVzdFRpbWVUb1NlbmQgPSBXVEZNb3ZlKCplYXJsaWVzdFRpbWVUb1NlbmQpOwogICAg
IAogICAgIHJldHVybiBhdHRyaWJ1dGlvbjsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4K
LXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb246OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25UcmlnZ2VyRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5j
b2RlciA8PCBkYXRhIDw8IHByaW9yaXR5IDw8IHdhc1NlbnQ7CiB9CiAKIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+Ci1PcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbj4g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb246OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQorT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGE+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBPcHRpb25hbDxDb252ZXJzaW9uRGF0YT4g
ZGF0YTsKKyAgICBPcHRpb25hbDx1aW50MzJfdD4gZGF0YTsKICAgICBkZWNvZGVyID4+IGRhdGE7
CiAgICAgaWYgKCFkYXRhKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtMzQ0LDcg
KzM0MCw3IEBAIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uPiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvCiAgICAgaWYgKCF3YXNTZW50KQogICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAotICAgIHJldHVybiBDb252ZXJzaW9uIHsg
V1RGTW92ZSgqZGF0YSksIFByaW9yaXR5IHsgKnByaW9yaXR5IH0sICp3YXNTZW50IH07CisgICAg
cmV0dXJuIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgeyBXVEZNb3ZlKCpkYXRhKSwgUHJpb3JpdHkg
eyAqcHJpb3JpdHkgfSwgKndhc1NlbnQgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpA
QCAtMzUyLDE3ICszNDgsMTcgQEAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNv
bnZlcnNpb24+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW8KIG5hbWVzcGFjZSBX
VEYgewogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOwogCi10ZW1wbGF0
ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlPiA6IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VIYXNoIHsg
fTsKLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OlNvdXJjZT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlPiB7Ci0gICAgc3RhdGljIFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpTb3VyY2UgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0
YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlJiBzbG90KSB7IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2U6OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZShzbG90KTsgfQotICAgIHN0YXRpYyBib29s
IGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpT
b3VyY2UmIHNsb3QpIHsgcmV0dXJuIHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQordGVtcGxhdGU8
PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGU+IDogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGVI
YXNoIHsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGU+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGU+IHsKKyAgICBzdGF0aWMgV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgZW1wdHlWYWx1ZSgpIHsgcmV0
dXJuIHsgfTsgfQorICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc2xvdCkgeyBXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZTo6Y29uc3RydWN0RGVsZXRlZFZhbHVl
KHNsb3QpOyB9CisgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmIHNsb3QpIHsgcmV0dXJuIHNsb3Qu
aXNEZWxldGVkVmFsdWUoKTsgfQogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPiA6IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbkhhc2ggeyB9OwotdGVtcGxhdGU8
PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVz
dGluYXRpb24+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkRlc3RpbmF0aW9uPiB7Ci0gICAgc3RhdGljIFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpEZXN0aW5hdGlvbiBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9Ci0gICAg
c3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpEZXN0aW5hdGlvbiYgc2xvdCkgeyBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6RGVzdGluYXRpb246OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZShzbG90KTsgfQotICAg
IHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpEZXN0aW5hdGlvbiYgc2xvdCkgeyByZXR1cm4gc2xvdC5pc0RlbGV0ZWRWYWx1
ZSgpOyB9Cit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlPiA6IFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGVIYXNoIHsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEhh
c2hUcmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0
ZT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
QXR0cmlidXRlT25TaXRlPiB7CisgICAgc3RhdGljIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAg
IHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlJiBzbG90KSB7IFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGU6OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZShzbG90
KTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUmIHNsb3QpIHsgcmV0dXJuIHNsb3Qu
aXNEZWxldGVkVmFsdWUoKTsgfQogfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IGI3MzBkZGU4OGI0MDQ2Y2Y1OTAz
ZWMzZDY5ODEzZjYyZDc2MTdmZTcuLjdmNGUxZjA5NDU1NDc2MTUyOTQyNGQwYmY0MzM2OWJkZDU0
ZDk5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlLmNwcApAQCAtODAsNiArODAsMTEgQEAgY29uc3RleHByIGF1dG8gdG9wRnJhbWVV
bmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudFF1ZXJ5ID0gIkkK
IGNvbnN0ZXhwciBhdXRvIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5ID0gIklOU0VS
VCBPUiBJR05PUkUgSU5UTyBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gKHRhcmdldERvbWFp
bklELCBmcm9tRG9tYWluSUQpIFNFTEVDVCA/LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlu
cyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiBpbiAoICJfczsKIGNvbnN0ZXhwciBhdXRvIHRvcEZy
YW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHNRdWVyeSA9ICJJTlNFUlQgT1IgSUdOT1JFIGludG8g
VG9wRnJhbWVMb2FkZWRUaGlyZFBhcnR5U2NyaXB0cyAodG9wRnJhbWVEb21haW5JRCwgc3VicmVz
b3VyY2VEb21haW5JRCkgU0VMRUNUID8sIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIHdo
ZXJlIHJlZ2lzdHJhYmxlRG9tYWluIGluICggIl9zOwogY29uc3RleHByIGF1dG8gc3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdHNGcm9tUXVlcnkgPSAiSU5TRVJUIE9SIElHTk9SRSBJTlRPIFN1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSAoc3VicmVzb3VyY2VEb21haW5JRCwgZnJvbURvbWFp
bklEKSBTRUxFQ1QgPywgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0
cmFibGVEb21haW4gaW4gKCAiX3M7Citjb25zdGV4cHIgYXV0byBpbnNlcnRVbmF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5ID0gIklOU0VSVCBPUiBSRVBMQUNFIElOVE8gVW5h
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKHNvdXJjZVNpdGVEb21haW5JRCwgYXR0
cmlidXRlT25TaXRlRG9tYWluSUQsICIKKyAgICAic291cmNlSUQsIHRpbWVPZkFkQ2xpY2spIFZB
TFVFUyAoPywgPywgPywgPykiX3M7Citjb25zdGV4cHIgYXV0byBpbnNlcnRBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSA9ICJJTlNFUlQgT1IgUkVQTEFDRSBJTlRPIEF0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAoc291cmNlU2l0ZURvbWFpbklELCBhdHRyaWJ1
dGVPblNpdGVEb21haW5JRCwgIgorICAgICJzb3VyY2VJRCwgYXR0cmlidXRpb25UcmlnZ2VyRGF0
YSwgcHJpb3JpdHksIHRpbWVPZkFkQ2xpY2ssIGVhcmxpZXN0VGltZVRvU2VuZCkgVkFMVUVTICg/
LCA/LCA/LCA/LCA/LCA/LCA/KSJfczsKK2NvbnN0ZXhwciBhdXRvIHVwZGF0ZVRpbWVyTGFzdEZp
cmVkUXVlcnkgPSAiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyBUaW1lckxhc3RGaXJlZCAoa2V5LCB0
aW1lTGFzdEZpcmVkU2Vjb25kcykgVkFMVUVTICgxLCA/KSJfczsKIAogLy8gSU5TRVJUIE9SIFJF
UExBQ0UgUXVlcmllcwogY29uc3RleHByIGF1dG8gc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlu
c1F1ZXJ5ID0gIklOU0VSVCBPUiBSRVBMQUNFIGludG8gU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9t
YWlucyAoc3ViRnJhbWVEb21haW5JRCwgbGFzdFVwZGF0ZWQsIHRvcEZyYW1lRG9tYWluSUQpIFNF
TEVDVCA/LCA/LCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyB3aGVyZSByZWdpc3RyYWJs
ZURvbWFpbiBpbiAoICJfczsKQEAgLTExMCw2ICsxMTUsMTEgQEAgY29uc3RleHByIGF1dG8gdXBk
YXRlVmVyeVByZXZhbGVudFJlc291cmNlUXVlcnkgPSAiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBT
RVQgaXMKIGNvbnN0ZXhwciBhdXRvIGNsZWFyUHJldmFsZW50UmVzb3VyY2VRdWVyeSA9ICJVUERB
VEUgT2JzZXJ2ZWREb21haW5zIFNFVCBpc1ByZXZhbGVudCA9IDAsIGlzVmVyeVByZXZhbGVudCA9
IDAgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Il9zOwogY29uc3RleHByIGF1dG8gdXBkYXRl
R3JhbmRmYXRoZXJlZFF1ZXJ5ID0gIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIGdyYW5kZmF0
aGVyZWQgPSA/IFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyJfczsKIGNvbnN0ZXhwciBhdXRv
IHVwZGF0ZUlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWxRdWVyeSA9ICJVUERB
VEUgT2JzZXJ2ZWREb21haW5zIFNFVCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1v
dmFsID0gPyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBz
ZXRVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZFF1ZXJ5ID0gIlVQ
REFURSBVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBTRVQgdGltZU9mQWRDbGlj
ayA9IC0xLjAiX3M7Citjb25zdGV4cHIgYXV0byB1cGRhdGVBdHRyaWJ1dGlvbnNFYXJsaWVzdFRp
bWVUb1NlbmRRdWVyeSA9ICJVUERBVEUgQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
IGFzIGMgU0VUICIKKyAgICAiZWFybGllc3RUaW1lVG9TZW5kID0gKFNFTEVDVCBNQVgoMC4wLCBu
ZXdUaW1lKSBGUk9NIChTRUxFQ1QgKGVhcmxpZXN0VGltZVRvU2VuZCAtID8pIGFzIG5ld1RpbWUg
RlJPTSAiCisgICAgIkF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhcyBkIFdIRVJF
IGMuc291cmNlU2l0ZURvbWFpbklEID0gZC5zb3VyY2VTaXRlRG9tYWluSUQgQU5EIGMuYXR0cmli
dXRlT25TaXRlRG9tYWluSUQgPSAiCisgICAgImQuYXR0cmlidXRlT25TaXRlRG9tYWluSUQpKSJf
czsKIAogLy8gU0VMRUNUIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIGRvbWFpbklERnJvbVN0cmlu
Z1F1ZXJ5ID0gIlNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdp
c3RyYWJsZURvbWFpbiA9ID8iX3M7CkBAIC0xMjgsNiArMTM4LDExIEBAIGNvbnN0ZXhwciBhdXRv
IGdldEFsbERvbWFpbnNRdWVyeSA9ICJTRUxFQ1QgcmVnaXN0cmFibGVEb21haW4gRlJPTSBPYnNl
cnZlZERvbWFpCiBjb25zdGV4cHIgYXV0byBnZXRBbGxTdWJTdGF0aXN0aWNzVW5kZXJEb21haW5R
dWVyeSA9ICJTRUxFQ1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1YmZyYW1lVW5kZXJUb3BGcmFt
ZURvbWFpbnMgV0hFUkUgc3ViRnJhbWVEb21haW5JRCA9ID8iCiAgICAgIlVOSU9OIEFMTCBTRUxF
Q1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMg
V0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8iCiAgICAgIlVOSU9OIEFMTCBTRUxFQ1QgdG9E
b21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8gV0hFUkUgc3VicmVzb3Vy
Y2VEb21haW5JRCA9ID8iX3M7Citjb25zdGV4cHIgYXV0byBhbGxVbmF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uc1F1ZXJ5ID0gIlNFTEVDVCAqIEZST00gVW5hdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiX3M7Citjb25zdGV4cHIgYXV0byBhbGxBdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIEF0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfczsKK2NvbnN0ZXhwciBhdXRvIGZpbmRVbmF0
dHJpYnV0ZWRRdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVEb21haW5JRCA9ID8gQU5EIGF0dHJpYnV0ZU9uU2l0
ZURvbWFpbklEID0gPyJfczsKK2NvbnN0ZXhwciBhdXRvIGZpbmRBdHRyaWJ1dGVkUXVlcnkgPSAi
U0VMRUNUICogRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291
cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgYXR0cmlidXRlT25TaXRlRG9tYWluSUQgPSA/Il9zOwor
Y29uc3RleHByIGF1dG8gdGltZXJMYXN0RmlyZWRRdWVyeSA9ICJTRUxFQ1QgdGltZUxhc3RGaXJl
ZFNlY29uZHMgRlJPTSBUaW1lckxhc3RGaXJlZCBXSEVSRSBrZXkgPSAxIl9zOwogCiAvLyBFWElT
VFMgZm9yIHRlc3RpbmcgcXVlcmllcwogY29uc3RleHByIGF1dG8gbGlua0RlY29yYXRpb25FeGlz
dHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgKiBGUk9NIFRvcEZyYW1lTGlua0RlY29y
YXRpb25zRnJvbSBXSEVSRSB0b0RvbWFpbklEID0gPyBPUiBmcm9tRG9tYWluSUQgPSA/KSJfczsK
QEAgLTEzOSw2ICsxNTQsMTAgQEAgY29uc3RleHByIGF1dG8gb2JzZXJ2ZWREb21haW5zRXhpc3Rz
UXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNUICogRlJPTSBPYnNlcnYKIAogLy8gREVMRVRF
IFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIHJlbW92ZUFsbERhdGFRdWVyeSA9ICJERUxFVEUgRlJP
TSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgZG9tYWluSUQgPSA/Il9zOworY29uc3RleHByIGF1dG8g
Y2xlYXJVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5ID0gIkRFTEVURSBG
Uk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdIRVJFIHNvdXJjZVNpdGVE
b21haW5JRCBMSUtFID8gT1IgYXR0cmlidXRlT25TaXRlRG9tYWluSUQgTElLRSA/Il9zOworY29u
c3RleHByIGF1dG8gY2xlYXJBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSA9
ICJERUxFVEUgRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291
cmNlU2l0ZURvbWFpbklEIExJS0UgPyBPUiBhdHRyaWJ1dGVPblNpdGVEb21haW5JRCBMSUtFID8i
X3M7Citjb25zdGV4cHIgYXV0byBjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1
ZXJ5ID0gIkRFTEVURSBGUk9NIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50IFdI
RVJFID8gPiB0aW1lT2ZBZENsaWNrIl9zOworY29uc3RleHByIGF1dG8gcmVtb3ZlVW5hdHRyaWJ1
dGVkUXVlcnkgPSAiREVMRVRFIEZST00gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBBTkQgYXR0cmlidXRlT25TaXRlRG9tYWlu
SUQgPSA/Il9zOwogCiBjb25zdGV4cHIgYXV0byBjcmVhdGVPYnNlcnZlZERvbWFpbiA9ICJDUkVB
VEUgVEFCTEUgT2JzZXJ2ZWREb21haW5zICgiCiAgICAgImRvbWFpbklEIElOVEVHRVIgUFJJTUFS
WSBLRVksIHJlZ2lzdHJhYmxlRG9tYWluIFRFWFQgTk9UIE5VTEwgVU5JUVVFIE9OIENPTkZMSUNU
IEZBSUwsIGxhc3RTZWVuIFJFQUwgTk9UIE5VTEwsICIKQEAgLTIxOSw4ICsyMzgsMjEgQEAgY29u
c3RleHByIGF1dG8gY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tID0gIkNSRUFU
RSBUQUJMRSBTdWJyZXNvdXJjZVUKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZU9wZXJhdGluZ0RhdGVz
ID0gIkNSRUFURSBUQUJMRSBPcGVyYXRpbmdEYXRlcyAoIgogICAgICJ5ZWFyIElOVEVHRVIgTk9U
IE5VTEwsIG1vbnRoIElOVEVHRVIgTk9UIE5VTEwsIG1vbnRoRGF5IElOVEVHRVIgTk9UIE5VTEwp
OyJfczsKIAorY29uc3RleHByIGF1dG8gY3JlYXRlVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgPSAiQ1JFQVRFIFRBQkxFIFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50ICgiCisgICAgInNvdXJjZVNpdGVEb21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCBhdHRyaWJ1
dGVPblNpdGVEb21haW5JRCBJTlRFR0VSIE5PVCBOVUxMLCBzb3VyY2VJRCBJTlRFR0VSIE5PVCBO
VUxMLCAiCisgICAgInRpbWVPZkFkQ2xpY2sgUkVBTCBOT1QgTlVMTCwgRk9SRUlHTiBLRVkoc291
cmNlU2l0ZURvbWFpbklEKSBSRUZFUkVOQ0VTIE9ic2VydmVkRG9tYWlucyhkb21haW5JRCkgT04g
REVMRVRFIENBU0NBREUsICIKKyAgICAiRk9SRUlHTiBLRVkoYXR0cmlidXRlT25TaXRlRG9tYWlu
SUQpIFJFRkVSRU5DRVMgT2JzZXJ2ZWREb21haW5zKGRvbWFpbklEKSBPTiBERUxFVEUgQ0FTQ0FE
RSk7Il9zOwogCi0vLyBDUkVBVEUgVU5JUVVFIElOREVYIFF1ZXJpZXMKK2NvbnN0ZXhwciBhdXRv
IGNyZWF0ZUF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9ICJDUkVBVEUgVEFCTEUg
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50ICgiCisgICAgInNvdXJjZVNpdGVEb21h
aW5JRCBJTlRFR0VSIE5PVCBOVUxMLCBhdHRyaWJ1dGVPblNpdGVEb21haW5JRCBJTlRFR0VSIE5P
VCBOVUxMLCBzb3VyY2VJRCBJTlRFR0VSIE5PVCBOVUxMLCAiCisgICAgImF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEgSU5URUdFUiBOT1QgTlVMTCwgcHJpb3JpdHkgSU5URUdFUiBOT1QgTlVMTCwgdGlt
ZU9mQWRDbGljayBSRUFMIE5PVCBOVUxMLCBlYXJsaWVzdFRpbWVUb1NlbmQgUkVBTCBOT1QgTlVM
TCwgIgorICAgICJGT1JFSUdOIEtFWShzb3VyY2VTaXRlRG9tYWluSUQpIFJFRkVSRU5DRVMgT2Jz
ZXJ2ZWREb21haW5zKGRvbWFpbklEKSBPTiBERUxFVEUgQ0FTQ0FERSwgIgorICAgICJGT1JFSUdO
IEtFWShhdHRyaWJ1dGVPblNpdGVEb21haW5JRCkgUkVGRVJFTkNFUyBPYnNlcnZlZERvbWFpbnMo
ZG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURFKTsiX3M7CisKK2NvbnN0ZXhwciBhdXRvIGNyZWF0
ZVRpbWVyTGFzdEZpcmVkID0gIkNSRUFURSBUQUJMRSBUaW1lckxhc3RGaXJlZCAoIGtleSBJTlRF
R0VSIFBSSU1BUlkgS0VZLCAiCisgICAgIiB0aW1lTGFzdEZpcmVkU2Vjb25kcyBSRUFMIE5PVCBO
VUxMICkiX3M7CisKKy8vIENSRUFURSBVTklRVUUgSU5ERVggUXVlcmllcy4KIGNvbnN0ZXhwciBh
dXRvIGNyZWF0ZVVuaXF1ZUluZGV4U3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zID0g
IkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBTdG9yYWdlQWNjZXNzVW5kZXJUb3BG
cmFtZURvbWFpbnNfZG9tYWluSURfdG9wTGV2ZWxEb21haW5JRCBvbiBTdG9yYWdlQWNjZXNzVW5k
ZXJUb3BGcmFtZURvbWFpbnMgKCBkb21haW5JRCwgdG9wTGV2ZWxEb21haW5JRCApOyJfczsKIGNv
bnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbyA9
ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElTVFMgVG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNUb19zb3VyY2VEb21haW5JRF90b0RvbWFpbklEIG9uIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3Rz
VG8gKCBzb3VyY2VEb21haW5JRCwgdG9Eb21haW5JRCApOyJfczsKIGNvbnN0ZXhwciBhdXRvIGNy
ZWF0ZVVuaXF1ZUluZGV4VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJp
Y3RFbmZvcmNlbWVudCA9ICJDUkVBVEUgVU5JUVVFIElOREVYIElGIE5PVCBFWElTVFMgVG9wRnJh
bWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudF9zb3VyY2VE
b21haW5JRF90b0RvbWFpbklEIG9uIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVT
aXRlU3RyaWN0RW5mb3JjZW1lbnQgKCBzb3VyY2VEb21haW5JRCwgdG9Eb21haW5JRCApOyJfczsK
QEAgLTIzMiw2ICsyNjQsOCBAQCBjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMgPSAiQ1JFQVRFIFVOSVFVRQogY29uc3RleHByIGF1
dG8gY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvID0gIkNSRUFU
RSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1Rv
X3N1YnJlc291cmNlRG9tYWluSURfdG9Eb21haW5JRCBvbiBTdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0c1RvICggc3VicmVzb3VyY2VEb21haW5JRCwgdG9Eb21haW5JRCApOyJfczsKIGNvbnN0ZXhw
ciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tID0g
IkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBTdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0c0Zyb21fc3VicmVzb3VyY2VEb21haW5JRF9mcm9tRG9tYWluSUQgb24gU3VicmVzb3VyY2VV
bmRlclRvcEZyYW1lRG9tYWlucyAoIHN1YnJlc291cmNlRG9tYWluSUQsIGZyb21Eb21haW5JRCAp
OyJfczsKIGNvbnN0ZXhwciBhdXRvIGNyZWF0ZVVuaXF1ZUluZGV4T3BlcmF0aW5nRGF0ZXMgPSAi
Q1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIE9wZXJhdGluZ0RhdGVzX3llYXJfbW9u
dGhfbW9udGhEYXkgb24gT3BlcmF0aW5nRGF0ZXMgKCB5ZWFyLCBtb250aCwgbW9udGhEYXkgKTsi
X3M7Citjb25zdGV4cHIgYXV0byBjcmVhdGVVbmlxdWVJbmRleFVuYXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50ID0gIkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBVbmF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudF9zb3VyY2VTaXRlRG9tYWluSURfYXR0cmli
dXRlT25TaXRlRG9tYWluSUQgb24gVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
KCBzb3VyY2VTaXRlRG9tYWluSUQsIGF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEICk7Il9zOworY29u
c3RleHByIGF1dG8gY3JlYXRlVW5pcXVlSW5kZXhBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgPSAiQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIEF0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudF9zb3VyY2VTaXRlRG9tYWluSURfYXR0cmlidXRlT25TaXRlRG9t
YWluSUQgb24gQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50ICggc291cmNlU2l0ZURv
bWFpbklELCBhdHRyaWJ1dGVPblNpdGVEb21haW5JRCApOyJfczsKIAogc3RhdGljIGNvbnN0IFN0
cmluZyBPYnNlcnZlZERvbWFpbnNUYWJsZVNjaGVtYVYxKCkKIHsKQEAgLTI2Myw3ICsyOTcsMTAg
QEAgc3RhdGljIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBjcmVhdGVUYWJsZVF1ZXJp
ZXMoKQogICAgICAgICB7ICJTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zIl9zLCBjcmVh
dGVTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zfSwKICAgICAgICAgeyAiU3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdHNUbyJfcywgY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNU
b30sCiAgICAgICAgIHsgIlN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSJfcywgY3JlYXRl
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tfSwKLSAgICAgICAgeyAiT3BlcmF0aW5nRGF0
ZXMiX3MsIGNyZWF0ZU9wZXJhdGluZ0RhdGVzfQorICAgICAgICB7ICJPcGVyYXRpbmdEYXRlcyJf
cywgY3JlYXRlT3BlcmF0aW5nRGF0ZXN9LAorICAgICAgICB7ICJVbmF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCJfcywgY3JlYXRlVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnR9LAorICAgICAgICB7ICJBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQiX3Ms
IGNyZWF0ZUF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudH0sCisgICAgICAgIHsgIlRp
bWVyTGFzdEZpcmVkIl9zLCBjcmVhdGVUaW1lckxhc3RGaXJlZH0KICAgICB9KTsKICAgICAKICAg
ICByZXR1cm4gY3JlYXRlVGFibGVRdWVyaWVzOwpAQCAtMjk0LDYgKzMzMSw3IEBAIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZShXZWJSZXNvCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0dXJuT25JbmNyZW1lbnRhbEF1
dG9WYWN1dW0gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAKICAgICBpbmNsdWRlVG9kYXlBc09wZXJh
dGluZ0RhdGVJZk5lY2Vzc2FyeSgpOworICAgIHVwZGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25UaW1lcygpOwogICAgIGFsbFN0b3JlcygpLmFkZCh0aGlzKTsKIH0KIApAQCAt
NTU1LDcgKzU5Myw5IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmNyZWF0ZVVuaXF1ZUluZGljZXMoKQogICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29t
bWFuZChjcmVhdGVVbmlxdWVJbmRleFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMpCiAg
ICAgICAgIHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4U3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbykKICAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhlY3V0
ZUNvbW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5z
KQotICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRl
eE9wZXJhdGluZ0RhdGVzKSkgeworICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFu
ZChjcmVhdGVVbmlxdWVJbmRleE9wZXJhdGluZ0RhdGVzKQorICAgICAgICB8fCAhbV9kYXRhYmFz
ZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFVuYXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KQorICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVh
dGVVbmlxdWVJbmRleEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVVuaXF1ZUluZGljZXMgZmFpbGVkIHRvIGV4ZWN1dGUsIGVy
cm9yIG1lc3NhZ2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTYzMCw3ICs2NzAs
MjIgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlU2No
ZW1hKCkKICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIE9wZXJhdGluZ0RhdGVz
IHRhYmxlIGluIGRhdGFiYXNlICglaSkgLSAlcyIsIG1fZGF0YWJhc2UubGFzdEVycm9yKCksIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQor
CisgICAgaWYgKCFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KSkgeworICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBj
cmVhdGUgVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgdGFibGUgaW4gZGF0YWJh
c2UgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIW1fZGF0
YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KSkgeworICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBjcmVhdGUgQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IHRhYmxlIGluIGRhdGFiYXNlICglaSkgLSAlcyIsIG1fZGF0
YWJhc2UubGFzdEVycm9yKCksIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQogICAgIAorICAgIGlmICghbV9kYXRhYmFzZS5leGVjdXRlQ29t
bWFuZChjcmVhdGVUaW1lckxhc3RGaXJlZCkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBu
b3QgY3JlYXRlIFRpbWVyTGFzdEZpcmVkIHRhYmxlIGluIGRhdGFiYXNlICglaSkgLSAlcyIsIG1f
ZGF0YWJhc2UubGFzdEVycm9yKCksIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgaWYgKCFjcmVhdGVVbmlxdWVJbmRpY2VzKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNjc4LDYgKzczMywyMCBAQCB2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkZXN0cm95U3RhdGVtZW50cygpCiAgICAg
bV91bmlxdWVSZWRpcmVjdEV4aXN0c1N0YXRlbWVudCA9IG51bGxwdHI7CiAgICAgbV9vYnNlcnZl
ZERvbWFpbnNFeGlzdHNTdGF0ZW1lbnQgPSBudWxscHRyOwogICAgIG1fcmVtb3ZlQWxsRGF0YVN0
YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9pbnNlcnRVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9pbnNlcnRBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZW1lbnQgPSBudWxscHRyOworICAgIG1fc2V0VW5hdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRTdGF0ZW1lbnQgPSBudWxscHRy
OworICAgIG1fY2xlYXJVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVu
dCA9IG51bGxwdHI7CisgICAgbV9jbGVhckF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9jbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9hbGxVbmF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uc1N0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9h
bGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZW1lbnQgPSBudWxscHRyOwor
ICAgIG1fZmluZFVuYXR0cmlidXRlZFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV9maW5kQXR0
cmlidXRlZFN0YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV91cGRhdGVUaW1lckxhc3RGaXJlZFN0
YXRlbWVudCA9IG51bGxwdHI7CisgICAgbV90aW1lckxhc3RGaXJlZFN0YXRlbWVudCA9IG51bGxw
dHI7CisgICAgbV91cGRhdGVBdHRyaWJ1dGlvbnNFYXJsaWVzdFRpbWVUb1NlbmRTdGF0ZW1lbnQg
PSBudWxscHRyOworICAgIG1fcmVtb3ZlVW5hdHRyaWJ1dGVkU3RhdGVtZW50ID0gbnVsbHB0cjsK
IH0KIAogYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2Jz
ZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgbG9hZFN0YXRpc3RpY3Mp
CkBAIC0yODE0LDYgKzI4ODMsNDUzIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Omluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0CiAgICAgfQog
fQogCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVUaW1l
ckxhc3RGaXJlZCgpCit7CisgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRT
dGF0ZW1lbnQobV91cGRhdGVUaW1lckxhc3RGaXJlZFN0YXRlbWVudCwgdXBkYXRlVGltZXJMYXN0
RmlyZWRRdWVyeSwgInVwZGF0ZVRpbWVyTGFzdEZpcmVkIl9zKTsKKworICAgIGF1dG8gbm93ID0g
V2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKKworICAgIGlmICgh
c2NvcGVkU3RhdGVtZW50CisgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZERvdWJsZSgx
LCBub3cpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAh
PSBTUUxJVEVfRE9ORSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlVGltZXJMYXN0Rmly
ZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9
CisKK1dhbGxUaW1lIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0aW1lckxh
c3RGaXJlZCgpCit7CisgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0
ZW1lbnQobV90aW1lckxhc3RGaXJlZFN0YXRlbWVudCwgdGltZXJMYXN0RmlyZWRRdWVyeSwgInRp
bWVyTGFzdEZpcmVkIl9zKTsKKworICAgIGlmICghc2NvcGVkU3RhdGVtZW50KSB7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0aW1lckxhc3RGaXJlZCwgZXJyb3IgbWVzc2Fn
ZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgaWYgKHNjb3BlZFN0YXRlbWVu
dC0+c3RlcCgpID09IFNRTElURV9ST1cpCisgICAgICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHMoc2NvcGVkU3RhdGVtZW50LT5nZXRDb2x1bW5Eb3VibGUoMCkpOworICAgIAorICAg
IHJldHVybiBXYWxsVGltZTo6bm93KCk7Cit9CisKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnVwZGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25U
aW1lcygpCit7CisgICAgLy8gV2Ugc2hvdWxkIHVwZGF0ZSBhdHRyaWJ1dGlvbnMgb24gc2Vzc2lv
bi1zdGFydCB0byBhY2NvdW50IGZvciB0aGUgdGltZQorICAgIC8vIHRoYXQgcGFzc2VkIHdoaWxl
IHRoZSBzZXNzaW9uIHdhcyBjbG9zZWQuIElmIHRoZSBhbW91bnQgb2YgdGltZSBzaW5jZSB0aGUg
bGFzdAorICAgIC8vIHRpbWVyIGZpcmUgaXMgZ3JlYXRlciB0aGFuIHRoZSBlYXJsaWVzdFRpbWVU
b1NlbmQsIHdlIHNob3VsZCBzZXQgZWFybGllc3RUaW1lVG9TZW5kCisgICAgLy8gdG8gYmUgaW1t
ZWRpYXRlbHkuCisgICAgYXV0byBsYXN0RmlyZWQgPSB0aW1lckxhc3RGaXJlZCgpOworICAgIGF1
dG8gdGltZVBhc3NlZCA9IFdhbGxUaW1lOjpub3coKSAtIGxhc3RGaXJlZDsKKworICAgIGF1dG8g
c2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fdXBkYXRlQXR0cmlidXRp
b25zRWFybGllc3RUaW1lVG9TZW5kU3RhdGVtZW50LCB1cGRhdGVBdHRyaWJ1dGlvbnNFYXJsaWVz
dFRpbWVUb1NlbmRRdWVyeSwgInVwZGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25UaW1lcyJfcyk7CisKKyAgICBpZiAoIXNjb3BlZFN0YXRlbWVudAorICAgICAgICB8fCBzY29w
ZWRTdGF0ZW1lbnQtPmJpbmREb3VibGUoMSwgdGltZVBhc3NlZC52YWx1ZSgpKSAhPSBTUUxJVEVf
T0sKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsK
KyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZVByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25UaW1lcywgZXJyb3IgbWVzc2FnZTogJXtwcml2YXRlfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorfQorCitQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YnVpbGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21E
YXRhYmFzZShXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQqIHN0YXRlbWVudCwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUgYXR0cmlidXRpb25UeXBlKQoreworICAgIGF1dG8g
c291cmNlU2l0ZURvbWFpbiA9IGdldERvbWFpblN0cmluZ0Zyb21Eb21haW5JRChzdGF0ZW1lbnQt
PmdldENvbHVtbkludCgwKSk7CisgICAgYXV0byBhdHRyaWJ1dGVPblNpdGVEb21haW4gPSBnZXRE
b21haW5TdHJpbmdGcm9tRG9tYWluSUQoc3RhdGVtZW50LT5nZXRDb2x1bW5JbnQoMSkpOworICAg
IGF1dG8gc291cmNlSUQgPSBzdGF0ZW1lbnQtPmdldENvbHVtbkludCgyKTsKKyAgICBhdXRvIHRp
bWVPZkFkQ2xpY2sgPSBhdHRyaWJ1dGlvblR5cGUgPT0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
dHRyaWJ1dGlvblR5cGU6OkF0dHJpYnV0ZWQgPyBzdGF0ZW1lbnQtPmdldENvbHVtbkRvdWJsZSg1
KSA6IHN0YXRlbWVudC0+Z2V0Q29sdW1uRG91YmxlKDMpOworCisgICAgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgYXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZUlEKHNvdXJjZUlEKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJj
ZVNpdGUoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURv
bWFpblN0cmluZyhzb3VyY2VTaXRlRG9tYWluKSksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0
ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0cmluZyhhdHRyaWJ1dGVPblNpdGVEb21haW4pKSwgV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWVPZkFkQ2xpY2spKTsKKyAgICAKKyAgICBpZiAoYXR0
cmlidXRpb25UeXBlID09IFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlOjpB
dHRyaWJ1dGVkKSB7CisgICAgICAgIGF1dG8gYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IHN0YXRl
bWVudC0+Z2V0Q29sdW1uSW50KDMpOworICAgICAgICBhdXRvIHByaW9yaXR5ID0gc3RhdGVtZW50
LT5nZXRDb2x1bW5JbnQoNCk7CisgICAgICAgIGF1dG8gZWFybGllc3RUaW1lVG9TZW5kID0gc3Rh
dGVtZW50LT5nZXRDb2x1bW5Eb3VibGUoNik7CisgICAgICAgIAorICAgICAgICBpZiAoYXR0cmli
dXRpb25UcmlnZ2VyRGF0YSAhPSAtMSkKKyAgICAgICAgICAgIGF0dHJpYnV0aW9uLnNldEF0dHJp
YnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhIHsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkocHJpb3JpdHkpIH0pOwor
CisgICAgICAgIGF0dHJpYnV0aW9uLnNldEVhcmxpZXN0VGltZVRvU2VuZChXYWxsVGltZTo6ZnJv
bVJhd1NlY29uZHMoZWFybGllc3RUaW1lVG9TZW5kKSk7CisgICAgfQorCisgICAgcmV0dXJuIGF0
dHJpYnV0aW9uOworfQorCitzdGQ6OnBhaXI8T3B0aW9uYWw8VW5hdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ+LCBPcHRpb25hbDxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ+PiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZmluZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRlT25TaXRlJiBhdHRyaWJ1dGVPblNpdGUpCit7CisgICAgYXV0byBzb3VyY2VT
aXRlRG9tYWluSUQgPSBkb21haW5JRChzb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAg
ICBhdXRvIGF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEID0gZG9tYWluSUQoYXR0cmlidXRlT25TaXRl
LnJlZ2lzdHJhYmxlRG9tYWluKTsKKworICAgIGlmICghc291cmNlU2l0ZURvbWFpbklEIHx8ICFh
dHRyaWJ1dGVPblNpdGVEb21haW5JRCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKFdU
Rjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0KTsKKworICAgIGF1dG8gZmluZFVuYXR0cmlidXRlZFNj
b3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRlbWVudChtX2ZpbmRVbmF0dHJpYnV0ZWRT
dGF0ZW1lbnQsIGZpbmRVbmF0dHJpYnV0ZWRRdWVyeSwgImZpbmRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCJfcyk7CisgICAgaWYgKCFmaW5kVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50CisgICAg
ICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJj
ZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IGZpbmRVbmF0dHJpYnV0ZWRT
Y29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEKSAhPSBT
UUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Np
b25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmZpbmRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCBmaW5kVW5hdHRyaWJ1dGVkUXVlcnksIGVycm9yIG1lc3NhZ2U6
ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGF1dG8gZmluZEF0dHJpYnV0ZWRT
Y29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV9maW5kQXR0cmlidXRlZFN0
YXRlbWVudCwgZmluZEF0dHJpYnV0ZWRRdWVyeSwgImZpbmRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCJfcyk7CisgICAgaWYgKCFmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudAorICAgICAgICB8
fCBmaW5kQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCAqc291cmNlU2l0ZURv
bWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0
ZW1lbnQtPmJpbmRJbnQoMiwgKmF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sp
IHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmZpbmRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCBmaW5kQXR0cmlidXRlZFF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9
cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBPcHRpb25hbDxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudD4gdW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CisgICAg
aWYgKGZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSA9PSBTUUxJVEVfUk9X
KQorICAgICAgICB1bmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IGJ1aWxkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9tRGF0YWJhc2UoZmluZFVuYXR0cmlidXRlZFNjb3BlZFN0
YXRlbWVudC5nZXQoKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OlVu
YXR0cmlidXRlZCk7CisKKyAgICBPcHRpb25hbDxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ+IGF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKKyAgICBpZiAoZmluZEF0
dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSA9PSBTUUxJVEVfUk9XKQorICAgICAgICBh
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBidWlsZFByaXZhdGVDbGlja01lYXN1
cmVtZW50RnJvbURhdGFiYXNlKGZpbmRBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LmdldCgpLCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRlZCk7CisKKyAg
ICByZXR1cm4gc3RkOjptYWtlX3BhaXIodW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIGF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk7Cit9CisKK3ZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgYXR0cmlidXRpb24sIFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25UeXBlIGF0dHJpYnV0aW9uVHlwZSkKK3sKKyAgICBhdXRvIHNv
dXJjZURhdGEgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihh
dHRyaWJ1dGlvbi5zb3VyY2VTaXRlKCkucmVnaXN0cmFibGVEb21haW4pOworICAgIGF1dG8gYXR0
cmlidXRlT25EYXRhID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21h
aW4oYXR0cmlidXRpb24uYXR0cmlidXRlT25TaXRlKCkucmVnaXN0cmFibGVEb21haW4pOworCisg
ICAgaWYgKCFzb3VyY2VEYXRhLnNlY29uZCB8fCAhYXR0cmlidXRlT25EYXRhLnNlY29uZCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKGF0dHJpYnV0aW9uVHlwZSA9PSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRlZCkgeworICAgICAgICBhdXRvIGF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblRyaWdnZXJEYXRh
KCkgPyBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkudmFsdWUoKS5kYXRhIDog
LTE7CisgICAgICAgIGF1dG8gcHJpb3JpdHkgPSBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhKCkgPyBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkudmFsdWUoKS5w
cmlvcml0eSA6IC0xOworICAgICAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9IGF0dHJpYnV0
aW9uLmVhcmxpZXN0VGltZVRvU2VuZCgpID8gYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5k
KCkudmFsdWUoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgOiAtMTsKKworICAgICAgICBh
dXRvIHN0YXRlbWVudCA9IFNRTGl0ZVN0YXRlbWVudChtX2RhdGFiYXNlLCBpbnNlcnRBdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSk7CisgICAgICAgIGlmIChzdGF0ZW1lbnQu
cHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQo
MSwgKnNvdXJjZURhdGEuc2Vjb25kKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHN0YXRl
bWVudC5iaW5kSW50KDIsICphdHRyaWJ1dGVPbkRhdGEuc2Vjb25kKSAhPSBTUUxJVEVfT0sKKyAg
ICAgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kSW50KDMsIGF0dHJpYnV0aW9uLnNvdXJjZUlEKCku
aWQpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoNCwgYXR0
cmlidXRpb25UcmlnZ2VyRGF0YSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzdGF0ZW1l
bnQuYmluZEludCg1LCBwcmlvcml0eSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzdGF0
ZW1lbnQuYmluZERvdWJsZSg2LCBhdHRyaWJ1dGlvbi50aW1lT2ZBZENsaWNrKCkuc2Vjb25kc1Np
bmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHN0YXRlbWVu
dC5iaW5kRG91YmxlKDcsIGVhcmxpZXN0VGltZVRvU2VuZCkgIT0gU1FMSVRFX09LCisgICAgICAg
ICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
aW5zZXJ0QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnksIGVycm9yIG1lc3Nh
Z2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgYXV0byBzdGF0ZW1lbnQgPSBTUUxpdGVTdGF0ZW1lbnQobV9kYXRhYmFz
ZSwgaW5zZXJ0VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSk7CisgICAg
aWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHN0YXRlbWVu
dC5iaW5kSW50KDEsICpzb3VyY2VEYXRhLnNlY29uZCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8
IHN0YXRlbWVudC5iaW5kSW50KDIsICphdHRyaWJ1dGVPbkRhdGEuc2Vjb25kKSAhPSBTUUxJVEVf
T0sKKyAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoMywgYXR0cmlidXRpb24uc291cmNlSUQo
KS5pZCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kRG91YmxlKDQsIGF0
dHJpYnV0aW9uLnRpbWVPZkFkQ2xpY2soKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpICE9
IFNRTElURV9PSworICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCBpbnNlcnRVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5
LCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK3ZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBbGxVbmF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKQoreworICAgIGF1dG8g
c2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fc2V0VW5hdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRTdGF0ZW1lbnQsIHNldFVuYXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkUXVlcnksICJtYXJrQWxsVW5hdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nIl9zKTsKKworICAg
IGlmICghc2NvcGVkU3RhdGVtZW50IHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElU
RV9ET05FKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9u
SUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptYXJrQWxsVW5h
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nLCBlcnJv
ciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbW92ZVVuYXR0cmlidXRlZChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCYgYXR0cmlidXRpb24pCit7CisgICAgYXV0byBzb3VyY2VTaXRlRG9t
YWluSUQgPSBkb21haW5JRChhdHRyaWJ1dGlvbi5zb3VyY2VTaXRlKCkucmVnaXN0cmFibGVEb21h
aW4pOworICAgIGF1dG8gYXR0cmlidXRlT25TaXRlRG9tYWluSUQgPSBkb21haW5JRChhdHRyaWJ1
dGlvbi5hdHRyaWJ1dGVPblNpdGUoKS5yZWdpc3RyYWJsZURvbWFpbik7CisKKyAgICBpZiAoIXNv
dXJjZVNpdGVEb21haW5JRCB8fCAhYXR0cmlidXRlT25TaXRlRG9tYWluSUQpCisgICAgICAgIHJl
dHVybjsKKyAgICAKKyAgICBhdXRvIHNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0YXRl
bWVudChtX3JlbW92ZVVuYXR0cmlidXRlZFN0YXRlbWVudCwgcmVtb3ZlVW5hdHRyaWJ1dGVkUXVl
cnksICJyZW1vdmVVbmF0dHJpYnV0ZWQiX3MpOworCisgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQK
KyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEsICpzb3VyY2VTaXRlRG9tYWlu
SUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMiwg
KmF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc2NvcGVk
U3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnJlbW92ZVVuYXR0cmlidXRlZCwgZXJyb3IgbWVzc2FnZTogJXtwcml2
YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCitPcHRpb25hbDxTZWNvbmRzPiBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgQXR0cmlidXRlT25TaXRlJiBh
dHRyaWJ1dGVPblNpdGUsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhKQoreworICAgIC8vIFdlIHNob3VsZCBhbHdheXMgY2xlYXIgZXhwaXJlZCBjbGlja3Mg
ZnJvbSB0aGUgZGF0YWJhc2UgYmVmb3JlIHNjaGVkdWxpbmcgYW4gYXR0cmlidXRpb24uCisgICAg
Y2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKworICAgIGlmICghYXR0cmli
dXRpb25UcmlnZ2VyRGF0YS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVn
TW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsICJHb3QgYW4gaW52YWxpZCBhdHRyaWJ1dGlvbi4iKTsKKyAgICAgICAg
ICAgIGRlYnVnQnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJbUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudF0gR290IGFuIGludmFsaWQgYXR0cmlidXRpb24uIl9zKTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0KKworICAgIGF1dG8gZGF0YSA9IGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEuZGF0YTsKKyAgICBhdXRvIHByaW9yaXR5ID0gYXR0cmlidXRpb25U
cmlnZ2VyRGF0YS5wcmlvcml0eTsKKworICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVk
KCkpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
ICJHb3QgYW4gYXR0cmlidXRpb24gd2l0aCBhdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6ICV7cHVi
bGljfXUgYW5kIHByaW9yaXR5OiAle3B1YmxpY311LiIsIGRhdGEsIHByaW9yaXR5KTsKKyAgICAg
ICAgZGVidWdCcm9hZGNhc3RDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudF0gR290IGFuIGF0dHJpYnV0aW9uIHdpdGggYXR0cmlidXRpb24gdHJp
Z2dlciBkYXRhOiAnIl9zLCBkYXRhLCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIHByaW9yaXR5LCAi
Jy4iX3MpKTsKKyAgICB9CisKKyAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQgPSBTZWNvbmRzOjpp
bmZpbml0eSgpOworCisgICAgYXV0byBhdHRyaWJ1dGlvbiA9IGZpbmRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChzb3VyY2VTaXRlLCBhdHRyaWJ1dGVPblNpdGUpOworICAgIGF1dG8mIHByZXZpb3Vz
bHlVbmF0dHJpYnV0ZWQgPSBhdHRyaWJ1dGlvbi5maXJzdDsKKyAgICBhdXRvJiBwcmV2aW91c2x5
QXR0cmlidXRlZCA9IGF0dHJpYnV0aW9uLnNlY29uZDsKKworICAgIGlmIChwcmV2aW91c2x5VW5h
dHRyaWJ1dGVkKSB7CisgICAgICAgIC8vIEFsd2F5cyBjb252ZXJ0IHRoZSBwZW5kaW5nIGF0dHJp
YnV0aW9uIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgdW5hdHRyaWJ1dGVkIG1hcC4KKyAgICAgICAg
cmVtb3ZlVW5hdHRyaWJ1dGVkKCpwcmV2aW91c2x5VW5hdHRyaWJ1dGVkKTsKKyAgICAgICAgaWYg
KGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kID0gcHJldmlvdXNseVVuYXR0cmlidXRlZC52
YWx1ZSgpLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChXVEZNb3ZlKGF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEpKSkgeworICAgICAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9ICpvcHRp
b25hbFNlY29uZHNVbnRpbFNlbmQ7CisgICAgICAgICAgICBBU1NFUlQoc2Vjb25kc1VudGlsU2Vu
ZCAhPSBTZWNvbmRzOjppbmZpbml0eSgpKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1
Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnRlZCBhIHN0b3JlZCBhZCBjbGljayB3aXRoIGF0
dHJpYnV0aW9uIHRyaWdnZXIgZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGlj
fXUuIiwgZGF0YSwgcHJpb3JpdHkpOworICAgICAgICAgICAgICAgIGRlYnVnQnJvYWRjYXN0Q29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3Nh
Z2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENv
bnZlcnRlZCBhIHN0b3JlZCBhZCBjbGljayB3aXRoIGF0dHJpYnV0aW9uIHRyaWdnZXIgZGF0YTog
JyJfcywgZGF0YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBwcmlvcml0eSwgIicuIl9zKSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBwcmV2
aW91cyBhdHRyaWJ1dGlvbiwgb3IgdGhlIG5ldyBhdHRyaWJ1dGlvbiBoYXMgaGlnaGVyIHByaW9y
aXR5LCBpbnNlcnQvdXBkYXRlIHRoZSBkYXRhYmFzZS4KKyAgICAgICAgaWYgKCFwcmV2aW91c2x5
QXR0cmlidXRlZCB8fCBwcmV2aW91c2x5VW5hdHRyaWJ1dGVkLnZhbHVlKCkuaGFzSGlnaGVyUHJp
b3JpdHlUaGFuKCpwcmV2aW91c2x5QXR0cmlidXRlZCkpIHsKKyAgICAgICAgICAgIGluc2VydFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KFdURk1vdmUoKnByZXZpb3VzbHlVbmF0dHJpYnV0ZWQpLCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRlZCk7CisKKyAg
ICAgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIlJlcGxhY2Vk
IGEgcHJldmlvdXNseSBjb252ZXJ0ZWQgYWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBhdHRy
aWJ1dGlvbiBkYXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dSBiZWNhdXNl
IGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIiwgZGF0YSwgcHJpb3JpdHkpOworICAgICAgICAgICAg
ICAgIGRlYnVnQnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW1ByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnRdIFJlcGxhY2VkIGEgcHJldmlvdXNseSBjb252ZXJ0ZWQgYWQgY2xp
Y2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBhdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6ICciX3MsIGRh
dGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgcHJpb3JpdHksICInIGJlY2F1c2UgaXQgaGFkIGhp
Z2hlciBwcmlvcml0eS4iX3MpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxz
ZSBpZiAocHJldmlvdXNseUF0dHJpYnV0ZWQpIHsKKyAgICAgICAgLy8gSWYgd2UgaGF2ZSBubyBu
ZXcgYXR0cmlidXRpb24sIHJlLWF0dHJpYnV0ZSB0aGUgb2xkIG9uZSB0byByZXNwZWN0IHRoZSBu
ZXcgcHJpb3JpdHkuCisgICAgICAgIGlmIChhdXRvIG9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZCA9
IHByZXZpb3VzbHlBdHRyaWJ1dGVkLnZhbHVlKCkuYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1l
VG9TZW5kKFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkpKSB7CisgICAgICAgICAgICBp
bnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXVEZNb3ZlKCpwcmV2aW91c2x5QXR0cmlidXRl
ZCksIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlOjpBdHRyaWJ1dGVkKTsK
KworICAgICAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9ICpvcHRpb25hbFNlY29uZHNVbnRpbFNl
bmQ7CisgICAgICAgICAgICBBU1NFUlQoc2Vjb25kc1VudGlsU2VuZCAhPSBTZWNvbmRzOjppbmZp
bml0eSgpKTsKKworICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkp
IHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCAiUmUtY29udmVydGVkIGFuIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggYXR0cmli
dXRpb24gdHJpZ2dlciBkYXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dSBi
ZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3JpdHkuIiwgZGF0YSwgcHJpb3JpdHkpOworICAgICAg
ICAgICAgICAgIGRlYnVnQnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW1By
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFJlLWNvbnZlcnRlZCBhbiBhZCBjbGljayB3aXRoIGEg
bmV3IG9uZSB3aXRoIGF0dHJpYnV0aW9uIHRyaWdnZXIgZGF0YTogJyJfcywgZGF0YSwgIicgYW5k
IHByaW9yaXR5OiAnIl9zLCBwcmlvcml0eSwgIicnIGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlv
cml0eS4iX3MpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChz
ZWNvbmRzVW50aWxTZW5kID09IFNlY29uZHM6OmluZmluaXR5KCkpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gc2Vjb25kc1VudGlsU2VuZDsKK30KKworVmVjdG9y
PFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6YWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkKK3sK
KyAgICBhdXRvIGF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1l
bnQobV9hbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZW1lbnQsIGFsbEF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5LCAicHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb1N0cmluZyJfcyk7CisKKyAgICBpZiAoIWF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQp
IHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByaXZhdGVDbGlja01lYXN1
cmVtZW50VG9TdHJpbmcsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IH0KKworICAgIFZlY3RvcjxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gYXR0cmli
dXRpb25zOworICAgIHdoaWxlIChhdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgPT0g
U1FMSVRFX1JPVykKKyAgICAgICAgYXR0cmlidXRpb25zLmFwcGVuZChidWlsZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50RnJvbURhdGFiYXNlKGF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQuZ2V0KCks
IFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlOjpBdHRyaWJ1dGVkKSk7CisK
KyAgICByZXR1cm4gYXR0cmlidXRpb25zOworfQorCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KE9wdGlvbmFsPFJl
Z2lzdHJhYmxlRG9tYWluPiBkb21haW4pCit7CisgICAgLy8gRGVmYXVsdCB0byBjbGVhciBhbGwg
ZW50cmllcyBpZiBubyBkb21haW4gaXMgc3BlY2lmaWVkLgorICAgIFN0cmluZyBiaW5kUGFyYW1l
dGVyID0gIiUiOworICAgIGlmIChkb21haW4pIHsKKyAgICAgICAgYXV0byBkb21haW5JRFRvTWF0
Y2ggPSBkb21haW5JRCgqZG9tYWluKTsKKyAgICAgICAgaWYgKCFkb21haW5JRFRvTWF0Y2gpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYmluZFBhcmFtZXRlciA9IFN0cmluZzo6bnVt
YmVyKCpkb21haW5JRFRvTWF0Y2gpOworICAgIH0KKworICAgIGF1dG8gY2xlYXJVbmF0dHJpYnV0
ZWRTY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV9jbGVhclVuYXR0cmli
dXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50LCBjbGVhclVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnksICJjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50
Il9zKTsKKworICAgIGlmICghY2xlYXJVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQKKyAgICAg
ICAgfHwgY2xlYXJVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDEsIGJpbmRQ
YXJhbWV0ZXIpICE9IFNRTElURV9PSworICAgICAgICB8fCBjbGVhclVuYXR0cmlidXRlZFNjb3Bl
ZFN0YXRlbWVudC0+YmluZFRleHQoMiwgYmluZFBhcmFtZXRlcikgIT0gU1FMSVRFX09LCisgICAg
ICAgIHx8IGNsZWFyVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRF
X0RPTkUpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25J
RCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgY2xlYXJVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQsIGVycm9y
IG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGF1dG8gY2xlYXJB
dHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fY2xlYXJB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZW1lbnQsIGNsZWFyQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnksICJjbGVhclByaXZhdGVDbGlja01lYXN1cmVt
ZW50Il9zKTsKKworICAgIGlmICghY2xlYXJBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50CisgICAg
ICAgIHx8IGNsZWFyQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMSwgYmluZFBh
cmFtZXRlcikgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IGNsZWFyQXR0cmlidXRlZFNjb3BlZFN0
YXRlbWVudC0+YmluZFRleHQoMiwgYmluZFBhcmFtZXRlcikgIT0gU1FMSVRFX09LCisgICAgICAg
IHx8IGNsZWFyQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05F
KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclByaXZhdGVDbGlj
a01lYXN1cmVtZW50IGNsZWFyQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCwgZXJyb3IgbWVzc2Fn
ZTogJXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCit2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCgpCit7CisgICAgYXV0byBleHBpcmF0aW9uVGltZUZyYW1lID0gV2FsbFRpbWU6Om5vdygpIC0g
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Om1heEFnZSgpOworICAgIGF1dG8gc2Nv
cGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fY2xlYXJFeHBpcmVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZW1lbnQsIGNsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50UXVlcnksICJjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCJfcyk7CisK
KyAgICBpZiAoIXNjb3BlZFN0YXRlbWVudAorICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJp
bmREb3VibGUoMSwgZXhwaXJhdGlvblRpbWVGcmFtZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVl
KCkpICE9IFNRTElURV9PSworICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBT
UUxJVEVfRE9ORSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vz
c2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJF
eHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1z
IiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIH0KK30KKworU3RyaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjphdHRyaWJ1dGlvblRvU3RyaW5nKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCog
c3RhdGVtZW50LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSBhdHRyaWJ1
dGlvblR5cGUpCit7CisgICAgYXV0byBzb3VyY2VTaXRlRG9tYWluID0gZ2V0RG9tYWluU3RyaW5n
RnJvbURvbWFpbklEKHN0YXRlbWVudC0+Z2V0Q29sdW1uSW50KDApKTsKKyAgICBhdXRvIGF0dHJp
YnV0ZU9uU2l0ZURvbWFpbiA9IGdldERvbWFpblN0cmluZ0Zyb21Eb21haW5JRChzdGF0ZW1lbnQt
PmdldENvbHVtbkludCgxKSk7CisgICAgYXV0byBzb3VyY2VJRCA9IHN0YXRlbWVudC0+Z2V0Q29s
dW1uSW50KDIpOworCisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiU291cmNlIHNpdGU6ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kKHNvdXJjZVNp
dGVEb21haW4pOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5BdHRyaWJ1dGUgb24gc2l0
ZTogIik7CisgICAgYnVpbGRlci5hcHBlbmQoYXR0cmlidXRlT25TaXRlRG9tYWluKTsKKyAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuU291cmNlIElEOiAiKTsKKyAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcihzb3VyY2VJRCk7CisKKyAgICBpZiAoYXR0cmlidXRpb25UeXBlID09IFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlOjpBdHRyaWJ1dGVkKSB7CisgICAgICAgIGF1
dG8gYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IHN0YXRlbWVudC0+Z2V0Q29sdW1uSW50KDMpOwor
ICAgICAgICBhdXRvIHByaW9yaXR5ID0gc3RhdGVtZW50LT5nZXRDb2x1bW5JbnQoNCk7CisgICAg
ICAgIGF1dG8gZWFybGllc3RUaW1lVG9TZW5kID0gc3RhdGVtZW50LT5nZXRDb2x1bW5JbnQoNik7
CisKKyAgICAgICAgaWYgKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgIT0gLTEpIHsKKyAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5BdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6ICIp
OworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoYXR0cmlidXRpb25UcmlnZ2VyRGF0
YSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQXR0cmlidXRpb24gcHJp
b3JpdHk6ICIpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocHJpb3JpdHkpOwor
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkF0dHJpYnV0aW9uIGVhcmxpZXN0
IHRpbWUgdG8gc2VuZDogIik7CisgICAgICAgICAgICBpZiAoZWFybGllc3RUaW1lVG9TZW5kID09
IC0xKQorICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTm90IHNldCIpOwor
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXV0byBzZWNvbmRzVW50aWxTZW5k
ID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGVhcmxpZXN0VGltZVRvU2VuZCkgLSBXYWxsVGlt
ZTo6bm93KCk7CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoKHNlY29uZHNVbnRpbFNl
bmQgPj0gMjRfaCAmJiBzZWNvbmRzVW50aWxTZW5kIDw9IDQ4X2gpID8gIldpdGhpbiAyNC00OCBo
b3VycyIgOiAiT3V0c2lkZSAyNC00OCBob3VycyIpOworICAgICAgICAgICAgfQorICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5ObyBhdHRyaWJ1dGlv
biB0cmlnZ2VyIGRhdGEuIik7CisgICAgfSBlbHNlCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiXG5ObyBhdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGEuIik7CisgICAgYnVpbGRlci5hcHBl
bmQoJ1xuJyk7CisKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworfQorCitTdHJpbmcg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByaXZhdGVDbGlja01lYXN1cmVt
ZW50VG9TdHJpbmcoKQoreworICAgIFNRTGl0ZVN0YXRlbWVudCBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudERhdGFFeGlzdHMobV9kYXRhYmFzZSwgIlNFTEVDVCAoU0VMRUNUIENPVU5UKCopIEZST00g
VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIGFzIGNudDEsIChTRUxFQ1QgQ09V
TlQoKikgRlJPTSBBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIGFzIGNudDIiX3Mp
OworICAgIGlmIChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFFeGlzdHMucHJlcGFyZSgpICE9
IFNRTElURV9PSyB8fCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFFeGlzdHMuc3RlcCgpICE9
IFNRTElURV9ST1cpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByaXZhdGVDbGlja01lYXN1cmVt
ZW50VG9TdHJpbmcgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBpZiAoIXByaXZhdGVDbGlja01lYXN1
cmVtZW50RGF0YUV4aXN0cy5nZXRDb2x1bW5JbnQoMCkgJiYgIXByaXZhdGVDbGlja01lYXN1cmVt
ZW50RGF0YUV4aXN0cy5nZXRDb2x1bW5JbnQoMSkpCisgICAgICAgIHJldHVybiAiXG5ObyBzdG9y
ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBkYXRhLlxuIl9zOworCisgICAgYXV0byB1bmF0
dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV9hbGxVbmF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uc1N0YXRlbWVudCwgYWxs
VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvbnNRdWVyeSwgInBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmciX3MpOworCisgICAgaWYgKCF1bmF0dHJpYnV0
ZWRTY29wZWRTdGF0ZW1lbnQpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmcsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0
ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHVuc2lnbmVkIHVuYXR0cmlidXRlZE51bWJlciA9
IDA7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIHdoaWxlICh1bmF0dHJpYnV0ZWRT
Y29wZWRTdGF0ZW1lbnQtPnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CisgICAgICAgIGlmICghdW5h
dHRyaWJ1dGVkTnVtYmVyKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJVbmF0
dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6XG4iKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKCsrdW5hdHRyaWJ1dGVkTnVtYmVyKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJ1xuJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0dHJpYnV0aW9uVG9TdHJp
bmcodW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LmdldCgpLCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uVHlwZTo6VW5hdHRyaWJ1dGVkKSk7CisgICAgfQorCisgICAgYXV0byBh
dHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2NvcGVkU3RhdGVtZW50KG1fYWxsQXR0
cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50LCBhbGxBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSwgInByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJp
bmciX3MpOworCisgICAgaWYgKCFhdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50KSB7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3Ry
aW5nLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICB1
bnNpZ25lZCBhdHRyaWJ1dGVkTnVtYmVyID0gMDsKKyAgICB3aGlsZSAoYXR0cmlidXRlZFNjb3Bl
ZFN0YXRlbWVudC0+c3RlcCgpID09IFNRTElURV9ST1cpIHsKKyAgICAgICAgaWYgKHVuYXR0cmli
dXRlZE51bWJlcikKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICBp
ZiAoIWF0dHJpYnV0ZWROdW1iZXIpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IkF0dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6XG4iKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgIik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKCsrYXR0cmlidXRlZE51bWJlciArIHVuYXR0cmlidXRlZE51
bWJlcik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICBidWlsZGVyLmFw
cGVuZChhdHRyaWJ1dGlvblRvU3RyaW5nKGF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQuZ2V0KCks
IFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlOjpBdHRyaWJ1dGVkKSk7Cisg
ICAgfQorICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cit9CisKK3ZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyU2VudEF0dHJpYnV0aW9ucyhWZWN0b3I8
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgYXR0cmlidXRpb25zKQoreworICAg
IGZvciAoYXV0byYgYXR0cmlidXRpb24gOiBhdHRyaWJ1dGlvbnMpIHsKKyAgICAgICAgYXV0byBz
b3VyY2VTaXRlRG9tYWluSUQgPSBkb21haW5JRChhdHRyaWJ1dGlvbi5zb3VyY2VTaXRlKCkucmVn
aXN0cmFibGVEb21haW4pOworICAgICAgICBhdXRvIGF0dHJpYnV0ZU9uU2l0ZURvbWFpbklEID0g
ZG9tYWluSUQoYXR0cmlidXRpb24uYXR0cmlidXRlT25TaXRlKCkucmVnaXN0cmFibGVEb21haW4p
OworCisgICAgICAgIGlmICghc291cmNlU2l0ZURvbWFpbklEIHx8ICFhdHRyaWJ1dGVPblNpdGVE
b21haW5JRCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBTUUxpdGVTdGF0ZW1lbnQg
Y2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50KG1fZGF0YWJhc2UsICJERUxFVEUgRlJPTSBBdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgV0hFUkUgc291cmNlU2l0ZURvbWFpbklEID0gPyBB
TkQgYXR0cmlidXRlT25TaXRlRG9tYWluSUQgPSA/Il9zKTsKKyAgICAgICAgaWYgKGNsZWFyQXR0
cmlidXRlZFN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBj
bGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQuYmluZEludCgxLCAqc291cmNlU2l0ZURvbWFpbklEKSAh
PSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudC5iaW5k
SW50KDIsICphdHRyaWJ1dGVPblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgICAg
ICB8fCBjbGVhckF0dHJpYnV0ZWRTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Cisg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJTZW50QXR0cmlidXRp
b25zIGZhaWxlZCB0byBzdGVwLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIH0KKyAgICAgICAgY2xlYXJBdHRyaWJ1dGVkU3RhdGVtZW50LnJlc2V0KCk7
CisgICAgfQorfQorCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpt
YXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmco
KQoreworICAgIC8vIFVwZGF0ZSB0aGUgbGFzdCB0aW1lciBmaXJlZCB0aW1lIHRvIGJlIG9uZSBk
YXkgYWdvLgorICAgIGF1dG8geWVzdGVyZGF5ID0gKFdhbGxUaW1lOjpub3coKSAtIDI0X2gpLnNl
Y29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKKyAgICBhdXRvIHNjb3BlZFN0YXRlbWVudCA9IHRo
aXMtPnNjb3BlZFN0YXRlbWVudChtX3VwZGF0ZVRpbWVyTGFzdEZpcmVkU3RhdGVtZW50LCB1cGRh
dGVUaW1lckxhc3RGaXJlZFF1ZXJ5LCAiaW5zZXJ0RXhwaXJlZEF0dHJpYnV0aW9uVGVzdGluZyJf
cyk7CisgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKKyAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50
LT5iaW5kRG91YmxlKDEsIHllc3RlcmRheSkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNjb3Bl
ZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjppbnNlcnRFeHBpcmVkQXR0cmlidXRpb25UZXN0aW5nIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTog
JXtwcml2YXRlfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgYXV0byBleHBpcmVkVGltZVRvU2Vu
ZCA9IDFfaDsgLy8gTXVzdCBiZSBsZXNzIHRoYW4gMSBkYXkuCisgICAgCisgICAgYXV0byBzdGF0
ZW1lbnQgPSBTUUxpdGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwgIlVQREFURSBBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQgU0VUIGVhcmxpZXN0VGltZVRvU2VuZCA9ID8iKTsKKyAgICBp
ZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50
LmJpbmRJbnQoMSwgZXhwaXJlZFRpbWVUb1NlbmQudmFsdWUoKSkgIT0gU1FMSVRFX09LCisgICAg
ICAgIHx8IHN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBlcnJv
ciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4IDI2NGVhYWEwNWU0NTcyY2Rl
MWQwMDI0NTAxYmM0YzlmNTE3YzcxZWIuLjYwNzQyMGE0MzI3OTQ0ZTdkZjFmMmE0MDdiN2Q0Yzk5
MGY2M2M5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5oCkBAIC01Myw2ICs1MywxMyBAQCBzdGF0aWMgY29uc3RleHByIHNpemVfdCBu
dW1iZXJPZlN0YXRpc3RpY3MgPSA3Owogc3RhdGljIGNvbnN0ZXhwciBzdGQ6OmFycmF5PHVuc2ln
bmVkLCBudW1iZXJPZkJ1Y2tldHNQZXJTdGF0aXN0aWM+IGJ1Y2tldFNpemVzIHt7IDEsIDMsIDEw
LCA1MCwgMTAwIH19OwogCiBjbGFzcyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU7
CitjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI7CisKK3VzaW5nIEF0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OwordXNpbmcgVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKK3VzaW5nIFNvdXJjZVNpdGUgPSBXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZTsKK3VzaW5nIEF0dHJpYnV0ZU9uU2l0
ZSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGU7Cit1
c2luZyBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAKIC8vIFRoaXMgaXMgYWx3YXlzIGNvbnN0
cnVjdGVkIC8gdXNlZCAvIGRlc3Ryb3llZCBvbiB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlJ3Mgc3RhdGlzdGljcyBxdWV1ZS4KIGNsYXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlIGZpbmFsIDogcHVibGljIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB7
CkBAIC0xMjQsNiArMTMxLDE5IEBAIHB1YmxpYzoKICAgICB2b2lkIGluc2VydEV4cGlyZWRTdGF0
aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgYm9vbCBoYXNVc2VySW50
ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9v
bCBpc1ByZXZhbGVudCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbnRlcnJ1cHQoKTsKIAorICAgIC8v
IFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQuCisgICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBtYXJrQWxs
VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKCkg
b3ZlcnJpZGU7CisgICAgT3B0aW9uYWw8U2Vjb25kcz4gYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNp
dGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25T
aXRlJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEmJikgb3ZlcnJpZGU7CisgICAgVmVjdG9yPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50PiBhbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSBvdmVycmlkZTsK
KyAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoT3B0aW9uYWw8UmVnaXN0cmFi
bGVEb21haW4+KSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyRXhwaXJlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50KCkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHByaXZhdGVDbGlja01lYXN1cmVtZW50
VG9TdHJpbmcoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyU2VudEF0dHJpYnV0aW9ucyhWZWN0
b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYpIG92ZXJyaWRlOworICAgIHZv
aWQgdXBkYXRlVGltZXJMYXN0RmlyZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIG1hcmtBdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpIG92ZXJyaWRl
OworICAgIHZvaWQgdXBkYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRpbWVz
KCk7CisKIHByaXZhdGU6CiAgICAgdm9pZCBpbmNsdWRlVG9kYXlBc09wZXJhdGluZ0RhdGVJZk5l
Y2Vzc2FyeSgpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJPcGVyYXRpbmdEYXRlcygpIG92ZXJy
aWRlIHsgfQpAQCAtMjEzLDYgKzIzMywxMiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBlbnN1cmVB
bmRNYWtlRG9tYWluTGlzdChjb25zdCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYpOwogICAg
IE9wdGlvbmFsPFdhbGxUaW1lPiBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZShjb25zdCBE
b21haW5EYXRhJik7CiAgICAgCisgICAgdm9pZCByZW1vdmVVbmF0dHJpYnV0ZWQoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKKyAgICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBidWlsZFByaXZhdGVDbGlja01lYXN1cmVtZW50RnJvbURhdGFiYXNlKFdlYkNvcmU6
OlNRTGl0ZVN0YXRlbWVudCosIFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBl
KTsKKyAgICBTdHJpbmcgYXR0cmlidXRpb25Ub1N0cmluZyhXZWJDb3JlOjpTUUxpdGVTdGF0ZW1l
bnQqLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSk7CisgICAgc3RkOjpw
YWlyPE9wdGlvbmFsPFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50PiwgT3B0aW9u
YWw8QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50Pj4gZmluZFByaXZhdGVDbGlja01l
YXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VT
aXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9u
U2l0ZSYpOworICAgIFdhbGxUaW1lIHRpbWVyTGFzdEZpcmVkKCk7CisKICAgICBjb25zdCBTdHJp
bmcgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aDsKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZURh
dGFiYXNlIG1fZGF0YWJhc2U7CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
U1FMaXRlU3RhdGVtZW50PiBtX29ic2VydmVkRG9tYWluQ291bnRTdGF0ZW1lbnQ7CkBAIC0yNTIs
NiArMjc4LDIxIEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6U1FMaXRlU3RhdGVtZW50PiBtX3VuaXF1ZVJlZGlyZWN0RXhpc3RzU3RhdGVtZW50OwogICAg
IG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9vYnNl
cnZlZERvbWFpbnNFeGlzdHNTdGF0ZW1lbnQ7CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX3JlbW92ZUFsbERhdGFTdGF0ZW1lbnQ7CisgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9pbnNlcnRVbmF0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2luc2VydEF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFN0YXRlbWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FM
aXRlU3RhdGVtZW50PiBtX3NldFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNF
eHBpcmVkU3RhdGVtZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0
ZW1lbnQ+IG1fY2xlYXJVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVu
dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2NsZWFy
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGVtZW50OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fY2xlYXJFeHBpcmVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRTdGF0ZW1lbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNR
TGl0ZVN0YXRlbWVudD4gbV9hbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uc1N0YXRlbWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRl
U3RhdGVtZW50PiBtX2FsbEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVu
dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2ZpbmRV
bmF0dHJpYnV0ZWRTdGF0ZW1lbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0
ZVN0YXRlbWVudD4gbV9maW5kQXR0cmlidXRlZFN0YXRlbWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX3VwZGF0ZVRpbWVyTGFzdEZpcmVkU3RhdGVt
ZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fdGlt
ZXJMYXN0RmlyZWRTdGF0ZW1lbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0
ZVN0YXRlbWVudD4gbV91cGRhdGVBdHRyaWJ1dGlvbnNFYXJsaWVzdFRpbWVUb1NlbmRTdGF0ZW1l
bnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9yZW1v
dmVVbmF0dHJpYnV0ZWRTdGF0ZW1lbnQ7CisgICAgCiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CiAgICAgYm9vbCBtX2lzTmV3UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlRmls
ZSB7IGZhbHNlIH07CiAgICAgdW5zaWduZWQgbV9vcGVyYXRpbmdEYXRlc1NpemUgeyAwIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKaW5kZXgg
YjE1ODZiOTc5ZGQ4OGU0ZmJjMmE1MTU4MDM4OTAyM2ZlZWVlYmRiNS4uZjg1YTE1ZGM0ZmE2MzVj
Njk1MzM2MGY0YTRhZTdjNzhlYWNmOTY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaApAQCAtMTA4LDYgKzEwOCwxOCBAQCBwdWJsaWM6CiAg
ICAgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBhbGxEb21haW5zKCkgY29uc3QgZmluYWw7CiAg
ICAgdm9pZCBpbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYsIGJvb2wgaGFzVXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxs
QnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQpIG92ZXJyaWRlOwogCisgICAg
Ly8gUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIElU
UCBtZW1vcnkgc3RvcmUuCisgICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uVHlwZSkgb3ZlcnJpZGUgeyB9OworICAgIHZvaWQgbWFya0FsbFVuYXR0cmli
dXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZygpIG92ZXJyaWRl
IHsgfTsKKyAgICBPcHRpb25hbDxTZWNvbmRzPiBhdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYs
IGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUm
LCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0
YSYmKSBvdmVycmlkZSB7IHJldHVybiB7IH07IH07CisgICAgVmVjdG9yPFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50PiBhbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
KSBvdmVycmlkZSB7IHJldHVybiB7IH07IH07CisgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01l
YXN1cmVtZW50KE9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9tYWluPikgb3ZlcnJpZGUgeyB9OworICAg
IHZvaWQgY2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSBvdmVycmlkZSB7IH07
CisgICAgU3RyaW5nIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmcoKSBvdmVycmlkZSB7
IHJldHVybiBTdHJpbmcoKTsgfTsKKyAgICB2b2lkIGNsZWFyU2VudEF0dHJpYnV0aW9ucyhWZWN0
b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYpIG92ZXJyaWRlIHsgfTsKKyAg
ICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9y
VGVzdGluZygpIG92ZXJyaWRlIHsgfTsKKyAgICB2b2lkIHVwZGF0ZVRpbWVyTGFzdEZpcmVkKCkg
b3ZlcnJpZGUgeyB9OworCiBwcml2YXRlOgogICAgIHZvaWQgaW5jbHVkZVRvZGF5QXNPcGVyYXRp
bmdEYXRlSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKICAgICBjb25zdCBWZWN0b3I8T3BlcmF0aW5n
RGF0ZT4mIG9wZXJhdGluZ0RhdGVzKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRpbmdEYXRlczsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDc3ZDA1NWNj
ZDcxMzY2YjZiZGY3OWJjYTI0NWQ4NzE2MGJjMzY5NjkuLjYyZTAzNWJlMDBkMDE4NjYyYTc1MjZj
ZjhmOTcxMDAxMGZkNDFjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgKQEAgLTIwMiw2ICsyMDIsMTggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGVh
ck9wZXJhdGluZ0RhdGVzKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBoYXNTdGF0aXN0aWNzRXhw
aXJlZChXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSwgT3BlcmF0aW5nRGF0
ZXNXaW5kb3cpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0RXhwaXJlZFN0YXRp
c3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBib29sIGhhc1VzZXJJbnRl
cmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBib29s
KSA9IDA7CisgICAgCisgICAgLy8gUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudC4KKyAgICB2aXJ0
dWFsIHZvaWQgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFya0FsbFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZygpID0gMDsKKyAgICB2aXJ0dWFsIE9wdGlvbmFs
PFNlY29uZHM+IGF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSYsIFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYpID0gMDsKKyAgICB2aXJ0
dWFsIFZlY3RvcjxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gYWxsQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclBy
aXZhdGVDbGlja01lYXN1cmVtZW50KE9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9tYWluPikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBjbGVhckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpID0g
MDsKKyAgICB2aXJ0dWFsIFN0cmluZyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3RyaW5nKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclNlbnRBdHRyaWJ1dGlvbnMoVmVjdG9yPFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG1h
cmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGltZXJMYXN0RmlyZWQoKSA9IDA7CiAKIHBy
b3RlY3RlZDoKICAgICBzdGF0aWMgdW5zaWduZWQgY29tcHV0ZUltcG9ydGFuY2UoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBhMTczMDk4NzJlOTI4NjMyZWI2NTJiOTk5
NmIzMDA4OTNlNjhkYjZjLi4yNjY3NmU2OGQ1NDdiMjFhZjZjZGQ0Yzc4OWI0YzNiNGRmZTU2Zjkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApA
QCAtMTQ3NSw2ICsxNDc1LDIwMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaQogICAgIH0pOwog
fQogCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlVGltZXJMYXN0
RmlyZWQoKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAoaXNF
cGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcG9zdFRhc2soW3RoaXNdKCkgbXV0
YWJsZSB7CisgICAgICAgIGlmICghbV9zdGF0aXN0aWNzU3RvcmUpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPnVwZGF0ZVRpbWVyTGFzdEZpcmVkKCk7
CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjppbnNl
cnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIGF0dHJp
YnV0aW9uLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSBhdHRyaWJ1dGlv
blR5cGUpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChpc0Vw
aGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwb3N0VGFzayhbdGhpcywgYXR0cmli
dXRpb24gPSBXVEZNb3ZlKGF0dHJpYnV0aW9uKSwgYXR0cmlidXRpb25UeXBlXSgpIG11dGFibGUg
eworICAgICAgICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5pbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dChXVEZNb3ZlKGF0dHJpYnV0aW9uKSwgYXR0cmlidXRpb25UeXBlKTsKKyAgICB9KTsKK30KKwor
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1hcmtBbGxVbmF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKQoreworICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgcG9zdFRhc2soW3RoaXNdKCkgeworICAgICAgICBpZiAoIW1fc3RhdGlz
dGljc1N0b3JlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fc3RhdGlzdGljc1N0
b3JlLT5tYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRG
b3JUZXN0aW5nKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjphdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25TaXRlLCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U2Vjb25kcz4pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBp
ZiAoaXNFcGhlbWVyYWwoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgcG9zdFRhc2soW3RoaXMsIHNvdXJjZVNpdGUsIGF0
dHJpYnV0ZU9uU2l0ZSwgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUoYXR0cmlidXRp
b25UcmlnZ2VyRGF0YSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghbV9zdGF0aXN0aWNzU3RvcmUpIHsKKyAg
ICAgICAgICAgIHBvc3RUYXNrUmVwbHkoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGOjpudWxsb3B0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgYXV0byBzZWNvbmRzID0gbV9zdGF0aXN0aWNzU3RvcmUt
PmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUsIGF0dHJpYnV0ZU9u
U2l0ZSwgV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSk7CisgICAgICAgIHBvc3RUYXNr
UmVwbHkoW3NlY29uZHMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzZWNvbmRz
KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjphbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBp
ZiAoaXNFcGhlbWVyYWwoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgcG9zdFRhc2soW3RoaXMsIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgIGlm
ICghbV9zdGF0aXN0aWNzU3RvcmUpIHsKKyAgICAgICAgICAgIHBvc3RUYXNrUmVwbHkoW2NvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBjb252ZXJ0ZWRB
dHRyaWJ1dGlvbnMgPSBtX3N0YXRpc3RpY3NTdG9yZS0+YWxsQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KCk7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoW2NvbnZlcnRlZEF0dHJpYnV0
aW9ucyA9IFdURk1vdmUoY29udmVydGVkQXR0cmlidXRpb25zKSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29udmVydGVkQXR0cmlidXRpb25zKSk7CisgICAgICAg
IH0pOworICAgIH0pOworfQorCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKKworICAgIGlmIChpc0VwaGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBwb3N0VGFzayhbdGhpc10oKSB7CisgICAgICAgIGlmICghbV9zdGF0aXN0aWNzU3RvcmUpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPmNsZWFyUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RGOjpudWxsb3B0KTsKKyAgICB9KTsKK30KKyAgICAKK3Zv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhclByaXZhdGVDbGlja01lYXN1
cmVtZW50Rm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFp
bikKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKGlzRXBoZW1l
cmFsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHBvc3RUYXNrKFt0aGlzLCBkb21haW4gPSBk
b21haW4uaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghbV9zdGF0aXN0
aWNzU3RvcmUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9zdGF0aXN0aWNzU3Rv
cmUtPmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoZG9tYWluKTsKKyAgICB9KTsKK30KKwor
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNsZWFyRXhwaXJlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50KCkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisg
ICAgaWYgKGlzRXBoZW1lcmFsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHBvc3RUYXNrKFt0
aGlzXSgpIHsKKyAgICAgICAgaWYgKCFtX3N0YXRpc3RpY3NTdG9yZSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBtX3N0YXRpc3RpY3NTdG9yZS0+Y2xlYXJFeHBpcmVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OnByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmcoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdHJpbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkgeworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigiXG5ObyBzdG9yZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBk
YXRhLlxuIl9zKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBvc3RUYXNrKFt0aGlz
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFi
bGUgeworICAgICAgICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlKSB7CisgICAgICAgICAgICBwb3N0
VGFza1JlcGx5KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGF1dG8gcmVzdWx0ID0gbV9zdGF0aXN0aWNzU3RvcmUtPnByaXZhdGVDbGlja01lYXN1cmVtZW50
VG9TdHJpbmcoKTsKKyAgICAgICAgcG9zdFRhc2tSZXBseShbcmVzdWx0LCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIocmVzdWx0KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisK
K3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhclNlbnRBdHRyaWJ1dGlv
bnMoVmVjdG9yPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIGF0dHJpYnV0aW9u
c1RvQ2xlYXIpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChp
c0VwaGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwb3N0VGFzayhbdGhpcywgYXR0
cmlidXRpb25zVG9DbGVhciA9IFdURk1vdmUoYXR0cmlidXRpb25zVG9DbGVhcildKCkgbXV0YWJs
ZSB7CisgICAgICAgIGlmICghbV9zdGF0aXN0aWNzU3RvcmUpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPmNsZWFyU2VudEF0dHJpYnV0aW9ucyhXVEZN
b3ZlKGF0dHJpYnV0aW9uc1RvQ2xlYXIpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlm
IChpc0VwaGVtZXJhbCgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBwb3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKG1f
c3RhdGlzdGljc1N0b3JlKQorICAgICAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPm1hcmtBdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOworCisg
ICAgICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIH0p
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggZTNmZTM3MTk5MzMxMGJlZWZlMmVj
YWY0ZjRkOWE3YjcyMDMzOTM5OS4uMzVkMjRjN2EzZjlmNjQ3M2EyZWUxYjY0NDg2OWE0NzI3MTEy
NWM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApA
QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZE9ic2VydmVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CkBAIC02NSw2ICs2Niw3IEBAIGNsYXNzIE5ldHdvcmtTZXNzaW9uOwog
Y2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogY2xhc3MgV2ViRnJhbWVQcm94eTsK
IGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKK2VudW0gY2xhc3MgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblR5cGUgOiBib29sOwogZW51bSBjbGFzcyBTaG91bGRHcmFuZGZhdGhlclN0
YXRpc3RpY3MgOiBib29sOwogZW51bSBjbGFzcyBTaG91bGRJbmNsdWRlTG9jYWxob3N0IDogYm9v
bCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgRW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rl
YnVnTW9kZSA6IGJvb2wgeyBObywgWWVzIH07CkBAIC0zMDQsNiArMzA2LDE5IEBAIHN0cnVjdCBU
aGlyZFBhcnR5RGF0YSB7CiAgICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNFcGhlbWVyYWwgPT0gV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNFcGhlbWVy
YWw6OlllczsgfTsKICAgICB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNT
Y2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAorICAgIC8vIFByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnQuCisgICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uVHlwZSk7CisgICAgdm9pZCBtYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBhdHRyaWJ1dGVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGVPblNpdGUmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25U
cmlnZ2VyRGF0YSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFNlY29uZHM+KT4m
Jik7CisgICAgdm9pZCBhbGxBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+
JiYpPiYmKTsKKyAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICB2
b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGb3JSZWdpc3RyYWJsZURvbWFpbihjb25z
dCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOworICAgIHZvaWQgY2xlYXJFeHBpcmVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICB2b2lkIHByaXZhdGVDbGlja01lYXN1cmVtZW50
VG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKKyAgICB2b2lkIGNs
ZWFyU2VudEF0dHJpYnV0aW9ucyhWZWN0b3I8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ+JiYpOworICAgIHZvaWQgdXBkYXRlVGltZXJMYXN0RmlyZWQoKTsKKyAgICB2b2lkIG1hcmtB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYs
IFNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6
OklzRXBoZW1lcmFsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAppbmRleCA4YTlkMmYzOTM5ZTcxODZiODFlOGE3ZWZkNGJiZWI1MGE2M2Iy
ZjU5Li4yOTFhNTI2NWMzYTA3YmQ4MDQ0YzMxYTIyNjY1NzkwNTNkNDA5MWZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjU2Miw2
ICsyNTYyLDMzIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoUEFMOjpTZXNzCiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmlyZVByaXZhdGVDbGlja01lYXN1cmVt
ZW50VGltZXJJbW1lZGlhdGVseShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAgaWYg
KGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQorICAgICAgICBzZXNz
aW9uLT5maXJlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUaW1lckltbWVkaWF0ZWx5KCk7Cit9CisK
K3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Np
b25SZXN0YXJ0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0
d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgeworICAgICAgICBzZXNzaW9uLT5yZWNyZWF0ZVJlc291
cmNlTG9hZFN0YXRpc3RpY1N0b3JlKFt0aGlzLCBzZXNzaW9uSUQsIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAgICAgICAgICAg
ZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseShzZXNzaW9uSUQpOwor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBOZXR3b3Jr
UHJvY2Vzczo6bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0
d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgeworICAgICAgICBzZXNzaW9uLT5tYXJrQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
UkwmJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYmU1
MjZlZmYxZThjOTFkMzZlYTg5Yjg3ZTdiNTY3OTU4YTk1NmZiMi4uNjBkMzZiYjU3NTY3ZjMyOGU3
ZmFjY2QyZTgwYTJlMTBhNDM5ODExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzM2LDYgKzMzNiw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIHZvaWQgc2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoUEFM
OjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lv
bklELCBVUkwmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG1hcmtQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCkBAIC00NzksNiArNDgxLDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIGFkZFNlcnZpY2VXb3JrZXJTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBi
b29sIHByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCwgU3RyaW5nJiYgc2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRpcmVjdG9yeSwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7
CiAjZW5kaWYKIAorICAgIHZvaWQgZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1l
ZGlhdGVseShQQUw6OlNlc3Npb25JRCk7CisKICAgICBjbGFzcyBTZXNzaW9uU3RvcmFnZVF1b3Rh
TWFuYWdlciB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluCmluZGV4IDBmMDE5MDU2ZTViNTdmNTMzNGI4Y2U3MzgyNmUyZmEwNTY4ODkz
YmYuLjYwMWUyNGNiMjU2MzZlMTdiZDU1NGQ2OGYwZThiZmFmNTJkYWIyZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgpAQCAtMTY1LDYgKzE2NSw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKSAtPiAoU3RyaW5nIHByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGUpIEFz
eW5jCiAgICAgQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlk
ZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpIC0+
ICgpIEFzeW5jCisgICAgTWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4
cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAg
ICBTaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1
cmwpIC0+ICgpIEFzeW5jCiAgICAgTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIEdl
dExvY2FsU3RvcmFnZU9yaWdpbkRldGFpbHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAo
VmVjdG9yPFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpPcmlnaW5EZXRhaWxz
PiBkZXRhaWxzKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDM1ZTk5OTRkNzRkNTEwYWE0ZTE0NTg0
OGM3MmQyYjU4NWUwYmMwYzguLjI5MDVkNTFlMTdhMTYzYWEzNDRjMjMxYWFkZDQzNjQzYWFkZjg2
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5jcHAKQEAgLTgxNCwxMCArODE0LDEwIEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsCiAgICAgKyttX3JlZGlyZWN0Q291bnQ7CiAgICAgbV9yZWRpcmVjdFJlc3BvbnNlID0g
cmVkaXJlY3RSZXNwb25zZTsKIAotICAgIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpDb252ZXJzaW9uPiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb247CisgICAgT3B0
aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IHBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YTsKICAgICBpZiAoIXNl
c3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpIHsKLSAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QocmVkaXJlY3RSZXF1
ZXN0LnVybCgpKSkKLSAgICAgICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lv
biA9IHJlc3VsdC52YWx1ZSgpOworICAgICAgICBpZiAoYXV0byByZXN1bHQgPSBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QocmVkaXJlY3RSZXF1ZXN0LnVy
bCgpKSkKKyAgICAgICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25Ucmln
Z2VyRGF0YSA9IHJlc3VsdC52YWx1ZSgpOwogICAgICAgICBlbHNlIGlmICghcmVzdWx0LmVycm9y
KCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIHJlc3VsdC5l
cnJvcigpKTsKICAgICB9CkBAIC04MjcsMTIgKzgyNywxMiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LAogICAgICAgICBtX2NhY2hlLT5zdG9yZVJlZGlyZWN0KHJlcXVlc3QsIHJlZGlyZWN0UmVz
cG9uc2UsIHJlZGlyZWN0UmVxdWVzdCwgbWF4QWdlQ2FwKTsKIAogICAgIGlmIChtX25ldHdvcmtM
b2FkQ2hlY2tlcikgewotICAgICAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uKQorICAgICAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhKQogICAgICAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPmVuYWJsZUNvbnRlbnRF
eHRlbnNpb25zQ2hlY2soKTsKICAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPnN0b3JlUmVk
aXJlY3Rpb25JZk5lZWRlZChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKIAogICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiBDaGVja2lu
ZyByZWRpcmVjdCB1c2luZyBOZXR3b3JrTG9hZENoZWNrZXIiKTsKLSAgICAgICAgbV9uZXR3b3Jr
TG9hZENoZWNrZXItPmNoZWNrUmVkaXJlY3Rpb24oV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShy
ZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB0aGlzLCBbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9
IG1fbmV0d29ya0xvYWRDaGVja2VyLT5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSgpLCBwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24gPSBXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29udmVyc2lvbildKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBtX25ldHdv
cmtMb2FkQ2hlY2tlci0+Y2hlY2tSZWRpcmVjdGlvbihXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KHJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHRoaXMsIFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
ID0gbV9uZXR3b3JrTG9hZENoZWNrZXItPnN0b3JlZENyZWRlbnRpYWxzUG9saWN5KCksIHByaXZh
dGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUocHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKV0oYXV0byYmIHJlc3VsdCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdC5oYXNfdmFsdWUoKSkgewogICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQuZXJyb3IoKS5pc0NhbmNlbGxhdGlvbigpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVkaXJlY3RlZFJl
cXVlc3Q6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tSZWRpcmVjdGlvbiByZXR1cm5lZCB3aXRo
IGEgY2FuY2VsbGF0aW9uIik7CkBAIC04NjUsMTYgKzg2NSwxNiBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBtX3Nob3VsZFJlc3RhcnRMb2Fk
ID0gc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgIT0gbV9uZXR3b3JrTG9hZENoZWNrZXItPnN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5KCk7Ci0gICAgICAgICAgICB0aGlzLT5jb250aW51ZVdpbGxTZW5k
UmVkaXJlY3RlZFJlcXVlc3QoV1RGTW92ZShyZXN1bHQtPnJlcXVlc3QpLCBXVEZNb3ZlKHJlc3Vs
dC0+cmVkaXJlY3RSZXF1ZXN0KSwgV1RGTW92ZShyZXN1bHQtPnJlZGlyZWN0UmVzcG9uc2UpLCBX
VEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbikpOworICAgICAgICAgICAg
dGhpcy0+Y29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUocmVzdWx0LT5y
ZXF1ZXN0KSwgV1RGTW92ZShyZXN1bHQtPnJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUocmVzdWx0
LT5yZWRpcmVjdFJlc3BvbnNlKSwgV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEpKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgY29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCks
IFdURk1vdmUocmVkaXJlY3RSZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgV1RG
TW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pKTsKKyAgICBjb250aW51ZVdp
bGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVj
dFJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCBXVEZNb3ZlKHByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YSkpOwogfQogCi12b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6Y29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVxdWVzdCYmIHJlZGlyZWN0UmVxdWVzdCwgUmVz
b3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIE9wdGlvbmFsPFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpDb252ZXJzaW9uPiYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lv
bikKK3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVkaXJlY3Rl
ZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVk
aXJlY3RSZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgT3B0aW9u
YWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+JiYgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogewotICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdDogKG1f
aXNLZXB0QWxpdmU9JWQsIGhhc0FkQ2xpY2tDb252ZXJzaW9uPSVkKSIsIG1faXNLZXB0QWxpdmUs
ICEhcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKTsKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJjb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Q6IChtX2lzS2VwdEFs
aXZlPSVkLCBoYXNBZENsaWNrQ29udmVyc2lvbj0lZCkiLCBtX2lzS2VwdEFsaXZlLCAhIXByaXZh
dGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0YSk7CiAgICAgQVNTRVJUKCFp
c1N5bmNocm9ub3VzKCkpOwogCiAgICAgaWYgKG1faXNLZXB0QWxpdmUpIHsKQEAgLTg4Myw4ICs4
ODMsOCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udGludWVXaWxsU2VuZFJlZGly
ZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmCiAgICAgfQogCiAgICAgTmV0d29ya1Nlc3Np
b24qIG5ldHdvcmtTZXNzaW9uID0gbnVsbHB0cjsKLSAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb252ZXJzaW9uICYmIChuZXR3b3JrU2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29y
a1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSkpKQotICAgICAgICBuZXR3b3Jr
U2Vzc2lvbi0+aGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFdURk1vdmUo
KnByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbiksIHJlcXVlc3QudXJsKCksIHJlZGly
ZWN0UmVxdWVzdCk7CisgICAgaWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25U
cmlnZ2VyRGF0YSAmJiAobmV0d29ya1Nlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9j
ZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKCkpKSkKKyAgICAgICAgbmV0d29ya1Nlc3Np
b24tPmhhbmRsZVByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbihXVEZNb3ZlKCpwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCByZXF1ZXN0LnVybCgp
LCByZWRpcmVjdFJlcXVlc3QpOwogCiAgICAgLy8gV2Ugc2VuZCB0aGUgcmVxdWVzdCBib2R5IHNl
cGFyYXRlbHkgYmVjYXVzZSB0aGUgUmVzb3VyY2VSZXF1ZXN0IGJvZHkgbm9ybWFsbHkgZG9lcyBu
b3QgZ2V0IGVuY29kZWQgd2hlbiBzZW50IG92ZXIgSVBDLCBhcyBhbiBvcHRpbWl6YXRpb24uCiAg
ICAgLy8gSG93ZXZlciwgd2UgcmVhbGx5IG5lZWQgdGhlIGJvZHkgaGVyZSBiZWNhdXNlIGEgcmVk
aXJlY3QgY3Jvc3Mtc2l0ZSBtYXkgY2F1c2UgYSBwcm9jZXNzLXN3YXAgYW5kIHRoZSByZXF1ZXN0
IHRvIHN0YXJ0IGFnYWluIGluIGEgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4
IDU2MTVmZmU3NTM0NWYyNGUyNTFlYmE2YTUwNGVmM2MxMDk1MGRiZTguLjQ2MzNhMTYyNmRkMTQz
NjI5MzBiYzEwMTM3ZTE0MTdkZGM1OWY3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMTkxLDcgKzE5MSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbigpIGNvbnN0OwogI2VuZGlm
CiAKLSAgICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlV2ls
bFNlbmRSZWRpcmVjdGVkUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRy
aWJ1dGlvblRyaWdnZXJEYXRhPiYmKTsKICAgICB2b2lkIGRpZEZpbmlzaFdpdGhSZWRpcmVjdFJl
c3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiByZWRpcmVjdFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBzYW5pdGl6ZVJlc3BvbnNlSWZQb3NzaWJsZShXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OlNhbml0
aXphdGlvblR5cGUpOwogCkBAIC0yMDIsNyArMjAyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
bG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZChjb25zdCBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpS
ZXRyaWV2ZUluZm8mKTsKIAotICAgIHZvaWQgaGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b252ZXJzaW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uJiYs
IGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZvaWQg
aGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IFVSTCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCiAgICAgT3B0aW9uYWw8U2Vjb25kcz4g
dmFsaWRhdGVDYWNoZUVudHJ5Rm9yTWF4QWdlQ2FwVmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0
UmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDhjZTU5MTQx
MjM0YWViZjVlNDllMmJkYzhhNjgyZmI1ODRjYTI4NTEuLmJjNTU1ZWYyMGIzMmRlMzdiNmQxZDAx
NWJlNTcxN2FkMWFjNWU2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwCkBAIC05MCw3ICs5MCw3IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3
b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtT
ZXNzCiAgICAgLCBtX2ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKHBhcmFtZXRlcnMu
cmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVt
b3ZhbE1vZGUpCiAgICAgLCBtX3N0YW5kYWxvbmVBcHBsaWNhdGlvbkRvbWFpbihwYXJhbWV0ZXJz
LnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnN0YW5kYWxvbmVBcHBsaWNhdGlvbkRv
bWFpbikKICNlbmRpZgotICAgICwgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudChtYWtlVW5pcXVl
UmVmPFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcj4obmV0d29ya1Byb2Nlc3MsIHBhcmFt
ZXRlcnMuc2Vzc2lvbklEKSkKKyAgICAsIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQobWFrZVVu
aXF1ZVJlZjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+KCp0aGlzLCBuZXR3b3JrUHJv
Y2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQpKQogICAgICwgbV90ZXN0U3BlZWRNdWx0aXBsaWVy
KHBhcmFtZXRlcnMudGVzdFNwZWVkTXVsdGlwbGllcikKICAgICAsIG1fYWxsb3dzU2VydmVyUHJl
Y29ubmVjdChwYXJhbWV0ZXJzLmFsbG93c1NlcnZlclByZWNvbm5lY3QpCiB7CkBAIC0xODgsNiAr
MTg4LDExIEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKGJvb2wgZW5hYmxlKQogICAgIGZvcndhcmRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0
dGluZ3MoKTsKIH0KIAordm9pZCBOZXR3b3JrU2Vzc2lvbjo6ZmlyZVByaXZhdGVDbGlja01lYXN1
cmVtZW50VGltZXJJbW1lZGlhdGVseSgpCit7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC0+c3RhcnRUaW1lcigwX3MpOworfQorCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpyZWNyZWF0ZVJl
c291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBkZXN0cm95UmVzb3VyY2VMb2FkU3RhdGlzdGljcyhbdGhp
cywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewpAQCAtMzA1LDEyICszMTAsMTIg
QEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6cmVzZXRDTkFNRURvbWFpbkRhdGEoKQogCiB2b2lkIE5l
dHdvcmtTZXNzaW9uOjpzdG9yZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCiB7Ci0gICAgbV9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+c3RvcmVVbmNvbnZlcnRlZChXVEZNb3ZlKHByaXZhdGVD
bGlja01lYXN1cmVtZW50KSk7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+c3RvcmVV
bmF0dHJpYnV0ZWQoV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkpOwogfQogCi12b2lk
IE5ldHdvcmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24o
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24mJiBjb252ZXJzaW9uLCBjb25zdCBV
UkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RS
ZXF1ZXN0KQordm9pZCBOZXR3b3JrU2Vzc2lvbjo6aGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb252ZXJzaW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCkKIHsKLSAgICBtX3By
aXZhdGVDbGlja01lYXN1cmVtZW50LT5oYW5kbGVDb252ZXJzaW9uKFdURk1vdmUoY29udmVyc2lv
biksIHJlcXVlc3RVUkwsIHJlZGlyZWN0UmVxdWVzdCk7CisgICAgbV9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC0+aGFuZGxlQXR0cmlidXRpb24oV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRh
KSwgcmVxdWVzdFVSTCwgcmVkaXJlY3RSZXF1ZXN0KTsKIH0KIAogdm9pZCBOZXR3b3JrU2Vzc2lv
bjo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTMzMyw2ICszMzgsMTEgQEAgdm9pZCBOZXR3
b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVz
dGluZyhib29sIHZhbHUKICAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LT5zZXRPdmVycmlk
ZVRpbWVyRm9yVGVzdGluZyh2YWx1ZSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb246Om1hcmtB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC0+bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwog
dm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9u
VVJMRm9yVGVzdGluZyhVUkwmJiB1cmwpCiB7CiAgICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC0+c2V0Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV1RGTW92ZSh1cmwpKTsKQEAgLTM0MCw3ICsz
NTAsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmIHVybAogCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpt
YXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpCiB7Ci0gICAg
bV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+bWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9y
VGVzdGluZygpOworICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPm1hcmtBbGxVbmF0dHJp
YnV0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb246OmFk
ZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggY2E0YTU3
NjY3ZDRiNGFjOTIwNDdiYzc5NDIxNzcxMDFmZjNiYmEyZi4uN2Y3N2IzMjliZmY3ZmIyN2Y1ZDQ0
YTdkNzM3NTcxYzU3ZTMxY2E5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaApAQCAtMTE3LDEzICsxMTcsMTUgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBjbGVhckFwcEJvdW5kU2Vzc2lvbigpIHsgfQogI2VuZGlmCiAgICAgdm9pZCBzdG9y
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
JiYpOwotICAgIHZvaWQgaGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uJiYsIGNvbnN0IFVSTCYg
cmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVl
c3QpOworICAgIHZvaWQgaGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYs
IGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZWRpcmVjdFJlcXVlc3QpOwogICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CiAgICAgdm9pZCBjbGVhclByaXZhdGVD
bGlja01lYXN1cmVtZW50KCk7CiAgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50
Rm9yUmVnaXN0cmFibGVEb21haW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJik7CiAgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJv
b2wgdmFsdWUpOworICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVS
TCYmKTsKICAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JU
ZXN0aW5nKCk7CisgICAgdm9pZCBmaXJlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUaW1lckltbWVk
aWF0ZWx5KCk7CiAKICAgICB2b2lkIGFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcj4mJik7CiAgICAgdm9pZCByZW1vdmVLZXB0QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJj
ZUxvYWRlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCmluZGV4IDg4YmVhYWE2NDFl
ZmVkZTFiNzMwMzMyY2M5ZDg2ZjBmMmVlMjhiNTYuLjgyZjliZjYwNmUzN2RlM2JlNmNkNTEyNzUy
YjQxNjE4ZDhmMzVmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKQEAgLTQyLDE0
ICs0MiwyOSBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotdXNpbmcgU291cmNlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTsKLXVzaW5n
IERlc3RpbmF0aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOwotdXNp
bmcgRGVzdGluYXRpb25NYXAgPSBIYXNoTWFwPERlc3RpbmF0aW9uLCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudD47Ci11c2luZyBDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNv
bnZlcnNpb247Cit1c2luZyBTb3VyY2VTaXRlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGU7Cit1c2luZyBBdHRyaWJ1dGVPblNpdGUgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRlT25TaXRlOwordXNpbmcgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogCiBjb25zdGV4cHIg
U2Vjb25kcyBkZWJ1Z01vZGVTZWNvbmRzVW50aWxTZW5kIHsgNjBfcyB9OwogCi12b2lkIFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RvcmVVbmNvbnZlcnRlZChQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCYmIGF0dHJpYnV0aW9uKQorUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIoTmV0d29ya1Nlc3Npb24mIG5ldHdvcmtT
ZXNzaW9uLCBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKKyAgICA6IG1fZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzVGltZXIoKnRo
aXMsICZQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVQZW5kaW5nQXR0cmlidXRp
b25SZXF1ZXN0cykKKyAgICAsIG1fbmV0d29ya1Nlc3Npb24obWFrZVdlYWtQdHIobmV0d29ya1Nl
c3Npb24pKQorICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKKyAgICAsIG1f
c2Vzc2lvbklEKHNlc3Npb25JRCkKKyAgICAsIG1fcGluZ0xvYWRGdW5jdGlvbihbXShOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIHBhcmFtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7CisgICAgICAgIFVOVVNFRF9QQVJBTShwYXJh
bXMpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpSZXNvdXJjZUVycm9yKCks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UoKSk7CisgICAgfSkKK3sKKyAgICAvLyBXZSBzaG91
bGQgc2VuZCBhbnkgcGVuZGluZyBhdHRyaWJ1dGlvbnMgb24gc2Vzc2lvbi1zdGFydCBpbiBjYXNl
IHRoZWlyCisgICAgLy8gc2VuZCBkZWxheSBoYXMgZXhwaXJlZCB3aGlsZSB0aGUgc2Vzc2lvbiB3
YXMgY2xvc2VkLiBXYWl0aW5nIDUgc2Vjb25kcyBhY2NvdW50cyBmb3IgdGhlCisgICAgLy8gZGVs
YXkgaW4gZGF0YWJhc2Ugc3RhcnR1cC4KKyAgICBzdGFydFRpbWVyKDVfcyk7Cit9CisKK3ZvaWQg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdG9yZVVuYXR0cmlidXRlZChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCYmIGF0dHJpYnV0aW9uKQogewogICAgIGNsZWFyRXhwaXJlZCgpOwog
CkBAIC01OCwxMCArNzMsMTEgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OnN0b3JlVW5jb252ZXJ0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJgogICAgICAgICBtX25l
dHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2Fn
ZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJb
UHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gU3RvcmluZyBhbiBhZCBjbGljay4iX3MpOwogICAg
IH0KIAotICAgIG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5zZXQoc3Rk
OjptYWtlX3BhaXIoYXR0cmlidXRpb24uc291cmNlKCksIGF0dHJpYnV0aW9uLmRlc3RpbmF0aW9u
KCkpLCBXVEZNb3ZlKGF0dHJpYnV0aW9uKSk7CisgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MgPSBtX25ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCisg
ICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmluc2VydFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KFdURk1vdmUoYXR0cmlidXRpb24pLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uVHlwZTo6VW5hdHRyaWJ1dGVkKTsKIH0KIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OmhhbmRsZUNvbnZlcnNpb24oQ29udmVyc2lvbiYmIGNvbnZlcnNpb24sIGNvbnN0
IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVj
dFJlcXVlc3QpCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0
cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEs
IGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZWRpcmVjdFJlcXVlc3QpCiB7CiAgICAgaWYgKG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTcxLDExMiArODcsNTUgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmhhbmRsZUNvbnZlcnNpb24oQ29udmVyc2lvbiYmIGNvbnZlcnNpb24s
IGMKIAogICAgIGlmICghcmVkaXJlY3REb21haW4ubWF0Y2hlcyhyZXF1ZXN0VVJMKSkgewogICAg
ICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgUkVM
RUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnNpb24gd2FzIG5v
dCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBIVFRQIHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1zaXRlLiIp
OwotICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uo
bV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24g
d2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBIVFRQIHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1z
aXRlLiJfcyk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCAiQXR0cmlidXRpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBIVFRQIHJl
ZGlyZWN0IHdhcyBub3Qgc2FtZS1zaXRlLiIpOworICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIEF0dHJpYnV0aW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUg
SFRUUCByZWRpcmVjdCB3YXMgbm90IHNhbWUtc2l0ZS4iX3MpOwogICAgICAgICB9CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBpZiAocmVkaXJlY3REb21haW4ubWF0Y2hlcyhmaXJzdFBh
cnR5VVJMKSkgewogICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewot
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNv
bnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIGl0IHdhcyByZXF1ZXN0ZWQgaW4gYW4g
SFRUUCByZWRpcmVjdCB0aGF0IGlzIHNhbWUtc2l0ZSBhcyB0aGUgZmlyc3QtcGFydHkuIik7Ci0g
ICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nl
c3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMg
bm90IGFjY2VwdGVkIGJlY2F1c2UgaXQgd2FzIHJlcXVlc3RlZCBpbiBhbiBIVFRQIHJlZGlyZWN0
IHRoYXQgaXMgc2FtZS1zaXRlIGFzIHRoZSBmaXJzdC1wYXJ0eS4iX3MpOworICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkF0dHJpYnV0aW9uIHdh
cyBub3QgYWNjZXB0ZWQgYmVjYXVzZSBpdCB3YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJl
Y3QgdGhhdCBpcyBzYW1lLXNpdGUgYXMgdGhlIGZpcnN0LXBhcnR5LiIpOworICAgICAgICAgICAg
bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1l
c3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9y
LCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEF0dHJpYnV0aW9uIHdhcyBub3QgYWNjZXB0
ZWQgYmVjYXVzZSBpdCB3YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJlY3QgdGhhdCBpcyBz
YW1lLXNpdGUgYXMgdGhlIGZpcnN0LXBhcnR5LiJfcyk7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGNvbnZlcnQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJj
ZSB7IFdURk1vdmUocmVkaXJlY3REb21haW4pIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpE
ZXN0aW5hdGlvbiB7IGZpcnN0UGFydHlVUkwgfSwgV1RGTW92ZShjb252ZXJzaW9uKSk7CisgICAg
YXR0cmlidXRlKFNvdXJjZVNpdGUgeyBXVEZNb3ZlKHJlZGlyZWN0RG9tYWluKSB9LCBBdHRyaWJ1
dGVPblNpdGUgeyBmaXJzdFBhcnR5VVJMIH0sIFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0
YSkpOwogfQogCiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RhcnRUaW1l
cihTZWNvbmRzIHNlY29uZHMpCiB7Ci0gICAgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0
c1RpbWVyLnN0YXJ0T25lU2hvdChtX2lzUnVubmluZ1Rlc3QgPyAwX3MgOiBzZWNvbmRzKTsKKyAg
ICBtX2ZpcmVQZW5kaW5nQXR0cmlidXRpb25SZXF1ZXN0c1RpbWVyLnN0YXJ0T25lU2hvdChtX2lz
UnVubmluZ1Rlc3QgPyAwX3MgOiBzZWNvbmRzKTsKIH0KIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmNvbnZlcnQoY29uc3QgU291cmNlJiBzb3VyY2UsIGNvbnN0IERlc3Rp
bmF0aW9uJiBkZXN0aW5hdGlvbiwgQ29udmVyc2lvbiYmIGNvbnZlcnNpb24pCit2b2lkIFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YXR0cmlidXRlKGNvbnN0IFNvdXJjZVNpdGUmIHNv
dXJjZVNpdGUsIGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25TaXRlLCBBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKIHsKLSAgICBjbGVhckV4
cGlyZWQoKTsKLQotICAgIGlmICghY29udmVyc2lvbi5pc1ZhbGlkKCkpIHsKLSAgICAgICAgaWYg
KFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJHb3QgYW4gaW52YWxpZCBjb252ZXJzaW9u
LiIpOwotICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3Nh
Z2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBN
ZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEdvdCBhbiBp
bnZhbGlkIGNvbnZlcnNpb24uIl9zKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgYXV0byBjb252ZXJzaW9uRGF0YSA9IGNvbnZlcnNpb24uZGF0YTsKLSAgICBhdXRv
IGNvbnZlcnNpb25Qcmlvcml0eSA9IGNvbnZlcnNpb24ucHJpb3JpdHk7Ci0KLSAgICBpZiAoVU5M
SUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50LCAiR290IGEgY29udmVyc2lvbiB3aXRoIGNvbnZlcnNpb24g
ZGF0YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUuIiwgY29udmVyc2lvbkRh
dGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2Fk
Y2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudF0gR290IGEgY29udmVyc2lvbiB3aXRoIGNvbnZlcnNpb24gZGF0YTog
JyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlvcml0eTogJyJfcywgY29udmVyc2lvblBy
aW9yaXR5LCAiJy4iX3MpKTsKLSAgICB9Ci0KLSAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQgPSBT
ZWNvbmRzOjppbmZpbml0eSgpOwotCi0gICAgYXV0byBwYWlyID0gc3RkOjptYWtlX3BhaXIoc291
cmNlLCBkZXN0aW5hdGlvbik7Ci0gICAgYXV0byBwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1
dGlvbiA9IG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC50YWtlKHBhaXIp
OwotICAgIGF1dG8gcHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlciA9IG1fY29udmVy
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuZmluZChwYWlyKTsKLQotICAgIGlmICghcHJl
dmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24uaXNFbXB0eSgpKSB7Ci0gICAgICAgIC8vIEFs
d2F5cyBjb252ZXJ0IHRoZSBwZW5kaW5nIGF0dHJpYnV0aW9uIGFuZCByZW1vdmUgaXQgZnJvbSB0
aGUgdW5jb252ZXJ0ZWQgbWFwLgotICAgICAgICBpZiAoYXV0byBvcHRpb25hbFNlY29uZHNVbnRp
bFNlbmQgPSBwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFy
bGllc3RUaW1lVG9TZW5kKFdURk1vdmUoY29udmVyc2lvbikpKSB7Ci0gICAgICAgICAgICBzZWNv
bmRzVW50aWxTZW5kID0gKm9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZDsKLSAgICAgICAgICAgIEFT
U0VSVChzZWNvbmRzVW50aWxTZW5kICE9IFNlY29uZHM6OmluZmluaXR5KCkpOwotCi0gICAgICAg
ICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJ0ZWQgYSBz
dG9yZWQgYWQgY2xpY2sgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUgYW5kIHByaW9y
aXR5OiAle3B1YmxpY311LiIsIGNvbnZlcnNpb25EYXRhLCBjb252ZXJzaW9uUHJpb3JpdHkpOwot
ICAgICAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdl
KG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVz
c2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0g
Q29udmVydGVkIGEgc3RvcmVkIGFkIGNsaWNrIHdpdGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBj
b252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHks
ICInLiJfcykpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHByZXZp
b3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXIgPT0gbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hcC5lbmQoKSkKLSAgICAgICAgICAgIG1fY29udmVydGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYXAuYWRkKHBhaXIsIFdURk1vdmUocHJldmlvdXNseVVuY29udmVydGVkQXR0
cmlidXRpb24pKTsKLSAgICAgICAgZWxzZSBpZiAocHJldmlvdXNseVVuY29udmVydGVkQXR0cmli
dXRpb24uaGFzSGlnaGVyUHJpb3JpdHlUaGFuKHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlv
bkl0ZXItPnZhbHVlKSkgewotICAgICAgICAgICAgLy8gSWYgdGhlIG5ld2x5IGNvbnZlcnRlZCBh
dHRyaWJ1dGlvbiBoYXMgaGlnaGVyIHByaW9yaXR5LCByZXBsYWNlIHRoZSBvbGQgb25lLgotICAg
ICAgICAgICAgbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5zZXQocGFpciwg
V1RGTW92ZShwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbikpOwotCi0gICAgICAgICAg
ICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJSZXBsYWNlZCBhIHByZXZp
b3VzbHkgY29udmVydGVkIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBk
YXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0IGhhZCBo
aWdoZXIgcHJpb3JpdHkuIiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0g
ICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uo
bV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNz
YWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBS
ZXBsYWNlZCBhIHByZXZpb3VzbHkgY29udmVydGVkIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdp
dGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9yaXR5
OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInIGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlv
cml0eS4iX3MpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAocHJl
dmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlciAhPSBtX2NvbnZlcnRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFwLmVuZCgpKSB7Ci0gICAgICAgIC8vIElmIHdlIGhhdmUgbm8gbmV3bHkg
Y29udmVydGVkIGF0dHJpYnV0aW9uLCByZS1jb252ZXJ0IHRoZSBvbGQgb25lIHRvIHJlc3BlY3Qg
dGhlIG5ldyBwcmlvcml0eS4KLSAgICAgICAgaWYgKGF1dG8gb3B0aW9uYWxTZWNvbmRzVW50aWxT
ZW5kID0gcHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlci0+dmFsdWUuY29udmVydEFu
ZEdldEVhcmxpZXN0VGltZVRvU2VuZChXVEZNb3ZlKGNvbnZlcnNpb24pKSkgewotICAgICAgICAg
ICAgc2Vjb25kc1VudGlsU2VuZCA9ICpvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQ7Ci0gICAgICAg
ICAgICBBU1NFUlQoc2Vjb25kc1VudGlsU2VuZCAhPSBTZWNvbmRzOjppbmZpbml0eSgpKTsKLQot
ICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAg
ICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiUmUtY29u
dmVydGVkIGFuIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRhOiAl
e3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dSBiZWNhdXNlIGl0IGhhZCBoaWdoZXIg
cHJpb3JpdHkuIiwgY29udmVyc2lvbkRhdGEsIGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAg
ICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNz
aW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2
ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZS1jb252
ZXJ0ZWQgYW4gYWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICci
X3MsIGNvbnZlcnNpb25EYXRhLCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIGNvbnZlcnNpb25Qcmlv
cml0eSwgIicnIGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iX3MpKTsKKyAgICBpZiAo
YXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKSkgeworICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5hdHRy
aWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzb3VyY2VTaXRlLCBhdHRyaWJ1dGVPblNpdGUs
IFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIFt0aGlzXSAoYXV0byBvcHRpb25hbFNl
Y29uZHNVbnRpbFNlbmQpIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25hbFNlY29uZHNVbnRpbFNl
bmQpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQgPSAqb3B0aW9uYWxT
ZWNvbmRzVW50aWxTZW5kOworICAgICAgICAgICAgICAgIGlmIChtX2ZpcmVQZW5kaW5nQXR0cmli
dXRpb25SZXF1ZXN0c1RpbWVyLmlzQWN0aXZlKCkgJiYgbV9maXJlUGVuZGluZ0F0dHJpYnV0aW9u
UmVxdWVzdHNUaW1lci5uZXh0RmlyZUludGVydmFsKCkgPCBzZWNvbmRzVW50aWxTZW5kKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBpZiAoVU5MSUtFTFko
ZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19J
TkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiU2V0dGluZyB0aW1lciBmb3IgZmlyaW5nIGF0
dHJpYnV0aW9uIHJlcXVlc3RzIHRvIHRoZSBkZWJ1ZyBtb2RlIHRpbWVvdXQgb2YgJXtwdWJsaWN9
ZiBzZWNvbmRzIHdoZXJlIHRoZSByZWd1bGFyIHRpbWVvdXQgd291bGQgaGF2ZSBiZWVuICV7cHVi
bGljfWYgc2Vjb25kcy4iLCBkZWJ1Z01vZGVTZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSwgc2Vj
b25kc1VudGlsU2VuZC5zZWNvbmRzKCkpOworICAgICAgICAgICAgICAgICAgICBtX25ldHdvcmtQ
cm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJj
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmlu
ZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFNldHRpbmcgdGltZXIgZm9yIGZpcmluZyBh
dHRyaWJ1dGlvbiByZXF1ZXN0cyB0byB0aGUgZGVidWcgbW9kZSB0aW1lb3V0IG9mICJfcywgZGVi
dWdNb2RlU2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCksICIgc2Vjb25kcyB3aGVyZSB0aGUgcmVn
dWxhciB0aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAiX3MsIHNlY29uZHNVbnRpbFNlbmQuc2Vjb25k
cygpLCAiIHNlY29uZHMuIl9zKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRzVW50
aWxTZW5kID0gZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZDsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgc3RhcnRUaW1lcihzZWNvbmRzVW50aWxTZW5kKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChzZWNvbmRzVW50aWxTZW5kID09IFNlY29u
ZHM6OmluZmluaXR5KCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBpZiAobV9maXJlUGVu
ZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLmlzQWN0aXZlKCkgJiYgbV9maXJlUGVuZGluZ0Nv
bnZlcnNpb25SZXF1ZXN0c1RpbWVyLm5leHRGaXJlSW50ZXJ2YWwoKSA8IHNlY29uZHNVbnRpbFNl
bmQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVk
KCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
ICJTZXR0aW5nIHRpbWVyIGZvciBmaXJpbmcgY29udmVyc2lvbiByZXF1ZXN0cyB0byB0aGUgZGVi
dWcgbW9kZSB0aW1lb3V0IG9mICV7cHVibGljfWYgc2Vjb25kcyB3aGVyZSB0aGUgcmVndWxhciB0
aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAle3B1YmxpY31mIHNlY29uZHMuIiwgZGVidWdNb2RlU2Vj
b25kc1VudGlsU2VuZC5zZWNvbmRzKCksIHNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpKTsKLSAg
ICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9u
SUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6
OkluZm8sIG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBTZXR0aW5nIHRp
bWVyIGZvciBmaXJpbmcgY29udmVyc2lvbiByZXF1ZXN0cyB0byB0aGUgZGVidWcgbW9kZSB0aW1l
b3V0IG9mICJfcywgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCksICIgc2Vjb25k
cyB3aGVyZSB0aGUgcmVndWxhciB0aW1lb3V0IHdvdWxkIGhhdmUgYmVlbiAiX3MsIHNlY29uZHNV
bnRpbFNlbmQuc2Vjb25kcygpLCAiIHNlY29uZHMuIl9zKSk7Ci0gICAgICAgIHNlY29uZHNVbnRp
bFNlbmQgPSBkZWJ1Z01vZGVTZWNvbmRzVW50aWxTZW5kOworICAgICAgICB9KTsKICAgICB9Ci0K
LSAgICBzdGFydFRpbWVyKHNlY29uZHNVbnRpbFNlbmQpOwogfQogCiB2b2lkIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IFByaXZhdGVD
bGlja01lYXN1cmVtZW50JiBhdHRyaWJ1dGlvbikKIHsKLSAgICBhdXRvIGNvbnZlcnNpb25VUkwg
PSBtX2NvbnZlcnNpb25CYXNlVVJMRm9yVGVzdGluZyA/ICptX2NvbnZlcnNpb25CYXNlVVJMRm9y
VGVzdGluZyA6IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpOwotICAgIGlmIChjb252ZXJzaW9uVVJM
LmlzRW1wdHkoKSB8fCAhY29udmVyc2lvblVSTC5pc1ZhbGlkKCkpCisgICAgYXV0byBhdHRyaWJ1
dGlvblVSTCA9IG1fYXR0cmlidXRpb25CYXNlVVJMRm9yVGVzdGluZyA/ICptX2F0dHJpYnV0aW9u
QmFzZVVSTEZvclRlc3RpbmcgOiBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICBpZiAoYXR0
cmlidXRpb25VUkwuaXNFbXB0eSgpIHx8ICFhdHRyaWJ1dGlvblVSTC5pc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgV1RGTW92ZShjb252
ZXJzaW9uVVJMKSB9OworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgV1RGTW92ZShhdHRy
aWJ1dGlvblVSTCkgfTsKICAgICAKICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1QiX3Mp
OwogICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDYWNoZUNv
bnRyb2wsIFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6Om1heEFnZTAoKSk7CkBAIC0yMDAsOCAr
MTU5LDggQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVDb252ZXJz
aW9uUmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWEKICAgICBsb2FkUGFyYW1ldGVycy5zaG91
bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyA9IGZhbHNlOwogCiAgICAgaWYgKFVOTElLRUxZ
KGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdCBm
b3IgYSBjb252ZXJzaW9uLiIpOwotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RD
b25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVu
dF0gQWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1ZXN0IGZvciBhIGNvbnZlcnNpb24u
Il9zKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
IkFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdC4iKTsKKyAgICAgICAgbV9uZXR3
b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VT
b3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1By
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVx
dWVzdC4iX3MpOwogICAgIH0KIAogICAgIG1fcGluZ0xvYWRGdW5jdGlvbihXVEZNb3ZlKGxvYWRQ
YXJhbWV0ZXJzKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpIHsKQEAgLTIyMSwxMTEgKzE4MCw5MiBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IFByaXZhdGVDbGlja01l
YQogICAgIH0pOwogfQogCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Zmly
ZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHMoKQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OmNsZWFyU2VudEF0dHJpYnV0aW9ucyhWZWN0b3I8UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ+JiYgc2VudENvbnZlcnNpb25zKQogewotICAgIGF1dG8gbmV4dFRpbWVUb0ZpcmUgPSBT
ZWNvbmRzOjppbmZpbml0eSgpOwotICAgIGZvciAoYXV0byYgYXR0cmlidXRpb24gOiBtX2NvbnZl
cnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmIChh
dHRyaWJ1dGlvbi53YXNDb252ZXJzaW9uU2VudCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGF1
dG8gZWFybGllc3RUaW1lVG9TZW5kID0gYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCk7
Ci0gICAgICAgIGlmICghZWFybGllc3RUaW1lVG9TZW5kKSB7Ci0gICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9CisgICAgaWYg
KGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBtX25ldHdvcmtTZXNzaW9uLT5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKCkpCisgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmNsZWFy
U2VudEF0dHJpYnV0aW9ucyhXVEZNb3ZlKHNlbnRDb252ZXJzaW9ucykpOworfQogCi0gICAgICAg
IGF1dG8gbm93ID0gV2FsbFRpbWU6Om5vdygpOwotICAgICAgICBpZiAoKmVhcmxpZXN0VGltZVRv
U2VuZCA8PSBub3cgfHwgbV9pc1J1bm5pbmdUZXN0IHx8IGRlYnVnTW9kZUVuYWJsZWQoKSkgewot
ICAgICAgICAgICAgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGF0dHJpYnV0aW9uKTsKLSAgICAgICAg
ICAgIGF0dHJpYnV0aW9uLm1hcmtDb252ZXJzaW9uQXNTZW50KCk7Ci0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgfQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnVw
ZGF0ZVRpbWVyTGFzdEZpcmVkKCkKK3sKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlz
dGljcyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAg
ICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+dXBkYXRlVGltZXJMYXN0RmlyZWQoKTsKK30KIAot
ICAgICAgICBhdXRvIHNlY29uZHMgPSAqZWFybGllc3RUaW1lVG9TZW5kIC0gbm93OwotICAgICAg
ICBuZXh0VGltZVRvRmlyZSA9IHN0ZDo6bWluKG5leHRUaW1lVG9GaXJlLCBzZWNvbmRzKTsKLSAg
ICB9Cit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZVBlbmRpbmdBdHRy
aWJ1dGlvblJlcXVlc3RzKCkKK3sKKyAgICBhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0g
bV9uZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOworICAgIGlmICghcmVz
b3VyY2VMb2FkU3RhdGlzdGljcykKKyAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jb252ZXJ0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbXShhdXRvJiBrZXlBbmRWYWx1ZSkg
ewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUud2FzQ29udmVyc2lvblNlbnQoKTsK
LSAgICB9KTsKKyAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5hbGxBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoW3RoaXNdIChhdXRvJiYgYXR0cmlidXRpb25zKSB7CisgICAgICAg
IGF1dG8gbmV4dFRpbWVUb0ZpcmUgPSBTZWNvbmRzOjppbmZpbml0eSgpOworICAgICAgICBWZWN0
b3I8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHNlbnRBdHRyaWJ1dGlvbnM7CisgICAgICAgIAor
ICAgICAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogYXR0cmlidXRpb25zKSB7CisgICAgICAg
ICAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGltZVRv
U2VuZCgpOworICAgICAgICAgICAgaWYgKCFlYXJsaWVzdFRpbWVUb1NlbmQpIHsKKyAgICAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBub3cgPSBXYWxsVGltZTo6bm93KCk7
CisgICAgICAgICAgICBpZiAoKmVhcmxpZXN0VGltZVRvU2VuZCA8PSBub3cgfHwgbV9pc1J1bm5p
bmdUZXN0IHx8IGRlYnVnTW9kZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgICAgIGZpcmVDb252
ZXJzaW9uUmVxdWVzdChhdHRyaWJ1dGlvbik7CisgICAgICAgICAgICAgICAgc2VudEF0dHJpYnV0
aW9ucy5hcHBlbmQoV1RGTW92ZShhdHRyaWJ1dGlvbikpOworICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhdXRvIHNlY29uZHMgPSAqZWFybGll
c3RUaW1lVG9TZW5kIC0gbm93OworICAgICAgICAgICAgbmV4dFRpbWVUb0ZpcmUgPSBzdGQ6Om1p
bihuZXh0VGltZVRvRmlyZSwgc2Vjb25kcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IGNsZWFyU2VudEF0dHJpYnV0aW9ucyhXVEZNb3ZlKHNlbnRBdHRyaWJ1dGlvbnMpKTsKKyAgICAg
ICAgdXBkYXRlVGltZXJMYXN0RmlyZWQoKTsKIAotICAgIGlmIChuZXh0VGltZVRvRmlyZSA8IFNl
Y29uZHM6OmluZmluaXR5KCkpCi0gICAgICAgIHN0YXJ0VGltZXIobmV4dFRpbWVUb0ZpcmUpOwor
ICAgICAgICBpZiAobmV4dFRpbWVUb0ZpcmUgPCBTZWNvbmRzOjppbmZpbml0eSgpKQorICAgICAg
ICAgICAgc3RhcnRUaW1lcihuZXh0VGltZVRvRmlyZSk7CisgICAgfSk7CiB9CiAKIHZvaWQgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjbGVhcigpCiB7Ci0gICAgbV9maXJlUGVuZGlu
Z0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyLnN0b3AoKTsKLSAgICBtX3VuY29udmVydGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYXAuY2xlYXIoKTsKLSAgICBtX2NvbnZlcnRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFwLmNsZWFyKCk7CisgICAgbV9maXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVx
dWVzdHNUaW1lci5zdG9wKCk7CisKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwog
fQogCiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXJGb3JSZWdpc3Ry
YWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogewotICAgIG1fdW5j
b252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbJmRvbWFpbl0oYXV0
byYga2V5QW5kVmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLmtleS5maXJzdC5y
ZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW4gfHwga2V5QW5kVmFsdWUua2V5LnNlY29uZC5yZWdp
c3RyYWJsZURvbWFpbiA9PSBkb21haW47Ci0gICAgfSk7Ci0KLSAgICBtX2NvbnZlcnRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFwLnJlbW92ZUlmKFsmZG9tYWluXShhdXRvJiBrZXlBbmRWYWx1
ZSkgewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUua2V5LmZpcnN0LnJlZ2lzdHJhYmxlRG9t
YWluID09IGRvbWFpbiB8fCBrZXlBbmRWYWx1ZS5rZXkuc2Vjb25kLnJlZ2lzdHJhYmxlRG9tYWlu
ID09IGRvbWFpbjsKLSAgICB9KTsKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZvclJl
Z2lzdHJhYmxlRG9tYWluKGRvbWFpbik7CiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyOjpjbGVhckV4cGlyZWQoKQogewotICAgIG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbXShhdXRvJiBrZXlBbmRWYWx1ZSkgewotICAgICAg
ICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUuaGFzRXhwaXJlZCgpOwotICAgIH0pOworICAgIGlm
IChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbV9uZXR3b3JrU2Vzc2lvbi0+cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcygpKQorICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5jbGVh
ckV4cGlyZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogfQogCiB2b2lkIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6dG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJp
bmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAogewotICAgIGlmIChtX3VuY29udmVydGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuaXNFbXB0eSgpICYmIG1fY29udmVydGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYXAuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoIlxuTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS5cbiJf
cyk7Ci0KLSAgICB1bnNpZ25lZCB1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyID0gMDsKLSAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgZm9yIChhdXRvJiBhdHRyaWJ1dGlvbiA6IG1f
dW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC52YWx1ZXMoKSkgewotICAgICAg
ICBpZiAoIXVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCi0gICAgICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIlVuY29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOlxu
Iik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcigrK3VuY29udmVydGVkQXR0cmli
dXRpb25OdW1iZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgYnVp
bGRlci5hcHBlbmQoYXR0cmlidXRpb24udG9TdHJpbmcoKSk7Ci19Ci0KLSAgICB1bnNpZ25lZCBj
b252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlciA9IDA7Ci0gICAgZm9yIChhdXRvJiBhdHRyaWJ1dGlv
biA6IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAudmFsdWVzKCkpIHsKLSAg
ICAgICAgaWYgKHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpCi0gICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAgaWYgKCFjb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJl
cikKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQ29udmVydGVkIFByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnRzOlxuIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cigrK2NvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyICsgdW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51
bWJlcik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBidWlsZGVyLmFw
cGVuZChhdHRyaWJ1dGlvbi50b1N0cmluZygpKTsKLSAgICB9Ci0KLSAgICBjb21wbGV0aW9uSGFu
ZGxlcihidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzID0gbV9uZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQorICAg
ICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRvU3Ry
aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6OnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmIHRlc3RV
UkwpCiB7CiAgICAgaWYgKHRlc3RVUkwuaXNFbXB0eSgpKQotICAgICAgICBtX2NvbnZlcnNpb25C
YXNlVVJMRm9yVGVzdGluZyA9IHsgfTsKKyAgICAgICAgbV9hdHRyaWJ1dGlvbkJhc2VVUkxGb3JU
ZXN0aW5nID0geyB9OwogICAgIGVsc2UKLSAgICAgICAgbV9jb252ZXJzaW9uQmFzZVVSTEZvclRl
c3RpbmcgPSBXVEZNb3ZlKHRlc3RVUkwpOworICAgICAgICBtX2F0dHJpYnV0aW9uQmFzZVVSTEZv
clRlc3RpbmcgPSBXVEZNb3ZlKHRlc3RVUkwpOwogfQogCi12b2lkIFByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcjo6bWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVzdGluZygpCit2
b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6bWFya0FsbFVuYXR0cmlidXRlZEFz
RXhwaXJlZEZvclRlc3RpbmcoKQogewotICAgIGZvciAoYXV0byYgYXR0cmlidXRpb24gOiBtX3Vu
Y29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAudmFsdWVzKCkpCi0gICAgICAgIGF0
dHJpYnV0aW9uLm1hcmtBc0V4cGlyZWQoKTsKKyAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IG1fbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAg
ICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bWFya0FsbFVuYXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZygpOwogfQogCiBib29sIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0CkBAIC0zMzMs
NCArMjczLDEzIEBAIGJvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpkZWJ1Z01v
ZGVFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKSAm
JiAhbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKTsKIH0KIAordm9pZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNF
eHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBtX25ldHdv
cmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKKyAgICAgICAgcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy0+bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4
cGlyZWRGb3JUZXN0aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCmluZGV4IDQzZDQzNzFiNjdkZjU5ODky
ZmI3ZWJkNDVhNTE0OWQyZTlkOGJkNjEuLjUzMjFjMjRmZjA2Y2M0YWRiOGM0MjM5MTk2N2Y3N2Mw
NmNjNzYyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaApAQCAtNDAsNTMgKzQwLDQ4IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitlbnVtIGNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25UeXBlIDogYm9vbCB7IFVuYXR0cmlidXRlZCwgQXR0cmlidXRlZCB9Owor
CiBjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPiB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAKICAgICB1c2luZyBSZWdpc3RyYWJsZURvbWFpbiA9IFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50ID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7Ci0gICAgdXNpbmcgU291cmNl
ID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTsKLSAgICB1c2luZyBE
ZXN0aW5hdGlvbiA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlv
bjsKLSAgICB1c2luZyBDb252ZXJzaW9uID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkNvbnZlcnNpb247CisgICAgdXNpbmcgU291cmNlU2l0ZSA9IFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlOworICAgIHVzaW5nIEF0dHJpYnV0ZU9uU2l0ZSA9
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGU7CisgICAg
dXNpbmcgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogCi0gICAgZXhwbGljaXQgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQotICAgICAgICA6IG1fZmlyZVBlbmRpbmdDb252ZXJzaW9u
UmVxdWVzdHNUaW1lcigqdGhpcywgJlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Zmly
ZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHMpCi0gICAgICAgICwgbV9waW5nTG9hZEZ1bmN0aW9u
KFtdKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgcGFyYW1zLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsKLSAgICAgICAgICAgIFVO
VVNFRF9QQVJBTShwYXJhbXMpOwotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvcigpLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlKCkpOwotICAgICAg
ICB9KQotICAgICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCi0gICAgICAg
ICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQotICAgIHsKLSAgICB9CisgICAgZXhwbGljaXQgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya1Byb2Nl
c3MmLCBQQUw6OlNlc3Npb25JRCk7CiAKLSAgICB2b2lkIHN0b3JlVW5jb252ZXJ0ZWQoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQmJik7Ci0gICAgdm9pZCBoYW5kbGVDb252ZXJzaW9uKENvbnZlcnNp
b24mJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlZGlyZWN0UmVxdWVzdCk7CisgICAgdm9pZCBzdG9yZVVuYXR0cmlidXRlZChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCYmKTsKKyAgICB2b2lkIGhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEmJiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCk7CiAgICAgdm9pZCBjbGVhcigpOwogICAg
IHZvaWQgY2xlYXJGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYp
OwogICAgIHZvaWQgdG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBj
b25zdDsKICAgICB2b2lkIHNldFBpbmdMb2FkRnVuY3Rpb24oRnVuY3Rpb248dm9pZChOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+
JiYpPiYmIHBpbmdMb2FkRnVuY3Rpb24pIHsgbV9waW5nTG9hZEZ1bmN0aW9uID0gV1RGTW92ZShw
aW5nTG9hZEZ1bmN0aW9uKTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmco
Ym9vbCB2YWx1ZSkgeyBtX2lzUnVubmluZ1Rlc3QgPSB2YWx1ZTsgfQogICAgIHZvaWQgc2V0Q29u
dmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYpOwotICAgIHZvaWQgbWFya0FsbFVuY29udmVydGVk
QXNFeHBpcmVkRm9yVGVzdGluZygpOworICAgIHZvaWQgbWFya0FsbFVuYXR0cmlidXRlZEFzRXhw
aXJlZEZvclRlc3RpbmcoKTsKKyAgICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OworICAgIHZvaWQgc3RhcnRUaW1lcihTZWNvbmRzKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHN0
YXJ0VGltZXIoU2Vjb25kcyk7Ci0gICAgdm9pZCBjb252ZXJ0KGNvbnN0IFNvdXJjZSYsIGNvbnN0
IERlc3RpbmF0aW9uJiwgQ29udmVyc2lvbiYmKTsKKyAgICB2b2lkIGNsZWFyU2VudEF0dHJpYnV0
aW9ucyhWZWN0b3I8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYpOworICAgIHZvaWQgYXR0cmli
dXRlKGNvbnN0IFNvdXJjZVNpdGUmLCBjb25zdCBBdHRyaWJ1dGVPblNpdGUmLCBBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhJiYpOwogICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Jik7Ci0gICAgdm9pZCBmaXJlUGVuZGluZ0NvbnZlcnNpb25S
ZXF1ZXN0cygpOworICAgIHZvaWQgZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzKCk7CiAg
ICAgdm9pZCBjbGVhckV4cGlyZWQoKTsKICAgICBib29sIGRlYnVnTW9kZUVuYWJsZWQoKSBjb25z
dDsKKyAgICB2b2lkIHVwZGF0ZVRpbWVyTGFzdEZpcmVkKCk7CiAKLSAgICBIYXNoTWFwPHN0ZDo6
cGFpcjxTb3VyY2UsIERlc3RpbmF0aW9uPiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IG1fdW5j
b252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcDsKLSAgICBIYXNoTWFwPHN0ZDo6cGFp
cjxTb3VyY2UsIERlc3RpbmF0aW9uPiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IG1fY29udmVy
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXA7Ci0gICAgV2ViQ29yZTo6VGltZXIgbV9maXJl
UGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyOwotICAgIEZ1bmN0aW9uPHZvaWQoTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
PiYmKT4gbV9waW5nTG9hZEZ1bmN0aW9uOworICAgIFdlYkNvcmU6OlRpbWVyIG1fZmlyZVBlbmRp
bmdBdHRyaWJ1dGlvblJlcXVlc3RzVGltZXI7CiAgICAgYm9vbCBtX2lzUnVubmluZ1Rlc3QgeyBm
YWxzZSB9OwotICAgIE9wdGlvbmFsPFVSTD4gbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3Rpbmc7
CisgICAgT3B0aW9uYWw8VVJMPiBtX2F0dHJpYnV0aW9uQmFzZVVSTEZvclRlc3Rpbmc7CisgICAg
V2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4gbV9uZXR3b3JrU2Vzc2lvbjsKICAgICBSZWY8TmV0d29y
a1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9u
SUQ7CisgICAgRnVuY3Rpb248dm9pZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpPiBtX3BpbmdMb2FkRnVuY3Rpb247CiB9
OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAppbmRleCAwNjQ4MjZjYjI1ZTM1NjRhMTMwNWQ0MzRiMzg0MGFhMzRlZmZj
OTZkLi5lZTUxMTlmZDBjYzI2Y2I4ZTE1MDM3MTk1MDBkOTI3ZTQxYWI0MmFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTI4OTEsNiArMjg5MSwyMCBAQCB2
b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rp
bmcoV0tQYWdlUmVmIHBhZ2UsIGJvbwogICAgIH0pOwogfQogCit2b2lkIFdLUGFnZU1hcmtBdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhXS1BhZ2VS
ZWYgcGFnZSwgV0tQYWdlTWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4
cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkK
K3sKKyAgICB0b0ltcGwocGFnZSktPm1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzQXNFeHBpcmVkRm9yVGVzdGluZyhbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgewor
ICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRleHQpOworICAgIH0pOworfQorCit2b2lkIFdL
UGFnZVNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KFdLUGFnZVJl
ZiBwYWdlLCBXS1BhZ2VTaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFy
dEZ1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCit7CisgICAgdG9JbXBs
KHBhZ2UpLT5zaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydChbY2Fs
bGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgeworICAgICAgICBjYWxsYmFjayhjYWxsYmFja0Nv
bnRleHQpOworICAgIH0pOworfQorCiB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIFVSTFJl
ZiwgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGlu
Z0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCiB7CiAgICAgdG9JbXBs
KHBhZ2UpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5n
KFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoVVJMUmVmKSksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxi
YWNrXSAoKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRl
LmgKaW5kZXggZmJkNjExOWFmYTExYWUwNWEyMmE2M2E2NDQ3OGYzYzg2ZGY4MjE4Yy4uNzAzZDYx
OWM1YWMyYjg3YjE3ZDYwOGI4YWU2MjQzOTkyNzAwN2VlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaApAQCAtMTc1LDYgKzE3NSwxMCBAQCB0eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50RnVuY3Rpb24pKHZv
aWQqIGZ1bmN0aW9uQ29udGV4dAogV0tfRVhQT1JUIHZvaWQgV0tQYWdlQ2xlYXJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudChXS1BhZ2VSZWYsIFdLUGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRGdW5jdGlvbiwgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKIHR5cGVkZWYgdm9pZCAoKldLUGFn
ZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmdGdW5jdGlv
bikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2Us
IGJvb2wgdmFsdWUsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1l
ckZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKK3R5
cGVkZWYgdm9pZCAoKldLUGFnZU1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRz
QXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tf
RVhQT1JUIHZvaWQgV0tQYWdlTWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNB
c0V4cGlyZWRGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VNYXJrQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFj
aywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVNpbXVsYXRl
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0RnVuY3Rpb24pKHZvaWQqIGZ1bmN0
aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTaW11bGF0ZVJlc291cmNlTG9hZFN0
YXRpc3RpY3NTZXNzaW9uUmVzdGFydChXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlU2ltdWxhdGVSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnRGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCog
Y2FsbGJhY2tDb250ZXh0KTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25D
b250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHVybFN0cmlu
ZywgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGlu
Z0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwogdHlwZWRlZiB2b2lk
ICgqV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdG
dW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDBmODc0Mjg5OTBkZTAwMTM0MzY3MmUyNDk0ODk1YWQxM2Q0
MzMwMjguLmE1OTg4OWRjMTBmN2FjZjBmZDEyOWEyNDdkMzYxNTg4NmNiYThmYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDY2MCw3ICs0NjYwLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKICAgICAgICAgZWxzZSBpZiAobmF2aWdhdGlvbiAmJiBu
YXZpZ2F0aW9uLT5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpKQogICAgICAgICAgICAgcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgPSBuYXZpZ2F0aW9uLT5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgp
OwogICAgICAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIHsKLSAgICAgICAgICAgIGlm
IChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+ZGVzdGluYXRpb24oKS5tYXRjaGVzKGZyYW1lLT51
cmwoKSkpCisgICAgICAgICAgICBpZiAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmF0dHJpYnV0
ZU9uU2l0ZSgpLm1hdGNoZXMoZnJhbWUtPnVybCgpKSkKICAgICAgICAgICAgICAgICB3ZWJzaXRl
RGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6U3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Np
b25JRCgpLCAqcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpLCAwKTsKICAgICAgICAgfQogICAgIH0K
QEAgLTk5NjUsNiArOTk2NSwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlLAogICAgIHdlYnNp
dGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1l
ckZvclRlc3RpbmcobV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgdmFsdWUpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjptYXJrQXR0
cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHdlYnNpdGVE
YXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6Ok1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNF
eHBpcmVkRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpKSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2ltdWxhdGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3
b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KG1fd2Vic2l0ZURh
dGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisK
IHZvaWQgV2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25V
UkxGb3JUZXN0aW5nKGNvbnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9j
ZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRh
U3RvcmUtPnNlc3Npb25JRCgpLCB1cmwpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDg3OWY3MzJiMTFjYjEyMzk3
Mzg2NThlOGU1OGZiODdjNTAzNGYyYjguLmY3OTBjYzYxMDc5ZWViODRhYzg2OTFmNjEzZDM5MDMz
NWRmMTkxNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjg4
LDYgKzE2ODgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJik7CiAgICAgdm9pZCBj
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0
aW5nKGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBt
YXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmco
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNpbXVsYXRlUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0
aW5nKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBt
YXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggNDljMjFmMDI3OTYxYjcwODM5ZjBlYjkwYmFjODM3NTAyMjI4YTlk
Zi4uNTI0MzdmYWJiMTNmMDhkNDU5NDkxNDg0YmJlNDYwYjJhYTFmYjE2ZiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisy
MDIwLTExLTE5ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisg
ICAgICAgIFBDTTogUGVyc2lzdCBwZW5kaW5nIGFkIGNsaWNrcyBhbmQgYXR0cmlidXRpb25zIHNv
IHRoZXkgY2FuIHN1cnZpdmUgYnJvd3NlciByZXN0YXJ0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkxMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcwNDcwMTI5PgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHRlc3Rpbmcgb2YgZXhwaXJlZCBhZC1jbGlja3MgYW5kIGF0dHJp
YnV0aW9ucy4KKyAgICAgICAgVXBkYXRlIG5hbWVzIGFmdGVyIFByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnQgc3RhbmRhcmRzIGRpc2N1c3Npb25zLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6
bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5n
KToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU2Vzc2lvblJlc3RhcnQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6bWFya0F0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25S
ZXN0YXJ0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlKToKKwogMjAyMC0xMS0xOSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW3dlYmtpdHNjbXB5XSBTdXBwb3J0IHJlbW90ZSBTdWJ2ZXJzaW9u
IHJlcG9zaXRvcnkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IGM1NmNiYTJmMjcwYWVk
OTQ5YTU0ZWU4ZTgzMjJiMmFkNTZmMzgyY2EuLjUxNDM4ODFhYjA0MmYxMTM4MmEzMGI3NTUyYmQ4
ZTBjY2IzNzdhZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAtNDMsOCArNDMsOCBA
QCBjb25zdCBVUkwgZW1wdHlVUkwgeyB9OwogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50
LCBWYWxpZE1pblZhbHVlcykKIHsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1
dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihtaW42Qml0VmFsdWUpLCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0
aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkNvbnZlcnNpb24obWluNkJpdFZhbHVlLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJp
b3JpdHkobWluNkJpdFZhbHVlKSkpOworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJp
YnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKG1pbjZCaXRWYWx1ZSks
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsKKyAg
ICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEobWluNkJpdFZhbHVlLCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkobWluNkJpdFZhbHVlKSkpOwogCiAgICAgYXV0
byBhdHRyaWJ1dGlvblVSTCA9IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpOwogICAgIApAQCAtNTUs
OCArNTUsOCBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pblZhbHVlcykK
IAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNaWRWYWx1ZXMpCiB7Ci0gICAg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6Q2FtcGFpZ24oKHVpbnQzMl90KTEyKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24g
eyBleGFtcGxlVVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RU
aW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKCh1aW50MzJfdCk0
NCwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KCh1aW50MzJfdCkyMikpKTsKKyAg
ICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VJRCgodWludDMyX3QpMTIpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmli
dXRlT25TaXRlIHsgZXhhbXBsZVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5k
R2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhKCh1aW50MzJfdCk0NCwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9y
aXR5KCh1aW50MzJfdCkyMikpKTsKIAogICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBhdHRyaWJ1
dGlvbi5yZXBvcnRVUkwoKTsKICAgICAKQEAgLTY3LDggKzY3LDggQEAgVEVTVChQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgVmFsaWRNaWRWYWx1ZXMpCiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQsIFZhbGlkTWF4VmFsdWVzKQogewotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0
dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJj
ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBl
eGFtcGxlVVJMIH0gfTsKLSAgICBhdHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1l
VG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uKFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHko
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7CisgICAgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNl
SUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRlT25TaXRlIHsgZXhhbXBsZVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uYXR0
cmlidXRlQW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5
LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6Ok1heEVudHJvcHkpKSk7CiAKICAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRp
b24ucmVwb3J0VVJMKCk7CiAgICAgCkBAIC03OSw5ICs3OSw5IEBAIFRFU1QoUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQsIFZhbGlkTWF4VmFsdWVzKQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCBFYXJsaWVzdFRpbWVUb1NlbmRBdHRyaWJ1dGlvbk1pbmltdW1EZWxheSkKIHsKLSAgICBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSksIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07CisgICAgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNl
SUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRlT25TaXRlIHsgZXhhbXBsZVVSTCB9IH07CiAgICAgYXV0byBub3cgPSBXYWxs
VGltZTo6bm93KCk7Ci0gICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRv
U2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbihQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSkpOworICAgIGF0dHJpYnV0aW9uLmF0
dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
QXR0cmlidXRpb25UcmlnZ2VyRGF0YShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9w
eSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpNYXhFbnRyb3B5KSkpOwogICAgIGF1dG8gZWFybGllc3RUaW1lVG9TZW5kID0gYXR0cmli
dXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCk7CiAgICAgQVNTRVJUX1RSVUUoZWFybGllc3RUaW1l
VG9TZW5kKTsKICAgICBBU1NFUlRfVFJVRShlYXJsaWVzdFRpbWVUb1NlbmQudmFsdWUoKS5zZWNv
bmRzU2luY2VFcG9jaCgpIC0gMjRfaCA+PSBub3cuc2Vjb25kc1NpbmNlRXBvY2goKSk7CkBAIC05
MCwzNCArOTAsMzQgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgRWFybGllc3RUaW1l
VG9TZW5kQXR0cmlidXRpb25NaW5pbXVtRGVsYXkpCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCBWYWxpZENvbnZlcnNpb25VUkxzKQogewogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJM
V2l0aG91dFByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3By
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIiX3MgfTsKLSAgICBhdXRvIG9wdGlvbmFsQ29udmVy
c2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNv
bnZlcnNpb25VUkxXaXRob3V0UHJpb3JpdHkpOworICAgIGF1dG8gb3B0aW9uYWxDb252ZXJzaW9u
ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZl
cnNpb25VUkxXaXRob3V0UHJpb3JpdHkpOwogICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVy
c2lvbik7CiAgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90
KTIyKTsKIAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5TWF4RW50
cm9weSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50LzYzIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhv
dXRQcmlvcml0eU1heEVudHJvcHkpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0
aG91dFByaW9yaXR5TWF4RW50cm9weSk7CiAgICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJz
aW9uKTsKICAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3Qp
NjMpOwogICAgIAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5QW5k
TGVhZGluZ1plcm8geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC8wMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25V
UkxXaXRob3V0UHJpb3JpdHlBbmRMZWFkaW5nWmVybyk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9u
ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZl
cnNpb25VUkxXaXRob3V0UHJpb3JpdHlBbmRMZWFkaW5nWmVybyk7CiAgICAgQVNTRVJUX1RSVUUo
b3B0aW9uYWxDb252ZXJzaW9uKTsKICAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5k
YXRhLCAodWludDMyX3QpMik7CiAKICAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhQcmlv
cml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50LzIyLzEyIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdp
dGhQcmlvcml0eSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHkp
OwogICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAgICAgQVNTRVJUX0VRKG9w
dGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIyKTsKICAgICBBU1NFUlRfRVEob3B0
aW9uYWxDb252ZXJzaW9uLT5wcmlvcml0eSwgKHVpbnQzMl90KTEyKTsKIAogICAgIGNvbnN0IFVS
TCBjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5TWF4RW50cm9weSB7IHsgfSwgImh0dHBzOi8vd2Vi
a2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzYzLzYzIl9zIH07
Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNl
Q29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQcmlvcml0eU1heEVudHJvcHkpOwor
ICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0
dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5TWF4RW50cm9weSk7CiAg
ICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKICAgICBBU1NFUlRfRVEob3B0aW9u
YWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpNjMpOwogICAgIEFTU0VSVF9FUShvcHRpb25h
bENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpNjMpOwogICAgIAogICAgIGNvbnN0IFVS
TCBjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5QW5kTGVhZGluZ1plcm8geyB7IH0sICJodHRwczov
L3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8wMiJf
cyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlBbmRMZWFkaW5n
WmVybyk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlBbmRMZWFk
aW5nWmVybyk7CiAgICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKICAgICBBU1NF
UlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpMjIpOwogICAgIEFTU0VS
VF9FUShvcHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpMik7CkBAIC0xMjcs
NDcgKzEyNyw0NyBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZENvbnZlcnNp
b25VUkxzKQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQ2FtcGFpZ25J
ZCkKIHsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50
cm9weSArIDEpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0s
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9Owot
ICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVu
dHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6TWF4RW50cm9weSkpKTsKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRy
aWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6TWF4RW50cm9weSArIDEpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRl
T25TaXRlIHsgZXhhbXBsZVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0
RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJv
cHkpKSk7CiAKICAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5
KCkpOwogfQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlSG9z
dCkKIHsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50
cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyBlbXB0eVVSTCB9LCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKLSAgICBh
dHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpDb252ZXJzaW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5
LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6Ok1heEVudHJvcHkpKSk7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRp
b24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSB7
IGVtcHR5VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBl
eGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRp
bWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEo
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKIAog
ICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7CiB9CiAK
IFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWREZXN0aW5hdGlvbkhvc3QpCiB7
Ci0gICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkg
KyAxKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVzdGluYXRpb24geyBlbXB0eVVSTCB9IH07Ci0gICAgYXR0
cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6Q29udmVyc2lvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpNYXhFbnRyb3B5KSkpOworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9u
IHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpNYXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRl
IHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUg
eyBlbXB0eVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RU
aW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRh
KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpKSk7CiAK
ICAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwogfQog
CiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkQ29udmVyc2lvbkRhdGEpCiB7
Ci0gICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkp
LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJp
YnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkNvbnZlcnNpb24oKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5ICsg
MSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6TWF4RW50cm9weSkpKTsKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1
dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRl
IHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUg
eyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVz
dFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEoKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9w
eSkpKTsKIAogICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHko
KSk7CiB9CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRQcmlvcml0eSkK
IHsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9w
eSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0gICAgYXR0
cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6Q29udmVyc2lvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpNYXhFbnRyb3B5ICsgMSkpKTsKKyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1
dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRl
IHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUg
eyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVz
dFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSArIDEp
KSk7CiAKICAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkp
OwogfQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkTWlzc2luZ0NvbnZl
cnNpb24pCiB7Ci0gICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1h
eEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0s
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9Owor
ICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSB7IGV4YW1wbGVVUkwgfSB9OwogCiAg
ICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKICAgICBB
U1NFUlRfRkFMU0UoYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCkpOwpAQCAtMTc2LDU1
ICsxNzYsNTUgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZE1pc3NpbmdD
b252ZXJzaW9uKQogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZENvbnZlcnNp
b25VUkxzKQogewogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0Q29u
dmVyc2lvbkRhdGEgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC8yIl9zIH07Ci0gICAgYXV0byBvcHRpb25hbENvbnZlcnNpb24g
PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJz
aW9uVVJMV2l0aFNpbmdsZURpZ2l0Q29udmVyc2lvbkRhdGEpOworICAgIGF1dG8gb3B0aW9uYWxD
b252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1
ZXN0KGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRDb252ZXJzaW9uRGF0YSk7CiAgICAgQVNT
RVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAgICAgCiAgICAgY29uc3QgVVJMIGNvbnZl
cnNpb25VUkxXaXRoTm9uTnVtZXJhbENvbnZlcnNpb25EYXRhIHsgeyB9LCAiaHR0cHM6Ly93ZWJr
aXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMnMiX3MgfTsKLSAg
ICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252
ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5vbk51bWVyYWxDb252ZXJzaW9uRGF0YSk7
CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNl
QXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbENvbnZlcnNpb25E
YXRhKTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKIAogICAgIGNvbnN0
IFVSTCBjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlQ29udmVyc2lvbkRhdGEgeyB7IH0sICJodHRw
czovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8tMiJf
cyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVDb252ZXJzaW9u
RGF0YSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVDb252ZXJz
aW9uRGF0YSk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAKICAgICBj
b25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25EYXRhIHsgeyB9LCAi
aHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQv
NjQiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVy
c2lvbkRhdGEpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29u
dmVyc2lvbkRhdGEpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogCiAg
ICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRQcmlvcml0eSB7IHsgfSwg
Imh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
LzIyLzIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0
UHJpb3JpdHkpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0
UHJpb3JpdHkpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogICAgIAog
ICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aE5vbk51bWVyYWxQcmlvcml0eSB7IHsgfSwg
Imh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50
LzIyLzJzIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOb25OdW1lcmFs
UHJpb3JpdHkpOworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5vbk51bWVyYWxQ
cmlvcml0eSk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAgICAgCiAg
ICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVQcmlvcml0eSB7IHsgfSwgImh0
dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIy
Ly0yIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZVByaW9y
aXR5KTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZVByaW9yaXR5
KTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKICAgICAKICAgICBjb25z
dCBVUkwgY29udmVyc2lvblVSTFdpdGhUb29MYXJnZVByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93
ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvNjQiX3Mg
fTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFy
c2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlUHJpb3JpdHkpOwor
ICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0
dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlUHJpb3JpdHkpOwogICAg
IEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogCiAgICAgY29uc3QgVVJMIGNvbnZl
cnNpb25VUkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YUFuZFByaW9yaXR5IHsgeyB9LCAiaHR0
cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvNjQv
MjIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVy
c2lvbkRhdGFBbmRQcmlvcml0eSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
VG9vTGFyZ2VDb252ZXJzaW9uRGF0YUFuZFByaW9yaXR5KTsKICAgICBBU1NFUlRfRkFMU0Uob3B0
aW9uYWxDb252ZXJzaW9uKTsKIAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRvb0xh
cmdlQ29udmVyc2lvbkRhdGFBbmRUb29MYXJnZVByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJr
aXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvNjQvNjQiX3MgfTsK
LSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VD
b252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFB
bmRUb29MYXJnZVByaW9yaXR5KTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhU
b29MYXJnZUNvbnZlcnNpb25EYXRhQW5kVG9vTGFyZ2VQcmlvcml0eSk7CiAgICAgQVNTRVJUX0ZB
TFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAKICAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdp
dGhFeHRyYUxlYWRpbmdTbGFzaCA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtu
b3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvLzIyLzEyIl9zIH07Ci0gICAgb3B0aW9uYWxD
b252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVl
c3QoY29udmVyc2lvblVSTFdpdGhFeHRyYUxlYWRpbmdTbGFzaCk7CisgICAgb3B0aW9uYWxDb252
ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0
KGNvbnZlcnNpb25VUkxXaXRoRXh0cmFMZWFkaW5nU2xhc2gpOwogICAgIEFTU0VSVF9GQUxTRShv
cHRpb25hbENvbnZlcnNpb24pOwogCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoRXh0
cmFUcmFpbGluZ1NsYXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24v
cHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMi8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZl
cnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChj
b252ZXJzaW9uVVJMV2l0aEV4dHJhVHJhaWxpbmdTbGFzaCk7CisgICAgb3B0aW9uYWxDb252ZXJz
aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNv
bnZlcnNpb25VUkxXaXRoRXh0cmFUcmFpbGluZ1NsYXNoKTsKICAgICBBU1NFUlRfRkFMU0Uob3B0
aW9uYWxDb252ZXJzaW9uKTsKIAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRyYWls
aW5nUXVlc3Rpb25NYXJrID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24v
cHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMj8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZl
cnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChj
b252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nUXVlc3Rpb25NYXJrKTsKKyAgICBvcHRpb25hbENvbnZl
cnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3Qo
Y29udmVyc2lvblVSTFdpdGhUcmFpbGluZ1F1ZXN0aW9uTWFyayk7CiAgICAgQVNTRVJUX0ZBTFNF
KG9wdGlvbmFsQ29udmVyc2lvbik7CiB9CiAKQEAgLTIzMiw0NiArMjMyLDQ2IEBAIFRFU1QoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRDb252ZXJzaW9uV2l0aERpc2FsbG93ZWRVUkxD
b21wb25lbnRzKQogewogICAgIC8vIFByb3RvY29sLgogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9u
VVJMV2l0aEh0dHBQcm90b2NvbCB7IHsgfSwgImh0dHA6Ly93ZWJraXQub3JnLy53ZWxsLWtub3du
L3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMiJfcyB9OwotICAgIGF1dG8gb3B0aW9uYWxDb252
ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3Qo
Y29udmVyc2lvblVSTFdpdGhIdHRwUHJvdG9jb2wpOworICAgIGF1dG8gb3B0aW9uYWxDb252ZXJz
aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNv
bnZlcnNpb25VUkxXaXRoSHR0cFByb3RvY29sKTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxD
b252ZXJzaW9uKTsKIAogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFdzc1Byb3RvY29s
IHsgeyB9LCAid3NzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1
cmVtZW50LzIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFdzc1Byb3Rv
Y29sKTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhXc3NQcm90b2NvbCk7CiAg
ICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAKICAgICBjb25zdCBVUkwgY29u
dmVyc2lvblVSTFdpdGhGaWxlUHJvdG9jb2wgeyB7IH0sICJmaWxlOi8vLy53ZWxsLWtub3duL3By
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNp
b25VUkxXaXRoRmlsZVByb3RvY29sKTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdp
dGhGaWxlUHJvdG9jb2wpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwog
CiAgICAgLy8gVXNlcm5hbWUgYW5kIHBhc3N3b3JkLgogICAgIGNvbnN0IFVSTCBjb252ZXJzaW9u
VVJMV2l0aFVzZXJOYW1lIHsgeyB9LCAiaHR0cHM6Ly91c2VyQHdlYmtpdC5vcmcvLndlbGwta25v
d24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJz
aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29u
dmVyc2lvblVSTFdpdGhVc2VyTmFtZSk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxX
aXRoVXNlck5hbWUpOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogCiAg
ICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUGFzc3dvcmQgPSB7IHsgfSwgImh0dHBzOi8v
OnB3ZEB3ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIv
MTI/Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQYXNzd29yZCk7Cisg
ICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0
cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUGFzc3dvcmQpOwogICAgIEFTU0VSVF9G
QUxTRShvcHRpb25hbENvbnZlcnNpb24pOwogCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxX
aXRoVXNlcm5hbWVBbmRQYXNzd29yZCA9IHsgeyB9LCAiaHR0cHM6Ly91c2VyOnB3ZEB3ZWJraXQu
b3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvMTI/Il9zIH07Ci0g
ICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29u
dmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhVc2VybmFtZUFuZFBhc3N3b3JkKTsKKyAg
ICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRy
aWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhVc2VybmFtZUFuZFBhc3N3b3JkKTsKICAg
ICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKIAogICAgIC8vIFF1ZXJ5IHN0cmlu
Zy4KICAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhUcmFpbGluZ1F1ZXN0aW9uTWFyayA9
IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQvMjIvMTI/Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhU
cmFpbGluZ1F1ZXN0aW9uTWFyayk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
VHJhaWxpbmdRdWVzdGlvbk1hcmspOwogICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNp
b24pOwogCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUXVlcnlTdHJpbmcgPSB7IHsg
fSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LzIyLzEyP2V4dHJhPWRhdGEiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJM
V2l0aFF1ZXJ5U3RyaW5nKTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhRdWVy
eVN0cmluZyk7CiAgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CiAgICAgCiAg
ICAgLy8gRnJhZ21lbnQuCiAgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdI
YXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGlj
ay1tZWFzdXJlbWVudC8yMi8xMiMiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJM
V2l0aFRyYWlsaW5nSGFzaCk7CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJh
aWxpbmdIYXNoKTsKICAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKIAogICAg
IGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aEZyYWdtZW50ID0geyB7IH0sICJodHRwczovL3dl
YmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMi8xMiNmcmFn
bWVudCJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoRnJhZ21lbnQpOwor
ICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0
dHJpYnV0aW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aEZyYWdtZW50KTsKICAgICBBU1NFUlRf
RkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwK
aW5kZXggZDBmZjgxNjVmYjE5NjE5MjZjYjZiNWY1ZTgzMTM1OTIxZjUyM2E1ZC4uZGIxNTk5YTJj
NTYwMmFlODFhYjJmMjRlMDhmOWY5NTUzOWMwNWI5YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCkBAIC00MDEsNiArNDAxLDggQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVm
aW5lZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CiAgICAgdW5kZWZpbmVkIGNsZWFy
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpOwogICAg
IHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0
aW5nKGJvb2xlYW4gdmFsdWUpOworICAgIHVuZGVmaW5lZCBtYXJrQXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICB1bmRlZmluZWQgc2lt
dWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoKTsKICAgICB1bmRlZmlu
ZWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhET01T
dHJpbmcgdXJsKTsKICAgICB1bmRlZmluZWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0Fz
RXhwaXJlZEZvclRlc3RpbmcoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggNWIxOTU0MmQwNjliODBlZmNmZDcy
ZjRkOWIwMzExODQzYTBjN2RhNC4uNjM4MDk4OTI1MThjY2UzY2ZkNmJhMmRmYWNkYzZmNWVmOTAz
YmFiNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwCkBAIC0yMDE1LDYgKzIwMTUsMTYgQEAgdm9pZCBUZXN0UnVubmVyOjpz
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFs
dWUpCiAgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmciLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgVGVzdFJ1
bm5lcjo6bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JU
ZXN0aW5nKCkKK3sKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiTWFya0F0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nIik7Cit9CisKK3Zv
aWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3Rh
cnQoKQoreworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTaW11bGF0ZVJlc291cmNl
TG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCIpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoSlNTdHJpbmdS
ZWYgdXJsU3RyaW5nKQogewogICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nIiwKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggYjMw
MmM4ZTMyMTBjNDZjY2EyNjhmNWZkY2Y1OTM5OGNjNzNkMjk2OS4uOTNhOTdjYmRkZTQ4NzVjYmQz
MzVhNzBmY2I5ZmY1M2RiNGYyOGI0NCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTUxNCw2ICs1MTQsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0
aW5nKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uVVJMRm9yVGVzdGluZyhKU1N0cmluZ1JlZik7CiAgICAgdm9pZCBtYXJrUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOworICAgIHZvaWQgbWFya0F0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAg
dm9pZCBzaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOwogCiAg
ICAgdm9pZCBzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggN2JhNjcyYWM5
ZjkyNWY2MzI1YWEwN2ZhNmYxNjFhNTAyMzVmYmI4Yy4uMGM2YzY1MTQxN2MyMTZiZjc3MzBhZGE3
N2I3MTA2ZDkwZmJhMjYzMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTM1OTIsNiArMzU5MiwyMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdQogICAg
IHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQogCit2b2lkIFRl
c3RDb250cm9sbGVyOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhw
aXJlZEZvclRlc3RpbmcoKQoreworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxi
YWNrQ29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOworICAgIFdLUGFnZU1hcmtBdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhtX21haW5XZWJW
aWV3LT5wYWdlKCksIHByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrLCAmY2FsbGJh
Y2tDb250ZXh0KTsKKyAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0
KTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU2Vzc2lvblJlc3RhcnQoKQoreworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENh
bGxiYWNrQ29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOworICAgIFdLUGFnZVNpbXVsYXRl
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KG1fbWFpbldlYlZpZXctPnBhZ2Uo
KSwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQp
OworICAgIHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOworfQorCiB2
b2lkIFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25V
UkxGb3JUZXN0aW5nKFdLVVJMUmVmIHVybCkKIHsKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBiNTdiOGY3YTA1OTUyM2VjZjg3N2FiMDE5
NzIwZDRkYmU1OGZjYjVmLi5kZGVjYTA4ODJhMzA5NmUzN2JmZDNlNzBmZWQ0ZTIyNzNkZDk2ZDI5
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0zNDQsNiArMzQ0
LDggQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwog
ICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFS
ZW1vdmFsKCk7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGlt
ZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpOworICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBzaW11bGF0
ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOwogICAgIHZvaWQgc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXS1VSTFJlZik7CiAg
ICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygp
OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDI5YjY1
MmM2MDM5ZWU4YzUzMDlmZjBkZWFhZWU4MGY1ODQ1MzkwMmMuLjU5OGRmYzdkMWFjMGUzN2JiMjJm
Yjc4NGJhMTU0YWI3NDc3YWVhMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCkBAIC0xMzI5LDYgKzEzMjksMTYgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBU
ZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAorICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiTWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nIikpIHsKKyAgICAgICAgVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLm1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRz
QXNFeHBpcmVkRm9yVGVzdGluZygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cisg
ICAgCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJT
aW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCIpKSB7CisgICAgICAg
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTZXNzaW9uUmVzdGFydCgpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAg
CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nIikpIHsKICAgICAg
ICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1VSTEdldFR5cGVJRCgpKTsK
ICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmcoc3RhdGljX2Nhc3Q8V0tVUkxSZWY+KG1lc3Nh
Z2VCb2R5KSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggOGI3NGEzZjk3YTA0MjMyMzI1ZWYwYjc5ODM4NDlmM2ZhMWZmZTFm
Ni4uNzJlOWVmMmQxNzc3MmY3MjMyYWQwN2IzMTE4MDFkOGFjMGVlNTM1OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ0IEBACisyMDIwLTExLTE5ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBw
bGUuY29tPgorCisgICAgICAgIFBDTTogUGVyc2lzdCBwZW5kaW5nIGFkIGNsaWNrcyBhbmQgYXR0
cmlidXRpb25zIHNvIHRoZXkgY2FuIHN1cnZpdmUgYnJvd3NlciByZXN0YXJ0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkxMzQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzcwNDcwMTI5PgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5k
ZXIuCisgICAgICAgIAorICAgICAgICBBZGRlZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4gUmVtb3Zl
ZCAnQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6JworICAgICAgICBjYXRlZ29yeSBpbiB0aGUgdG9T
dHJpbmcoKSBtZXRob2QgYmVjYXVzZSBpdCB3aWxsIGFsd2F5cyBiZSBmYWxzZS4KKyAgICAgICAg
U2VudCBjb252ZXJzaW9ucyBhcmUgcHVyZ2VkIGZyb20gdGhlIGRhdGFiYXNlLCBzbyBpdCBpcyBu
b3QgYSB1c2VmdWwKKyAgICAgICAgcGllY2Ugb2YgaW5mb3JtYXRpb24gdG8gcmVwb3J0LiBVcGRh
dGVkIG5hbWluZyBiYXNlZCBvbiBzdGFuZGFyZHMKKyAgICAgICAgY292ZXJzYXRpb25zLgorCisg
ICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29u
dmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRp
b24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9u
LWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1w
cmlvcml0eS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWFk
LWNsaWNrLWdldHMtcmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWFk
LWNsaWNrLWdldHMtcmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWw6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZl
cnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVwb3J0LWdldHMtc2Vu
dC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9uLXJlcG9ydC1n
ZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVy
c2lvbi1yZXF1ZXN0Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA6CisgICAgICAgICogaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEu
cGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25k
LWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0
cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29u
dmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRl
ZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0
aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5k
LWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZl
cnNpb24tcmVxdWVzdC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50eHQ6CisK
IDIwMjAtMTEtMTkgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAK
ICAgICAgICAgW1RleHR1cmVNYXBwZXJHTF0gVGhlIGludmVydCBmaWx0ZXIgd3JvbmdseSBpbnZl
cnRzIHByZS1tdWx0aXBsaWVkIGFscGhhIGNvbG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1l
bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9u
cy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LWV4cGVjdGVkLnR4dAppbmRleCBiMWZh
YWJlOWIyOWM1ZjUyYTFjNmY1MTEzOWZlZTI1MTJmYzA3OTgzLi5kMzBlOWU4OTc0MWUwNDUxN2Zi
YjlkNDdkYTgyMDA4OGFmMTBmYzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxv
Y2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50eHQKQEAgLTcsMTEgKzcsMTEg
QEAgVGVzdHMgdGhhdCBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlZGlyZWN0cyB0byB3ZWxs
LWtub3duIGxvY2F0aW9uIGRvbid0IHRyaWcKIC0tLS0tLS0tCiBGcmFtZTogJzwhLS1mcmFtZTEt
LT4nCiAtLS0tLS0tLQotQ29udmVyc2lvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQuCitBdHRy
aWJ1dGlvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQuCiAKLVVuY29udmVydGVkIFByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnRzOgorVW5hdHRyaWJ1dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1l
bnRzOgogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQotU291cmNlOiAxMjcuMC4w
LjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1ObyBjb252ZXJzaW9u
IGRhdGEuCitTb3VyY2Ugc2l0ZTogMTI3LjAuMC4xCitBdHRyaWJ1dGUgb24gc2l0ZTogbG9jYWxo
b3N0CitTb3VyY2UgSUQ6IDMKK05vIGF0dHJpYnV0aW9uIHRyaWdnZXIgZGF0YS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmli
dXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9h
dHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC1l
eHBlY3RlZC50eHQKaW5kZXggYTdkODY3ZmM2MjA2ODg0NWQ5ZWQyZjlkODhhOTMyNTNiMjI1MDVh
Ni4uMDA3MWI5NmY5ODhmMzFhMzIxNjM2Mzk2MjM1NmM5NzQ5NmZlZWFlMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9h
dHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC1l
eHBlY3RlZC50eHQKQEAgLTEsOSArMSw5IEBACi1UZXN0cyB0aGF0IHRyaWdnZXJpbmcgb2YgcHJp
dmF0ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9ucyB0aHJvdWdoIGNyb3NzLXNpdGUgcmVk
aXJlY3RzIGRvIG5vdCB3b3JrLgorVGVzdHMgdGhhdCB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xp
Y2sgbWVhc3VyZW1lbnQgYXR0cmlidXRpb25zIHRocm91Z2ggY3Jvc3Mtc2l0ZSByZWRpcmVjdHMg
ZG8gbm90IHdvcmsuCiAKIAotVW5jb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6
CitVbmF0dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CiBXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxv
Y2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLU5vIGNvbnZlcnNpb24gZGF0YS4KK1NvdXJjZSBzaXRl
OiAxMjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBzaXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJRDogMwor
Tm8gYXR0cmlidXRpb24gdHJpZ2dlciBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRo
cm91Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91
Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1sCmluZGV4IGY5MDliNmUxOTM1NGU3ZmIw
ZmUxNzE4ZjM0MTMwNDdmMzc3ZmY5MzMuLjI1MzcyZThkNmJkMTZiYTVlOGQ1M2U3YjVhNmIzZTVi
NTIwNDlhMjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1h
Z2UtcmVkaXJlY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWlt
YWdlLXJlZGlyZWN0Lmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0ic2V0VGltZW91
dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCB0cmlnZ2Vy
aW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgY29udmVyc2lvbnMgdGhyb3VnaCBjcm9z
cy1zaXRlIHJlZGlyZWN0cyBkbyBub3Qgd29yay48L2Rpdj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij5UZXN0cyB0aGF0IHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRy
aWJ1dGlvbnMgdGhyb3VnaCBjcm9zcy1zaXRlIHJlZGlyZWN0cyBkbyBub3Qgd29yay48L2Rpdj4K
IDxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUt
aW1hZ2UtcmVkaXJlY3QuaHRtbD9zdGVwVHdvIiBhdHRyaWJ1dGlvbnNvdXJjZWlkPSIzIiBhdHRy
aWJ1dGVvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KIDxkaXYgaWQ9Im91
dHB1dCI+PC9kaXY+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gt
aW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24t
dGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBl
NDFkMmJmZjVkZDM1YjU5ZmE1M2EyNjBlNjRkZWI4Y2I0NWJhOTc1Li44Y2RiNTBlZWU2YTNmNTNi
MTZhMzBmMGQ5NDY0NWQwYzVkNzRmNzJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3Vn
aC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZl
cnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2luZG93LWV4cGVjdGVkLnR4dApA
QCAtMSwxMiArMSwxMSBAQAotVGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1
cmVtZW50IGNvbnZlcnNpb25zIGluIGEgbmV3IHdpbmRvdy4KK1Rlc3RzIHRyaWdnZXJpbmcgb2Yg
cHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGlvbnMgaW4gYSBuZXcgd2luZG93Lgog
CiAKLUNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK0F0dHJpYnV0ZWQgUHJp
dmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CiBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9zdAotQ2FtcGFpZ24g
SUQ6IDMKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJpb3JpdHk6IDMKLUNvbnZl
cnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKLUNvbnZlcnNp
b24gcmVxdWVzdCBzZW50OiBmYWxzZQorU291cmNlIHNpdGU6IDEyNy4wLjAuMQorQXR0cmlidXRl
IG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNlIElEOiAzCitBdHRyaWJ1dGlvbiB0cmlnZ2VyIGRh
dGE6IDEyCitBdHRyaWJ1dGlvbiBwcmlvcml0eTogMworQXR0cmlidXRpb24gZWFybGllc3QgdGlt
ZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbAppbmRleCBlZjgzYTMxOWQ3
OTNiYjhjZGJlNjI4NWIzMzQxNzQyNTAzYmQyOGFjLi5iOTI3NWM3MzQ3NjA5MTYwODE0MTFkNmRh
MmM2MGRiZTE5ZDk2M2JkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1y
ZWRpcmVjdC1pbi1uZXctd2luZG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1h
Z2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5odG1sCkBAIC03LDcgKzcsNyBAQAogICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxv
YWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3Rz
IHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9ucyBpbiBh
IG5ldyB3aW5kb3cuPC9kaXY+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmlu
ZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGF0dHJpYnV0aW9ucyBpbiBhIG5ldyB3aW5k
b3cuPC9kaXY+CiA8YSB0YXJnZXQ9Il9ibGFuayIgcmVsPSJvcGVuZXIiIGlkPSJ0YXJnZXRMaW5r
IiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVz
b3VyY2VzL2NvbnZlcnRBbmRQb3N0TWVzc2FnZUJhY2suaHRtbCIgYXR0cmlidXRpb25zb3VyY2Vp
ZD0iMyIgYXR0cmlidXRlb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+CiA8
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lv
bi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1j
b252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50
eHQKaW5kZXggODRiMjcyNGY0ZmI1NTllNTZjZDFkOWY0ZDFmZmM1OTVkMjRiNjRiMy4uZDY4ZjA4
ZDY4NmY1ODAxNTZjOWYwYWViODk1NmIxNDA1ZDI5YjU2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJz
aW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBl
Y3RlZC50eHQKQEAgLTEsMTIgKzEsMTEgQEAKLVRlc3RzIHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBj
bGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9ucyB3aXRoIHByaW9yaXR5LgorVGVzdHMgdHJpZ2dl
cmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGF0dHJpYnV0aW9ucyB3aXRoIHByaW9y
aXR5LgogCiAKLUNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK0F0dHJpYnV0
ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CiBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9zdAotQ2Ft
cGFpZ24gSUQ6IDMKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJpb3JpdHk6IDMK
LUNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKLUNv
bnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQorU291cmNlIHNpdGU6IDEyNy4wLjAuMQorQXR0
cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNlIElEOiAzCitBdHRyaWJ1dGlvbiB0cmln
Z2VyIGRhdGE6IDEyCitBdHRyaWJ1dGlvbiBwcmlvcml0eTogMworQXR0cmlidXRpb24gZWFybGll
c3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVy
c2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVy
c2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbAppbmRleCBhMzgz
M2ZhZWM4ZTAzN2VhMTNlYTY3MjEwZGY4YWU4OGQxMzBiZmVmLi4wMjEyMWU0NmUyN2ZlZmY5ODcw
Y2VlMTBmZjVjZmE3ODZmMDRjYTc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1p
bWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91
Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sCkBAIC03LDcgKzcsNyBAQAogICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24i
PlRlc3RzIHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9u
cyB3aXRoIHByaW9yaXR5LjwvZGl2PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRyaWdn
ZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGlvbnMgd2l0aCBwcmlv
cml0eS48L2Rpdj4KIDxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdo
LWltYWdlLXJlZGlyZWN0LXdpdGgtcHJpb3JpdHkuaHRtbD9zdGVwVHdvIiBhdHRyaWJ1dGlvbnNv
dXJjZWlkPSIzIiBhdHRyaWJ1dGVvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxi
cj4KIDxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252
ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlvcml0eS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5
LWV4cGVjdGVkLnR4dAppbmRleCA3MWY0NjJjZDBlYzMwYzZhMDM4MjQxNWUwMzRlMTY3NWYxZjAy
M2IxLi5iMWVkMTg4NzY1NDQ5MDhjZDMyMDIzODJlNjg3Yzg4MTU5N2E0N2YwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0
aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRo
b3V0LXByaW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMSBAQAotVGVzdHMgdHJpZ2dl
cmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGNvbnZlcnNpb25zIHdpdGhvdXQgcHJp
b3JpdHkuCitUZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0
cmlidXRpb25zIHdpdGhvdXQgcHJpb3JpdHkuCiAKIAotQ29udmVydGVkIFByaXZhdGUgQ2xpY2sg
TWVhc3VyZW1lbnRzOgorQXR0cmlidXRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKIFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0
aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotQ29udmVyc2lvbiBkYXRhOiAxMgot
Q29udmVyc2lvbiBwcmlvcml0eTogMAotQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6
IFdpdGhpbiAyNC00OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCitTb3Vy
Y2Ugc2l0ZTogMTI3LjAuMC4xCitBdHRyaWJ1dGUgb24gc2l0ZTogbG9jYWxob3N0CitTb3VyY2Ug
SUQ6IDMKK0F0dHJpYnV0aW9uIHRyaWdnZXIgZGF0YTogMTIKK0F0dHJpYnV0aW9uIHByaW9yaXR5
OiAwCitBdHRyaWJ1dGlvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3Vy
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91
dC1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0
aG91dC1wcmlvcml0eS5odG1sCmluZGV4IDQyM2QxMzU1OTQ4NmQ5MzI3MjhiOWI0NDM5NTMxOTNk
MGVmYWEzYzguLjcxZWM3N2E1MTlkZGMyNGU0YjA5YjExZDY5YjcyZGExMzg3ZDdlNTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0
cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3Jp
dHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0
LXByaW9yaXR5Lmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dChy
dW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmluZyBvZiBw
cml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGNvbnZlcnNpb25zIHdpdGhvdXQgcHJpb3JpdHkuPC9k
aXY+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNs
aWNrIG1lYXN1cmVtZW50IGF0dHJpYnV0aW9ucyB3aXRob3V0IHByaW9yaXR5LjwvZGl2PgogPGEg
aWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qt
d2l0aG91dC1wcmlvcml0eS5odG1sP3N0ZXBUd28iIGF0dHJpYnV0aW9uc291cmNlaWQ9IjMiIGF0
dHJpYnV0ZW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgogPGRpdiBpZD0i
b3V0cHV0Ij48L2Rpdj4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1l
cmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9u
LWV4cGVjdGVkLnR4dAppbmRleCAxZjFhYTA0MmIxMDI3MzkwNDYyNzdmMWQ4YmNiMGM3OTliZDZi
NTk0Li44NTQ4ZWZlYWMyMGFlZmIxYjdjZmNiOTVkMTIzOGNmNGNmYjNkYmI2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZlcnNp
b24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNh
YmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQKQEAgLTUsMTEgKzUsMTEgQEAg
VGVzdHMgdGhhdCBzdG9yZWQgYXR0cmlidXRpb25zIGNhbm5vdCBiZSBjb252ZXJ0ZWQgaW4gYW4g
ZXBoZW1lcmFsIHNlc3Npb24uCiAtLS0tLS0tLQogRnJhbWU6ICc8IS0tZnJhbWUxLS0+JwogLS0t
LS0tLS0KLUNvbnZlcnNpb24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0LgorQXR0cmlidXRpb24g
bm90IHJlY2VpdmVkIC0gdGltZWQgb3V0LgogCi1VbmNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50czoKK1VuYXR0cmlidXRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKIFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0
aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotTm8gY29udmVyc2lvbiBkYXRhLgor
U291cmNlIHNpdGU6IDEyNy4wLjAuMQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291
cmNlIElEOiAzCitObyBhdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYWQtY2xp
Y2stZ2V0cy1yZW1vdmVkLW9uLXNlc3Npb24tc3RhcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWFkLWNsaWNrLWdl
dHMtcmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZWMy
ODZkNGMzY2FjOWFkZjNhYmRjYzczZjEzNDYzNTY3ZmE5YjgxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWFk
LWNsaWNrLWdldHMtcmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKK1Rlc3RzIHRoYXQgYW4gZXhwaXJlZCBhZCBjbGljayBkb2VzIG5vdCBnZXQgY29u
dmVydGVkIG9uIHNlc3Npb24gc3RhcnQuCisKKworCitObyBzdG9yZWQgUHJpdmF0ZSBDbGljayBN
ZWFzdXJlbWVudCBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWFkLWNsaWNrLWdldHMtcmVtb3ZlZC1vbi1zZXNz
aW9uLXN0YXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2V4cGlyZWQtYWQtY2xpY2stZ2V0cy1yZW1vdmVkLW9uLXNlc3Npb24tc3RhcnQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xMzJjZGJkMDhjMzIwOGIzMjY3NTE1MTY5YjZjYWEyYjk1OWQxMTEzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9leHBpcmVkLWFkLWNsaWNrLWdldHMtcmVtb3ZlZC1vbi1zZXNzaW9uLXN0YXJ0Lmh0
bWwKQEAgLTAsMCArMSw3OSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNj
YWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhbiBleHBpcmVkIGFkIGNsaWNrIGRvZXMg
bm90IGdldCBjb252ZXJ0ZWQgb24gc2Vzc2lvbiBzdGFydC48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRM
aW5rIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAg
IGNvbnN0IHBhdGggPSAiL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYWQtY2xpY2st
Z2V0cy1yZW1vdmVkLW9uLXNlc3Npb24tc3RhcnQuaHRtbCI7CisgICAgY29uc3QgY29uZmlndXJh
dGlvbiA9IFsKKyAgICAgICAgeworICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIgKyBwYXRoICsgIj9zdGVwVHdvIiwKKyAgICAgICAgICAgIGF0dHJpYnV0aW9uc291cmNl
aWQ6ICIzIiwKKyAgICAgICAgICAgIGF0dHJpYnV0ZW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IgorICAgICAgICB9CisgICAgXTsKKworICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlv
biBjb25maWd1cmVMaW5rKGluZGV4KSB7CisgICAgICAgIGxldCBsaW5rRWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIik7CisgICAgICAgIGxpbmtFbGVtZW50LnNl
dEF0dHJpYnV0ZSgiaHJlZiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmhyZWYpOworICAgICAgICBs
aW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImF0dHJpYnV0aW9uc291cmNlaWQiLCBjb25maWd1cmF0
aW9uW2luZGV4XS5hdHRyaWJ1dGlvbnNvdXJjZWlkKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0
QXR0cmlidXRlKCJhdHRyaWJ1dGVvbiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmF0dHJpYnV0ZW9u
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Cisg
ICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsK
KyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNl
dFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVs
ZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50
ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWpl
Y3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY29udmVydChjYWxsYmFjaykg
eworICAgICAgICBsZXQgcGl4ZWxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBp
eGVsIik7CisgICAgICAgIGlmIChwaXhlbEVsZW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKHBpeGVsRWxlbWVudCk7CisKKyAgICAgICAgbGV0IGltYWdlRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICBpbWFnZUVsZW1lbnQu
c3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVz
b3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiI7CisgICAg
ICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgIGltYWdlRWxlbWVudC5vbmVy
cm9yID0gY2FsbGJhY2s7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VF
bGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2Vh
cmNoID09PSAiIikgeworICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7CisgICAgICAg
ICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9IGVs
c2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAg
ICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5tYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNF
eHBpcmVkRm9yVGVzdGluZygpOworICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnNp
bXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCk7CisgICAgICAgICAg
ICAgICAgY29udmVydChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGlu
ayIpKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgIHRlYXJE
b3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0
IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVwb3J0
LWdldHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbi1yZXBv
cnQtZ2V0cy1zZW50LW9uLXNlc3Npb24tc3RhcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2
MGNjNmY3MDdkNDEyNWIyYTAyNGQ1OGYzN2I0N2Y1OWNiYmQzZGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQt
YXR0cmlidXRpb24tcmVwb3J0LWdldHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyBzZW5kaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3Vy
ZW1lbnQgcmVxdWVzdHMgYWZ0ZXIgYW4gYXR0cmlidXRpb24gaGFwcGVucyBpbW1lZGlhdGVseSBm
b3IgcmVwb3J0cyB3aGljaCBoYXZlIGV4cGlyZWQgd2hlbiBhIHNlc3Npb24gaXMgY2xvc2VkLgor
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitBdHRyaWJ1
dGlvbiByZWNlaXZlZC4KK0hUVFBfSE9TVDogMTI3LjAuMC4xOjgwMDAKK0NvbnRlbnQgdHlwZTog
YXBwbGljYXRpb24vanNvbgorUkVRVUVTVF9VUkk6IC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9y
ZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAKK05vIGNvb2tpZXMgaW4gYXR0cmlidXRpb24g
cmVxdWVzdC4KK1JlcXVlc3QgYm9keToKK3sic291cmNlLWVuZ2FnZW1lbnQtdHlwZSI6ImNsaWNr
Iiwic291cmNlLXNpdGUiOiIxMjcuMC4wLjEiLCJzb3VyY2UtaWQiOjMsImF0dHJpYnV0ZWQtb24t
c2l0ZSI6ImxvY2FsaG9zdCIsInRyaWdnZXItZGF0YSI6MTIsInJlcG9ydC12ZXJzaW9uIjoxfQor
CisKK05vIHN0b3JlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IGRhdGEuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQt
YXR0cmlidXRpb24tcmVwb3J0LWdldHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmli
dXRpb24tcmVwb3J0LWdldHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTE4MzY2ZDNkOTEwYWQzZTE1YjkxNzU4ZGE3YmIzYzNjZGIyYTc2ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJl
ZC1hdHRyaWJ1dGlvbi1yZXBvcnQtZ2V0cy1zZW50LW9uLXNlc3Npb24tc3RhcnQuaHRtbApAQCAt
MCwwICsxLDc5IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1
c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9
bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj5UZXN0cyBzZW5kaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQg
cmVxdWVzdHMgYWZ0ZXIgYW4gYXR0cmlidXRpb24gaGFwcGVucyBpbW1lZGlhdGVseSBmb3IgcmVw
b3J0cyB3aGljaCBoYXZlIGV4cGlyZWQgd2hlbiBhIHNlc3Npb24gaXMgY2xvc2VkLjwvZGl2Pgor
PGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vz
c2lvbi1zdGFydC5odG1sP3N0ZXBUd28iIGF0dHJpYnV0aW9uc291cmNlaWQ9IjMiIGF0dHJpYnV0
ZW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0
Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgY29uc3QgY3VycmVudFRpbWVNaWxsaXMgPSAobmV3IERh
dGUoKSkuZ2V0VGltZSgpOworICAgIGNvbnN0IGhpZ2hFbnRyb3B5Qml0cyA9IGN1cnJlbnRUaW1l
TWlsbGlzIC0gKE1hdGguZmxvb3IoY3VycmVudFRpbWVNaWxsaXMgLyAxMDAwMDAwKSAqIDEwMDAw
MDApOworICAgIGNvbnN0IG5vbmNlID0gaGlnaEVudHJvcHlCaXRzICsgIiIgKyBNYXRoLmZsb29y
KE1hdGgucmFuZG9tKCkgKiAxMDApOworCisgICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA/bm9u
Y2U9IiArIG5vbmNlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxl
bWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBl
bGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9m
ZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0
aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwg
UHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7
CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5k
SWZyYW1lKHVybCwgb25sb2FkQ2FsbGJhY2spIHsKKyAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgaWZyYW1lRWxlbWVu
dC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbmxvYWRDYWxsYmFjaykKKyAgICAgICAgICAgIGlm
cmFtZUVsZW1lbnQub25sb2FkID0gb25sb2FkQ2FsbGJhY2s7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBw
ZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKSB7CisgICAgICAgIC8vIE1hcmsgdGhp
cyBhdHRyaWJ1dGlvbiBhcyBwYXN0LWR1ZSBmb3IgcmVwb3J0aW5nLCBhbmQgc2ltdWxhdGUgYSBz
ZXNzaW9uIHJlc3RhcnQgdG8KKyAgICAgICAgLy8gbWFrZSBzdXJlIHRoZSBhdHRyaWJ1dGlvbiBn
ZXRzIHNlbnQgaW1tZWRpYXRlbHkuCisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm1hcmtBdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOworICAg
ICAgICB0ZXN0UnVubmVyLnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0
YXJ0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7
CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworCisgICAgICAgIGFwcGVuZElmcmFtZSgi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9n
ZXRDb252ZXJzaW9uRGF0YS5waHA/dGltZW91dF9tcz0yMDAwJm5vbmNlPSIgKyBub25jZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAi
P3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMg
PSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJj
ZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJm5vbmNlPSIgKyBu
b25jZTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAg
ICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNoKCk7CisgICAgICAg
ICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlt
YWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFjdGl2
YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4
dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252
ZXJzaW9uUmVwb3J0LnBocAppbmRleCBiNWMyMDI2OWM3ODQ5MDZmZmY3NDc0NDhiMzg4MWY0MDYz
N2FiYzAxLi5kNWFmYjQ0NTc5NWE4MjA3MWNjYzVmYTQyNGI2MTgwNmEzYTNhNjY2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocApAQCAt
MTUsMTQgKzE1LDE0IEBAIGZvcmVhY2ggKCRodHRwSGVhZGVycyBhcyAkbmFtZSA9PiAkdmFsdWUp
IHsKICAgICAgICAgICAgICRvdXRwdXRVUkwgPSBzdWJzdHIoJHZhbHVlLCAwLCAkcG9zaXRpb25P
Zk5vbmNlKTsKICAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIiRuYW1lOiAkb3V0cHV0
VVJMXG4iKTsKICAgICB9IGVsc2UgaWYgKCRuYW1lID09PSAiSFRUUF9DT09LSUUiKSB7Ci0gICAg
ICAgIGZ3cml0ZSgkY29udmVyc2lvbkZpbGUsICJDb29raWVzIGluIGNvbnZlcnNpb24gcmVxdWVz
dDogJHZhbHVlXG4iKTsKKyAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIkNvb2tpZXMg
aW4gYXR0cmlidXRpb24gcmVxdWVzdDogJHZhbHVlXG4iKTsKICAgICAgICAgJGNvb2tpZXNGb3Vu
ZCA9IHRydWU7CiAgICAgfSBlbHNlIGlmICgkbmFtZSA9PT0gIkNPTlRFTlRfVFlQRSIpIHsKICAg
ICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIkNvbnRlbnQgdHlwZTogJHZhbHVlXG4iKTsK
ICAgICB9CiB9CiBpZiAoISRjb29raWVzRm91bmQpIHsKLSAgICBmd3JpdGUoJGNvbnZlcnNpb25G
aWxlLCAiTm8gY29va2llcyBpbiBjb252ZXJzaW9uIHJlcXVlc3QuXG4iKTsKKyAgICBmd3JpdGUo
JGNvbnZlcnNpb25GaWxlLCAiTm8gY29va2llcyBpbiBhdHRyaWJ1dGlvbiByZXF1ZXN0LlxuIik7
CiB9CiAKICRyZXF1ZXN0Qm9keSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCdwaHA6Ly9pbnB1dCcpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhw
CmluZGV4IDU1ZTIyMDcxNWFmZDY3ZTBiOGVhODk1Njc5MmY0OTBhNGJlMDNhY2EuLmE5YmQzZGZk
NmJiYzBkMGYzMzZlOWRhZWU4YzAwYjk1NWEwM2RlZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNp
b25EYXRhLnBocAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAKQEAgLTI3LDcgKzI3LDcgQEAg
d2hpbGUgKCRub1RpbWVvdXQgfHwgJHRpbWVvdXRNc2VjcyA+IDApIHsKIGVjaG8gIjxodG1sPjxi
b2R5PlxuIjsKIAogaWYgKCRjb252ZXJzaW9uRmlsZUZvdW5kKSB7Ci0gICAgZWNobyAiQ29udmVy
c2lvbiByZWNlaXZlZC4iOworICAgIGVjaG8gIkF0dHJpYnV0aW9uIHJlY2VpdmVkLiI7CiAgICAg
JGNvbnZlcnNpb25GaWxlID0gZm9wZW4oJGNvbnZlcnNpb25GaWxlUGF0aCwgJ3InKTsKICAgICB3
aGlsZSAoJGxpbmUgPSBmZ2V0cygkY29udmVyc2lvbkZpbGUpKSB7CiAgICAgICAgIGVjaG8gIjxi
cj4iOwpAQCAtMzcsNyArMzcsNyBAQCBpZiAoJGNvbnZlcnNpb25GaWxlRm91bmQpIHsKICAgICBm
Y2xvc2UoJGNvbnZlcnNpb25GaWxlKTsKICAgICB1bmxpbmsoJGNvbnZlcnNpb25GaWxlUGF0aCk7
CiB9IGVsc2UgewotICAgIGVjaG8gIkNvbnZlcnNpb24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0
Ljxicj4iOworICAgIGVjaG8gIkF0dHJpYnV0aW9uIG5vdCByZWNlaXZlZCAtIHRpbWVkIG91dC48
YnI+IjsKIH0KIAogaWYgKGlzc2V0KCRfR0VUWydlbmRUZXN0J10pKSB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRy
aWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmli
dXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dAppbmRleCBl
OTBkMjZmNmFmZGJkM2VjZGMyMTNiZmUyM2EzNjNkZDE3NDdiY2EzLi41NjU1OTMzMWMwNTI1YjMz
ZWRhN2I4ZGI3Mzk1NDM2MTA0Y2IzYWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQt
d2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRl
ZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMTEgQEAKLVRl
c3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gY29udmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlv
cml0eSByZXBsYWNlcyBhbiBvbGRlciB3aXRoIGxvd2VyIHByaW9yaXR5LgorVGVzdHMgdGhhdCBh
IHNlY29uZCBhdHRyaWJ1dGlvbiB3aXRoIGhpZ2hlciBwcmlvcml0eSByZXBsYWNlcyBhbiBvbGRl
ciB3aXRoIGxvd2VyIHByaW9yaXR5LgogCiAKLUNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50czoKK0F0dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CiBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRp
b246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDQKLUNvbnZlcnNpb24gZGF0YTogMTIKLUNvbnZl
cnNpb24gcHJpb3JpdHk6IDQKLUNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRo
aW4gMjQtNDggaG91cnMKLUNvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQorU291cmNlIHNp
dGU6IDEyNy4wLjAuMQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNlIElEOiA0
CitBdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6IDEyCitBdHRyaWJ1dGlvbiBwcmlvcml0eTogNAor
QXR0cmlidXRpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
c2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0
cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwKaW5kZXggZWMzY2Mw
ZWFjMWUzNTYyMTU3MDk4MTExMmQzNzMxMTVmZDA5ZGNkOC4uNGMyOWRmNjlkZmUyZWFmMjZjMmU1
YTE2MjdkYjEwNDA3MmVlOWI1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgt
aGlnaGVyLXByaW9yaXR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVy
LXByaW9yaXR5Lmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dChy
dW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhIHNlY29uZCBh
dHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdpdGggaGlnaGVyIHByaW9yaXR5IHJlcGxhY2VzIGFuIG9s
ZGVyIHdpdGggbG93ZXIgcHJpb3JpdHkuPC9kaXY+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVz
dHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiB3aXRoIGhpZ2hlciBwcmlvcml0eSByZXBsYWNl
cyBhbiBvbGRlciB3aXRoIGxvd2VyIHByaW9yaXR5LjwvZGl2PgogPGEgaWQ9InRhcmdldExpbmsi
Pkxpbms8L2E+PGJyPgogPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KIDxzY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29u
ZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1h
dHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQKaW5k
ZXggYzM3ZjMxOGZjNzY5YWYxZTZjMTk1NzVkNTA4NGMwMjU3NTJlYzZkZS4uZmU2NjIyMzhkNWE5
OWY0Y2QwOGMyYzI0YzBmZjZmOTdjNThlOTc2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVy
dGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZl
cnRlZC13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMSBAQAot
VGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdpdGggbG93ZXIgcHJp
b3JpdHkgZG9lcyBub3QgcmVwbGFjZSBhbiBvbGRlciB3aXRoIGhpZ2hlciBwcmlvcml0eS4KK1Rl
c3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gd2l0aCBsb3dlciBwcmlvcml0eSBkb2VzIG5v
dCByZXBsYWNlIGFuIG9sZGVyIHdpdGggaGlnaGVyIHByaW9yaXR5LgogCiAKLUNvbnZlcnRlZCBQ
cml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK0F0dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudHM6CiBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEy
Ny4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLUNvbnZlcnNp
b24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJpb3JpdHk6IDQKLUNvbnZlcnNpb24gZWFybGllc3Qg
dGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKLUNvbnZlcnNpb24gcmVxdWVzdCBzZW50
OiBmYWxzZQorU291cmNlIHNpdGU6IDEyNy4wLjAuMQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2Fs
aG9zdAorU291cmNlIElEOiAzCitBdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6IDEyCitBdHRyaWJ1
dGlvbiBwcmlvcml0eTogNAorQXR0cmlidXRpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRo
aW4gMjQtNDggaG91cnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2Vy
LXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3NlY29uZC1hdHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5o
dG1sCmluZGV4IDRmODVlOGU1NmZmZDY1MjE0MzliOTkzZjhkNzQ5NjkyNzc3NDZkMjcuLjE2Mjdk
YmYwNzM4OTA2NzNiMzZkNDM4OTIxYjQxZTc3Njc0MmMzNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9u
LWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVy
dGVkLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbApAQCAtNyw3ICs3LDcgQEAKICAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2Fk
PSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0
aGF0IGEgc2Vjb25kIGF0dHJpYnV0aW9uIGNvbnZlcnNpb24gd2l0aCBsb3dlciBwcmlvcml0eSBk
b2VzIG5vdCByZXBsYWNlIGFuIG9sZGVyIHdpdGggaGlnaGVyIHByaW9yaXR5LjwvZGl2PgorPGRp
diBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gd2l0aCBs
b3dlciBwcmlvcml0eSBkb2VzIG5vdCByZXBsYWNlIGFuIG9sZGVyIHdpdGggaGlnaGVyIHByaW9y
aXR5LjwvZGl2PgogPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgogPGRpdiBpZD0ib3V0
cHV0Ij48L2Rpdj4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXBy
aW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0
ZWQudHh0CmluZGV4IDAwYTRmZmVlZDZkZmE4MmU5ODAzZjZmNmQxMjdhOTY0OThmM2I4MGUuLjNi
OWZiYzkyZTE2OGE4YWZkMzZhYWE3ZDU1YTUyMWQ3NTM0YWIwYzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNp
b24td2l0aC1oaWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1o
aWdoZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDExIEBACi1UZXN0cyB0aGF0
IHRoZSBhdHRyaWJ1dGlvbiBpcyB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29udmVyc2lv
biB3aXRoIGhpZ2hlciBwcmlvcml0eS4KK1Rlc3RzIHRoYXQgdGhlIGF0dHJpYnV0aW9uIGlzIHVw
ZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBhdHRyaWJ1dGlvbiB3aXRoIGhpZ2hlciBwcmlvcml0
eS4KIAogCi1Db252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitBdHRyaWJ1dGVk
IFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgMQotU291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBh
aWduIElEOiAzCi1Db252ZXJzaW9uIGRhdGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiA0Ci1D
b252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252
ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKK1NvdXJjZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJp
YnV0ZSBvbiBzaXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJRDogMworQXR0cmlidXRpb24gdHJpZ2dl
ciBkYXRhOiAxMgorQXR0cmlidXRpb24gcHJpb3JpdHk6IDQKK0F0dHJpYnV0aW9uIGVhcmxpZXN0
IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdp
dGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0
bWwKaW5kZXggNzJiNWVmN2RhZWY5Y2ZhMGY5NWE0ZmE3ZTM3YTNiNDAyNGY3NDMzOC4uZmUzZWQ0
ODU3OTBmOWNkNzI1ZjgwYjJiNjAzNjkwNzUzZjM4NzI4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13
aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3Jp
dHkuaHRtbApAQCAtNyw3ICs3LDcgQEAKICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3Qs
IDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBp
cyB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29udmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlv
cml0eS48L2Rpdj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRoZSBhdHRyaWJ1
dGlvbiBpcyB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgYXR0cmlidXRpb24gd2l0aCBoaWdo
ZXIgcHJpb3JpdHkuPC9kaXY+CiA8YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+CiA8ZGl2
IGlkPSJvdXRwdXQiPjwvZGl2PgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1s
b3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHkt
ZXhwZWN0ZWQudHh0CmluZGV4IGIzZjVkY2Q4OTRjMDQ4MzU3YzkxODNmZjYwMDQxNjUzMmRiODJi
NGEuLmNkMjUyODE3OGUwMThkMzhjYmY1NTBkZTk2ZTNkYWYxNDYxMzAxYjYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNv
bnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13
aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMSBAQAotVGVzdHMg
dGhhdCB0aGUgYXR0cmlidXRpb24gaXMgbm90IHVwZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBj
b252ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkuCitUZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlv
biBpcyBub3QgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGF0dHJpYnV0aW9uIHdpdGggbG93
ZXIgcHJpb3JpdHkuCiAKIAotQ29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgor
QXR0cmlidXRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKIFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50IDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9jYWxo
b3N0Ci1DYW1wYWlnbiBJRDogMwotQ29udmVyc2lvbiBkYXRhOiAxMgotQ29udmVyc2lvbiBwcmlv
cml0eTogNAotQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBo
b3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCitTb3VyY2Ugc2l0ZTogMTI3LjAu
MC4xCitBdHRyaWJ1dGUgb24gc2l0ZTogbG9jYWxob3N0CitTb3VyY2UgSUQ6IDMKK0F0dHJpYnV0
aW9uIHRyaWdnZXIgZGF0YTogMTIKK0F0dHJpYnV0aW9uIHByaW9yaXR5OiA0CitBdHRyaWJ1dGlv
biBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29u
dmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJp
b3JpdHkuaHRtbAppbmRleCAwZDIwNGM5ZjQyMGUxMmMzOGJlZDhkMjBjYzYwYmNhYTc2ZjNiMDZi
Li5mNjYxMDYyNTU5MDhiZmIwNzg0NGJmNTBmOThhNzk4ODgyMTk5MjAwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252
ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXIt
cHJpb3JpdHkuaHRtbApAQCAtNyw3ICs3LDcgQEAKICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1
blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRoZSBhdHRyaWJ1
dGlvbiBpcyBub3QgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0aCBs
b3dlciBwcmlvcml0eS48L2Rpdj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRo
ZSBhdHRyaWJ1dGlvbiBpcyBub3QgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGF0dHJpYnV0
aW9uIHdpdGggbG93ZXIgcHJpb3JpdHkuPC9kaXY+CiA8YSBpZD0idGFyZ2V0TGluayI+TGluazwv
YT48YnI+CiA8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24t
cmVxdWVzdC1leHBlY3RlZC50eHQKaW5kZXggOTY0MmM5OWJjZDc2ZWVmYmJlM2M1NmI4ZTEyMzMw
MzdmMGRmNTA0ZS4uZGU0YjUzM2Q4ODkwOTA3ZjAxNzA3MTY1OTA4OWM5ZmJhNTE1OWNlZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9z
ZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0
aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0
cyBzZW5kaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgcmVxdWVzdHMgYWZ0ZXIgYSBj
b252ZXJzaW9uLiBBbHNvIHRlc3RzIHRoYXQgY29va2llcyBhcmUgbm90IHNlbnQgaW4gdGhvc2Ug
cmVxdWVzdHMgYW5kIGNvb2tpZXMgYXJlIG5vdCBhY2NlcHRlZCBpbiB0aGUgcmVzcG9uc2VzLgor
VGVzdHMgc2VuZGluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IHJlcXVlc3RzIGFmdGVy
IGFuIGF0dHJpYnV0aW9uLiBBbHNvIHRlc3RzIHRoYXQgY29va2llcyBhcmUgbm90IHNlbnQgaW4g
dGhvc2UgcmVxdWVzdHMgYW5kIGNvb2tpZXMgYXJlIG5vdCBhY2NlcHRlZCBpbiB0aGUgcmVzcG9u
c2VzLgogCiAKIApAQCAtMTAsMTEgKzEwLDExIEBAIENvb2tpZXMgYXJlOiBjb29raWVTZXRBc0Zp
cnN0UGFydHkgPSAxCiAtLS0tLS0tLQogRnJhbWU6ICc8IS0tZnJhbWUyLS0+JwogLS0tLS0tLS0K
LUNvbnZlcnNpb24gcmVjZWl2ZWQuCitBdHRyaWJ1dGlvbiByZWNlaXZlZC4KIEhUVFBfSE9TVDog
MTI3LjAuMC4xOjgwMDAKIENvbnRlbnQgdHlwZTogYXBwbGljYXRpb24vanNvbgogUkVRVUVTVF9V
Ukk6IC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5w
aHAKLU5vIGNvb2tpZXMgaW4gY29udmVyc2lvbiByZXF1ZXN0LgorTm8gY29va2llcyBpbiBhdHRy
aWJ1dGlvbiByZXF1ZXN0LgogUmVxdWVzdCBib2R5OgogeyJzb3VyY2UtZW5nYWdlbWVudC10eXBl
IjoiY2xpY2siLCJzb3VyY2Utc2l0ZSI6IjEyNy4wLjAuMSIsInNvdXJjZS1pZCI6MywiYXR0cmli
dXRlZC1vbi1zaXRlIjoibG9jYWxob3N0IiwidHJpZ2dlci1kYXRhIjoxMiwicmVwb3J0LXZlcnNp
b24iOjF9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbAppbmRleCBiMjQ3MzM0MzMwZjYyZmRkYzJlY2Vj
YWJiMTAzMDZhNzcyMjc3Mjk3Li5hZDhkODhjYzlkNjE5ZjI5MzA4MjBlNTYwYTM1NTFjMDZiNjRm
MzdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0
aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sCkBAIC03LDcgKzcsNyBAQAogICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9
InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHNl
bmRpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCByZXF1ZXN0cyBhZnRlciBhIGNvbnZl
cnNpb24uIEFsc28gdGVzdHMgdGhhdCBjb29raWVzIGFyZSBub3Qgc2VudCBpbiB0aG9zZSByZXF1
ZXN0cyBhbmQgY29va2llcyBhcmUgbm90IGFjY2VwdGVkIGluIHRoZSByZXNwb25zZXMuPC9kaXY+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgc2VuZGluZyBvZiBwcml2YXRlIGNsaWNrIG1l
YXN1cmVtZW50IHJlcXVlc3RzIGFmdGVyIGFuIGF0dHJpYnV0aW9uLiBBbHNvIHRlc3RzIHRoYXQg
Y29va2llcyBhcmUgbm90IHNlbnQgaW4gdGhvc2UgcmVxdWVzdHMgYW5kIGNvb2tpZXMgYXJlIG5v
dCBhY2NlcHRlZCBpbiB0aGUgcmVzcG9uc2VzLjwvZGl2PgogPGEgaWQ9InRhcmdldExpbmsiIGhy
ZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0
dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sP3N0ZXBUd28iIGF0dHJpYnV0aW9uc291
cmNlaWQ9IjMiIGF0dHJpYnV0ZW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJy
PgogPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LWV4cGVj
dGVkLnR4dAppbmRleCAzMzhiMTBlZTVkZTgwNjc1MWZiN2MwNGYzNWRiYWVkMDNhOTczMTE3Li5k
YjU1MWQwYjdlYjY4YmVkYWRiOWY5NDViMmRmNjQ2ZjE5MzRmN2MzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dC1leHBlY3RlZC50eHQKQEAgLTEsOSArMSw5IEBACiBUZXN0cyBzdG9yYWdlIG9mIHByaXZhdGUg
Y2xpY2sgbWVhc3VyZW1lbnQuCiAKIAotVW5jb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudHM6CitVbmF0dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CiBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRp
b246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLU5vIGNvbnZlcnNpb24gZGF0YS4KK1NvdXJj
ZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBzaXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJ
RDogMworTm8gYXR0cmlidXRpb24gdHJpZ2dlciBkYXRhLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>