<?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>199252</bug_id>
          
          <creation_ts>2019-06-26 17:49:37 -0700</creation_ts>
          <short_desc>Web Inspector: throw an error if console.count/console.countReset is called with an object that throws an error from toString</short_desc>
          <delta_ts>2019-06-27 11:29:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://w3c-test.org/console/console-label-conversion.any.html</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="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>tsavell</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1548274</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-06-26 17:49:37 -0700</bug_when>
    <thetext>This should throw an error, but doesn&apos;t :(

```
    console.count({ toString() { throw new Error(&apos;conversion error&apos;); } })
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548301</commentid>
    <comment_count>1</comment_count>
      <attachid>372986</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-06-26 18:20:49 -0700</bug_when>
    <thetext>Created attachment 372986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548304</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-06-26 18:23:09 -0700</bug_when>
    <thetext>Attachment 372986 did not pass style-queue:


ERROR: Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.h:58:  The parameter name &quot;arguments&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548305</commentid>
    <comment_count>3</comment_count>
      <attachid>372987</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-06-26 18:24:13 -0700</bug_when>
    <thetext>Created attachment 372987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548319</commentid>
    <comment_count>4</comment_count>
      <attachid>372987</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-06-26 18:53:51 -0700</bug_when>
    <thetext>Comment on attachment 372987
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        for `console.time`, `console.timeLog`, and `console.TimeEnd`. Limit the call stack to only

Nit: &quot;TimeEnd&quot; =&gt; &quot;timeEnd&quot; (multiple times in multiple ChangeLogs)

&gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:880
&gt; -    if (InspectorTimelineAgent* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
&gt; -        timelineAgent-&gt;time(frame, title);
&gt; -    if (WebConsoleAgent* consoleAgent = instrumentingAgents.webConsoleAgent())
&gt; -        consoleAgent-&gt;startTiming(title);
&gt; +    if (auto* timelineAgent = instrumentingAgents.inspectorTimelineAgent())
&gt; +        timelineAgent-&gt;time(frame, label);
&gt; +    if (auto* consoleAgent = instrumentingAgents.webConsoleAgent())
&gt; +        consoleAgent-&gt;startTiming(exec, label);

I find the complete types in this file more useful when you need to search for them. But auto is fine.

&gt; Source/WebInspectorUI/UserInterface/Models/NativeFunctionParameters.js:183
&gt; +        timeLog: &quot;label = \&quot;default\&quot;&quot;,

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548384</commentid>
    <comment_count>5</comment_count>
      <attachid>373007</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-06-27 00:41:49 -0700</bug_when>
    <thetext>Created attachment 373007
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548395</commentid>
    <comment_count>6</comment_count>
      <attachid>373007</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-27 01:25:10 -0700</bug_when>
    <thetext>Comment on attachment 373007
Patch

Clearing flags on attachment: 373007

Committed r246876: &lt;https://trac.webkit.org/changeset/246876&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548396</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-27 01:25:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548397</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-27 01:33:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/52242935&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548488</commentid>
    <comment_count>9</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-06-27 08:56:12 -0700</bug_when>
    <thetext>Looks like the changes in https://trac.webkit.org/changeset/246876/webkit
broke inspector/worker/console-basic.html

History:
http://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=inspector%2Fworker%2Fconsole-basic.html

I was able to reproduce this locally. 

Diff:
@@ -148,7 +148,7 @@
 {
   &quot;_source&quot;: &quot;console-api&quot;,
   &quot;_level&quot;: &quot;debug&quot;,
-  &quot;_messageText&quot;: &quot;Global: 1&quot;,
+  &quot;_messageText&quot;: &quot;default: 1&quot;,
   &quot;_type&quot;: &quot;log&quot;,
   &quot;_url&quot;: &quot;inspector/worker/resources/worker-console.js&quot;,
   &quot;_line&quot;: 21,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548497</commentid>
    <comment_count>10</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-06-27 09:36:21 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #9)
&gt; Looks like the changes in https://trac.webkit.org/changeset/246876/webkit
&gt; broke inspector/worker/console-basic.html
&gt; 
&gt; History:
&gt; http://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.
&gt; html#showAllRuns=true&amp;tests=inspector%2Fworker%2Fconsole-basic.html
&gt; 
&gt; I was able to reproduce this locally. 
&gt; 
&gt; Diff:
&gt; @@ -148,7 +148,7 @@
&gt;  {
&gt;    &quot;_source&quot;: &quot;console-api&quot;,
&gt;    &quot;_level&quot;: &quot;debug&quot;,
&gt; -  &quot;_messageText&quot;: &quot;Global: 1&quot;,
&gt; +  &quot;_messageText&quot;: &quot;default: 1&quot;,
&gt;    &quot;_type&quot;: &quot;log&quot;,
&gt;    &quot;_url&quot;: &quot;inspector/worker/resources/worker-console.js&quot;,
&gt;    &quot;_line&quot;: 21,
Ah crap I missed a test 😅

That just needs to be rebased.  &quot;default&quot; is now the correct behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548552</commentid>
    <comment_count>11</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-06-27 11:24:16 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #10)
&gt; That just needs to be rebased.  &quot;default&quot; is now the correct behavior.

Done in https://trac.webkit.org/r246893</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548553</commentid>
    <comment_count>12</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-06-27 11:29:11 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #11)
&gt; (In reply to Devin Rousso from comment #10)
&gt; &gt; That just needs to be rebased.  &quot;default&quot; is now the correct behavior.
&gt; 
&gt; Done in https://trac.webkit.org/r246893
You &quot;beat&quot; me to it 😅 &lt;https://trac.webkit.org/r246894&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372986</attachid>
            <date>2019-06-26 18:20:49 -0700</date>
            <delta_ts>2019-06-26 18:24:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199252-20190626182048.patch</filename>
            <type>text/plain</type>
            <size>63029</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGJmYWIzNDc2NzhmYTZjNGJkYzA0ZmM0Y2M0M2U1
YTk3YmE3N2NiY2EuLmEyMjQ5ODFhYWM5ZjE5ZTc1YWYxZGY5ZTgwNDNhZmU2ZGNjNjE5Y2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE5LTA2LTI2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0
aHJvdyBhbiBlcnJvciBpZiBjb25zb2xlLmNvdW50L2NvbnNvbGUuY291bnRSZXNldCBpcyBjYWxs
ZWQgd2l0aCBhbiBvYmplY3QgdGhhdCB0aHJvd3MgYW4gZXJyb3IgZnJvbSB0b1N0cmluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MjUyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFyc2UgdGhlIGFy
Z3VtZW50cyBwYXNzZWQgdG8gYGNvbnNvbGUuY291bnRgIGFuZCBgY29uc29sZS5jb3VudFJlc2V0
YCBiZWZvcmUgc2VuZGluZyBpdCB0bworICAgICAgICB0aGUgYENvbnNvbGVDbGllbnRgIHNvIHRo
YXQgYW4gZXJyb3IgY2FuIGJlIHRocm93biBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZG9lc24ndCBg
dG9TdHJpbmdgCisgICAgICAgIG5pY2VseSAoZS5nLiB3aXRob3V0IHRocm93aW5nIGFuIGVycm9y
KS4KKworICAgICAgICBHZW5lcmF0ZSBjYWxsIHN0YWNrcyBmb3IgYGNvbnNvbGUuY291bnRSZXNl
dGAgdG8gbWF0Y2ggb3RoZXIgYGNvbnNvbGVgIG1ldGhvZHMuIEFsc28gZG8gdGhpcworICAgICAg
ICBmb3IgYGNvbnNvbGUudGltZWAsIGBjb25zb2xlLnRpbWVMb2dgLCBhbmQgYGNvbnNvbGUuVGlt
ZUVuZGAuIExpbWl0IHRoZSBjYWxsIHN0YWNrIHRvIG9ubHkKKyAgICAgICAgaGF2ZSB0aGUgdG9w
IGZyYW1lLCBzbyBubyB1bm5lY2Vzc2FyeS9leHRyYSBkYXRhIGlzIHNlbnQgdG8gdGhlIGZyb250
ZW5kIChyaWdodCBub3csIG9ubHkKKyAgICAgICAgdGhlIGNhbGwgbG9jYXRpb24gaXMgZGlzcGxh
eWVkKS4KKworICAgICAgICBSZW5hbWUgYHRpdGxlYCB0byBgbGFiZWxgIGZvciBgY29uc29sZS50
aW1lYCwgYGNvbnNvbGUudGltZUxvZ2AsIGFuZCBgY29uc29sZS5UaW1lRW5kYCB0bworICAgICAg
ICBiZXR0ZXIgbWF0Y2ggdGhlIHNwZWMuCisKKyAgICAgICAgKiBydW50aW1lL0NvbnNvbGVDbGll
bnQuaDoKKyAgICAgICAgKiBydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwOgorICAgICAgICAoSlND
Ojp2YWx1ZU9yRGVmYXVsdExhYmVsU3RyaW5nKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY0NvdW50KToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY0NvdW50UmVzZXQpOgor
ICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZSk6CisgICAgICAgIChKU0M6OmNvbnNv
bGVQcm90b0Z1bmNUaW1lTG9nKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1RpbWVF
bmQpOgorCisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwOgor
ICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OmNvdW50KToK
KyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojpjb3VudFJl
c2V0KToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0
aW1lKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0
aW1lTG9nKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50
Ojp0aW1lRW5kKToKKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29s
ZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0YXJ0
VGltaW5nKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50Ojpsb2dU
aW1pbmcpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0b3BU
aW1pbmcpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmNvdW50
KToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50Ojpjb3VudFJlc2V0
KToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpnZXRDb3VudGVy
TGFiZWwpOiBEZWxldGVkLgorCisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgQWxsb3cgYENv
bnNvbGVNZXNzYWdlYHMgdG8gYmUgY3JlYXRlZCB3aXRoIGJvdGggYFNjcmlwdEFyZ3VtZW50c2Ag
YW5kIGEgYFNjcmlwdENhbGxTdGFja2AuCisKIDIwMTktMDYtMjYgIEtlaXRoIE1pbGxlciAgPGtl
aXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgc3BlY2llc0NvbnN0cnVjdCBuZWVkcyB0
byB0aHJvdyBpZiB0aGUgcmVzdWx0IGlzIGEgRGF0YVZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYTY0M2Zl
YTZjYTNmZWZlZWNhZWI4MWU2MTNmNDNiZTliNjNkODljLi5kZGZjZjA0NGY1NjI1YmNkMTMyNTli
NjJhNTcwYzMzMWU2N2M1ZjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTktMDYt
MjYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHRocm93IGFuIGVycm9yIGlmIGNvbnNvbGUuY291bnQvY29uc29sZS5jb3VudFJlc2V0
IGlzIGNhbGxlZCB3aXRoIGFuIG9iamVjdCB0aGF0IHRocm93cyBhbiBlcnJvciBmcm9tIHRvU3Ry
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTky
NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXJz
ZSB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byBgY29uc29sZS5jb3VudGAgYW5kIGBjb25zb2xlLmNv
dW50UmVzZXRgIGJlZm9yZSBzZW5kaW5nIGl0IHRvCisgICAgICAgIHRoZSBgQ29uc29sZUNsaWVu
dGAgc28gdGhhdCBhbiBlcnJvciBjYW4gYmUgdGhyb3duIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBk
b2Vzbid0IGB0b1N0cmluZ2AKKyAgICAgICAgbmljZWx5IChlLmcuIHdpdGhvdXQgdGhyb3dpbmcg
YW4gZXJyb3IpLgorCisgICAgICAgIEdlbmVyYXRlIGNhbGwgc3RhY2tzIGZvciBgY29uc29sZS5j
b3VudFJlc2V0YCB0byBtYXRjaCBvdGhlciBgY29uc29sZWAgbWV0aG9kcy4gQWxzbyBkbyB0aGlz
CisgICAgICAgIGZvciBgY29uc29sZS50aW1lYCwgYGNvbnNvbGUudGltZUxvZ2AsIGFuZCBgY29u
c29sZS5UaW1lRW5kYC4gTGltaXQgdGhlIGNhbGwgc3RhY2sgdG8gb25seQorICAgICAgICBoYXZl
IHRoZSB0b3AgZnJhbWUsIHNvIG5vIHVubmVjZXNzYXJ5L2V4dHJhIGRhdGEgaXMgc2VudCB0byB0
aGUgZnJvbnRlbmQgKHJpZ2h0IG5vdywgb25seQorICAgICAgICB0aGUgY2FsbCBsb2NhdGlvbiBp
cyBkaXNwbGF5ZWQpLgorCisgICAgICAgIFJlbmFtZSBgdGl0bGVgIHRvIGBsYWJlbGAgZm9yIGBj
b25zb2xlLnRpbWVgLCBgY29uc29sZS50aW1lTG9nYCwgYW5kIGBjb25zb2xlLlRpbWVFbmRgIHRv
CisgICAgICAgIGJldHRlciBtYXRjaCB0aGUgc3BlYy4KKworICAgICAgICBVcGRhdGVkIGV4aXN0
aW5nIExheW91dFRlc3RzOgorICAgICAgICAgLSBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNv
dW50Lmh0bWwKKyAgICAgICAgIC0gaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hcGkuaHRtbAor
CisgICAgICAgIEFsc28gY292ZXJlZCBieSBleGlzdGluZyBXUFQgdGVzdHMuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudFJlc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9nQ29uc29s
ZVRpbWluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0
b3BDb25zb2xlVGltaW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
Y29uc29sZUNvdW50SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmNvbnNvbGVDb3VudFJlc2V0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29uc29sZVRpbWluZ0ltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25zb2xlVGltaW5nSW1wbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGlt
aW5nSW1wbCk6CisKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50Lmg6CisgICAgICAg
ICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29u
c29sZUNsaWVudDo6Y291bnQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGllbnQ6
OmNvdW50UmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGllbnQ6OnRpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGllbnQ6OnRpbWVMb2cpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGllbnQ6OnRpbWVFbmQpOgorCisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb25z
b2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnNvbGVDbGllbnQ6OmNv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnNvbGVDbGllbnQ6OmNvdW50UmVzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUNsaWVudDo6dGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJDb25zb2xlQ2xpZW50Ojp0aW1lTG9nKToKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckNvbnNvbGVDbGllbnQ6OnRpbWVFbmQpOgorCisgICAgICAgICogd29ya2xldHMv
V29ya2xldENvbnNvbGVDbGllbnQuaDoKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Q29uc29s
ZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0Q29uc29sZUNsaWVudDo6Y291
bnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldENvbnNvbGVDbGllbnQ6OmNvdW50UmVzZXQp
OgorCiAyMDE5LTA2LTI2ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogSW1wbGVtZW50IGNvbnNvbGUuY291bnRSZXNldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggY2YwNjFiZTNiMTdmOTg3ZjNiZTdkZjYwNmY5NjQ0Yjcx
NWY1ZTZlNC4uNTcxOGMzOWMxMGY2OGQ3MzA5ZWQyMTZmZDJlNWE1OWY2NzRkODA0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDYtMjYgIERldmluIFJv
dXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHRocm93
IGFuIGVycm9yIGlmIGNvbnNvbGUuY291bnQvY29uc29sZS5jb3VudFJlc2V0IGlzIGNhbGxlZCB3
aXRoIGFuIG9iamVjdCB0aGF0IHRocm93cyBhbiBlcnJvciBmcm9tIHRvU3RyaW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkyNTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZW50cmllcyBmb3Ig
YGNvbnNvbGUuY291bnRSZXNldGAgYW5kIGBjb25zb2xlLnRpbWVMb2dgLgorCisgICAgICAgIFJl
bmFtZSBgdGl0bGVgIHRvIGBsYWJlbGAgZm9yIGBjb25zb2xlLnRpbWVgLCBgY29uc29sZS50aW1l
TG9nYCwgYW5kIGBjb25zb2xlLlRpbWVFbmRgIHRvCisgICAgICAgIGJldHRlciBtYXRjaCB0aGUg
c3BlYy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFy
YW1ldGVycy5qczoKKwogMjAxOS0wNi0yNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTjogRWxlbWVudHM6IHRoZSBm
b3JjZWQgcHNldWRvLWNsYXNzIGluZGljYXRvciBpc24ndCB2aXNpYmxlIHdoZW4gaG92ZXJpbmcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5j
cHAKaW5kZXggZjUwMWUxMDE3NmVkMDBmMTMzNGFhYjE5ZGZkODk4ZTFkZGMzNDA3OC4uYzRiMjYx
NWJjNjMxNmYyMzBkOTE0ZDgwZGQ4ZDdiNGY2NTFjMDY3NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTgyLDYgKzgyLDI0
IEBAIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxlCiAgICAgfQogfQogCitDb25zb2xlTWVzc2FnZTo6
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1l
c3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWY8U2NyaXB0QXJndW1l
bnRzPiYmIGFyZ3VtZW50cywgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiBjYWxsU3RhY2ssIHVuc2ln
bmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCisgICAgOiBtX3NvdXJjZShzb3VyY2UpCisgICAg
LCBtX3R5cGUodHlwZSkKKyAgICAsIG1fbGV2ZWwobGV2ZWwpCisgICAgLCBtX21lc3NhZ2UobWVz
c2FnZSkKKyAgICAsIG1fYXJndW1lbnRzKFdURk1vdmUoYXJndW1lbnRzKSkKKyAgICAsIG1fY2Fs
bFN0YWNrKFdURk1vdmUoY2FsbFN0YWNrKSkKKyAgICAsIG1fdXJsKCkKKyAgICAsIG1fcmVxdWVz
dElkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKHJlcXVlc3RJZGVudGlmaWVyKSkKK3sK
KyAgICBjb25zdCBTY3JpcHRDYWxsRnJhbWUqIGZyYW1lID0gbV9jYWxsU3RhY2sgPyBtX2NhbGxT
dGFjay0+Zmlyc3ROb25OYXRpdmVDYWxsRnJhbWUoKSA6IG51bGxwdHI7CisgICAgaWYgKGZyYW1l
KSB7CisgICAgICAgIG1fdXJsID0gZnJhbWUtPnNvdXJjZVVSTCgpOworICAgICAgICBtX2xpbmUg
PSBmcmFtZS0+bGluZU51bWJlcigpOworICAgICAgICBtX2NvbHVtbiA9IGZyYW1lLT5jb2x1bW5O
dW1iZXIoKTsKKyAgICB9Cit9CisKIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzLCBK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiAg
ICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAgLCBtX3R5cGUodHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAppbmRleCAwYTkyZjViNDlm
ZGNlOGYwYzExMjVkYjZkZjJjOGFmZDhjNTRmZjgwLi43YjlkMGJjZjdiOWU3ODQ2OTc0ZGE2ZjQy
MTI2MmUzZmQxN2MwNWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9Db25zb2xlTWVzc2FnZS5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICBDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAg
ICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNpZ25lZCBsaW5l
LCB1bnNpZ25lZCBjb2x1bW4sIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxv
bmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJl
ZjxTY3JpcHRDYWxsU3RhY2s+JiYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAw
KTsKKyAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYsIFJl
ZjxTY3JpcHRDYWxsU3RhY2s+JiYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAw
KTsKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYsIEpT
Qzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIg
PSAwKTsKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVz
c2FnZUxldmVsLCBWZWN0b3I8SlNPTkxvZ1ZhbHVlPiYmLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2ln
bmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICB+Q29uc29sZU1lc3NhZ2UoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcAppbmRleCAzNzk1ZjViMTdlZGUyNjMyZjgzYmRl
ZDQ0MjU4MWFmZTQ3OWZlYjlmLi44MmJlM2JiYjQ0Y2I2YzU3NzZiOGVjZjdmYTBjOTQwZDVkNWE1
ODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFs
T2JqZWN0Q29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwCkBAIC03MCwxNCArNzAsMTQgQEAg
dm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVs
KE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3MKICAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRv
Q29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpD
b25zb2xlQVBJLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgV1RGTW92ZShhcmd1bWVudHMpLCBleGVj
KSk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojpjb3VudChFeGVjU3Rh
dGUqIGV4ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBKU0dsb2Jh
bE9iamVjdENvbnNvbGVDbGllbnQ6OmNvdW50KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
JiBsYWJlbCkKIHsKLSAgICBtX2NvbnNvbGVBZ2VudC0+Y291bnQoZXhlYywgV1RGTW92ZShhcmd1
bWVudHMpKTsKKyAgICBtX2NvbnNvbGVBZ2VudC0+Y291bnQoZXhlYywgbGFiZWwpOwogfQogCi12
b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6Y291bnRSZXNldChFeGVjU3RhdGUqIGV4
ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBKU0dsb2JhbE9iamVj
dENvbnNvbGVDbGllbnQ6OmNvdW50UmVzZXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcm
IGxhYmVsKQogewotICAgIG1fY29uc29sZUFnZW50LT5jb3VudFJlc2V0KGV4ZWMsIFdURk1vdmUo
YXJndW1lbnRzKSk7CisgICAgbV9jb25zb2xlQWdlbnQtPmNvdW50UmVzZXQoZXhlYywgbGFiZWwp
OwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6cHJvZmlsZShKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCkBAIC0xNTMsMTkgKzE1MywxOSBAQCB2b2lk
IEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6dGFrZUhlYXBTbmFwc2hvdChKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IFN0cmluZwogICAgIG1fY29uc29sZUFnZW50LT50YWtlSGVhcFNuYXBzaG90
KHRpdGxlKTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnRpbWUoRXhl
Y1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xl
Q2xpZW50Ojp0aW1lKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAg
ICBtX2NvbnNvbGVBZ2VudC0+c3RhcnRUaW1pbmcodGl0bGUpOworICAgIG1fY29uc29sZUFnZW50
LT5zdGFydFRpbWluZyhleGVjLCBsYWJlbCk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50Ojp0aW1lTG9nKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxT
Y3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVD
bGllbnQ6OnRpbWVMb2coRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8
U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKLSAgICBtX2NvbnNvbGVBZ2VudC0+bG9n
VGltaW5nKHRpdGxlLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIG1fY29uc29sZUFnZW50LT5s
b2dUaW1pbmcoZXhlYywgbGFiZWwsIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CiAKLXZvaWQgSlNH
bG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0aW1lRW5kKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U3RyaW5nJiB0aXRsZSkKK3ZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0aW1lRW5k
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBtX2NvbnNvbGVB
Z2VudC0+c3RvcFRpbWluZyh0aXRsZSwgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShl
eGVjLCAxKSk7CisgICAgbV9jb25zb2xlQWdlbnQtPnN0b3BUaW1pbmcoZXhlYywgbGFiZWwpOwog
fQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6dGltZVN0YW1wKEV4ZWNTdGF0
ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaAppbmRl
eCBiNzVjNjZkMjBmZGRjMGYzZGZiZTIzYzdmMWM5YzJjNTA5M2JlMGY1Li5mYTAwN2I1ZTk3YWY2
ODM1YTIzNDQzZTI5ZGRmY2NjMzJjYjM1YTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmgK
QEAgLTQ5LDE0ICs0OSwxNCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIG1lc3Nh
Z2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0
YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb3VudChK
U0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgY291bnRSZXNldChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92
ZXJyaWRlOworICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxh
YmVsKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvdW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBTdHJpbmcmIGxhYmVsKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGUoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGVFbmQo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lk
IHRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBv
dmVycmlkZTsKLSAgICB2b2lkIHRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRp
dGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHRpbWVMb2coSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmIHRpdGxlLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykgb3ZlcnJpZGU7
Ci0gICAgdm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCB0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBs
YWJlbCkgb3ZlcnJpZGU7CisgICAgdm9pZCB0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpIG92ZXJyaWRl
OworICAgIHZvaWQgdGltZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwp
IG92ZXJyaWRlOwogICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmPFNjcmlw
dEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWNvcmQoSlNDOjpFeGVjU3RhdGUq
LCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHJlY29yZEVuZChK
U0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29u
c29sZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggNzJmZTdiNDZkMTZlNTE4YWU3NTFiMTYxZjEx
YWU0YjRmMmZhNzA5ZC4uN2VkYmM4MDY2MGYzNmQ2YTgxYWE5MWZiOGZhM2ZkZGRlZGFlNmYyNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0xMjYsNjcgKzEyNiw3MSBAQCB2
b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6OnVuaXF1
ZV9wdHI8Q29uc29sZU1lc3NhZ2U+CiAgICAgYWRkQ29uc29sZU1lc3NhZ2UoV1RGTW92ZShtZXNz
YWdlKSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzdGFydFRpbWluZyhjb25z
dCBTdHJpbmcmIHRpdGxlKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0YXJ0VGltaW5n
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewogICAgIGlmICgh
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuaW5zcGVjdG9yRW52aXJvbm1lbnQoKS5kZXZlbG9wZXJF
eHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVCghdGl0bGUuaXNO
dWxsKCkpOwotICAgIGlmICh0aXRsZS5pc051bGwoKSkKKyAgICBBU1NFUlQoIWxhYmVsLmlzTnVs
bCgpKTsKKyAgICBpZiAobGFiZWwuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1
dG8gcmVzdWx0ID0gbV90aW1lcy5hZGQodGl0bGUsIE1vbm90b25pY1RpbWU6Om5vdygpKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IG1fdGltZXMuYWRkKGxhYmVsLCBNb25vdG9uaWNUaW1lOjpub3coKSk7
CiAKICAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KSB7CiAgICAgICAgIC8vIEZJWE1FOiBTZW5k
IGFuIGVudW0gdG8gdGhlIGZyb250ZW5kIGZvciBsb2NhbGl6YXRpb24/Ci0gICAgICAgIFN0cmlu
ZyB3YXJuaW5nID0gbWFrZVN0cmluZygiVGltZXIgXCIiLCB0aXRsZSwgIlwiIGFscmVhZHkgZXhp
c3RzIik7Ci0gICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25z
b2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlRpbWlu
ZywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCB3YXJuaW5nKSk7CisgICAgICAgIFN0cmluZyB3YXJu
aW5nID0gbWFrZVN0cmluZygiVGltZXIgXCIiLCBsYWJlbCwgIlwiIGFscmVhZHkgZXhpc3RzIik7
CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVz
c2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlRpbWluZywgTWVz
c2FnZUxldmVsOjpXYXJuaW5nLCB3YXJuaW5nLCBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25z
b2xlKGV4ZWMsIDEpKSk7CiAgICAgfQogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6
bG9nVGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJn
dW1lbnRzKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmxvZ1RpbWluZyhKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBh
cmd1bWVudHMpCiB7CiAgICAgaWYgKCFtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbnNwZWN0b3JF
bnZpcm9ubWVudCgpLmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgQVNTRVJUKCF0aXRsZS5pc051bGwoKSk7Ci0gICAgaWYgKHRpdGxlLmlzTnVsbCgpKQor
ICAgIEFTU0VSVCghbGFiZWwuaXNOdWxsKCkpOworICAgIGlmIChsYWJlbC5pc051bGwoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBpdCA9IG1fdGltZXMuZmluZCh0aXRsZSk7CisgICAg
YXV0byBjYWxsU3RhY2sgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMsIDEp
OworCisgICAgYXV0byBpdCA9IG1fdGltZXMuZmluZChsYWJlbCk7CiAgICAgaWYgKGl0ID09IG1f
dGltZXMuZW5kKCkpIHsKICAgICAgICAgLy8gRklYTUU6IFNlbmQgYW4gZW51bSB0byB0aGUgZnJv
bnRlbmQgZm9yIGxvY2FsaXphdGlvbj8KLSAgICAgICAgU3RyaW5nIHdhcm5pbmcgPSBtYWtlU3Ry
aW5nKCJUaW1lciBcIiIsIHRpdGxlLCAiXCIgZG9lcyBub3QgZXhpc3QiKTsKLSAgICAgICAgYWRk
TWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdl
U291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNzYWdlTGV2ZWw6Oldh
cm5pbmcsIHdhcm5pbmcpKTsKKyAgICAgICAgU3RyaW5nIHdhcm5pbmcgPSBtYWtlU3RyaW5nKCJU
aW1lciBcIiIsIGxhYmVsLCAiXCIgZG9lcyBub3QgZXhpc3QiKTsKKyAgICAgICAgYWRkTWVzc2Fn
ZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNl
OjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcs
IHdhcm5pbmcsIFdURk1vdmUoY2FsbFN0YWNrKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgTW9ub3RvbmljVGltZSBzdGFydFRpbWUgPSBpdC0+dmFsdWU7CiAgICAgU2Vjb25kcyBl
bGFwc2VkID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWU7Ci0gICAgU3RyaW5nIG1l
c3NhZ2UgPSBtYWtlU3RyaW5nKHRpdGxlLCAiOiAiLCBGb3JtYXR0ZWROdW1iZXI6OmZpeGVkV2lk
dGgoZWxhcHNlZC5taWxsaXNlY29uZHMoKSwgMyksICJtcyIpOwotICAgIGFkZE1lc3NhZ2VUb0Nv
bnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29u
c29sZUFQSSwgTWVzc2FnZVR5cGU6OlRpbWluZywgTWVzc2FnZUxldmVsOjpEZWJ1ZywgbWVzc2Fn
ZSwgV1RGTW92ZShhcmd1bWVudHMpKSk7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5n
KGxhYmVsLCAiOiAiLCBGb3JtYXR0ZWROdW1iZXI6OmZpeGVkV2lkdGgoZWxhcHNlZC5taWxsaXNl
Y29uZHMoKSwgMyksICJtcyIpOworICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3Vu
aXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5
cGU6OlRpbWluZywgTWVzc2FnZUxldmVsOjpEZWJ1ZywgbWVzc2FnZSwgV1RGTW92ZShhcmd1bWVu
dHMpLCBXVEZNb3ZlKGNhbGxTdGFjaykpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdl
bnQ6OnN0b3BUaW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPFNjcmlwdENhbGxTdGFjaz4m
JiBjYWxsU3RhY2spCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c3RvcFRpbWluZyhKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKICAgICBpZiAoIW1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLmluc3BlY3RvckVudmlyb25tZW50KCkuZGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoIXRpdGxlLmlzTnVsbCgp
KTsKLSAgICBpZiAodGl0bGUuaXNOdWxsKCkpCisgICAgQVNTRVJUKCFsYWJlbC5pc051bGwoKSk7
CisgICAgaWYgKGxhYmVsLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGl0
ID0gbV90aW1lcy5maW5kKHRpdGxlKTsKKyAgICBhdXRvIGNhbGxTdGFjayA9IGNyZWF0ZVNjcmlw
dENhbGxTdGFja0ZvckNvbnNvbGUoZXhlYywgMSk7CisKKyAgICBhdXRvIGl0ID0gbV90aW1lcy5m
aW5kKGxhYmVsKTsKICAgICBpZiAoaXQgPT0gbV90aW1lcy5lbmQoKSkgewogICAgICAgICAvLyBG
SVhNRTogU2VuZCBhbiBlbnVtIHRvIHRoZSBmcm9udGVuZCBmb3IgbG9jYWxpemF0aW9uPwotICAg
ICAgICBTdHJpbmcgd2FybmluZyA9IG1ha2VTdHJpbmcoIlRpbWVyIFwiIiwgdGl0bGUsICJcIiBk
b2VzIG5vdCBleGlzdCIpOwotICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91
bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIE1lc3NhZ2VU
eXBlOjpUaW1pbmcsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgd2FybmluZykpOworICAgICAgICBT
dHJpbmcgd2FybmluZyA9IG1ha2VTdHJpbmcoIlRpbWVyIFwiIiwgbGFiZWwsICJcIiBkb2VzIG5v
dCBleGlzdCIpOworICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8
Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpU
aW1pbmcsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgd2FybmluZywgV1RGTW92ZShjYWxsU3RhY2sp
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0VGlt
ZSA9IGl0LT52YWx1ZTsKICAgICBTZWNvbmRzIGVsYXBzZWQgPSBNb25vdG9uaWNUaW1lOjpub3co
KSAtIHN0YXJ0VGltZTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcodGl0bGUsICI6
ICIsIEZvcm1hdHRlZE51bWJlcjo6Zml4ZWRXaWR0aChlbGFwc2VkLm1pbGxpc2Vjb25kcygpLCAz
KSwgIm1zIik7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKGxhYmVsLCAiOiAiLCBG
b3JtYXR0ZWROdW1iZXI6OmZpeGVkV2lkdGgoZWxhcHNlZC5taWxsaXNlY29uZHMoKSwgMyksICJt
cyIpOwogICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVz
c2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlRpbWluZywgTWVz
c2FnZUxldmVsOjpEZWJ1ZywgbWVzc2FnZSwgV1RGTW92ZShjYWxsU3RhY2spKSk7CiAKICAgICBt
X3RpbWVzLnJlbW92ZShpdCk7CkBAIC0yMDgsNTMgKzIxMiwzMSBAQCB2b2lkIEluc3BlY3RvckNv
bnNvbGVBZ2VudDo6dGFrZUhlYXBTbmFwc2hvdChjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgIG1f
ZnJvbnRlbmREaXNwYXRjaGVyLT5oZWFwU25hcHNob3QodGltZXN0YW1wLCBzbmFwc2hvdERhdGEs
IHRpdGxlLmlzRW1wdHkoKSA/IG51bGxwdHIgOiAmdGl0bGUpOwogfQogCi12b2lkIEluc3BlY3Rv
ckNvbnNvbGVBZ2VudDo6Z2V0Q291bnRlckxhYmVsKFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJn
dW1lbnRzLCBTdHJpbmcmIHRpdGxlLCBTdHJpbmcmIGlkZW50aWZpZXIpCi17Ci0gICAgaWYgKCFh
cmd1bWVudHMtPmFyZ3VtZW50Q291bnQoKSkgewotICAgICAgICAvLyAnQCcgcHJlZml4IGZvciBl
bmdpbmUgZ2VuZXJhdGVkIGxhYmVscy4KLSAgICAgICAgdGl0bGUgPSAiR2xvYmFsIl9zOwotICAg
ICAgICBpZGVudGlmaWVyID0gbWFrZVN0cmluZygnQCcsIHRpdGxlKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICAvLyAnIycgcHJlZml4IGZvciB1c2VyIGxhYmVscy4KLSAgICAgICAgYXJndW1lbnRz
LT5nZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcodGl0bGUpOwotICAgICAgICBpZGVudGlmaWVyID0g
bWFrZVN0cmluZygnIycsIHRpdGxlKTsKLSAgICB9Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ29uc29s
ZUFnZW50Ojpjb3VudChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIFJlZjxTY3JpcHRBcmd1bWVudHM+
JiYgYXJndW1lbnRzKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmNvdW50KEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewogICAgIGlmICghbV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXIuaW5zcGVjdG9yRW52aXJvbm1lbnQoKS5kZXZlbG9wZXJFeHRyYXNFbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyB0aXRsZTsKLSAgICBTdHJpbmcg
aWRlbnRpZmllcjsKLSAgICBnZXRDb3VudGVyTGFiZWwoV1RGTW92ZShhcmd1bWVudHMpLCB0aXRs
ZSwgaWRlbnRpZmllcik7Ci0KLSAgICBhdXRvIHJlc3VsdCA9IG1fY291bnRzLmFkZChpZGVudGlm
aWVyLCAxKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fY291bnRzLmFkZChsYWJlbCwgMSk7CiAgICAg
aWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSAr
PSAxOwogCiAgICAgLy8gRklYTUU6IFdlYiBJbnNwZWN0b3Igc2hvdWxkIGhhdmUgYSBiZXR0ZXIg
VUkgZm9yIGNvdW50ZXJzLCBidXQgZm9yIG5vdyB3ZSBqdXN0IGxvZyBhbiB1cGRhdGVkIGNvdW50
ZXIgdmFsdWUuCiAKLSAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcodGl0bGUsICI6ICIs
IHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwotICAgIFJlZjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxT
dGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoc3RhdGUpOwotICAgIGFkZE1l
c3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNv
dXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpEZWJ1Zywg
bWVzc2FnZSwgV1RGTW92ZShjYWxsU3RhY2spKSk7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtl
U3RyaW5nKGxhYmVsLCAiOiAiLCByZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKKyAgICBhZGRNZXNz
YWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3Vy
Y2U6OkNvbnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1l
c3NhZ2UsIGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoZXhlYywgMSkpKTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmNvdW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqLCBS
ZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgSW5zcGVjdG9yQ29uc29sZUFn
ZW50Ojpjb3VudFJlc2V0KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVs
KQogewogICAgIGlmICghbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuaW5zcGVjdG9yRW52aXJvbm1l
bnQoKS5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0
cmluZyB0aXRsZTsKLSAgICBTdHJpbmcgaWRlbnRpZmllcjsKLSAgICBnZXRDb3VudGVyTGFiZWwo
V1RGTW92ZShhcmd1bWVudHMpLCB0aXRsZSwgaWRlbnRpZmllcik7Ci0KLSAgICBhdXRvIGl0ID0g
bV9jb3VudHMuZmluZChpZGVudGlmaWVyKTsKKyAgICBhdXRvIGl0ID0gbV9jb3VudHMuZmluZChs
YWJlbCk7CiAgICAgaWYgKGl0ID09IG1fY291bnRzLmVuZCgpKSB7CiAgICAgICAgIC8vIEZJWE1F
OiBTZW5kIGFuIGVudW0gdG8gdGhlIGZyb250ZW5kIGZvciBsb2NhbGl6YXRpb24/Ci0gICAgICAg
IFN0cmluZyB3YXJuaW5nID0gbWFrZVN0cmluZygiQ291bnRlciBcIiIsIHRpdGxlLCAiXCIgZG9l
cyBub3QgZXhpc3QiKTsKLSAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5p
cXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlw
ZTo6TG9nLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIHdhcm5pbmcpKTsKKyAgICAgICAgU3RyaW5n
IHdhcm5pbmcgPSBtYWtlU3RyaW5nKCJDb3VudGVyIFwiIiwgbGFiZWwsICJcIiBkb2VzIG5vdCBl
eGlzdCIpOworICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29u
c29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpMb2cs
IE1lc3NhZ2VMZXZlbDo6V2FybmluZywgd2FybmluZywgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9y
Q29uc29sZShleGVjLCAxKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xl
QWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5oCmluZGV4IGQ5ZjYyMzU3M2ExZmJiMTYxMzNhNzdkYTkzYTQ4MGM2NmQ3
MzdiYjEuLjU1Mzg3YzQ5N2VhZTliMTdiOTI1Y2E3MTNmNmVjZTgzZDRhODRiN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC03MCwxOCArNzAsMTcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6dW5pcXVlX3B0cjxDb25zb2xlTWVzc2FnZT4p
OwogCi0gICAgdm9pZCBzdGFydFRpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxlKTsKLSAgICB2b2lk
IGxvZ1RpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKTsK
LSAgICB2b2lkIHN0b3BUaW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPFNjcmlwdENhbGxT
dGFjaz4mJik7CisgICAgdm9pZCBzdGFydFRpbWluZyhKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0
cmluZyYgbGFiZWwpOworICAgIHZvaWQgbG9nVGltaW5nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJik7CisgICAgdm9pZCBzdG9wVGlt
aW5nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CiAgICAgdm9pZCB0YWtl
SGVhcFNuYXBzaG90KGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHZvaWQgY291bnQoSlNDOjpF
eGVjU3RhdGUqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKTsKLSAgICB2b2lkIGNvdW50UmVzZXQo
SlNDOjpFeGVjU3RhdGUqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICB2b2lkIGNvdW50
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CisgICAgdm9pZCBjb3VudFJl
c2V0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CiAKICAgICB2b2lkIGdl
dExvZ2dpbmdDaGFubmVscyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPFByb3Rv
Y29sOjpDb25zb2xlOjpDaGFubmVsPj4mKSBvdmVycmlkZTsKICAgICB2b2lkIHNldExvZ2dpbmdD
aGFubmVsTGV2ZWwoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNoYW5uZWwsIGNvbnN0IFN0
cmluZyYgbGV2ZWwpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCBnZXRDb3VudGVy
TGFiZWwoUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiwgU3RyaW5nJiB0aXRsZSwgU3RyaW5nJiBpZGVu
dGlmaWVyKTsKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxDb25z
b2xlTWVzc2FnZT4pOwogCiAgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJiBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bnNvbGVDbGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGll
bnQuaAppbmRleCA0NTcwODBiODFkMzgzMDM5YTMzYzU5YmNhMGUyM2JjZDU5YTk3ZTAzLi4xOThl
ZmYzYTM2ZjIwYzE3NzE1NzM1ODIxNDYyZjEzODBlNzU1MTE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5oCkBAIC01NSwxNCArNTUsMTQgQEAgcHVi
bGljOgogICAgIHZvaWQgZ3JvdXBFbmQoRXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0
QXJndW1lbnRzPiYmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZl
bChNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0
b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb3VudChFeGVj
U3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgY291bnRSZXNldChFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1
bWVudHM+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY291bnQoRXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiBsYWJlbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3VudFJlc2V0KEV4ZWNTdGF0
ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcHJvZmlsZShF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBy
b2ZpbGVFbmQoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdGltZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRp
dGxlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRpbWVMb2coRXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHRpbWVFbmQoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB0aW1lKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGltZUxvZyhFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IGxhYmVsLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgdGltZUVuZChFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHRpbWVTdGFtcChFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3Jp
cHRBcmd1bWVudHM+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkKEV4ZWNTdGF0ZSos
IFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCByZWNvcmRFbmQoRXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYm
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xl
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3Qu
Y3BwCmluZGV4IDhjODFhOTcwMjVlZmVmOWE4MTNmMjU5NDRjNTliYzJhODVhMjg5YjYuLjdmNGNm
N2U0NjNmZWM5YjNkNTU2MTc2Y2MzNTNjYjhhYjAyMGQ4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwCkBAIC0zNCw2ICszNCwxOCBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIFN0cmluZyB2YWx1ZU9yRGVmYXVsdExhYmVsU3Ry
aW5nKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwg
MSkKKyAgICAgICAgcmV0dXJuICJkZWZhdWx0Il9zOworCisgICAgYXV0byB2YWx1ZSA9IGV4ZWMt
PmFyZ3VtZW50KDApOworICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXR1
cm4gImRlZmF1bHQiX3M7CisKKyAgICByZXR1cm4gdmFsdWUudG9XVEZTdHJpbmcoZXhlYyk7Cit9
CisKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShDb25zb2xlT2JqZWN0
KTsKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVu
Y0RlYnVnKEV4ZWNTdGF0ZSopOwpAQCAtMjE5LDIxICsyMzEsMjkgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0Fzc2VydChFeGVjU3RhdGUqIGV4
ZWMpCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1
bmNDb3VudChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0g
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZXhlYy0+dm0oKSk7CisgICAgYXV0byogY2xpZW50
ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYg
KCFjbGllbnQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAKLSAgICBjbGllbnQtPmNvdW50KGV4ZWMsIEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1l
bnRzKGV4ZWMsIDApKTsKKyAgICBhdXRvIGxhYmVsID0gdmFsdWVPckRlZmF1bHRMYWJlbFN0cmlu
ZyhleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgp
KTsKKworICAgIGNsaWVudC0+Y291bnQoZXhlYywgbGFiZWwpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNDb3VudFJlc2V0KEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkt
PmNvbnNvbGVDbGllbnQoKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShl
eGVjLT52bSgpKTsKKyAgICBhdXRvKiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIGNsaWVudC0+Y291bnRSZXNldChl
eGVjLCBJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7CisgICAgYXV0
byBsYWJlbCA9IHZhbHVlT3JEZWZhdWx0TGFiZWxTdHJpbmcoZXhlYyk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisKKyAgICBjbGllbnQtPmNvdW50
UmVzZXQoZXhlYywgbGFiZWwpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKQEAgLTMwMCw3MCArMzIwLDQ1IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90KEV4ZWNTdGF0ZSoK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMg
U3RyaW5nIHZhbHVlT3JEZWZhdWx0TGFiZWxTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlKQotewotICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZCgpKQotICAgICAgICByZXR1cm4g
ImRlZmF1bHQiX3M7Ci0gICAgcmV0dXJuIHZhbHVlLnRvV1RGU3RyaW5nKGV4ZWMpOwotfQotCiBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZShF
eGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgQ29uc29sZUNsaWVudCogY2xpZW50
ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CisgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZXhlYy0+dm0oKSk7CisgICAgYXV0byogY2xp
ZW50ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CiAgICAg
aWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAKLSAgICBTdHJpbmcgdGl0bGU7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8
IDEpCi0gICAgICAgIHRpdGxlID0gImRlZmF1bHQiX3M7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHRp
dGxlID0gdmFsdWVPckRlZmF1bHRMYWJlbFN0cmluZyhleGVjLCBleGVjLT5hcmd1bWVudCgwKSk7
Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwot
ICAgIH0KKyAgICBhdXRvIGxhYmVsID0gdmFsdWVPckRlZmF1bHRMYWJlbFN0cmluZyhleGVjKTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAotICAg
IGNsaWVudC0+dGltZShleGVjLCB0aXRsZSk7CisgICAgY2xpZW50LT50aW1lKGV4ZWMsIGxhYmVs
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZUxvZyhF
eGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgQ29uc29sZUNsaWVudCogY2xpZW50
ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CisgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZXhlYy0+dm0oKSk7CisgICAgYXV0byogY2xp
ZW50ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CiAgICAg
aWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAKLSAgICBTdHJpbmcgdGl0bGU7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8
IDEpCi0gICAgICAgIHRpdGxlID0gICJkZWZhdWx0Il9zOwotICAgIGVsc2UgewotICAgICAgICB0
aXRsZSA9IHZhbHVlT3JEZWZhdWx0TGFiZWxTdHJpbmcoZXhlYywgZXhlYy0+YXJndW1lbnQoMCkp
OwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
LSAgICB9CisgICAgYXV0byBsYWJlbCA9IHZhbHVlT3JEZWZhdWx0TGFiZWxTdHJpbmcoZXhlYyk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKLSAg
ICBjbGllbnQtPnRpbWVMb2coZXhlYywgdGl0bGUsIEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJn
dW1lbnRzKGV4ZWMsIDEpKTsKKyAgICBjbGllbnQtPnRpbWVMb2coZXhlYywgbGFiZWwsIEluc3Bl
Y3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDEpKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZUVuZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0g
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0gICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUoZXhlYy0+dm0oKSk7CisgICAgYXV0byogY2xpZW50ID0gZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBTdHJpbmcgdGl0
bGU7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCi0gICAgICAgIHRpdGxlID0g
ICJkZWZhdWx0Il9zOwotICAgIGVsc2UgewotICAgICAgICB0aXRsZSA9IHZhbHVlT3JEZWZhdWx0
TGFiZWxTdHJpbmcoZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpOwotICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICB9CisgICAgYXV0byBsYWJl
bCA9IHZhbHVlT3JEZWZhdWx0TGFiZWxTdHJpbmcoZXhlYyk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKLSAgICBjbGllbnQtPnRpbWVFbmQoZXhl
YywgdGl0bGUpOworICAgIGNsaWVudC0+dGltZUVuZChleGVjLCBsYWJlbCk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA4Y2Zl
OGE3NWEzNmEwZmYwMmQyMjUxYzhiNmJlYWQzZDM2YzFiN2VhLi5mYmI4YWY0YTgyZWEwZmRmNzky
ZTRhMWZkMzEwZjc5YzlkNjA0NTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtODUxLDE2ICs4NTEsMTYgQEAg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3QKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1l
bnRpbmdBZ2VudHMsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgUmVmPFNjcmlwdEFyZ3VtZW50cz4m
JiBhcmd1bWVudHMpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBKU0M6OkV4ZWNT
dGF0ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgaWYgKFdlYkNvbnNvbGVB
Z2VudCogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQo
KSkKLSAgICAgICAgY29uc29sZUFnZW50LT5jb3VudChzdGF0ZSwgV1RGTW92ZShhcmd1bWVudHMp
KTsKKyAgICBpZiAoYXV0byogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJD
b25zb2xlQWdlbnQoKSkKKyAgICAgICAgY29uc29sZUFnZW50LT5jb3VudChzdGF0ZSwgbGFiZWwp
OwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50UmVzZXRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50UmVzZXRJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgY29uc3Qg
U3RyaW5nJiBsYWJlbCkKIHsKLSAgICBpZiAoV2ViQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNvbGVBZ2VudCgpKQotICAgICAgICBjb25zb2xl
QWdlbnQtPmNvdW50UmVzZXQoc3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgaWYgKGF1
dG8qIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50KCkp
CisgICAgICAgIGNvbnNvbGVBZ2VudC0+Y291bnRSZXNldChzdGF0ZSwgbGFiZWwpOwogfQogCiB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dGFrZUhlYXBTbmFwc2hvdEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgU3RyaW5nJiB0aXRsZSkK
QEAgLTg2OSw1MyArODY5LDUzIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp0YWtl
SGVhcFNuYXBzaG90SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtCiAgICAgICAgIGNv
bnNvbGVBZ2VudC0+dGFrZUhlYXBTbmFwc2hvdCh0aXRsZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpzdGFydENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiB0aXRs
ZSkKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydENvbnNvbGVUaW1pbmdJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7CiAgICAgaWYgKCFp
bnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckVudmlyb25tZW50KCkuZGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVB
Z2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yVGltZWxp
bmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50LT50aW1lKGZyYW1lLCB0aXRsZSk7Ci0g
ICAgaWYgKFdlYkNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy53ZWJDb25zb2xlQWdlbnQoKSkKLSAgICAgICAgY29uc29sZUFnZW50LT5zdGFydFRpbWluZyh0
aXRsZSk7CisgICAgaWYgKGF1dG8qIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
Lmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+dGltZShm
cmFtZSwgbGFiZWwpOworICAgIGlmIChhdXRvKiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLndlYkNvbnNvbGVBZ2VudCgpKQorICAgICAgICBjb25zb2xlQWdlbnQtPnN0YXJ0VGlt
aW5nKGV4ZWMsIGxhYmVsKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0
YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0Fn
ZW50cywgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpzdGFydENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRp
bmdBZ2VudHMsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewog
ICAgIGlmICghaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRldmVs
b3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKFdlYkNvbnNv
bGVBZ2VudCogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdl
bnQoKSkKLSAgICAgICAgY29uc29sZUFnZW50LT5zdGFydFRpbWluZyh0aXRsZSk7CisgICAgaWYg
KGF1dG8qIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50
KCkpCisgICAgICAgIGNvbnNvbGVBZ2VudC0+c3RhcnRUaW1pbmcoZXhlYywgbGFiZWwpOwogfQog
Ci12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9nQ29uc29sZVRpbWluZ0ltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50
cykKIHsKICAgICBpZiAoIWluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRW52aXJvbm1lbnQo
KS5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChX
ZWJDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViQ29u
c29sZUFnZW50KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+bG9nVGltaW5nKHRpdGxlLCBXVEZN
b3ZlKGFyZ3VtZW50cykpOworICAgIGlmIChhdXRvKiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLndlYkNvbnNvbGVBZ2VudCgpKQorICAgICAgICBjb25zb2xlQWdlbnQtPmxvZ1Rp
bWluZyhleGVjLCBsYWJlbCwgV1RGTW92ZShhcmd1bWVudHMpKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgdGl0
bGUsIFJlZjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2spCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6c3RvcENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IFN0cmluZyYgbGFiZWwpCiB7CiAgICAgaWYgKCFpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3Rv
ckVudmlyb25tZW50KCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoV2ViQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLndlYkNvbnNvbGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPnN0b3BUaW1p
bmcodGl0bGUsIFdURk1vdmUoc3RhY2spKTsKLSAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yVGltZWxpbmVB
Z2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50LT50aW1lRW5kKGZyYW1lLCB0aXRsZSk7Cisg
ICAgaWYgKGF1dG8qIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29s
ZUFnZW50KCkpCisgICAgICAgIGNvbnNvbGVBZ2VudC0+c3RvcFRpbWluZyhleGVjLCBsYWJlbCk7
CisgICAgaWYgKGF1dG8qIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQoKSkKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+dGltZUVuZChmcmFt
ZSwgbGFiZWwpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcENvbnNv
bGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGNv
bnN0IFN0cmluZyYgdGl0bGUsIFJlZjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2spCit2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25z
dCBTdHJpbmcmIGxhYmVsKQogewogICAgIGlmICghaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0
b3JFbnZpcm9ubWVudCgpLmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKFdlYkNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy53ZWJDb25zb2xlQWdlbnQoKSkKLSAgICAgICAgY29uc29sZUFnZW50LT5zdG9wVGlt
aW5nKHRpdGxlLCBXVEZNb3ZlKHN0YWNrKSk7CisgICAgaWYgKGF1dG8qIGNvbnNvbGVBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50KCkpCisgICAgICAgIGNvbnNvbGVB
Z2VudC0+c3RvcFRpbWluZyhleGVjLCBsYWJlbCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpjb25zb2xlVGltZVN0YW1wSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBGcmFtZSYgZnJhbWUsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJn
dW1lbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oCmluZGV4IGQ1MzY4YzEyZTEzZGExMTkxODQzODg2OTA0NmZjMGM1YmQ1Zjhk
OTYuLmIyZDE1Y2U4NmRkYWQ2ZGNiYmNlZWI0NDJhNWM5MjZjNjRjYzNmYzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAg
LTIyMSwxOCArMjIxLDE4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9D
b25zb2xlKFBhZ2UmLCBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4p
OwogICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyR2xvYmFsU2NvcGUm
LCBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4pOwogCi0gICAgc3Rh
dGljIHZvaWQgY29uc29sZUNvdW50KFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0
b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7Ci0gICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50KFdv
cmtlckdsb2JhbFNjb3BlJiwgSlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRB
cmd1bWVudHM+JiYpOwotICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVDb3VudFJlc2V0KFBhZ2UmLCBK
U0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7Ci0gICAg
c3RhdGljIHZvaWQgY29uc29sZUNvdW50UmVzZXQoV29ya2VyR2xvYmFsU2NvcGUmLCBKU0M6OkV4
ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CisgICAgc3RhdGlj
IHZvaWQgY29uc29sZUNvdW50KFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYg
bGFiZWwpOworICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVDb3VudChXb3JrZXJHbG9iYWxTY29wZSYs
IEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CisgICAgc3RhdGljIHZvaWQg
Y29uc29sZUNvdW50UmVzZXQoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBs
YWJlbCk7CisgICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50UmVzZXQoV29ya2VyR2xvYmFsU2Nv
cGUmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpOwogCiAgICAgc3RhdGlj
IHZvaWQgdGFrZUhlYXBTbmFwc2hvdChGcmFtZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAg
IHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRpbWluZyhGcmFtZSYsIGNvbnN0IFN0cmluZyYgdGl0
bGUpOwotICAgIHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29w
ZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHN0YXRpYyB2b2lkIGxvZ0NvbnNvbGVUaW1p
bmcoRnJhbWUmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1
bWVudHM+JiYpOwotICAgIHN0YXRpYyB2b2lkIGxvZ0NvbnNvbGVUaW1pbmcoV29ya2VyR2xvYmFs
U2NvcGUmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVu
dHM+JiYpOwotICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nKEZyYW1lJiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKLSAgICBz
dGF0aWMgdm9pZCBzdG9wQ29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYsIGNvbnN0IFN0
cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7CisgICAgc3Rh
dGljIHZvaWQgc3RhcnRDb25zb2xlVGltaW5nKEZyYW1lJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBTdHJpbmcmIGxhYmVsKTsKKyAgICBzdGF0aWMgdm9pZCBzdGFydENvbnNvbGVUaW1pbmcoV29y
a2VyR2xvYmFsU2NvcGUmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpOwor
ICAgIHN0YXRpYyB2b2lkIGxvZ0NvbnNvbGVUaW1pbmcoRnJhbWUmLCBKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgbGFiZWwsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7
CisgICAgc3RhdGljIHZvaWQgbG9nQ29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYsIEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0
QXJndW1lbnRzPiYmKTsKKyAgICBzdGF0aWMgdm9pZCBzdG9wQ29uc29sZVRpbWluZyhGcmFtZSYs
IEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CisgICAgc3RhdGljIHZvaWQg
c3RvcENvbnNvbGVUaW1pbmcoV29ya2VyR2xvYmFsU2NvcGUmLCBKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IFN0cmluZyYgbGFiZWwpOwogICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVUaW1lU3RhbXAoRnJh
bWUmLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwogICAgIHN0YXRpYyB2b2lk
IHN0YXJ0UHJvZmlsaW5nKFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0
bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0b3BQcm9maWxpbmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CkBAIC00MDUsMTQgKzQwNSwxNCBAQCBwcml2YXRlOgog
CiAgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7CiAKLSAg
ICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBKU0M6
OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7Ci0gICAgc3Rh
dGljIHZvaWQgY29uc29sZUNvdW50UmVzZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBKU0M6
OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CisgICAgc3Rh
dGljIHZvaWQgY29uc29sZUNvdW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKyAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291
bnRSZXNldEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiBsYWJlbCk7CiAgICAgc3RhdGljIHZvaWQgdGFrZUhlYXBTbmFwc2hvdEltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHN0YXRpYyB2b2lk
IHN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEZyYW1lJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgc3RhdGljIHZvaWQgc3RhcnRDb25zb2xlVGltaW5nSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgc3RhdGlj
IHZvaWQgbG9nQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGNvbnN0IFN0
cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7Ci0gICAgc3Rh
dGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBGcmFt
ZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4m
Jik7Ci0gICAgc3RhdGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3Rh
Y2s+JiYpOworICAgIHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYsIEZyYW1lJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVs
KTsKKyAgICBzdGF0aWMgdm9pZCBzdGFydENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpOworICAgIHN0YXRp
YyB2b2lkIGxvZ0NvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3Vt
ZW50cz4mJik7CisgICAgc3RhdGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBGcmFtZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJl
bCk7CisgICAgc3RhdGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpOwogICAgIHN0YXRp
YyB2b2lkIGNvbnNvbGVUaW1lU3RhbXBJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBGcmFtZSYs
IFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CiAgICAgc3RhdGljIHZvaWQgc3Rh
cnRQcm9maWxpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0b3BQcm9maWxpbmdJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUp
OwpAQCAtMTM4NywyNCArMTM4NywyNCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyR2xvYmFsU2NvcGUmIHdvcgogICAgIGFk
ZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxT
Y29wZSh3b3JrZXJHbG9iYWxTY29wZSksIFdURk1vdmUobWVzc2FnZSkpOwogfQogCi1pbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudChQYWdlJiBwYWdlLCBK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiBh
cmd1bWVudHMpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVD
b3VudChQYWdlJiBwYWdlLCBKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYgbGFi
ZWwpCiB7Ci0gICAgY29uc29sZUNvdW50SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShw
YWdlKSwgc3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgY29uc29sZUNvdW50SW1wbChp
bnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSwgc3RhdGUsIGxhYmVsKTsKIH0KIAotaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnQoV29ya2VyR2xv
YmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIFJlZjxJ
bnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCitpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudChXb3JrZXJHbG9iYWxTY29wZSYgd29y
a2VyR2xvYmFsU2NvcGUsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgY29uc3QgU3RyaW5nJiBsYWJl
bCkKIHsKLSAgICBjb25zb2xlQ291bnRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJH
bG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSksIHN0YXRlLCBXVEZNb3ZlKGFyZ3VtZW50cykp
OworICAgIGNvbnNvbGVDb3VudEltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2Jh
bFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKSwgc3RhdGUsIGxhYmVsKTsKIH0KIAotaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRSZXNldChQYWdlJiBwYWdl
LCBKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4m
JiBhcmd1bWVudHMpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNv
bGVDb3VudFJlc2V0KFBhZ2UmIHBhZ2UsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgY29uc3QgU3Ry
aW5nJiBsYWJlbCkKIHsKLSAgICBjb25zb2xlQ291bnRSZXNldEltcGwoaW5zdHJ1bWVudGluZ0Fn
ZW50c0ZvclBhZ2UocGFnZSksIHN0YXRlLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGNvbnNv
bGVDb3VudFJlc2V0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSwgc3RhdGUs
IGxhYmVsKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25z
b2xlQ291bnRSZXNldChXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIEpTQzo6
RXhlY1N0YXRlKiBzdGF0ZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3Vt
ZW50cykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50
UmVzZXQoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgY29uc29sZUNvdW50UmVzZXRJ
bXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxT
Y29wZSksIHN0YXRlLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGNvbnNvbGVDb3VudFJlc2V0
SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUod29ya2VyR2xvYmFs
U2NvcGUpLCBzdGF0ZSwgbGFiZWwpOwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnRha2VIZWFwU25hcHNob3QoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHRp
dGxlKQpAQCAtMTQxNCwzNyArMTQxNCwzNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnRha2VIZWFwU25hcHNob3QoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbgogICAg
ICAgICB0YWtlSGVhcFNuYXBzaG90SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgdGl0bGUpOwog
fQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29uc29sZVRp
bWluZyhGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgdGl0bGUpCitpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29uc29sZVRpbWluZyhGcmFtZSYgZnJhbWUsIEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewotICAgIGlmIChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50
c0ZvckZyYW1lKGZyYW1lKSkKLSAgICAgICAgc3RhcnRDb25zb2xlVGltaW5nSW1wbCgqaW5zdHJ1
bWVudGluZ0FnZW50cywgZnJhbWUsIHRpdGxlKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGlu
Z0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAgIHN0
YXJ0Q29uc29sZVRpbWluZ0ltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lLCBleGVjLCBs
YWJlbCk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRD
b25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwgY29uc3Qg
U3RyaW5nJiB0aXRsZSkKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3Rh
cnRDb25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwgSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgc3RhcnRDb25z
b2xlVGltaW5nSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUod29y
a2VyR2xvYmFsU2NvcGUpLCB0aXRsZSk7CisgICAgc3RhcnRDb25zb2xlVGltaW5nSW1wbChpbnN0
cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUod29ya2VyR2xvYmFsU2NvcGUpLCBl
eGVjLCBsYWJlbCk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
bG9nQ29uc29sZVRpbWluZyhGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJ
bnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCitpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmxvZ0NvbnNvbGVUaW1pbmcoRnJhbWUmIGZyYW1lLCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCwgUmVmPEluc3BlY3Rvcjo6U2Ny
aXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKLSAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFt
ZSkpCi0gICAgICAgIGxvZ0NvbnNvbGVUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCB0
aXRsZSwgV1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0Fn
ZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAgIGxvZ0Nv
bnNvbGVUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBleGVjLCBsYWJlbCwgV1RGTW92
ZShhcmd1bWVudHMpKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojpsb2dDb25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwg
Y29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFy
Z3VtZW50cykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9nQ29uc29s
ZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1
bWVudHM+JiYgYXJndW1lbnRzKQogewotICAgIGxvZ0NvbnNvbGVUaW1pbmdJbXBsKGluc3RydW1l
bnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSksIHRpdGxl
LCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGxvZ0NvbnNvbGVUaW1pbmdJbXBsKGluc3RydW1l
bnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSksIGV4ZWMs
IGxhYmVsLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrKQoraW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZyhGcmFt
ZSYgZnJhbWUsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewot
ICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1
bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKLSAgICAgICAgc3RvcENvbnNvbGVUaW1pbmdJ
bXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBmcmFtZSwgdGl0bGUsIFdURk1vdmUoc3RhY2spKTsK
KyAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNG
b3JGcmFtZShmcmFtZSkpCisgICAgICAgIHN0b3BDb25zb2xlVGltaW5nSW1wbCgqaW5zdHJ1bWVu
dGluZ0FnZW50cywgZnJhbWUsIGV4ZWMsIGxhYmVsKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYg
d29ya2VyR2xvYmFsU2NvcGUsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNj
cmlwdENhbGxTdGFjaz4mJiBzdGFjaykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c3RvcENvbnNvbGVUaW1pbmcoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNj
b3BlLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBz
dG9wQ29uc29sZVRpbWluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNj
b3BlKHdvcmtlckdsb2JhbFNjb3BlKSwgdGl0bGUsIFdURk1vdmUoc3RhY2spKTsKKyAgICBzdG9w
Q29uc29sZVRpbWluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNjb3Bl
KHdvcmtlckdsb2JhbFNjb3BlKSwgZXhlYywgbGFiZWwpOwogfQogCiBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVUaW1lU3RhbXAoRnJhbWUmIGZyYW1lLCBSZWY8
SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAppbmRleCBhZjIyNjdjYjFkMTM2MGI2ZjMzMjJjZDFj
MDMyMGYwMDhmM2RiMmM3Li5jM2IxZDM2OTIwODY3NzBmYjE3ODBjNDkwZTQ3NzQ4ZWJkOTEyNTdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcApAQCAtMTcwLDE0
ICsxNzAsMTQgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5kTGV2
ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGwKICAgICAgICAgQ29uc29sZUNsaWVu
dDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZTo6Q29uc29s
ZUFQSSwgdHlwZSwgbGV2ZWwsIGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CiAKLXZvaWQg
UGFnZUNvbnNvbGVDbGllbnQ6OmNvdW50KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0
QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmNvdW50KEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewotICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KG1fcGFnZSwgZXhlYywgV1RGTW92ZShhcmd1
bWVudHMpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudChtX3Bh
Z2UsIGV4ZWMsIGxhYmVsKTsKIH0KIAotdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6Y291bnRSZXNl
dChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMp
Cit2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojpjb3VudFJlc2V0KEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
Y29uc29sZUNvdW50UmVzZXQobV9wYWdlLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50UmVzZXQobV9wYWdlLCBleGVj
LCBsYWJlbCk7CiB9CiAKIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OnByb2ZpbGUoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCkBAIC0xOTcsMTkgKzE5NywxOSBAQCB2
b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnRha2VI
ZWFwU25hcHNob3QobV9wYWdlLm1haW5GcmFtZSgpLCB0aXRsZSk7CiB9CiAKLXZvaWQgUGFnZUNv
bnNvbGVDbGllbnQ6OnRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQor
dm9pZCBQYWdlQ29uc29sZUNsaWVudDo6dGltZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U3RyaW5nJiBsYWJlbCkKIHsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29u
c29sZVRpbWluZyhtX3BhZ2UubWFpbkZyYW1lKCksIHRpdGxlKTsKKyAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnN0YXJ0Q29uc29sZVRpbWluZyhtX3BhZ2UubWFpbkZyYW1lKCksIGV4ZWMs
IGxhYmVsKTsKIH0KIAotdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6dGltZUxvZyhKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1l
bnRzKQordm9pZCBQYWdlQ29uc29sZUNsaWVudDo6dGltZUxvZyhKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgU3RyaW5nJiBsYWJlbCwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMp
CiB7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25zb2xlVGltaW5nKG1fcGFn
ZS5tYWluRnJhbWUoKSwgdGl0bGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpsb2dDb25zb2xlVGltaW5nKG1fcGFnZS5tYWluRnJhbWUoKSwgZXhl
YywgbGFiZWwsIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CiAKLXZvaWQgUGFnZUNvbnNvbGVDbGll
bnQ6OnRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCit2
b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25z
dCBTdHJpbmcmIGxhYmVsKQogewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcENv
bnNvbGVUaW1pbmcobV9wYWdlLm1haW5GcmFtZSgpLCB0aXRsZSwgY3JlYXRlU2NyaXB0Q2FsbFN0
YWNrRm9yQ29uc29sZShleGVjLCAxKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpz
dG9wQ29uc29sZVRpbWluZyhtX3BhZ2UubWFpbkZyYW1lKCksIGV4ZWMsIGxhYmVsKTsKIH0KIAog
dm9pZCBQYWdlQ29uc29sZUNsaWVudDo6dGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmPFNj
cmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25zb2xlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmgKaW5kZXggOGEzOWRhMGQ3ZGEzMzIzODI0M2FiZGExYjI3NGIwYWUwNWFjYjJlNi4u
ZmZiZjYyYjIwMWZlMzEyODUzODIxNzhjMzQ5ZDBhYjJiNzRlNTU3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaApAQCAtNjcsMTQgKzY3LDE0IEBAIHB1YmxpYzoKIAog
cHJvdGVjdGVkOgogICAgIHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUs
IE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1
bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWY8
SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY291bnRS
ZXNldChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYg
bGFiZWwpIG92ZXJyaWRlOworICAgIHZvaWQgY291bnRSZXNldChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IFN0cmluZyYgbGFiZWwpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZmlsZShKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZmlsZUVu
ZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZv
aWQgdGFrZUhlYXBTbmFwc2hvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUp
IG92ZXJyaWRlOwotICAgIHZvaWQgdGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYg
dGl0bGUpIG92ZXJyaWRlOwotICAgIHZvaWQgdGltZUxvZyhKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IFN0cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCB0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiBsYWJlbCkgb3ZlcnJpZGU7CisgICAgdm9pZCB0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiBsYWJlbCwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxh
YmVsKSBvdmVycmlkZTsKICAgICB2b2lkIHRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJ
bnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWNvcmQo
SlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJy
aWRlOwogICAgIHZvaWQgcmVjb3JkRW5kKEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6
U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckNvbnNvbGVDbGllbnQuY3BwCmluZGV4IGM3YjZiNDBmMjA5NTRmMmNmM2RiOTEzNjBm
ZTdjMzhiMjc4YzE4NjIuLmRiZTkwNzNkNmFkZWJmYzUwMTU5Y2MyZWRiYjIyODNjY2QxN2JhODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcApA
QCAtNTAsMjkgKzUwLDI5IEBAIHZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhU
eXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsCiAgICAgbV93b3JrZXJH
bG9iYWxTY29wZS5hZGRDb25zb2xlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAotdm9p
ZCBXb3JrZXJDb25zb2xlQ2xpZW50Ojpjb3VudChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmPFNj
cmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OmNv
dW50KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewotICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KG1fd29ya2VyR2xvYmFsU2NvcGUs
IGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojpjb25zb2xlQ291bnQobV93b3JrZXJHbG9iYWxTY29wZSwgZXhlYywgbGFiZWwpOwogfQogCi12
b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OmNvdW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBXb3JrZXJDb25zb2xlQ2xp
ZW50Ojpjb3VudFJlc2V0KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVs
KQogewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50UmVzZXQobV93
b3JrZXJHbG9iYWxTY29wZSwgZXhlYywgV1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudFJlc2V0KG1fd29ya2VyR2xvYmFsU2NvcGUs
IGV4ZWMsIGxhYmVsKTsKIH0KIAotdm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50Ojp0aW1lKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgV29ya2VyQ29uc29sZUNsaWVu
dDo6dGltZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29uc29sZVRpbWluZyhtX3dvcmtlckds
b2JhbFNjb3BlLCB0aXRsZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydENv
bnNvbGVUaW1pbmcobV93b3JrZXJHbG9iYWxTY29wZSwgZXhlYywgbGFiZWwpOwogfQogCi12b2lk
IFdvcmtlckNvbnNvbGVDbGllbnQ6OnRpbWVMb2coSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgV29ya2Vy
Q29uc29sZUNsaWVudDo6dGltZUxvZyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
JiBsYWJlbCwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCiB7Ci0gICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25zb2xlVGltaW5nKG1fd29ya2VyR2xvYmFsU2NvcGUs
IHRpdGxlLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6bG9nQ29uc29sZVRpbWluZyhtX3dvcmtlckdsb2JhbFNjb3BlLCBleGVjLCBsYWJlbCwgV1RG
TW92ZShhcmd1bWVudHMpKTsKIH0KIAotdm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50Ojp0aW1lRW5k
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlKQordm9pZCBXb3JrZXJD
b25zb2xlQ2xpZW50Ojp0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcm
IGxhYmVsKQogewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcENvbnNvbGVUaW1p
bmcobV93b3JrZXJHbG9iYWxTY29wZSwgdGl0bGUsIGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNv
bnNvbGUoZXhlYywgMSkpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcENvbnNv
bGVUaW1pbmcobV93b3JrZXJHbG9iYWxTY29wZSwgZXhlYywgbGFiZWwpOwogfQogCiAvLyBGSVhN
RTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MzQ5OT4gV2ViIEluc3BlY3RvcjogY29uc29sZS5w
cm9maWxlIHNob3VsZCB1c2UgdGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuaAppbmRleCA2MTc3ZGIxOGZjZmVjOWYw
MzViYTExOGQ0OTA5OThhNjFjY2Q3MTY3Li4zODQ2ZDI3MWI2OGJkNjk4MjAwMGI1MmI5YWJhYjk3
Njc2NzYxNDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnNv
bGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGll
bnQuaApAQCAtNDMsMTQgKzQzLDE0IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZvaWQg
bWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpF
eGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwot
ICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1
bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY291bnRSZXNldChKU0M6OkV4ZWNTdGF0ZSos
IFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBj
b3VudChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpIG92ZXJyaWRlOworICAg
IHZvaWQgY291bnRSZXNldChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpIG92
ZXJyaWRlOwogICAgIHZvaWQgcHJvZmlsZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYg
dGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZmlsZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgdGFrZUhlYXBTbmFwc2hvdChK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwotICAgIHZvaWQg
dGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwotICAg
IHZvaWQgdGltZUxvZyhKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJ
bnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0aW1lRW5k
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCB0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgUmVm
PEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRpbWVF
bmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBvdmVycmlkZTsKICAgICB2
b2lkIHRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3Vt
ZW50cz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWNvcmQoSlNDOjpFeGVjU3RhdGUqLCBSZWY8
SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVjb3Jk
RW5kKEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRDb25z
b2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xp
ZW50LmNwcAppbmRleCA5ZjFkMzdkY2VhYmJlNjNmYTZhYzU2ZWE2OWE3YTM3OWQ5ZTAyMjc4Li44
ZThhMmE0Y2EyM2UyYjkzZGExMzRhZmI1MmQwZTk1NzZjNDAyMTU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuY3BwCkBAIC01Miw4ICs1Miw4
IEBAIHZvaWQgV29ya2xldENvbnNvbGVDbGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1l
c3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlCiAgICAgbV93b3JrbGV0R2xvYmFsU2NvcGUuYWRk
Q29uc29sZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKLXZvaWQgV29ya2xldENvbnNv
bGVDbGllbnQ6OmNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikg
eyB9Ci12b2lkIFdvcmtsZXRDb25zb2xlQ2xpZW50Ojpjb3VudFJlc2V0KEpTQzo6RXhlY1N0YXRl
KiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgeyB9Cit2b2lkIFdvcmtsZXRDb25zb2xlQ2xpZW50
Ojpjb3VudChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpIHsgfQordm9pZCBXb3JrbGV0
Q29uc29sZUNsaWVudDo6Y291bnRSZXNldChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYp
IHsgfQogCiB2b2lkIFdvcmtsZXRDb25zb2xlQ2xpZW50Ojp0aW1lKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJikgeyB9CiB2b2lkIFdvcmtsZXRDb25zb2xlQ2xpZW50Ojp0aW1lTG9nKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuaAppbmRl
eCBkODQ0NjQwM2IzMTU5ZWQzNGQyZDUzODE0NWY0MWUwMzExNjUzYWM1Li42MzFkYWU5OTAxYWM5
YTQzZDIwODY5ZWE1ZDgxZmMzMzQ1OGM4ZTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmts
ZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmgKQEAgLTQ1LDE0ICs0NSwxNCBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSwg
TWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3Vt
ZW50cz4mJikgZmluYWw7Ci0gICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNw
ZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgZmluYWw7Ci0gICAgdm9pZCBjb3VudFJlc2V0KEpT
Qzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBmaW5hbDsK
KyAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgZmlu
YWw7CisgICAgdm9pZCBjb3VudFJlc2V0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBs
YWJlbCkgZmluYWw7CiAgICAgdm9pZCBwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSkgZmluYWw7CiAgICAgdm9pZCBwcm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSkgZmluYWw7CiAgICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgZmluYWw7Ci0gICAgdm9pZCB0aW1l
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgZmluYWw7Ci0gICAgdm9pZCB0
aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rv
cjo6U2NyaXB0QXJndW1lbnRzPiYmKSBmaW5hbDsKLSAgICB2b2lkIHRpbWVFbmQoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBmaW5hbDsKKyAgICB2b2lkIHRpbWUoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBmaW5hbDsKKyAgICB2b2lkIHRpbWVMb2co
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8SW5zcGVjdG9yOjpTY3Jp
cHRBcmd1bWVudHM+JiYpIGZpbmFsOworICAgIHZvaWQgdGltZUVuZChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgbGFiZWwpIGZpbmFsOwogICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6RXhl
Y1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBmaW5hbDsKICAgICB2
b2lkIHJlY29yZChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50
cz4mJikgZmluYWw7CiAgICAgdm9pZCByZWNvcmRFbmQoSlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5z
cGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVy
cy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVG
dW5jdGlvblBhcmFtZXRlcnMuanMKaW5kZXggY2NiYjY2YmFhYjIxMjE5OThhODZlZGFmMzk3ZmEy
YjI5MWFhMmRiNy4uNGI0YmJhMjgxZWZkZGFiZTRkYWJjYmVjNDJlZjQwNzgxOTEzMGEwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2
ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCkBAIC0xNjEsNyArMTYx
LDggQEAgV0kuTmF0aXZlQ29uc3RydWN0b3JGdW5jdGlvblBhcmFtZXRlcnMgPSB7CiAKICAgICBD
b25zb2xlOiB7CiAgICAgICAgIGFzc2VydDogImNvbmRpdGlvbiwgW21lc3NhZ2VdLCBbLi4udmFs
dWVzXSIsCi0gICAgICAgIGNvdW50OiAiW2xhYmVsXSIsCisgICAgICAgIGNvdW50OiAibGFiZWwg
PSBcImRlZmF1bHRcIiIsCisgICAgICAgIGNvdW50UmVzZXQ6ICJsYWJlbCA9IFwiZGVmYXVsdFwi
IiwKICAgICAgICAgZGVidWc6ICJtZXNzYWdlLCBbLi4udmFsdWVzXSIsCiAgICAgICAgIGRpcjog
Im9iamVjdCIsCiAgICAgICAgIGRpcnhtbDogIm9iamVjdCIsCkBAIC0xNzgsOCArMTc5LDkgQEAg
V0kuTmF0aXZlQ29uc3RydWN0b3JGdW5jdGlvblBhcmFtZXRlcnMgPSB7CiAgICAgICAgIHNjcmVl
bnNob3Q6ICJbbm9kZV0iLAogICAgICAgICB0YWJsZTogImRhdGEsIFtjb2x1bW5zXSIsCiAgICAg
ICAgIHRha2VIZWFwU25hcHNob3Q6ICJbbGFiZWxdIiwKLSAgICAgICAgdGltZTogIm5hbWUgPSBc
ImRlZmF1bHRcIiIsCi0gICAgICAgIHRpbWVFbmQ6ICJuYW1lID0gXCJkZWZhdWx0XCIiLAorICAg
ICAgICB0aW1lOiAibGFiZWwgPSBcImRlZmF1bHRcIiIsCisgICAgICAgIHRpbWVMb2c6ICJsYWJl
bCA9IFwiZGVmYXVsdFwiIiwKKyAgICAgICAgdGltZUVuZDogImxhYmVsID0gXCJkZWZhdWx0XCIi
LAogICAgICAgICB0aW1lU3RhbXA6ICJbbGFiZWxdIiwKICAgICAgICAgdHJhY2U6ICJtZXNzYWdl
LCBbLi4udmFsdWVzXSIsCiAgICAgICAgIHdhcm46ICJtZXNzYWdlLCBbLi4udmFsdWVzXSIsCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMzMxNjVjNTU2NmFmMmQ4MWU5YTJhNTQzYWUyZjI1Yjg0MGNhNjgzOC4uYTdlMzVlYjVm
YzJkNWUzZWU1YTRiYWM0MzllYjQ2YjcwYTljZWZmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE5LTA2LTI2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiB0aHJvdyBhbiBlcnJvciBpZiBjb25zb2xlLmNvdW50L2NvbnNvbGUuY291
bnRSZXNldCBpcyBjYWxsZWQgd2l0aCBhbiBvYmplY3QgdGhhdCB0aHJvd3MgYW4gZXJyb3IgZnJv
bSB0b1N0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk5MjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNvdW50Lmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1jb3VudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1hcGkuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLWFwaS1leHBlY3RlZC50eHQ6CisKIDIwMTktMDYtMjYgIFJ1c3NlbGwgRXBz
dGVpbiAgPHJ1c3NlbGxfZUBhcHBsZS5jb20+CiAKICAgICAgICAgTGF5b3V0IFRlc3QgaHR0cC90
ZXN0cy9wZXJmb3JtYW5jZS9wZXJmb3JtYW5jZS1yZXNvdXJjZS10aW1pbmctcmVzb3VyY2V0aW1p
bmdidWZmZXJmdWxsLXNocmlua2luZy1idWZmZXItY3Jhc2guaHRtbCBpcyBmYWlsaW5nLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hcGktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hcGktZXhwZWN0
ZWQudHh0CmluZGV4IDgzNmU4MTQyNDYzNTQ5YWJmMGU4ZGMxMGVmNTkzNzAzMDE2ZDZiMDAuLjJk
Y2Q5ZTY5YzUyNGM4Mjc1MjRjZjNmZDQzMGM5Y2U1MThlMzVkMTYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYXBpLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFwaS1leHBlY3RlZC50eHQKQEAg
LTU4NSw3ICs1ODUsNyBAQCBTVEVQOiBjb25zb2xlLmNvdW50KCkKIHsKICAgIl9zb3VyY2UiOiAi
Y29uc29sZS1hcGkiLAogICAiX2xldmVsIjogImRlYnVnIiwKLSAgIl9tZXNzYWdlVGV4dCI6ICJH
bG9iYWw6IDEiLAorICAiX21lc3NhZ2VUZXh0IjogImRlZmF1bHQ6IDEiLAogICAiX3R5cGUiOiAi
bG9nIiwKICAgIl91cmwiOiBudWxsLAogICAiX2xpbmUiOiAzLApAQCAtNTk5LDcgKzU5OSwyMSBA
QCBTVEVQOiBjb25zb2xlLmNvdW50KCkKIHsKICAgIl9zb3VyY2UiOiAiY29uc29sZS1hcGkiLAog
ICAiX2xldmVsIjogImRlYnVnIiwKLSAgIl9tZXNzYWdlVGV4dCI6ICJHbG9iYWw6IDIiLAorICAi
X21lc3NhZ2VUZXh0IjogImRlZmF1bHQ6IDIiLAorICAiX3R5cGUiOiAibG9nIiwKKyAgIl91cmwi
OiBudWxsLAorICAiX2xpbmUiOiAzLAorICAiX2NvbHVtbiI6IDE0LAorICAiX3JlcGVhdENvdW50
IjogMSwKKyAgIl9zdGFja1RyYWNlIjogIjxmaWx0ZXJlZD4iLAorICAiX3JlcXVlc3QiOiBudWxs
Cit9CisKK1NURVA6IGNvbnNvbGUuY291bnQoImRlZmF1bHQiKQoreworICAiX3NvdXJjZSI6ICJj
b25zb2xlLWFwaSIsCisgICJfbGV2ZWwiOiAiZGVidWciLAorICAiX21lc3NhZ2VUZXh0IjogImRl
ZmF1bHQ6IDMiLAogICAiX3R5cGUiOiAibG9nIiwKICAgIl91cmwiOiBudWxsLAogICAiX2xpbmUi
OiAzLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1h
cGkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYXBpLmh0bWwK
aW5kZXggZDVmMWRmODI5Yzg4M2ViMWU0OWQ5MDllMzhjMThmMWU2YjA1YzJiZC4uMjVhNzJhNGYy
YjgxNzAxNTU0Zjg0N2M2ZWNmNDY3YjE2NGZlOTJkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hcGkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS9jb25zb2xlLWFwaS5odG1sCkBAIC0zNCw2ICszNCw3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAiY29uc29sZS5ncm91cEVuZCgnY29sbGFwc2VkR3JvdXBOYW1lJyki
LAogICAgICAgICAiY29uc29sZS5jb3VudCgpIiwKICAgICAgICAgImNvbnNvbGUuY291bnQoKSIs
CisgICAgICAgICJjb25zb2xlLmNvdW50KFwiZGVmYXVsdFwiKSIsCiAgICAgICAgICJjb25zb2xl
LmNvdW50KCcnKSIsCiAgICAgICAgICJjb25zb2xlLmNvdW50KCcgICAgJykiLAogICAgICAgICAi
Y29uc29sZS5jb3VudCgnJykiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1jb3VudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLWNvdW50LWV4cGVjdGVkLnR4dAppbmRleCA5ZTlhOGUyNTJhNjQyMzZk
NjIxMDMwZDFmYTU2ZjMyYzg1YmIzZGQ2Li5hZDg0ZDU4NzYzZDgyZGQ5YzU4NTFlNzhlZTRkZGQ4
NzAwMDFkYjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWNvdW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWNvdW50LWV4cGVjdGVkLnR4dApAQCAtMywyMiArMywyMiBAQCBUZXN0cyBmb3Ig
dGhlIGNvbnNvbGUuY291bnQgYW5kIGNvbnNvbGUuY291bnRSZXNldCBBUElzLgogCiA9PSBSdW5u
aW5nIHRlc3Qgc3VpdGU6IGNvbnNvbGUuY291bnQKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBjb25z
b2xlLmNvdW50Lk5vQXJndW1lbnRzCi1HbG9iYWw6IDEKLUdsb2JhbDogMgotR2xvYmFsOiAzCi1H
bG9iYWw6IDQKLUdsb2JhbDogNQotR2xvYmFsOiA2Ci1HbG9iYWw6IDcKLUdsb2JhbDogOAotR2xv
YmFsOiA5Ci1HbG9iYWw6IDEwCi1HbG9iYWw6IDExCi1HbG9iYWw6IDEyCi1HbG9iYWw6IDEzCi1H
bG9iYWw6IDE0Ci1HbG9iYWw6IDE1Ci1HbG9iYWw6IDE2CitkZWZhdWx0OiAxCitkZWZhdWx0OiAy
CitkZWZhdWx0OiAzCitkZWZhdWx0OiA0CitkZWZhdWx0OiA1CitkZWZhdWx0OiA2CitkZWZhdWx0
OiA3CitkZWZhdWx0OiA4CitkZWZhdWx0OiA5CitkZWZhdWx0OiAxMAorZGVmYXVsdDogMTEKK2Rl
ZmF1bHQ6IDEyCitkZWZhdWx0OiAxMworZGVmYXVsdDogMTQKK2RlZmF1bHQ6IDE1CitkZWZhdWx0
OiAxNgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogY29uc29sZS5jb3VudC5XaXRoTGFiZWwKIGFs
cGhhOiAxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LWNvdW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNvdW50
Lmh0bWwKaW5kZXggNjk5OTQ2NWJiZGNkNjdkNDZhMzI4MTRmZmQ3ZDBhNjQ4MDZlNzkyYS4uNGYw
NTdhOGNhMzk1NDRkMDIxY2NmMTliZjcyMWNkMDA1YzQ3YzRkZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1jb3VudC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY291bnQuaHRtbApAQCAtNDAsNyArNDAsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFt
ZTogImNvbnNvbGUuY291bnQuTm9Bcmd1bWVudHMiLAotICAgICAgICBkZXNjcmlwdGlvbjogIk5v
IGFyZ3VtZW50cyBpbmNyZW1lbnRzIGEgc2hhcmVkIGdsb2JhbCBjb3VudGVyLiIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiTm8gYXJndW1lbnRzIHVzZXMgdGhlIGRlZmF1bHQgbGFiZWwuIiwKICAg
ICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIGxldCBzZWVuID0gMDsK
ICAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gMTY7CkBAIC01NSw3ICs1NSw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKGB0cmlnZ2VyQ291bnROb0FyZ3VtZW50cygpYCk7IC8vIDE1Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjb25zb2xlLmNvdW50KClgKTsgLy8g
MQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY29uc29sZS5jb3Vu
dCgiZGVmYXVsdCIpYCk7IC8vIDE2CiAgICAgICAgIH0KICAgICB9KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372987</attachid>
            <date>2019-06-26 18:24:13 -0700</date>
            <delta_ts>2019-06-27 00:41:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199252-20190626182412.patch</filename>
            <type>text/plain</type>
            <size>62972</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGJmYWIzNDc2NzhmYTZjNGJkYzA0ZmM0Y2M0M2U1
YTk3YmE3N2NiY2EuLmEyMjQ5ODFhYWM5ZjE5ZTc1YWYxZGY5ZTgwNDNhZmU2ZGNjNjE5Y2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE5LTA2LTI2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0
aHJvdyBhbiBlcnJvciBpZiBjb25zb2xlLmNvdW50L2NvbnNvbGUuY291bnRSZXNldCBpcyBjYWxs
ZWQgd2l0aCBhbiBvYmplY3QgdGhhdCB0aHJvd3MgYW4gZXJyb3IgZnJvbSB0b1N0cmluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MjUyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFyc2UgdGhlIGFy
Z3VtZW50cyBwYXNzZWQgdG8gYGNvbnNvbGUuY291bnRgIGFuZCBgY29uc29sZS5jb3VudFJlc2V0
YCBiZWZvcmUgc2VuZGluZyBpdCB0bworICAgICAgICB0aGUgYENvbnNvbGVDbGllbnRgIHNvIHRo
YXQgYW4gZXJyb3IgY2FuIGJlIHRocm93biBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZG9lc24ndCBg
dG9TdHJpbmdgCisgICAgICAgIG5pY2VseSAoZS5nLiB3aXRob3V0IHRocm93aW5nIGFuIGVycm9y
KS4KKworICAgICAgICBHZW5lcmF0ZSBjYWxsIHN0YWNrcyBmb3IgYGNvbnNvbGUuY291bnRSZXNl
dGAgdG8gbWF0Y2ggb3RoZXIgYGNvbnNvbGVgIG1ldGhvZHMuIEFsc28gZG8gdGhpcworICAgICAg
ICBmb3IgYGNvbnNvbGUudGltZWAsIGBjb25zb2xlLnRpbWVMb2dgLCBhbmQgYGNvbnNvbGUuVGlt
ZUVuZGAuIExpbWl0IHRoZSBjYWxsIHN0YWNrIHRvIG9ubHkKKyAgICAgICAgaGF2ZSB0aGUgdG9w
IGZyYW1lLCBzbyBubyB1bm5lY2Vzc2FyeS9leHRyYSBkYXRhIGlzIHNlbnQgdG8gdGhlIGZyb250
ZW5kIChyaWdodCBub3csIG9ubHkKKyAgICAgICAgdGhlIGNhbGwgbG9jYXRpb24gaXMgZGlzcGxh
eWVkKS4KKworICAgICAgICBSZW5hbWUgYHRpdGxlYCB0byBgbGFiZWxgIGZvciBgY29uc29sZS50
aW1lYCwgYGNvbnNvbGUudGltZUxvZ2AsIGFuZCBgY29uc29sZS5UaW1lRW5kYCB0bworICAgICAg
ICBiZXR0ZXIgbWF0Y2ggdGhlIHNwZWMuCisKKyAgICAgICAgKiBydW50aW1lL0NvbnNvbGVDbGll
bnQuaDoKKyAgICAgICAgKiBydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwOgorICAgICAgICAoSlND
Ojp2YWx1ZU9yRGVmYXVsdExhYmVsU3RyaW5nKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY0NvdW50KToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY0NvdW50UmVzZXQpOgor
ICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZSk6CisgICAgICAgIChKU0M6OmNvbnNv
bGVQcm90b0Z1bmNUaW1lTG9nKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1RpbWVF
bmQpOgorCisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwOgor
ICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OmNvdW50KToK
KyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojpjb3VudFJl
c2V0KToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0
aW1lKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0
aW1lTG9nKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50
Ojp0aW1lRW5kKToKKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29s
ZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0YXJ0
VGltaW5nKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50Ojpsb2dU
aW1pbmcpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0b3BU
aW1pbmcpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmNvdW50
KToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50Ojpjb3VudFJlc2V0
KToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpnZXRDb3VudGVy
TGFiZWwpOiBEZWxldGVkLgorCisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgQWxsb3cgYENv
bnNvbGVNZXNzYWdlYHMgdG8gYmUgY3JlYXRlZCB3aXRoIGJvdGggYFNjcmlwdEFyZ3VtZW50c2Ag
YW5kIGEgYFNjcmlwdENhbGxTdGFja2AuCisKIDIwMTktMDYtMjYgIEtlaXRoIE1pbGxlciAgPGtl
aXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgc3BlY2llc0NvbnN0cnVjdCBuZWVkcyB0
byB0aHJvdyBpZiB0aGUgcmVzdWx0IGlzIGEgRGF0YVZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYTY0M2Zl
YTZjYTNmZWZlZWNhZWI4MWU2MTNmNDNiZTliNjNkODljLi5kZGZjZjA0NGY1NjI1YmNkMTMyNTli
NjJhNTcwYzMzMWU2N2M1ZjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTktMDYt
MjYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHRocm93IGFuIGVycm9yIGlmIGNvbnNvbGUuY291bnQvY29uc29sZS5jb3VudFJlc2V0
IGlzIGNhbGxlZCB3aXRoIGFuIG9iamVjdCB0aGF0IHRocm93cyBhbiBlcnJvciBmcm9tIHRvU3Ry
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTky
NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXJz
ZSB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byBgY29uc29sZS5jb3VudGAgYW5kIGBjb25zb2xlLmNv
dW50UmVzZXRgIGJlZm9yZSBzZW5kaW5nIGl0IHRvCisgICAgICAgIHRoZSBgQ29uc29sZUNsaWVu
dGAgc28gdGhhdCBhbiBlcnJvciBjYW4gYmUgdGhyb3duIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBk
b2Vzbid0IGB0b1N0cmluZ2AKKyAgICAgICAgbmljZWx5IChlLmcuIHdpdGhvdXQgdGhyb3dpbmcg
YW4gZXJyb3IpLgorCisgICAgICAgIEdlbmVyYXRlIGNhbGwgc3RhY2tzIGZvciBgY29uc29sZS5j
b3VudFJlc2V0YCB0byBtYXRjaCBvdGhlciBgY29uc29sZWAgbWV0aG9kcy4gQWxzbyBkbyB0aGlz
CisgICAgICAgIGZvciBgY29uc29sZS50aW1lYCwgYGNvbnNvbGUudGltZUxvZ2AsIGFuZCBgY29u
c29sZS5UaW1lRW5kYC4gTGltaXQgdGhlIGNhbGwgc3RhY2sgdG8gb25seQorICAgICAgICBoYXZl
IHRoZSB0b3AgZnJhbWUsIHNvIG5vIHVubmVjZXNzYXJ5L2V4dHJhIGRhdGEgaXMgc2VudCB0byB0
aGUgZnJvbnRlbmQgKHJpZ2h0IG5vdywgb25seQorICAgICAgICB0aGUgY2FsbCBsb2NhdGlvbiBp
cyBkaXNwbGF5ZWQpLgorCisgICAgICAgIFJlbmFtZSBgdGl0bGVgIHRvIGBsYWJlbGAgZm9yIGBj
b25zb2xlLnRpbWVgLCBgY29uc29sZS50aW1lTG9nYCwgYW5kIGBjb25zb2xlLlRpbWVFbmRgIHRv
CisgICAgICAgIGJldHRlciBtYXRjaCB0aGUgc3BlYy4KKworICAgICAgICBVcGRhdGVkIGV4aXN0
aW5nIExheW91dFRlc3RzOgorICAgICAgICAgLSBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNv
dW50Lmh0bWwKKyAgICAgICAgIC0gaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hcGkuaHRtbAor
CisgICAgICAgIEFsc28gY292ZXJlZCBieSBleGlzdGluZyBXUFQgdGVzdHMuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudFJlc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9nQ29uc29s
ZVRpbWluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0
b3BDb25zb2xlVGltaW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
Y29uc29sZUNvdW50SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmNvbnNvbGVDb3VudFJlc2V0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29uc29sZVRpbWluZ0ltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25zb2xlVGltaW5nSW1wbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGlt
aW5nSW1wbCk6CisKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50Lmg6CisgICAgICAg
ICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29u
c29sZUNsaWVudDo6Y291bnQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGllbnQ6
OmNvdW50UmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGllbnQ6OnRpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGllbnQ6OnRpbWVMb2cpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGllbnQ6OnRpbWVFbmQpOgorCisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb25z
b2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnNvbGVDbGllbnQ6OmNv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnNvbGVDbGllbnQ6OmNvdW50UmVzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUNsaWVudDo6dGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJDb25zb2xlQ2xpZW50Ojp0aW1lTG9nKToKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckNvbnNvbGVDbGllbnQ6OnRpbWVFbmQpOgorCisgICAgICAgICogd29ya2xldHMv
V29ya2xldENvbnNvbGVDbGllbnQuaDoKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0Q29uc29s
ZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0Q29uc29sZUNsaWVudDo6Y291
bnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldENvbnNvbGVDbGllbnQ6OmNvdW50UmVzZXQp
OgorCiAyMDE5LTA2LTI2ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogSW1wbGVtZW50IGNvbnNvbGUuY291bnRSZXNldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggY2YwNjFiZTNiMTdmOTg3ZjNiZTdkZjYwNmY5NjQ0Yjcx
NWY1ZTZlNC4uNTcxOGMzOWMxMGY2OGQ3MzA5ZWQyMTZmZDJlNWE1OWY2NzRkODA0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDYtMjYgIERldmluIFJv
dXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHRocm93
IGFuIGVycm9yIGlmIGNvbnNvbGUuY291bnQvY29uc29sZS5jb3VudFJlc2V0IGlzIGNhbGxlZCB3
aXRoIGFuIG9iamVjdCB0aGF0IHRocm93cyBhbiBlcnJvciBmcm9tIHRvU3RyaW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkyNTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZW50cmllcyBmb3Ig
YGNvbnNvbGUuY291bnRSZXNldGAgYW5kIGBjb25zb2xlLnRpbWVMb2dgLgorCisgICAgICAgIFJl
bmFtZSBgdGl0bGVgIHRvIGBsYWJlbGAgZm9yIGBjb25zb2xlLnRpbWVgLCBgY29uc29sZS50aW1l
TG9nYCwgYW5kIGBjb25zb2xlLlRpbWVFbmRgIHRvCisgICAgICAgIGJldHRlciBtYXRjaCB0aGUg
c3BlYy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFy
YW1ldGVycy5qczoKKwogMjAxOS0wNi0yNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTjogRWxlbWVudHM6IHRoZSBm
b3JjZWQgcHNldWRvLWNsYXNzIGluZGljYXRvciBpc24ndCB2aXNpYmxlIHdoZW4gaG92ZXJpbmcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5j
cHAKaW5kZXggZjUwMWUxMDE3NmVkMDBmMTMzNGFhYjE5ZGZkODk4ZTFkZGMzNDA3OC4uYzRiMjYx
NWJjNjMxNmYyMzBkOTE0ZDgwZGQ4ZDdiNGY2NTFjMDY3NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTgyLDYgKzgyLDI0
IEBAIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxlCiAgICAgfQogfQogCitDb25zb2xlTWVzc2FnZTo6
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1l
c3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWY8U2NyaXB0QXJndW1l
bnRzPiYmIGFyZ3VtZW50cywgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiBjYWxsU3RhY2ssIHVuc2ln
bmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCisgICAgOiBtX3NvdXJjZShzb3VyY2UpCisgICAg
LCBtX3R5cGUodHlwZSkKKyAgICAsIG1fbGV2ZWwobGV2ZWwpCisgICAgLCBtX21lc3NhZ2UobWVz
c2FnZSkKKyAgICAsIG1fYXJndW1lbnRzKFdURk1vdmUoYXJndW1lbnRzKSkKKyAgICAsIG1fY2Fs
bFN0YWNrKFdURk1vdmUoY2FsbFN0YWNrKSkKKyAgICAsIG1fdXJsKCkKKyAgICAsIG1fcmVxdWVz
dElkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKHJlcXVlc3RJZGVudGlmaWVyKSkKK3sK
KyAgICBjb25zdCBTY3JpcHRDYWxsRnJhbWUqIGZyYW1lID0gbV9jYWxsU3RhY2sgPyBtX2NhbGxT
dGFjay0+Zmlyc3ROb25OYXRpdmVDYWxsRnJhbWUoKSA6IG51bGxwdHI7CisgICAgaWYgKGZyYW1l
KSB7CisgICAgICAgIG1fdXJsID0gZnJhbWUtPnNvdXJjZVVSTCgpOworICAgICAgICBtX2xpbmUg
PSBmcmFtZS0+bGluZU51bWJlcigpOworICAgICAgICBtX2NvbHVtbiA9IGZyYW1lLT5jb2x1bW5O
dW1iZXIoKTsKKyAgICB9Cit9CisKIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzLCBK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiAg
ICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAgLCBtX3R5cGUodHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAppbmRleCAwYTkyZjViNDlm
ZGNlOGYwYzExMjVkYjZkZjJjOGFmZDhjNTRmZjgwLi43YjlkMGJjZjdiOWU3ODQ2OTc0ZGE2ZjQy
MTI2MmUzZmQxN2MwNWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9Db25zb2xlTWVzc2FnZS5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICBDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAg
ICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNpZ25lZCBsaW5l
LCB1bnNpZ25lZCBjb2x1bW4sIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxv
bmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJl
ZjxTY3JpcHRDYWxsU3RhY2s+JiYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAw
KTsKKyAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYsIFJl
ZjxTY3JpcHRDYWxsU3RhY2s+JiYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAw
KTsKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYsIEpT
Qzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIg
PSAwKTsKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVz
c2FnZUxldmVsLCBWZWN0b3I8SlNPTkxvZ1ZhbHVlPiYmLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2ln
bmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICB+Q29uc29sZU1lc3NhZ2UoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcAppbmRleCAzNzk1ZjViMTdlZGUyNjMyZjgzYmRl
ZDQ0MjU4MWFmZTQ3OWZlYjlmLi44MmJlM2JiYjQ0Y2I2YzU3NzZiOGVjZjdmYTBjOTQwZDVkNWE1
ODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFs
T2JqZWN0Q29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwCkBAIC03MCwxNCArNzAsMTQgQEAg
dm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExldmVs
KE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3MKICAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRv
Q29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpD
b25zb2xlQVBJLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgV1RGTW92ZShhcmd1bWVudHMpLCBleGVj
KSk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojpjb3VudChFeGVjU3Rh
dGUqIGV4ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBKU0dsb2Jh
bE9iamVjdENvbnNvbGVDbGllbnQ6OmNvdW50KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
JiBsYWJlbCkKIHsKLSAgICBtX2NvbnNvbGVBZ2VudC0+Y291bnQoZXhlYywgV1RGTW92ZShhcmd1
bWVudHMpKTsKKyAgICBtX2NvbnNvbGVBZ2VudC0+Y291bnQoZXhlYywgbGFiZWwpOwogfQogCi12
b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6Y291bnRSZXNldChFeGVjU3RhdGUqIGV4
ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBKU0dsb2JhbE9iamVj
dENvbnNvbGVDbGllbnQ6OmNvdW50UmVzZXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcm
IGxhYmVsKQogewotICAgIG1fY29uc29sZUFnZW50LT5jb3VudFJlc2V0KGV4ZWMsIFdURk1vdmUo
YXJndW1lbnRzKSk7CisgICAgbV9jb25zb2xlQWdlbnQtPmNvdW50UmVzZXQoZXhlYywgbGFiZWwp
OwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6cHJvZmlsZShKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCkBAIC0xNTMsMTkgKzE1MywxOSBAQCB2b2lk
IEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6dGFrZUhlYXBTbmFwc2hvdChKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IFN0cmluZwogICAgIG1fY29uc29sZUFnZW50LT50YWtlSGVhcFNuYXBzaG90
KHRpdGxlKTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnRpbWUoRXhl
Y1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xl
Q2xpZW50Ojp0aW1lKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAg
ICBtX2NvbnNvbGVBZ2VudC0+c3RhcnRUaW1pbmcodGl0bGUpOworICAgIG1fY29uc29sZUFnZW50
LT5zdGFydFRpbWluZyhleGVjLCBsYWJlbCk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50Ojp0aW1lTG9nKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxT
Y3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVD
bGllbnQ6OnRpbWVMb2coRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8
U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKLSAgICBtX2NvbnNvbGVBZ2VudC0+bG9n
VGltaW5nKHRpdGxlLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIG1fY29uc29sZUFnZW50LT5s
b2dUaW1pbmcoZXhlYywgbGFiZWwsIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CiAKLXZvaWQgSlNH
bG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0aW1lRW5kKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U3RyaW5nJiB0aXRsZSkKK3ZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0aW1lRW5k
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBtX2NvbnNvbGVB
Z2VudC0+c3RvcFRpbWluZyh0aXRsZSwgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShl
eGVjLCAxKSk7CisgICAgbV9jb25zb2xlQWdlbnQtPnN0b3BUaW1pbmcoZXhlYywgbGFiZWwpOwog
fQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6dGltZVN0YW1wKEV4ZWNTdGF0
ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaAppbmRl
eCBiNzVjNjZkMjBmZGRjMGYzZGZiZTIzYzdmMWM5YzJjNTA5M2JlMGY1Li40MTEzZDYwNjY1MDlj
MDAwMGIxOTJkNTUyNjEyNDc2MTM2NWVhZDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmgK
QEAgLTQ5LDE0ICs0OSwxNCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIG1lc3Nh
Z2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0
YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb3VudChK
U0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgY291bnRSZXNldChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92
ZXJyaWRlOworICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxh
YmVsKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvdW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBTdHJpbmcmIGxhYmVsKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGUoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGVFbmQo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lk
IHRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBv
dmVycmlkZTsKLSAgICB2b2lkIHRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRp
dGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHRpbWVMb2coSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmIHRpdGxlLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykgb3ZlcnJpZGU7
Ci0gICAgdm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCB0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBs
YWJlbCkgb3ZlcnJpZGU7CisgICAgdm9pZCB0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCB0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWY8U2NyaXB0QXJndW1lbnRz
PiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHJlY29yZChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3Jp
cHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVjb3JkRW5kKEpTQzo6RXhlY1N0
YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29u
c29sZUFnZW50LmNwcAppbmRleCA3MmZlN2I0NmQxNmU1MThhZTc1MWIxNjFmMTFhZTRiNGYyZmE3
MDlkLi43ZWRiYzgwNjYwZjM2ZDZhODFhYTkxZmI4ZmEzZmRkZGVkYWU2ZjI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xl
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTEyNiw2NyArMTI2LDcxIEBAIHZvaWQgSW5zcGVj
dG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6dW5pcXVlX3B0cjxDb25z
b2xlTWVzc2FnZT4KICAgICBhZGRDb25zb2xlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0YXJ0VGltaW5nKGNvbnN0IFN0cmluZyYg
dGl0bGUpCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c3RhcnRUaW1pbmcoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7CiAgICAgaWYgKCFtX2luamVjdGVk
U2NyaXB0TWFuYWdlci5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRldmVsb3BlckV4dHJhc0VuYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKCF0aXRsZS5pc051bGwoKSk7Ci0g
ICAgaWYgKHRpdGxlLmlzTnVsbCgpKQorICAgIEFTU0VSVCghbGFiZWwuaXNOdWxsKCkpOworICAg
IGlmIChsYWJlbC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byByZXN1bHQg
PSBtX3RpbWVzLmFkZCh0aXRsZSwgTW9ub3RvbmljVGltZTo6bm93KCkpOworICAgIGF1dG8gcmVz
dWx0ID0gbV90aW1lcy5hZGQobGFiZWwsIE1vbm90b25pY1RpbWU6Om5vdygpKTsKIAogICAgIGlm
ICghcmVzdWx0LmlzTmV3RW50cnkpIHsKICAgICAgICAgLy8gRklYTUU6IFNlbmQgYW4gZW51bSB0
byB0aGUgZnJvbnRlbmQgZm9yIGxvY2FsaXphdGlvbj8KLSAgICAgICAgU3RyaW5nIHdhcm5pbmcg
PSBtYWtlU3RyaW5nKCJUaW1lciBcIiIsIHRpdGxlLCAiXCIgYWxyZWFkeSBleGlzdHMiKTsKLSAg
ICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdl
PihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNzYWdl
TGV2ZWw6Oldhcm5pbmcsIHdhcm5pbmcpKTsKKyAgICAgICAgU3RyaW5nIHdhcm5pbmcgPSBtYWtl
U3RyaW5nKCJUaW1lciBcIiIsIGxhYmVsLCAiXCIgYWxyZWFkeSBleGlzdHMiKTsKKyAgICAgICAg
YWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNz
YWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNzYWdlTGV2ZWw6
Oldhcm5pbmcsIHdhcm5pbmcsIGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoZXhlYywg
MSkpKTsKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojpsb2dUaW1pbmco
Y29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2
b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6bG9nVGltaW5nKEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykK
IHsKICAgICBpZiAoIW1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluc3BlY3RvckVudmlyb25tZW50
KCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NF
UlQoIXRpdGxlLmlzTnVsbCgpKTsKLSAgICBpZiAodGl0bGUuaXNOdWxsKCkpCisgICAgQVNTRVJU
KCFsYWJlbC5pc051bGwoKSk7CisgICAgaWYgKGxhYmVsLmlzTnVsbCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBhdXRvIGl0ID0gbV90aW1lcy5maW5kKHRpdGxlKTsKKyAgICBhdXRvIGNhbGxT
dGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoZXhlYywgMSk7CisKKyAgICBh
dXRvIGl0ID0gbV90aW1lcy5maW5kKGxhYmVsKTsKICAgICBpZiAoaXQgPT0gbV90aW1lcy5lbmQo
KSkgewogICAgICAgICAvLyBGSVhNRTogU2VuZCBhbiBlbnVtIHRvIHRoZSBmcm9udGVuZCBmb3Ig
bG9jYWxpemF0aW9uPwotICAgICAgICBTdHJpbmcgd2FybmluZyA9IG1ha2VTdHJpbmcoIlRpbWVy
IFwiIiwgdGl0bGUsICJcIiBkb2VzIG5vdCBleGlzdCIpOwotICAgICAgICBhZGRNZXNzYWdlVG9D
b25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNv
bnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpUaW1pbmcsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgd2Fy
bmluZykpOworICAgICAgICBTdHJpbmcgd2FybmluZyA9IG1ha2VTdHJpbmcoIlRpbWVyIFwiIiwg
bGFiZWwsICJcIiBkb2VzIG5vdCBleGlzdCIpOworICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xl
KHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVB
UEksIE1lc3NhZ2VUeXBlOjpUaW1pbmcsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgd2FybmluZywg
V1RGTW92ZShjYWxsU3RhY2spKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBNb25v
dG9uaWNUaW1lIHN0YXJ0VGltZSA9IGl0LT52YWx1ZTsKICAgICBTZWNvbmRzIGVsYXBzZWQgPSBN
b25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IG1h
a2VTdHJpbmcodGl0bGUsICI6ICIsIEZvcm1hdHRlZE51bWJlcjo6Zml4ZWRXaWR0aChlbGFwc2Vk
Lm1pbGxpc2Vjb25kcygpLCAzKSwgIm1zIik7Ci0gICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6
Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBN
ZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLCBXVEZNb3Zl
KGFyZ3VtZW50cykpKTsKKyAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcobGFiZWwsICI6
ICIsIEZvcm1hdHRlZE51bWJlcjo6Zml4ZWRXaWR0aChlbGFwc2VkLm1pbGxpc2Vjb25kcygpLCAz
KSwgIm1zIik7CisgICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNv
bGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGltaW5n
LCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLCBXVEZNb3ZlKGFyZ3VtZW50cyksIFdURk1v
dmUoY2FsbFN0YWNrKSkpOwogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c3RvcFRp
bWluZyhjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiYmIGNhbGxTdGFj
aykKK3ZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzdG9wVGltaW5nKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewogICAgIGlmICghbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXIuaW5zcGVjdG9yRW52aXJvbm1lbnQoKS5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVCghdGl0bGUuaXNOdWxsKCkpOwotICAgIGlm
ICh0aXRsZS5pc051bGwoKSkKKyAgICBBU1NFUlQoIWxhYmVsLmlzTnVsbCgpKTsKKyAgICBpZiAo
bGFiZWwuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gaXQgPSBtX3RpbWVz
LmZpbmQodGl0bGUpOworICAgIGF1dG8gY2FsbFN0YWNrID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNr
Rm9yQ29uc29sZShleGVjLCAxKTsKKworICAgIGF1dG8gaXQgPSBtX3RpbWVzLmZpbmQobGFiZWwp
OwogICAgIGlmIChpdCA9PSBtX3RpbWVzLmVuZCgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBTZW5k
IGFuIGVudW0gdG8gdGhlIGZyb250ZW5kIGZvciBsb2NhbGl6YXRpb24/Ci0gICAgICAgIFN0cmlu
ZyB3YXJuaW5nID0gbWFrZVN0cmluZygiVGltZXIgXCIiLCB0aXRsZSwgIlwiIGRvZXMgbm90IGV4
aXN0Iik7Ci0gICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25z
b2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlRpbWlu
ZywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCB3YXJuaW5nKSk7CisgICAgICAgIFN0cmluZyB3YXJu
aW5nID0gbWFrZVN0cmluZygiVGltZXIgXCIiLCBsYWJlbCwgIlwiIGRvZXMgbm90IGV4aXN0Iik7
CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVz
c2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlRpbWluZywgTWVz
c2FnZUxldmVsOjpXYXJuaW5nLCB3YXJuaW5nLCBXVEZNb3ZlKGNhbGxTdGFjaykpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lID0gaXQtPnZh
bHVlOwogICAgIFNlY29uZHMgZWxhcHNlZCA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRU
aW1lOwotICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZyh0aXRsZSwgIjogIiwgRm9ybWF0
dGVkTnVtYmVyOjpmaXhlZFdpZHRoKGVsYXBzZWQubWlsbGlzZWNvbmRzKCksIDMpLCAibXMiKTsK
KyAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcobGFiZWwsICI6ICIsIEZvcm1hdHRlZE51
bWJlcjo6Zml4ZWRXaWR0aChlbGFwc2VkLm1pbGxpc2Vjb25kcygpLCAzKSwgIm1zIik7CiAgICAg
YWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNz
YWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNzYWdlTGV2ZWw6
OkRlYnVnLCBtZXNzYWdlLCBXVEZNb3ZlKGNhbGxTdGFjaykpKTsKIAogICAgIG1fdGltZXMucmVt
b3ZlKGl0KTsKQEAgLTIwOCw1MyArMjEyLDMxIEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50
Ojp0YWtlSGVhcFNuYXBzaG90KGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgbV9mcm9udGVuZERp
c3BhdGNoZXItPmhlYXBTbmFwc2hvdCh0aW1lc3RhbXAsIHNuYXBzaG90RGF0YSwgdGl0bGUuaXNF
bXB0eSgpID8gbnVsbHB0ciA6ICZ0aXRsZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFn
ZW50OjpnZXRDb3VudGVyTGFiZWwoUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMsIFN0
cmluZyYgdGl0bGUsIFN0cmluZyYgaWRlbnRpZmllcikKLXsKLSAgICBpZiAoIWFyZ3VtZW50cy0+
YXJndW1lbnRDb3VudCgpKSB7Ci0gICAgICAgIC8vICdAJyBwcmVmaXggZm9yIGVuZ2luZSBnZW5l
cmF0ZWQgbGFiZWxzLgotICAgICAgICB0aXRsZSA9ICJHbG9iYWwiX3M7Ci0gICAgICAgIGlkZW50
aWZpZXIgPSBtYWtlU3RyaW5nKCdAJywgdGl0bGUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8v
ICcjJyBwcmVmaXggZm9yIHVzZXIgbGFiZWxzLgotICAgICAgICBhcmd1bWVudHMtPmdldEZpcnN0
QXJndW1lbnRBc1N0cmluZyh0aXRsZSk7Ci0gICAgICAgIGlkZW50aWZpZXIgPSBtYWtlU3RyaW5n
KCcjJywgdGl0bGUpOwotICAgIH0KLX0KLQotdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmNv
dW50KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVu
dHMpCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7CiAgICAgaWYgKCFtX2luamVjdGVkU2NyaXB0TWFu
YWdlci5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIHRpdGxlOwotICAgIFN0cmluZyBpZGVudGlmaWVy
OwotICAgIGdldENvdW50ZXJMYWJlbChXVEZNb3ZlKGFyZ3VtZW50cyksIHRpdGxlLCBpZGVudGlm
aWVyKTsKLQotICAgIGF1dG8gcmVzdWx0ID0gbV9jb3VudHMuYWRkKGlkZW50aWZpZXIsIDEpOwor
ICAgIGF1dG8gcmVzdWx0ID0gbV9jb3VudHMuYWRkKGxhYmVsLCAxKTsKICAgICBpZiAoIXJlc3Vs
dC5pc05ld0VudHJ5KQogICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlICs9IDE7CiAKICAg
ICAvLyBGSVhNRTogV2ViIEluc3BlY3RvciBzaG91bGQgaGF2ZSBhIGJldHRlciBVSSBmb3IgY291
bnRlcnMsIGJ1dCBmb3Igbm93IHdlIGp1c3QgbG9nIGFuIHVwZGF0ZWQgY291bnRlciB2YWx1ZS4K
IAotICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZyh0aXRsZSwgIjogIiwgcmVzdWx0Lml0
ZXJhdG9yLT52YWx1ZSk7Ci0gICAgUmVmPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrID0gY3Jl
YXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShzdGF0ZSk7Ci0gICAgYWRkTWVzc2FnZVRvQ29u
c29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpDb25z
b2xlQVBJLCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLCBX
VEZNb3ZlKGNhbGxTdGFjaykpKTsKKyAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcobGFi
ZWwsICI6ICIsIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOworICAgIGFkZE1lc3NhZ2VUb0NvbnNv
bGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29s
ZUFQSSwgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpEZWJ1ZywgbWVzc2FnZSwgY3Jl
YXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShleGVjLCAxKSkpOwogfQogCi12b2lkIEluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6Y291bnRSZXNldChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3JpcHRB
cmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmNvdW50
UmVzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7CiAgICAg
aWYgKCFtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRldmVs
b3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIHRpdGxl
OwotICAgIFN0cmluZyBpZGVudGlmaWVyOwotICAgIGdldENvdW50ZXJMYWJlbChXVEZNb3ZlKGFy
Z3VtZW50cyksIHRpdGxlLCBpZGVudGlmaWVyKTsKLQotICAgIGF1dG8gaXQgPSBtX2NvdW50cy5m
aW5kKGlkZW50aWZpZXIpOworICAgIGF1dG8gaXQgPSBtX2NvdW50cy5maW5kKGxhYmVsKTsKICAg
ICBpZiAoaXQgPT0gbV9jb3VudHMuZW5kKCkpIHsKICAgICAgICAgLy8gRklYTUU6IFNlbmQgYW4g
ZW51bSB0byB0aGUgZnJvbnRlbmQgZm9yIGxvY2FsaXphdGlvbj8KLSAgICAgICAgU3RyaW5nIHdh
cm5pbmcgPSBtYWtlU3RyaW5nKCJDb3VudGVyIFwiIiwgdGl0bGUsICJcIiBkb2VzIG5vdCBleGlz
dCIpOwotICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29s
ZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpMb2csIE1l
c3NhZ2VMZXZlbDo6V2FybmluZywgd2FybmluZykpOworICAgICAgICBTdHJpbmcgd2FybmluZyA9
IG1ha2VTdHJpbmcoIkNvdW50ZXIgXCIiLCBsYWJlbCwgIlwiIGRvZXMgbm90IGV4aXN0Iik7Cisg
ICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2Fn
ZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxl
dmVsOjpXYXJuaW5nLCB3YXJuaW5nLCBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4
ZWMsIDEpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFn
ZW50LmgKaW5kZXggZDlmNjIzNTczYTFmYmIxNjEzM2E3N2RhOTNhNDgwYzY2ZDczN2JiMS4uNTUz
ODdjNDk3ZWFlOWIxN2I5MjVjYTcxM2Y2ZWNlODNkNGE4NGI3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29u
c29sZUFnZW50LmgKQEAgLTcwLDE4ICs3MCwxNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZE1l
c3NhZ2VUb0NvbnNvbGUoc3RkOjp1bmlxdWVfcHRyPENvbnNvbGVNZXNzYWdlPik7CiAKLSAgICB2
b2lkIHN0YXJ0VGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHZvaWQgbG9nVGltaW5n
KGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpOwotICAgIHZvaWQg
c3RvcFRpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiYmKTsK
KyAgICB2b2lkIHN0YXJ0VGltaW5nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJl
bCk7CisgICAgdm9pZCBsb2dUaW1pbmcoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxh
YmVsLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICB2b2lkIHN0b3BUaW1pbmcoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKICAgICB2b2lkIHRha2VIZWFwU25hcHNo
b3QoY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSos
IFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpOwotICAgIHZvaWQgY291bnRSZXNldChKU0M6OkV4ZWNT
dGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpOworICAgIHZvaWQgY291bnQoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKyAgICB2b2lkIGNvdW50UmVzZXQoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKIAogICAgIHZvaWQgZ2V0TG9nZ2luZ0No
YW5uZWxzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNvbnNv
bGU6OkNoYW5uZWw+PiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0TG9nZ2luZ0NoYW5uZWxMZXZl
bChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2hhbm5lbCwgY29uc3QgU3RyaW5nJiBsZXZl
bCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIGdldENvdW50ZXJMYWJlbChSZWY8
U2NyaXB0QXJndW1lbnRzPiYmLCBTdHJpbmcmIHRpdGxlLCBTdHJpbmcmIGlkZW50aWZpZXIpOwog
ICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPENvbnNvbGVNZXNzYWdl
Pik7CiAKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXImIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVu
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5oCmluZGV4
IDQ1NzA4MGI4MWQzODMwMzlhMzNjNTliY2EwZTIzYmNkNTlhOTdlMDMuLjE5OGVmZjNhMzZmMjBj
MTc3MTU3MzU4MjE0NjJmMTM4MGU3NTUxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db25zb2xlQ2xpZW50LmgKQEAgLTU1LDE0ICs1NSwxNCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBncm91cEVuZChFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+
JiYpOwogCiAgICAgdmlydHVhbCB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0
QXJndW1lbnRzPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvdW50KEV4ZWNTdGF0ZSosIFJl
ZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBj
b3VudFJlc2V0KEV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3VudChFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxh
YmVsKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvdW50UmVzZXQoRXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiBsYWJlbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwcm9maWxlKEV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcHJvZmlsZUVuZChF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRh
a2VIZWFwU25hcHNob3QoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCB0aW1lKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgdGltZUxvZyhFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgdGltZUVuZChFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHRpbWUoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCB0aW1lTG9nKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwsIFJl
ZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0
aW1lRW5kKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgdGltZVN0YW1wKEV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50
cz4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmQoRXhlY1N0YXRlKiwgUmVmPEluc3Bl
Y3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY29yZEVu
ZChFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKaW5kZXgg
OGM4MWE5NzAyNWVmZWY5YTgxM2YyNTk0NGM1OWJjMmE4NWEyODliNi4uN2Y0Y2Y3ZTQ2M2ZlYzli
M2Q1NTYxNzZjYzM1M2NiOGFiMDIwZDhiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKQEAgLTM0LDYgKzM0LDE4IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCitzdGF0aWMgU3RyaW5nIHZhbHVlT3JEZWZhdWx0TGFiZWxTdHJpbmcoRXhlY1N0
YXRlKiBleGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAgICAg
ICByZXR1cm4gImRlZmF1bHQiX3M7CisKKyAgICBhdXRvIHZhbHVlID0gZXhlYy0+YXJndW1lbnQo
MCk7CisgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIHJldHVybiAiZGVmYXVs
dCJfczsKKworICAgIHJldHVybiB2YWx1ZS50b1dURlN0cmluZyhleGVjKTsKK30KKwogU1RBVElD
X0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKENvbnNvbGVPYmplY3QpOwogCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRGVidWcoRXhl
Y1N0YXRlKik7CkBAIC0yMTksMjEgKzIzMSwyOSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KEV4ZWNTdGF0ZSogZXhlYykKIAogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NvdW50KEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRShleGVjLT52bSgpKTsKKyAgICBhdXRvKiBjbGllbnQgPSBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIGNs
aWVudC0+Y291bnQoZXhlYywgSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywg
MCkpOworICAgIGF1dG8gbGFiZWwgPSB2YWx1ZU9yRGVmYXVsdExhYmVsU3RyaW5nKGV4ZWMpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworCisgICAg
Y2xpZW50LT5jb3VudChleGVjLCBsYWJlbCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc29sZVByb3RvRnVuY0NvdW50UmVzZXQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIENvbnNv
bGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y29uc29sZUNs
aWVudCgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGV4ZWMtPnZtKCkp
OworICAgIGF1dG8qIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y29uc29s
ZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgY2xpZW50LT5jb3VudFJlc2V0KGV4ZWMsIEluc3Bl
Y3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDApKTsKKyAgICBhdXRvIGxhYmVsID0g
dmFsdWVPckRlZmF1bHRMYWJlbFN0cmluZyhleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKworICAgIGNsaWVudC0+Y291bnRSZXNldChleGVj
LCBsYWJlbCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IApAQCAtMzAwLDcwICszMjAsNDUgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25hcHNob3QoRXhlY1N0YXRlKgogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBTdHJpbmcgdmFs
dWVPckRlZmF1bHRMYWJlbFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCi17
Ci0gICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIHJldHVybiAiZGVmYXVsdCJf
czsKLSAgICByZXR1cm4gdmFsdWUudG9XVEZTdHJpbmcoZXhlYyk7Ci19Ci0KIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRShleGVjLT52bSgpKTsKKyAgICBhdXRvKiBjbGllbnQgPSBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVu
dCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAg
IFN0cmluZyB0aXRsZTsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAg
ICAgdGl0bGUgPSAiZGVmYXVsdCJfczsKLSAgICBlbHNlIHsKLSAgICAgICAgdGl0bGUgPSB2YWx1
ZU9yRGVmYXVsdExhYmVsU3RyaW5nKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApKTsKLSAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgfQorICAg
IGF1dG8gbGFiZWwgPSB2YWx1ZU9yRGVmYXVsdExhYmVsU3RyaW5nKGV4ZWMpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCi0gICAgY2xpZW50LT50
aW1lKGV4ZWMsIHRpdGxlKTsKKyAgICBjbGllbnQtPnRpbWUoZXhlYywgbGFiZWwpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lTG9nKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRShleGVjLT52bSgpKTsKKyAgICBhdXRvKiBjbGllbnQgPSBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVu
dCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAg
IFN0cmluZyB0aXRsZTsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAg
ICAgdGl0bGUgPSAgImRlZmF1bHQiX3M7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHRpdGxlID0gdmFs
dWVPckRlZmF1bHRMYWJlbFN0cmluZyhleGVjLCBleGVjLT5hcmd1bWVudCgwKSk7Ci0gICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIH0KKyAg
ICBhdXRvIGxhYmVsID0gdmFsdWVPckRlZmF1bHRMYWJlbFN0cmluZyhleGVjKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAotICAgIGNsaWVudC0+
dGltZUxvZyhleGVjLCB0aXRsZSwgSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhl
YywgMSkpOworICAgIGNsaWVudC0+dGltZUxvZyhleGVjLCBsYWJlbCwgSW5zcGVjdG9yOjpjcmVh
dGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnNvbGVQcm90b0Z1bmNUaW1lRW5kKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
LSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkt
PmNvbnNvbGVDbGllbnQoKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShl
eGVjLT52bSgpKTsKKyAgICBhdXRvKiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIFN0cmluZyB0aXRsZTsKLSAgICBp
ZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAgICAgdGl0bGUgPSAgImRlZmF1bHQi
X3M7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHRpdGxlID0gdmFsdWVPckRlZmF1bHRMYWJlbFN0cmlu
ZyhleGVjLCBleGVjLT5hcmd1bWVudCgwKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIH0KKyAgICBhdXRvIGxhYmVsID0gdmFsdWVP
ckRlZmF1bHRMYWJlbFN0cmluZyhleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAotICAgIGNsaWVudC0+dGltZUVuZChleGVjLCB0aXRsZSk7
CisgICAgY2xpZW50LT50aW1lRW5kKGV4ZWMsIGxhYmVsKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDhjZmU4YTc1YTM2YTBm
ZjAyZDIyNTFjOGI2YmVhZDNkMzZjMWI3ZWEuLmZiYjhhZjRhODJlYTBmZGY3OTJlNGExZmQzMTBm
NzljOWQ2MDQ1MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC04NTEsMTYgKzg1MSwxNiBAQCB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYgaW5zdAogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmNvbnNvbGVDb3VudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50
cywgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50
cykKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEpTQzo6RXhlY1N0YXRlKiBzdGF0
ZSwgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBpZiAoV2ViQ29uc29sZUFnZW50KiBjb25z
b2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNvbGVBZ2VudCgpKQotICAgICAg
ICBjb25zb2xlQWdlbnQtPmNvdW50KHN0YXRlLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGlm
IChhdXRvKiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNvbGVBZ2Vu
dCgpKQorICAgICAgICBjb25zb2xlQWdlbnQtPmNvdW50KHN0YXRlLCBsYWJlbCk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRSZXNldEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgSlNDOjpFeGVjU3RhdGUqIHN0YXRl
LCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpjb25zb2xlQ291bnRSZXNldEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5z
dHJ1bWVudGluZ0FnZW50cywgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBjb25zdCBTdHJpbmcmIGxh
YmVsKQogewotICAgIGlmIChXZWJDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+Y291
bnRSZXNldChzdGF0ZSwgV1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBpZiAoYXV0byogY29uc29s
ZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQoKSkKKyAgICAgICAg
Y29uc29sZUFnZW50LT5jb3VudFJlc2V0KHN0YXRlLCBsYWJlbCk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp0YWtlSGVhcFNuYXBzaG90SW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIHRpdGxlKQpAQCAtODY5LDUz
ICs4NjksNTMgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnRha2VIZWFwU25hcHNo
b3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW0KICAgICAgICAgY29uc29sZUFnZW50
LT50YWtlSGVhcFNuYXBzaG90KHRpdGxlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OnN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1
bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHRpdGxlKQordm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lLCBKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKICAgICBpZiAoIWluc3RydW1lbnRp
bmdBZ2VudHMuaW5zcGVjdG9yRW52aXJvbm1lbnQoKS5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1l
bGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkp
Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPnRpbWUoZnJhbWUsIHRpdGxlKTsKLSAgICBpZiAoV2Vi
Q29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNv
bGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPnN0YXJ0VGltaW5nKHRpdGxlKTsKKyAg
ICBpZiAoYXV0byogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9y
VGltZWxpbmVBZ2VudCgpKQorICAgICAgICB0aW1lbGluZUFnZW50LT50aW1lKGZyYW1lLCBsYWJl
bCk7CisgICAgaWYgKGF1dG8qIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2Vi
Q29uc29sZUFnZW50KCkpCisgICAgICAgIGNvbnNvbGVBZ2VudC0+c3RhcnRUaW1pbmcoZXhlYywg
bGFiZWwpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xl
VGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25z
dCBTdHJpbmcmIHRpdGxlKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29u
c29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7CiAgICAgaWYgKCFp
bnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckVudmlyb25tZW50KCkuZGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoV2ViQ29uc29sZUFnZW50KiBj
b25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNvbGVBZ2VudCgpKQotICAg
ICAgICBjb25zb2xlQWdlbnQtPnN0YXJ0VGltaW5nKHRpdGxlKTsKKyAgICBpZiAoYXV0byogY29u
c29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQoKSkKKyAgICAg
ICAgY29uc29sZUFnZW50LT5zdGFydFRpbWluZyhleGVjLCBsYWJlbCk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8SW5z
cGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmxvZ0NvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGlu
c3RydW1lbnRpbmdBZ2VudHMsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxh
YmVsLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewogICAg
IGlmICghaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRldmVsb3Bl
ckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKFdlYkNvbnNvbGVB
Z2VudCogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQo
KSkKLSAgICAgICAgY29uc29sZUFnZW50LT5sb2dUaW1pbmcodGl0bGUsIFdURk1vdmUoYXJndW1l
bnRzKSk7CisgICAgaWYgKGF1dG8qIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMu
d2ViQ29uc29sZUFnZW50KCkpCisgICAgICAgIGNvbnNvbGVBZ2VudC0+bG9nVGltaW5nKGV4ZWMs
IGxhYmVsLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6c3RvcENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPFNj
cmlwdENhbGxTdGFjaz4mJiBzdGFjaykKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpz
dG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0Fn
ZW50cywgRnJhbWUmIGZyYW1lLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBs
YWJlbCkKIHsKICAgICBpZiAoIWluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRW52aXJvbm1l
bnQoKS5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
IChXZWJDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMud2Vi
Q29uc29sZUFnZW50KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+c3RvcFRpbWluZyh0aXRsZSwg
V1RGTW92ZShzdGFjaykpOwotICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGlu
ZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCi0g
ICAgICAgIHRpbWVsaW5lQWdlbnQtPnRpbWVFbmQoZnJhbWUsIHRpdGxlKTsKKyAgICBpZiAoYXV0
byogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQoKSkK
KyAgICAgICAgY29uc29sZUFnZW50LT5zdG9wVGltaW5nKGV4ZWMsIGxhYmVsKTsKKyAgICBpZiAo
YXV0byogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yVGltZWxp
bmVBZ2VudCgpKQorICAgICAgICB0aW1lbGluZUFnZW50LT50aW1lRW5kKGZyYW1lLCBsYWJlbCk7
CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZ0lt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgU3RyaW5n
JiB0aXRsZSwgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFjaykKK3ZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYg
aW5zdHJ1bWVudGluZ0FnZW50cywgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYg
bGFiZWwpCiB7CiAgICAgaWYgKCFpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckVudmlyb25t
ZW50KCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAoV2ViQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndl
YkNvbnNvbGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPnN0b3BUaW1pbmcodGl0bGUs
IFdURk1vdmUoc3RhY2spKTsKKyAgICBpZiAoYXV0byogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQoKSkKKyAgICAgICAgY29uc29sZUFnZW50LT5zdG9w
VGltaW5nKGV4ZWMsIGxhYmVsKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmNvbnNvbGVUaW1lU3RhbXBJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdB
Z2VudHMsIEZyYW1lJiBmcmFtZSwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgKaW5kZXggZDUzNjhjMTJlMTNkYTExOTE4NDM4ODY5MDQ2ZmMwYzViZDVmOGQ5Ni4uYjJkMTVj
ZTg2ZGRhZDZkY2JiY2VlYjQ0MmE1YzkyNmM2NGNjM2ZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMjIxLDE4ICsy
MjEsMTggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFn
ZSYsIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7CiAgICAgc3Rh
dGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShXb3JrZXJHbG9iYWxTY29wZSYsIHN0ZDo6dW5p
cXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7CiAKLSAgICBzdGF0aWMgdm9pZCBj
b25zb2xlQ291bnQoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0
QXJndW1lbnRzPiYmKTsKLSAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnQoV29ya2VyR2xvYmFs
U2NvcGUmLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4m
Jik7Ci0gICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50UmVzZXQoUGFnZSYsIEpTQzo6RXhlY1N0
YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKLSAgICBzdGF0aWMgdm9p
ZCBjb25zb2xlQ291bnRSZXNldChXb3JrZXJHbG9iYWxTY29wZSYsIEpTQzo6RXhlY1N0YXRlKiwg
UmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICBzdGF0aWMgdm9pZCBjb25z
b2xlQ291bnQoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7Cisg
ICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50KFdvcmtlckdsb2JhbFNjb3BlJiwgSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKyAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291
bnRSZXNldChQYWdlJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKyAg
ICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnRSZXNldChXb3JrZXJHbG9iYWxTY29wZSYsIEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CiAKICAgICBzdGF0aWMgdm9pZCB0YWtl
SGVhcFNuYXBzaG90KEZyYW1lJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgc3RhdGljIHZv
aWQgc3RhcnRDb25zb2xlVGltaW5nKEZyYW1lJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAg
c3RhdGljIHZvaWQgc3RhcnRDb25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSk7Ci0gICAgc3RhdGljIHZvaWQgbG9nQ29uc29sZVRpbWluZyhGcmFtZSYs
IGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7
Ci0gICAgc3RhdGljIHZvaWQgbG9nQ29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYsIGNv
bnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7Ci0g
ICAgc3RhdGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmcoRnJhbWUmLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwotICAgIHN0YXRpYyB2b2lk
IHN0b3BDb25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKKyAgICBzdGF0aWMgdm9pZCBz
dGFydENvbnNvbGVUaW1pbmcoRnJhbWUmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYg
bGFiZWwpOworICAgIHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxT
Y29wZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CisgICAgc3RhdGlj
IHZvaWQgbG9nQ29uc29sZVRpbWluZyhGcmFtZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJiBsYWJlbCwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICBzdGF0
aWMgdm9pZCBsb2dDb25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiwgSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+
JiYpOworICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nKEZyYW1lJiwgSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKyAgICBzdGF0aWMgdm9pZCBzdG9wQ29uc29s
ZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiBsYWJlbCk7CiAgICAgc3RhdGljIHZvaWQgY29uc29sZVRpbWVTdGFtcChGcmFtZSYsIFJlZjxJ
bnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CiAgICAgc3RhdGljIHZvaWQgc3RhcnRQcm9m
aWxpbmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAg
c3RhdGljIHZvaWQgc3RvcFByb2ZpbGluZyhQYWdlJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmIHRpdGxlKTsKQEAgLTQwNSwxNCArNDA1LDE0IEBAIHByaXZhdGU6CiAKICAgICBzdGF0
aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgc3Rk
Ojp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+KTsKIAotICAgIHN0YXRpYyB2
b2lkIGNvbnNvbGVDb3VudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0YXRl
KiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKLSAgICBzdGF0aWMgdm9pZCBj
b25zb2xlQ291bnRSZXNldEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0YXRl
KiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICBzdGF0aWMgdm9pZCBj
b25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IFN0cmluZyYgbGFiZWwpOworICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVDb3VudFJlc2V0SW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxh
YmVsKTsKICAgICBzdGF0aWMgdm9pZCB0YWtlSGVhcFNuYXBzaG90SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgc3RhdGljIHZvaWQgc3RhcnRDb25z
b2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmLCBjb25zdCBTdHJpbmcm
IHRpdGxlKTsKLSAgICBzdGF0aWMgdm9pZCBzdGFydENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKLSAgICBzdGF0aWMgdm9pZCBsb2dD
b25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKLSAgICBzdGF0aWMgdm9pZCBz
dG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEZyYW1lJiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKLSAgICBz
dGF0aWMgdm9pZCBzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGNv
bnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7Cisg
ICAgc3RhdGljIHZvaWQgc3RhcnRDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiwgRnJhbWUmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpOworICAgIHN0
YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CisgICAgc3RhdGljIHZvaWQgbG9n
Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJiBsYWJlbCwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsK
KyAgICBzdGF0aWMgdm9pZCBzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYsIEZyYW1lJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKyAgICBz
dGF0aWMgdm9pZCBzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CiAgICAgc3RhdGljIHZvaWQgY29u
c29sZVRpbWVTdGFtcEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEZyYW1lJiwgUmVmPEluc3Bl
Y3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKICAgICBzdGF0aWMgdm9pZCBzdGFydFByb2ZpbGlu
Z0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiB0aXRsZSk7CiAgICAgc3RhdGljIHZvaWQgc3RvcFByb2ZpbGluZ0ltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CkBAIC0xMzg3
LDI0ICsxMzg3LDI0IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRk
TWVzc2FnZVRvQ29uc29sZShXb3JrZXJHbG9iYWxTY29wZSYgd29yCiAgICAgYWRkTWVzc2FnZVRv
Q29uc29sZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdvcmtl
ckdsb2JhbFNjb3BlKSwgV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKLWlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFBhZ2UmIHBhZ2UsIEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykK
K2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFBhZ2Um
IHBhZ2UsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAg
ICBjb25zb2xlQ291bnRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpLCBzdGF0
ZSwgV1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBjb25zb2xlQ291bnRJbXBsKGluc3RydW1lbnRp
bmdBZ2VudHNGb3JQYWdlKHBhZ2UpLCBzdGF0ZSwgbGFiZWwpOwogfQogCi1pbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudChXb3JrZXJHbG9iYWxTY29wZSYg
d29ya2VyR2xvYmFsU2NvcGUsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgUmVmPEluc3BlY3Rvcjo6
U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxT
Y29wZSwgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewotICAg
IGNvbnNvbGVDb3VudEltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNjb3Bl
KHdvcmtlckdsb2JhbFNjb3BlKSwgc3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgY29u
c29sZUNvdW50SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUod29y
a2VyR2xvYmFsU2NvcGUpLCBzdGF0ZSwgbGFiZWwpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudFJlc2V0KFBhZ2UmIHBhZ2UsIEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50
cykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50UmVz
ZXQoUGFnZSYgcGFnZSwgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBjb25zdCBTdHJpbmcmIGxhYmVs
KQogewotICAgIGNvbnNvbGVDb3VudFJlc2V0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFn
ZShwYWdlKSwgc3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgY29uc29sZUNvdW50UmVz
ZXRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpLCBzdGF0ZSwgbGFiZWwpOwog
fQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudFJl
c2V0KFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwgSlNDOjpFeGVjU3RhdGUq
IHN0YXRlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQoraW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRSZXNldChXb3Jr
ZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwg
Y29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBjb25zb2xlQ291bnRSZXNldEltcGwoaW5zdHJ1
bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKSwgc3Rh
dGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgY29uc29sZUNvdW50UmVzZXRJbXBsKGluc3Ry
dW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSksIHN0
YXRlLCBsYWJlbCk7CiB9CiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
dGFrZUhlYXBTbmFwc2hvdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgdGl0bGUpCkBAIC0x
NDE0LDM3ICsxNDE0LDM3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
dGFrZUhlYXBTbmFwc2hvdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluCiAgICAgICAgIHRha2VI
ZWFwU25hcHNob3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCB0aXRsZSk7CiB9CiAKLWlubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5nKEZyYW1l
JiBmcmFtZSwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5nKEZyYW1lJiBmcmFtZSwgSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUo
ZnJhbWUpKQotICAgICAgICBzdGFydENvbnNvbGVUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5nQWdl
bnRzLCBmcmFtZSwgdGl0bGUpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0g
aW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgc3RhcnRDb25zb2xl
VGltaW5nSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUsIGV4ZWMsIGxhYmVsKTsKIH0K
IAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydENvbnNvbGVUaW1p
bmcoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBjb25zdCBTdHJpbmcmIHRp
dGxlKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydENvbnNvbGVU
aW1pbmcoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBzdGFydENvbnNvbGVUaW1pbmdJ
bXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxT
Y29wZSksIHRpdGxlKTsKKyAgICBzdGFydENvbnNvbGVUaW1pbmdJbXBsKGluc3RydW1lbnRpbmdB
Z2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSksIGV4ZWMsIGxhYmVs
KTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25zb2xl
VGltaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6
U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6bG9nQ29uc29sZVRpbWluZyhGcmFtZSYgZnJhbWUsIEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVu
dHM+JiYgYXJndW1lbnRzKQogewotICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKLSAgICAg
ICAgbG9nQ29uc29sZVRpbWluZ0ltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHRpdGxlLCBXVEZN
b3ZlKGFyZ3VtZW50cykpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5z
dHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgbG9nQ29uc29sZVRpbWlu
Z0ltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGV4ZWMsIGxhYmVsLCBXVEZNb3ZlKGFyZ3VtZW50
cykpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvZ0NvbnNv
bGVUaW1pbmcoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQor
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25zb2xlVGltaW5nKFdv
cmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFN0cmluZyYgbGFiZWwsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiBh
cmd1bWVudHMpCiB7Ci0gICAgbG9nQ29uc29sZVRpbWluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50
c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKSwgdGl0bGUsIFdURk1vdmUo
YXJndW1lbnRzKSk7CisgICAgbG9nQ29uc29sZVRpbWluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50
c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKSwgZXhlYywgbGFiZWwsIFdU
Rk1vdmUoYXJndW1lbnRzKSk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c3RvcENvbnNvbGVUaW1pbmcoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2spCitpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nKEZyYW1lJiBmcmFtZSwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgaWYgKElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdl
bnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICBzdG9wQ29uc29sZVRpbWluZ0ltcGwoKmluc3Ry
dW1lbnRpbmdBZ2VudHMsIGZyYW1lLCB0aXRsZSwgV1RGTW92ZShzdGFjaykpOworICAgIGlmIChh
dXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZy
YW1lKSkKKyAgICAgICAgc3RvcENvbnNvbGVUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRz
LCBmcmFtZSwgZXhlYywgbGFiZWwpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9i
YWxTY29wZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0
YWNrPiYmIHN0YWNrKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9w
Q29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewotICAgIHN0b3BDb25zb2xl
VGltaW5nSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUod29ya2Vy
R2xvYmFsU2NvcGUpLCB0aXRsZSwgV1RGTW92ZShzdGFjaykpOworICAgIHN0b3BDb25zb2xlVGlt
aW5nSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUod29ya2VyR2xv
YmFsU2NvcGUpLCBleGVjLCBsYWJlbCk7CiB9CiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcChGcmFtZSYgZnJhbWUsIFJlZjxJbnNwZWN0b3I6
OlNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bnNvbGVDbGllbnQuY3BwCmluZGV4IGFmMjI2N2NiMWQxMzYwYjZmMzMyMmNkMWMwMzIwZjAwOGYz
ZGIyYzcuLmMzYjFkMzY5MjA4Njc3MGZiMTc4MGM0OTBlNDc3NDhlYmQ5MTI1N2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCkBAIC0xNzAsMTQgKzE3MCwxNCBA
QCB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdl
VHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbAogICAgICAgICBDb25zb2xlQ2xpZW50OjpwcmludENv
bnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCB0eXBl
LCBsZXZlbCwgZXhlYywgV1RGTW92ZShhcmd1bWVudHMpKTsKIH0KIAotdm9pZCBQYWdlQ29uc29s
ZUNsaWVudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+
JiYgYXJndW1lbnRzKQordm9pZCBQYWdlQ29uc29sZUNsaWVudDo6Y291bnQoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpjb25zb2xlQ291bnQobV9wYWdlLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwor
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KG1fcGFnZSwgZXhlYywg
bGFiZWwpOwogfQogCi12b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojpjb3VudFJlc2V0KEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgUGFn
ZUNvbnNvbGVDbGllbnQ6OmNvdW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0
cmluZyYgbGFiZWwpCiB7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291
bnRSZXNldChtX3BhZ2UsIGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRSZXNldChtX3BhZ2UsIGV4ZWMsIGxhYmVsKTsK
IH0KIAogdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZShKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgU3RyaW5nJiB0aXRsZSkKQEAgLTE5NywxOSArMTk3LDE5IEBAIHZvaWQgUGFnZUNv
bnNvbGVDbGllbnQ6OnRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJp
bmcmIHRpdGxlKQogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dGFrZUhlYXBTbmFwc2hv
dChtX3BhZ2UubWFpbkZyYW1lKCksIHRpdGxlKTsKIH0KIAotdm9pZCBQYWdlQ29uc29sZUNsaWVu
dDo6dGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCit2b2lkIFBhZ2VD
b25zb2xlQ2xpZW50Ojp0aW1lKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxh
YmVsKQogewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5n
KG1fcGFnZS5tYWluRnJhbWUoKSwgdGl0bGUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6c3RhcnRDb25zb2xlVGltaW5nKG1fcGFnZS5tYWluRnJhbWUoKSwgZXhlYywgbGFiZWwpOwog
fQogCi12b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lk
IFBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBT
dHJpbmcmIGxhYmVsLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKLSAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvZ0NvbnNvbGVUaW1pbmcobV9wYWdlLm1haW5GcmFt
ZSgpLCB0aXRsZSwgV1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmxvZ0NvbnNvbGVUaW1pbmcobV9wYWdlLm1haW5GcmFtZSgpLCBleGVjLCBsYWJlbCwg
V1RGTW92ZShhcmd1bWVudHMpKTsKIH0KIAotdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6dGltZUVu
ZChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgUGFnZUNv
bnNvbGVDbGllbnQ6OnRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYg
bGFiZWwpCiB7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWlu
ZyhtX3BhZ2UubWFpbkZyYW1lKCksIHRpdGxlLCBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25z
b2xlKGV4ZWMsIDEpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xl
VGltaW5nKG1fcGFnZS5tYWluRnJhbWUoKSwgZXhlYywgbGFiZWwpOwogfQogCiB2b2lkIFBhZ2VD
b25zb2xlQ2xpZW50Ojp0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWY8U2NyaXB0QXJndW1l
bnRzPiYmIGFyZ3VtZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bnNvbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaApp
bmRleCA4YTM5ZGEwZDdkYTMzMjM4MjQzYWJkYTFiMjc0YjBhZTA1YWNiMmU2Li5mZmJmNjJiMjAx
ZmUzMTI4NTM4MjE3OGMzNDlkMGFiMmI3NGU1NTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uc29sZUNsaWVudC5oCkBAIC02NywxNCArNjcsMTQgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6
OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb3VudFJlc2V0KEpTQzo6
RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb3VudFJlc2V0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiBsYWJlbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxlRW5kKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0YWtlSGVh
cFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCB0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCB0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0
aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKLSAgICB2
b2lkIHRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBv
dmVycmlkZTsKKyAgICB2b2lkIHRpbWVMb2coSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IGxhYmVsLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOworICAg
IHZvaWQgdGltZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpIG92ZXJy
aWRlOwogICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6
U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHJlY29yZChKU0M6OkV4ZWNT
dGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCByZWNvcmRFbmQoSlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1
bWVudHM+JiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29u
c29sZUNsaWVudC5jcHAKaW5kZXggYzdiNmI0MGYyMDk1NGYyY2YzZGI5MTM2MGZlN2MzOGIyNzhj
MTg2Mi4uZGJlOTA3M2Q2YWRlYmZjNTAxNTljYzJlZGJiMjI4M2NjZDE3YmE4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuY3BwCkBAIC01MCwyOSAr
NTAsMjkgQEAgdm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZl
bChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwKICAgICBtX3dvcmtlckdsb2JhbFNjb3Bl
LmFkZENvbnNvbGVNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwogfQogCi12b2lkIFdvcmtlckNv
bnNvbGVDbGllbnQ6OmNvdW50KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1l
bnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6Y291bnQoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnQobV93b3JrZXJHbG9iYWxTY29wZSwgZXhlYywgV1RG
TW92ZShhcmd1bWVudHMpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVD
b3VudChtX3dvcmtlckdsb2JhbFNjb3BlLCBleGVjLCBsYWJlbCk7CiB9CiAKLXZvaWQgV29ya2Vy
Q29uc29sZUNsaWVudDo6Y291bnRSZXNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmPFNjcmlw
dEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OmNvdW50
UmVzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRSZXNldChtX3dvcmtlckdsb2Jh
bFNjb3BlLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6Y29uc29sZUNvdW50UmVzZXQobV93b3JrZXJHbG9iYWxTY29wZSwgZXhlYywgbGFi
ZWwpOwogfQogCi12b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OnRpbWUoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBTdHJpbmcmIHRpdGxlKQordm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50Ojp0aW1lKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewotICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5nKG1fd29ya2VyR2xvYmFsU2NvcGUs
IHRpdGxlKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29uc29sZVRpbWlu
ZyhtX3dvcmtlckdsb2JhbFNjb3BlLCBleGVjLCBsYWJlbCk7CiB9CiAKLXZvaWQgV29ya2VyQ29u
c29sZUNsaWVudDo6dGltZUxvZyhKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUs
IFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBXb3JrZXJDb25zb2xlQ2xp
ZW50Ojp0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBS
ZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKLSAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmxvZ0NvbnNvbGVUaW1pbmcobV93b3JrZXJHbG9iYWxTY29wZSwgdGl0bGUsIFdU
Rk1vdmUoYXJndW1lbnRzKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25z
b2xlVGltaW5nKG1fd29ya2VyR2xvYmFsU2NvcGUsIGV4ZWMsIGxhYmVsLCBXVEZNb3ZlKGFyZ3Vt
ZW50cykpOwogfQogCi12b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OnRpbWVFbmQoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCit2b2lkIFdvcmtlckNvbnNvbGVDbGll
bnQ6OnRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7
Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZyhtX3dvcmtl
ckdsb2JhbFNjb3BlLCB0aXRsZSwgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShleGVj
LCAxKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZyht
X3dvcmtlckdsb2JhbFNjb3BlLCBleGVjLCBsYWJlbCk7CiB9CiAKIC8vIEZJWE1FOiA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTUzNDk5PiBXZWIgSW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUgc2hv
dWxkIHVzZSB0aGUgbmV3IFNhbXBsaW5nIFByb2ZpbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyQ29uc29sZUNsaWVudC5oCmluZGV4IDYxNzdkYjE4ZmNmZWM5ZjAzNWJhMTE4ZDQ5
MDk5OGE2MWNjZDcxNjcuLjM4NDZkMjcxYjY4YmQ2OTgyMDAwYjUyYjlhYmFiOTc2NzY3NjE0Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5oCkBAIC00
MywxNCArNDMsMTQgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBtZXNzYWdlV2l0
aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSos
IFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBj
b3VudChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBjb3VudFJlc2V0KEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3Bl
Y3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvdW50KEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjb3Vu
dFJlc2V0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBwcm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0aW1lKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0aW1l
TG9nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6
U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHRpbWVFbmQoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKKyAgICB2b2lkIHRpbWUoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBvdmVycmlkZTsKKyAgICB2b2lkIHRp
bWVMb2coSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8SW5zcGVjdG9y
OjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgdGltZUVuZChKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpIG92ZXJyaWRlOwogICAgIHZvaWQgdGltZVN0
YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIHJlY29yZChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6
OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWNvcmRFbmQoSlNDOjpF
eGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuY3BwCmlu
ZGV4IDlmMWQzN2RjZWFiYmU2M2ZhNmFjNTZlYTY5YTdhMzc5ZDllMDIyNzguLjhlOGEyYTRjYTIz
ZTJiOTNkYTEzNGFmYjUyZDBlOTU3NmM0MDIxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5jcHAKQEAgLTUyLDggKzUyLDggQEAgdm9pZCBX
b3JrbGV0Q29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUg
dHlwZSwgTWVzc2FnZUxldmUKICAgICBtX3dvcmtsZXRHbG9iYWxTY29wZS5hZGRDb25zb2xlTWVz
c2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAotdm9pZCBXb3JrbGV0Q29uc29sZUNsaWVudDo6
Y291bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSB7IH0KLXZvaWQg
V29ya2xldENvbnNvbGVDbGllbnQ6OmNvdW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqLCBSZWY8U2Ny
aXB0QXJndW1lbnRzPiYmKSB7IH0KK3ZvaWQgV29ya2xldENvbnNvbGVDbGllbnQ6OmNvdW50KEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikgeyB9Cit2b2lkIFdvcmtsZXRDb25zb2xlQ2xp
ZW50Ojpjb3VudFJlc2V0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikgeyB9CiAKIHZv
aWQgV29ya2xldENvbnNvbGVDbGllbnQ6OnRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJp
bmcmKSB7IH0KIHZvaWQgV29ya2xldENvbnNvbGVDbGllbnQ6OnRpbWVMb2coSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5oCmluZGV4IGQ4NDQ2NDAz
YjMxNTllZDM0ZDJkNTM4MTQ1ZjQxZTAzMTE2NTNhYzUuLjYzMWRhZTk5MDFhYzlhNDNkMjA4Njll
YTVkODFmYzMzNDU4YzhlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dv
cmtsZXRDb25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xl
dENvbnNvbGVDbGllbnQuaApAQCAtNDUsMTQgKzQ1LDE0IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2
ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBm
aW5hbDsKLSAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2Ny
aXB0QXJndW1lbnRzPiYmKSBmaW5hbDsKLSAgICB2b2lkIGNvdW50UmVzZXQoSlNDOjpFeGVjU3Rh
dGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIGZpbmFsOworICAgIHZvaWQg
Y291bnQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBmaW5hbDsKKyAgICB2
b2lkIGNvdW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBmaW5h
bDsKICAgICB2b2lkIHByb2ZpbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxl
KSBmaW5hbDsKICAgICB2b2lkIHByb2ZpbGVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJp
bmcmIHRpdGxlKSBmaW5hbDsKICAgICB2b2lkIHRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBmaW5hbDsKLSAgICB2b2lkIHRpbWUoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBmaW5hbDsKLSAgICB2b2lkIHRpbWVMb2coSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRB
cmd1bWVudHM+JiYpIGZpbmFsOwotICAgIHZvaWQgdGltZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IFN0cmluZyYgdGl0bGUpIGZpbmFsOworICAgIHZvaWQgdGltZShKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgbGFiZWwpIGZpbmFsOworICAgIHZvaWQgdGltZUxvZyhKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50
cz4mJikgZmluYWw7CisgICAgdm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJiBsYWJlbCkgZmluYWw7CiAgICAgdm9pZCB0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBS
ZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIGZpbmFsOwogICAgIHZvaWQgcmVjb3Jk
KEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBmaW5h
bDsKICAgICB2b2lkIHJlY29yZEVuZChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNj
cmlwdEFyZ3VtZW50cz4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFy
YW1ldGVycy5qcwppbmRleCBjY2JiNjZiYWFiMjEyMTk5OGE4NmVkYWYzOTdmYTJiMjkxYWEyZGI3
Li40YjRiYmEyODFlZmRkYWJlNGRhYmNiZWM0MmVmNDA3ODE5MTMwYTAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25Q
YXJhbWV0ZXJzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMKQEAgLTE2MSw3ICsxNjEsOCBAQCBXSS5O
YXRpdmVDb25zdHJ1Y3RvckZ1bmN0aW9uUGFyYW1ldGVycyA9IHsKIAogICAgIENvbnNvbGU6IHsK
ICAgICAgICAgYXNzZXJ0OiAiY29uZGl0aW9uLCBbbWVzc2FnZV0sIFsuLi52YWx1ZXNdIiwKLSAg
ICAgICAgY291bnQ6ICJbbGFiZWxdIiwKKyAgICAgICAgY291bnQ6ICJsYWJlbCA9IFwiZGVmYXVs
dFwiIiwKKyAgICAgICAgY291bnRSZXNldDogImxhYmVsID0gXCJkZWZhdWx0XCIiLAogICAgICAg
ICBkZWJ1ZzogIm1lc3NhZ2UsIFsuLi52YWx1ZXNdIiwKICAgICAgICAgZGlyOiAib2JqZWN0IiwK
ICAgICAgICAgZGlyeG1sOiAib2JqZWN0IiwKQEAgLTE3OCw4ICsxNzksOSBAQCBXSS5OYXRpdmVD
b25zdHJ1Y3RvckZ1bmN0aW9uUGFyYW1ldGVycyA9IHsKICAgICAgICAgc2NyZWVuc2hvdDogIltu
b2RlXSIsCiAgICAgICAgIHRhYmxlOiAiZGF0YSwgW2NvbHVtbnNdIiwKICAgICAgICAgdGFrZUhl
YXBTbmFwc2hvdDogIltsYWJlbF0iLAotICAgICAgICB0aW1lOiAibmFtZSA9IFwiZGVmYXVsdFwi
IiwKLSAgICAgICAgdGltZUVuZDogIm5hbWUgPSBcImRlZmF1bHRcIiIsCisgICAgICAgIHRpbWU6
ICJsYWJlbCA9IFwiZGVmYXVsdFwiIiwKKyAgICAgICAgdGltZUxvZzogImxhYmVsID0gXCJkZWZh
dWx0XCIiLAorICAgICAgICB0aW1lRW5kOiAibGFiZWwgPSBcImRlZmF1bHRcIiIsCiAgICAgICAg
IHRpbWVTdGFtcDogIltsYWJlbF0iLAogICAgICAgICB0cmFjZTogIm1lc3NhZ2UsIFsuLi52YWx1
ZXNdIiwKICAgICAgICAgd2FybjogIm1lc3NhZ2UsIFsuLi52YWx1ZXNdIiwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMzE2
NWM1NTY2YWYyZDgxZTlhMmE1NDNhZTJmMjViODQwY2E2ODM4Li5jMjYwMDgzODkxNDUyZDZiMzM3
NTZiZTY4NjhkMTE5NDcxNjJhNjBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDYtMjYg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHRocm93IGFuIGVycm9yIGlmIGNvbnNvbGUuY291bnQvY29uc29sZS5jb3VudFJlc2V0IGlz
IGNhbGxlZCB3aXRoIGFuIG9iamVjdCB0aGF0IHRocm93cyBhbiBlcnJvciBmcm9tIHRvU3RyaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkyNTIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtY291bnQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLWNvdW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLWFwaS1leHBlY3RlZC50eHQ6CisKIDIwMTktMDYtMjYgIFJ1c3NlbGwgRXBz
dGVpbiAgPHJ1c3NlbGxfZUBhcHBsZS5jb20+CiAKICAgICAgICAgTGF5b3V0IFRlc3QgaHR0cC90
ZXN0cy9wZXJmb3JtYW5jZS9wZXJmb3JtYW5jZS1yZXNvdXJjZS10aW1pbmctcmVzb3VyY2V0aW1p
bmdidWZmZXJmdWxsLXNocmlua2luZy1idWZmZXItY3Jhc2guaHRtbCBpcyBmYWlsaW5nLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hcGktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hcGktZXhwZWN0
ZWQudHh0CmluZGV4IDgzNmU4MTQyNDYzNTQ5YWJmMGU4ZGMxMGVmNTkzNzAzMDE2ZDZiMDAuLjJk
Y2Q5ZTY5YzUyNGM4Mjc1MjRjZjNmZDQzMGM5Y2U1MThlMzVkMTYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYXBpLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFwaS1leHBlY3RlZC50eHQKQEAg
LTU4NSw3ICs1ODUsNyBAQCBTVEVQOiBjb25zb2xlLmNvdW50KCkKIHsKICAgIl9zb3VyY2UiOiAi
Y29uc29sZS1hcGkiLAogICAiX2xldmVsIjogImRlYnVnIiwKLSAgIl9tZXNzYWdlVGV4dCI6ICJH
bG9iYWw6IDEiLAorICAiX21lc3NhZ2VUZXh0IjogImRlZmF1bHQ6IDEiLAogICAiX3R5cGUiOiAi
bG9nIiwKICAgIl91cmwiOiBudWxsLAogICAiX2xpbmUiOiAzLApAQCAtNTk5LDcgKzU5OSwyMSBA
QCBTVEVQOiBjb25zb2xlLmNvdW50KCkKIHsKICAgIl9zb3VyY2UiOiAiY29uc29sZS1hcGkiLAog
ICAiX2xldmVsIjogImRlYnVnIiwKLSAgIl9tZXNzYWdlVGV4dCI6ICJHbG9iYWw6IDIiLAorICAi
X21lc3NhZ2VUZXh0IjogImRlZmF1bHQ6IDIiLAorICAiX3R5cGUiOiAibG9nIiwKKyAgIl91cmwi
OiBudWxsLAorICAiX2xpbmUiOiAzLAorICAiX2NvbHVtbiI6IDE0LAorICAiX3JlcGVhdENvdW50
IjogMSwKKyAgIl9zdGFja1RyYWNlIjogIjxmaWx0ZXJlZD4iLAorICAiX3JlcXVlc3QiOiBudWxs
Cit9CisKK1NURVA6IGNvbnNvbGUuY291bnQoImRlZmF1bHQiKQoreworICAiX3NvdXJjZSI6ICJj
b25zb2xlLWFwaSIsCisgICJfbGV2ZWwiOiAiZGVidWciLAorICAiX21lc3NhZ2VUZXh0IjogImRl
ZmF1bHQ6IDMiLAogICAiX3R5cGUiOiAibG9nIiwKICAgIl91cmwiOiBudWxsLAogICAiX2xpbmUi
OiAzLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1h
cGkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYXBpLmh0bWwK
aW5kZXggZDVmMWRmODI5Yzg4M2ViMWU0OWQ5MDllMzhjMThmMWU2YjA1YzJiZC4uMjVhNzJhNGYy
YjgxNzAxNTU0Zjg0N2M2ZWNmNDY3YjE2NGZlOTJkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hcGkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS9jb25zb2xlLWFwaS5odG1sCkBAIC0zNCw2ICszNCw3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAiY29uc29sZS5ncm91cEVuZCgnY29sbGFwc2VkR3JvdXBOYW1lJyki
LAogICAgICAgICAiY29uc29sZS5jb3VudCgpIiwKICAgICAgICAgImNvbnNvbGUuY291bnQoKSIs
CisgICAgICAgICJjb25zb2xlLmNvdW50KFwiZGVmYXVsdFwiKSIsCiAgICAgICAgICJjb25zb2xl
LmNvdW50KCcnKSIsCiAgICAgICAgICJjb25zb2xlLmNvdW50KCcgICAgJykiLAogICAgICAgICAi
Y29uc29sZS5jb3VudCgnJykiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1jb3VudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLWNvdW50LWV4cGVjdGVkLnR4dAppbmRleCA5ZTlhOGUyNTJhNjQyMzZk
NjIxMDMwZDFmYTU2ZjMyYzg1YmIzZGQ2Li5hZDg0ZDU4NzYzZDgyZGQ5YzU4NTFlNzhlZTRkZGQ4
NzAwMDFkYjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWNvdW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWNvdW50LWV4cGVjdGVkLnR4dApAQCAtMywyMiArMywyMiBAQCBUZXN0cyBmb3Ig
dGhlIGNvbnNvbGUuY291bnQgYW5kIGNvbnNvbGUuY291bnRSZXNldCBBUElzLgogCiA9PSBSdW5u
aW5nIHRlc3Qgc3VpdGU6IGNvbnNvbGUuY291bnQKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBjb25z
b2xlLmNvdW50Lk5vQXJndW1lbnRzCi1HbG9iYWw6IDEKLUdsb2JhbDogMgotR2xvYmFsOiAzCi1H
bG9iYWw6IDQKLUdsb2JhbDogNQotR2xvYmFsOiA2Ci1HbG9iYWw6IDcKLUdsb2JhbDogOAotR2xv
YmFsOiA5Ci1HbG9iYWw6IDEwCi1HbG9iYWw6IDExCi1HbG9iYWw6IDEyCi1HbG9iYWw6IDEzCi1H
bG9iYWw6IDE0Ci1HbG9iYWw6IDE1Ci1HbG9iYWw6IDE2CitkZWZhdWx0OiAxCitkZWZhdWx0OiAy
CitkZWZhdWx0OiAzCitkZWZhdWx0OiA0CitkZWZhdWx0OiA1CitkZWZhdWx0OiA2CitkZWZhdWx0
OiA3CitkZWZhdWx0OiA4CitkZWZhdWx0OiA5CitkZWZhdWx0OiAxMAorZGVmYXVsdDogMTEKK2Rl
ZmF1bHQ6IDEyCitkZWZhdWx0OiAxMworZGVmYXVsdDogMTQKK2RlZmF1bHQ6IDE1CitkZWZhdWx0
OiAxNgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogY29uc29sZS5jb3VudC5XaXRoTGFiZWwKIGFs
cGhhOiAxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LWNvdW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNvdW50
Lmh0bWwKaW5kZXggNjk5OTQ2NWJiZGNkNjdkNDZhMzI4MTRmZmQ3ZDBhNjQ4MDZlNzkyYS4uNGYw
NTdhOGNhMzk1NDRkMDIxY2NmMTliZjcyMWNkMDA1YzQ3YzRkZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1jb3VudC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY291bnQuaHRtbApAQCAtNDAsNyArNDAsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFt
ZTogImNvbnNvbGUuY291bnQuTm9Bcmd1bWVudHMiLAotICAgICAgICBkZXNjcmlwdGlvbjogIk5v
IGFyZ3VtZW50cyBpbmNyZW1lbnRzIGEgc2hhcmVkIGdsb2JhbCBjb3VudGVyLiIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiTm8gYXJndW1lbnRzIHVzZXMgdGhlIGRlZmF1bHQgbGFiZWwuIiwKICAg
ICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIGxldCBzZWVuID0gMDsK
ICAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gMTY7CkBAIC01NSw3ICs1NSw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKGB0cmlnZ2VyQ291bnROb0FyZ3VtZW50cygpYCk7IC8vIDE1Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjb25zb2xlLmNvdW50KClgKTsgLy8g
MQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY29uc29sZS5jb3Vu
dCgiZGVmYXVsdCIpYCk7IC8vIDE2CiAgICAgICAgIH0KICAgICB9KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373007</attachid>
            <date>2019-06-27 00:41:49 -0700</date>
            <delta_ts>2019-06-27 01:25:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199252-20190627004148.patch</filename>
            <type>text/plain</type>
            <size>62976</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGJmYWIzNDc2NzhmYTZjNGJkYzA0ZmM0Y2M0M2U1
YTk3YmE3N2NiY2EuLjg3ZjY3Nzg3YzFlODRjZjU5MWQ3NjQzY2MzMjQ3MjVmMmRkMWVlNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE5LTA2LTI3ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0
aHJvdyBhbiBlcnJvciBpZiBjb25zb2xlLmNvdW50L2NvbnNvbGUuY291bnRSZXNldCBpcyBjYWxs
ZWQgd2l0aCBhbiBvYmplY3QgdGhhdCB0aHJvd3MgYW4gZXJyb3IgZnJvbSB0b1N0cmluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MjUyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgIFBhcnNlIHRoZSBh
cmd1bWVudHMgcGFzc2VkIHRvIGBjb25zb2xlLmNvdW50YCBhbmQgYGNvbnNvbGUuY291bnRSZXNl
dGAgYmVmb3JlIHNlbmRpbmcgaXQgdG8KKyAgICAgICAgdGhlIGBDb25zb2xlQ2xpZW50YCBzbyB0
aGF0IGFuIGVycm9yIGNhbiBiZSB0aHJvd24gaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGRvZXNuJ3Qg
YHRvU3RyaW5nYAorICAgICAgICBuaWNlbHkgKGUuZy4gd2l0aG91dCB0aHJvd2luZyBhbiBlcnJv
cikuCisKKyAgICAgICAgR2VuZXJhdGUgY2FsbCBzdGFja3MgZm9yIGBjb25zb2xlLmNvdW50UmVz
ZXRgIHRvIG1hdGNoIG90aGVyIGBjb25zb2xlYCBtZXRob2RzLiBBbHNvIGRvIHRoaXMKKyAgICAg
ICAgZm9yIGBjb25zb2xlLnRpbWVgLCBgY29uc29sZS50aW1lTG9nYCwgYW5kIGBjb25zb2xlLnRp
bWVFbmRgLiBMaW1pdCB0aGUgY2FsbCBzdGFjayB0byBvbmx5CisgICAgICAgIGhhdmUgdGhlIHRv
cCBmcmFtZSwgc28gbm8gdW5uZWNlc3NhcnkvZXh0cmEgZGF0YSBpcyBzZW50IHRvIHRoZSBmcm9u
dGVuZCAocmlnaHQgbm93LCBvbmx5CisgICAgICAgIHRoZSBjYWxsIGxvY2F0aW9uIGlzIGRpc3Bs
YXllZCkuCisKKyAgICAgICAgUmVuYW1lIGB0aXRsZWAgdG8gYGxhYmVsYCBmb3IgYGNvbnNvbGUu
dGltZWAsIGBjb25zb2xlLnRpbWVMb2dgLCBhbmQgYGNvbnNvbGUudGltZUVuZGAgdG8KKyAgICAg
ICAgYmV0dGVyIG1hdGNoIHRoZSBzcGVjLgorCisgICAgICAgICogcnVudGltZS9Db25zb2xlQ2xp
ZW50Lmg6CisgICAgICAgICogcnVudGltZS9Db25zb2xlT2JqZWN0LmNwcDoKKyAgICAgICAgKEpT
Qzo6dmFsdWVPckRlZmF1bHRMYWJlbFN0cmluZyk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90
b0Z1bmNDb3VudCk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNDb3VudFJlc2V0KToK
KyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1RpbWUpOgorICAgICAgICAoSlNDOjpjb25z
b2xlUHJvdG9GdW5jVGltZUxvZyk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNUaW1l
RW5kKToKKworICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcDoK
KyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojpjb3VudCk6
CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6Y291bnRS
ZXNldCk6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6
dGltZSk6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6
dGltZUxvZyk6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVu
dDo6dGltZUVuZCk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFn
ZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpzdGFy
dFRpbWluZyk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6bG9n
VGltaW5nKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpzdG9w
VGltaW5nKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50Ojpjb3Vu
dCk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y291bnRSZXNl
dCk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6Z2V0Q291bnRl
ckxhYmVsKTogRGVsZXRlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5o
OgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6OkNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIEFsbG93IGBD
b25zb2xlTWVzc2FnZWBzIHRvIGJlIGNyZWF0ZWQgd2l0aCBib3RoIGBTY3JpcHRBcmd1bWVudHNg
IGFuZCBhIGBTY3JpcHRDYWxsU3RhY2tgLgorCiAyMDE5LTA2LTI2ICBLZWl0aCBNaWxsZXIgIDxr
ZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIHNwZWNpZXNDb25zdHJ1Y3QgbmVlZHMg
dG8gdGhyb3cgaWYgdGhlIHJlc3VsdCBpcyBhIERhdGFWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE2NDNm
ZWE2Y2EzZmVmZWVjYWViODFlNjEzZjQzYmU5YjYzZDg5Yy4uNTdmMTU4ZDM5NThiMzkzMmVkMzBm
NTY1M2MxZTY4YmVmOWVhNWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE5LTA2
LTI3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiB0aHJvdyBhbiBlcnJvciBpZiBjb25zb2xlLmNvdW50L2NvbnNvbGUuY291bnRSZXNl
dCBpcyBjYWxsZWQgd2l0aCBhbiBvYmplY3QgdGhhdCB0aHJvd3MgYW4gZXJyb3IgZnJvbSB0b1N0
cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5
MjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgIFBh
cnNlIHRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIGBjb25zb2xlLmNvdW50YCBhbmQgYGNvbnNvbGUu
Y291bnRSZXNldGAgYmVmb3JlIHNlbmRpbmcgaXQgdG8KKyAgICAgICAgdGhlIGBDb25zb2xlQ2xp
ZW50YCBzbyB0aGF0IGFuIGVycm9yIGNhbiBiZSB0aHJvd24gaWYgdGhlIGZpcnN0IGFyZ3VtZW50
IGRvZXNuJ3QgYHRvU3RyaW5nYAorICAgICAgICBuaWNlbHkgKGUuZy4gd2l0aG91dCB0aHJvd2lu
ZyBhbiBlcnJvcikuCisKKyAgICAgICAgR2VuZXJhdGUgY2FsbCBzdGFja3MgZm9yIGBjb25zb2xl
LmNvdW50UmVzZXRgIHRvIG1hdGNoIG90aGVyIGBjb25zb2xlYCBtZXRob2RzLiBBbHNvIGRvIHRo
aXMKKyAgICAgICAgZm9yIGBjb25zb2xlLnRpbWVgLCBgY29uc29sZS50aW1lTG9nYCwgYW5kIGBj
b25zb2xlLnRpbWVFbmRgLiBMaW1pdCB0aGUgY2FsbCBzdGFjayB0byBvbmx5CisgICAgICAgIGhh
dmUgdGhlIHRvcCBmcmFtZSwgc28gbm8gdW5uZWNlc3NhcnkvZXh0cmEgZGF0YSBpcyBzZW50IHRv
IHRoZSBmcm9udGVuZCAocmlnaHQgbm93LCBvbmx5CisgICAgICAgIHRoZSBjYWxsIGxvY2F0aW9u
IGlzIGRpc3BsYXllZCkuCisKKyAgICAgICAgUmVuYW1lIGB0aXRsZWAgdG8gYGxhYmVsYCBmb3Ig
YGNvbnNvbGUudGltZWAsIGBjb25zb2xlLnRpbWVMb2dgLCBhbmQgYGNvbnNvbGUudGltZUVuZGAg
dG8KKyAgICAgICAgYmV0dGVyIG1hdGNoIHRoZSBzcGVjLgorCisgICAgICAgIFVwZGF0ZWQgZXhp
c3RpbmcgTGF5b3V0VGVzdHM6CisgICAgICAgICAtIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
Y291bnQuaHRtbAorICAgICAgICAgLSBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFwaS5odG1s
CisKKyAgICAgICAgQWxzbyBjb3ZlcmVkIGJ5IGV4aXN0aW5nIFdQVCB0ZXN0cy4KKworICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50UmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydENvbnNvbGVUaW1p
bmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25z
b2xlVGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
c3RvcENvbnNvbGVUaW1pbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojpjb25zb2xlQ291bnRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6Y29uc29sZUNvdW50UmVzZXRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5nSW1wbCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvZ0NvbnNvbGVUaW1pbmdJbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcENvbnNvbGVU
aW1pbmdJbXBsKToKKworICAgICAgICAqIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaDoKKyAgICAg
ICAgKiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VD
b25zb2xlQ2xpZW50Ojpjb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVu
dDo6Y291bnRSZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6dGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6dGltZUxvZyk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6dGltZUVuZCk6CisKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNv
bnNvbGVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUNsaWVudDo6
Y291bnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUNsaWVudDo6Y291bnRSZXNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb25zb2xlQ2xpZW50Ojp0aW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlckNvbnNvbGVDbGllbnQ6OnRpbWVMb2cpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyQ29uc29sZUNsaWVudDo6dGltZUVuZCk6CisKKyAgICAgICAgKiB3b3JrbGV0
cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5oOgorICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRDb25z
b2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRDb25zb2xlQ2xpZW50Ojpj
b3VudCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0Q29uc29sZUNsaWVudDo6Y291bnRSZXNl
dCk6CisKIDIwMTktMDYtMjYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbXBsZW1lbnQgY29uc29sZS5jb3VudFJlc2V0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBjZjA2MWJlM2IxN2Y5ODdmM2JlN2RmNjA2Zjk2NDRi
NzE1ZjVlNmU0Li43Mzg4NzBhYzA5ODcxMzllOWRmZWU3MjQ2NGMyYTQ0ZjRkZjgzYjM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wNi0yNyAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdGhy
b3cgYW4gZXJyb3IgaWYgY29uc29sZS5jb3VudC9jb25zb2xlLmNvdW50UmVzZXQgaXMgY2FsbGVk
IHdpdGggYW4gb2JqZWN0IHRoYXQgdGhyb3dzIGFuIGVycm9yIGZyb20gdG9TdHJpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTI1MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICBBZGQgZW50cmllcyBm
b3IgYGNvbnNvbGUuY291bnRSZXNldGAgYW5kIGBjb25zb2xlLnRpbWVMb2dgLgorCisgICAgICAg
IFJlbmFtZSBgdGl0bGVgIHRvIGBsYWJlbGAgZm9yIGBjb25zb2xlLnRpbWVgLCBgY29uc29sZS50
aW1lTG9nYCwgYW5kIGBjb25zb2xlLnRpbWVFbmRgIHRvCisgICAgICAgIGJldHRlciBtYXRjaCB0
aGUgc3BlYy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9u
UGFyYW1ldGVycy5qczoKKwogMjAxOS0wNi0yNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTjogRWxlbWVudHM6IHRo
ZSBmb3JjZWQgcHNldWRvLWNsYXNzIGluZGljYXRvciBpc24ndCB2aXNpYmxlIHdoZW4gaG92ZXJp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1l
c3NhZ2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2Fn
ZS5jcHAKaW5kZXggZjUwMWUxMDE3NmVkMDBmMTMzNGFhYjE5ZGZkODk4ZTFkZGMzNDA3OC4uYzRi
MjYxNWJjNjMxNmYyMzBkOTE0ZDgwZGQ4ZDdiNGY2NTFjMDY3NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTgyLDYgKzgy
LDI0IEBAIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJj
ZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxlCiAgICAgfQogfQogCitDb25zb2xlTWVzc2Fn
ZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUs
IE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWY8U2NyaXB0QXJn
dW1lbnRzPiYmIGFyZ3VtZW50cywgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiBjYWxsU3RhY2ssIHVu
c2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCisgICAgOiBtX3NvdXJjZShzb3VyY2UpCisg
ICAgLCBtX3R5cGUodHlwZSkKKyAgICAsIG1fbGV2ZWwobGV2ZWwpCisgICAgLCBtX21lc3NhZ2Uo
bWVzc2FnZSkKKyAgICAsIG1fYXJndW1lbnRzKFdURk1vdmUoYXJndW1lbnRzKSkKKyAgICAsIG1f
Y2FsbFN0YWNrKFdURk1vdmUoY2FsbFN0YWNrKSkKKyAgICAsIG1fdXJsKCkKKyAgICAsIG1fcmVx
dWVzdElkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKHJlcXVlc3RJZGVudGlmaWVyKSkK
K3sKKyAgICBjb25zdCBTY3JpcHRDYWxsRnJhbWUqIGZyYW1lID0gbV9jYWxsU3RhY2sgPyBtX2Nh
bGxTdGFjay0+Zmlyc3ROb25OYXRpdmVDYWxsRnJhbWUoKSA6IG51bGxwdHI7CisgICAgaWYgKGZy
YW1lKSB7CisgICAgICAgIG1fdXJsID0gZnJhbWUtPnNvdXJjZVVSTCgpOworICAgICAgICBtX2xp
bmUgPSBmcmFtZS0+bGluZU51bWJlcigpOworICAgICAgICBtX2NvbHVtbiA9IGZyYW1lLT5jb2x1
bW5OdW1iZXIoKTsKKyAgICB9Cit9CisKIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRz
LCBKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIp
CiAgICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAgLCBtX3R5cGUodHlwZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAppbmRleCAwYTkyZjVi
NDlmZGNlOGYwYzExMjVkYjZkZjJjOGFmZDhjNTRmZjgwLi43YjlkMGJjZjdiOWU3ODQ2OTc0ZGE2
ZjQyMTI2MmUzZmQxN2MwNWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0NvbnNvbGVNZXNzYWdlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICBDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsK
ICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNpZ25lZCBs
aW5lLCB1bnNpZ25lZCBjb2x1bW4sIEpTQzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IFJlZjxTY3JpcHRDYWxsU3RhY2s+JiYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIg
PSAwKTsKKyAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYs
IFJlZjxTY3JpcHRDYWxsU3RhY2s+JiYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIg
PSAwKTsKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYs
IEpTQzo6RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZp
ZXIgPSAwKTsKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwg
TWVzc2FnZUxldmVsLCBWZWN0b3I8SlNPTkxvZ1ZhbHVlPiYmLCBKU0M6OkV4ZWNTdGF0ZSosIHVu
c2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICB+Q29uc29sZU1lc3NhZ2Uo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxP
YmplY3RDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcAppbmRleCAzNzk1ZjViMTdlZGUyNjMyZjgz
YmRlZDQ0MjU4MWFmZTQ3OWZlYjlmLi44MmJlM2JiYjQ0Y2I2YzU3NzZiOGVjZjdmYTBjOTQwZDVk
NWE1ODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xv
YmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwCkBAIC03MCwxNCArNzAsMTQg
QEAgdm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6Om1lc3NhZ2VXaXRoVHlwZUFuZExl
dmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3MKICAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2Fn
ZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNl
OjpDb25zb2xlQVBJLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgV1RGTW92ZShhcmd1bWVudHMpLCBl
eGVjKSk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojpjb3VudChFeGVj
U3RhdGUqIGV4ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBKU0ds
b2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OmNvdW50KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3Ry
aW5nJiBsYWJlbCkKIHsKLSAgICBtX2NvbnNvbGVBZ2VudC0+Y291bnQoZXhlYywgV1RGTW92ZShh
cmd1bWVudHMpKTsKKyAgICBtX2NvbnNvbGVBZ2VudC0+Y291bnQoZXhlYywgbGFiZWwpOwogfQog
Ci12b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6Y291bnRSZXNldChFeGVjU3RhdGUq
IGV4ZWMsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBKU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQ6OmNvdW50UmVzZXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJp
bmcmIGxhYmVsKQogewotICAgIG1fY29uc29sZUFnZW50LT5jb3VudFJlc2V0KGV4ZWMsIFdURk1v
dmUoYXJndW1lbnRzKSk7CisgICAgbV9jb25zb2xlQWdlbnQtPmNvdW50UmVzZXQoZXhlYywgbGFi
ZWwpOwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6cHJvZmlsZShKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCkBAIC0xNTMsMTkgKzE1MywxOSBAQCB2
b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6dGFrZUhlYXBTbmFwc2hvdChKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZwogICAgIG1fY29uc29sZUFnZW50LT50YWtlSGVhcFNuYXBz
aG90KHRpdGxlKTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnRpbWUo
RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgSlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50Ojp0aW1lKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsK
LSAgICBtX2NvbnNvbGVBZ2VudC0+c3RhcnRUaW1pbmcodGl0bGUpOworICAgIG1fY29uc29sZUFn
ZW50LT5zdGFydFRpbWluZyhleGVjLCBsYWJlbCk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50Ojp0aW1lTG9nKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJl
ZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQ6OnRpbWVMb2coRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBS
ZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKLSAgICBtX2NvbnNvbGVBZ2VudC0+
bG9nVGltaW5nKHRpdGxlLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIG1fY29uc29sZUFnZW50
LT5sb2dUaW1pbmcoZXhlYywgbGFiZWwsIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CiAKLXZvaWQg
SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0aW1lRW5kKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0aW1l
RW5kKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBtX2NvbnNv
bGVBZ2VudC0+c3RvcFRpbWluZyh0aXRsZSwgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29s
ZShleGVjLCAxKSk7CisgICAgbV9jb25zb2xlQWdlbnQtPnN0b3BUaW1pbmcoZXhlYywgbGFiZWwp
OwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6dGltZVN0YW1wKEV4ZWNT
dGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaApp
bmRleCBiNzVjNjZkMjBmZGRjMGYzZGZiZTIzYzdmMWM5YzJjNTA5M2JlMGY1Li40MTEzZDYwNjY1
MDljMDAwMGIxOTJkNTUyNjEyNDc2MTM2NWVhZDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50
LmgKQEAgLTQ5LDE0ICs0OSwxNCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIG1l
c3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhl
Y1N0YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb3Vu
dChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAg
IHZvaWQgY291bnRSZXNldChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYp
IG92ZXJyaWRlOworICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IGxhYmVsKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvdW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBTdHJpbmcmIGxhYmVsKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGUoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGVF
bmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2
b2lkIHRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxl
KSBvdmVycmlkZTsKLSAgICB2b2lkIHRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHRpbWVMb2coSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBTdHJpbmcmIHRpdGxlLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCB0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiBsYWJlbCkgb3ZlcnJpZGU7CisgICAgdm9pZCB0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiBsYWJlbCwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CisgICAg
dm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCB0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWY8U2NyaXB0QXJndW1l
bnRzPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHJlY29yZChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxT
Y3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVjb3JkRW5kKEpTQzo6RXhl
Y1N0YXRlKiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcAppbmRleCA3MmZlN2I0NmQxNmU1MThhZTc1MWIxNjFmMTFhZTRiNGYy
ZmE3MDlkLi43ZWRiYzgwNjYwZjM2ZDZhODFhYTkxZmI4ZmEzZmRkZGVkYWU2ZjI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25z
b2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTEyNiw2NyArMTI2LDcxIEBAIHZvaWQgSW5z
cGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6dW5pcXVlX3B0cjxD
b25zb2xlTWVzc2FnZT4KICAgICBhZGRDb25zb2xlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0YXJ0VGltaW5nKGNvbnN0IFN0cmlu
ZyYgdGl0bGUpCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c3RhcnRUaW1pbmcoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7CiAgICAgaWYgKCFtX2luamVj
dGVkU2NyaXB0TWFuYWdlci5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRldmVsb3BlckV4dHJhc0Vu
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKCF0aXRsZS5pc051bGwoKSk7
Ci0gICAgaWYgKHRpdGxlLmlzTnVsbCgpKQorICAgIEFTU0VSVCghbGFiZWwuaXNOdWxsKCkpOwor
ICAgIGlmIChsYWJlbC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byByZXN1
bHQgPSBtX3RpbWVzLmFkZCh0aXRsZSwgTW9ub3RvbmljVGltZTo6bm93KCkpOworICAgIGF1dG8g
cmVzdWx0ID0gbV90aW1lcy5hZGQobGFiZWwsIE1vbm90b25pY1RpbWU6Om5vdygpKTsKIAogICAg
IGlmICghcmVzdWx0LmlzTmV3RW50cnkpIHsKICAgICAgICAgLy8gRklYTUU6IFNlbmQgYW4gZW51
bSB0byB0aGUgZnJvbnRlbmQgZm9yIGxvY2FsaXphdGlvbj8KLSAgICAgICAgU3RyaW5nIHdhcm5p
bmcgPSBtYWtlU3RyaW5nKCJUaW1lciBcIiIsIHRpdGxlLCAiXCIgYWxyZWFkeSBleGlzdHMiKTsK
LSAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNz
YWdlPihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmcsIHdhcm5pbmcpKTsKKyAgICAgICAgU3RyaW5nIHdhcm5pbmcgPSBt
YWtlU3RyaW5nKCJUaW1lciBcIiIsIGxhYmVsLCAiXCIgYWxyZWFkeSBleGlzdHMiKTsKKyAgICAg
ICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihN
ZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNzYWdlTGV2
ZWw6Oldhcm5pbmcsIHdhcm5pbmcsIGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoZXhl
YywgMSkpKTsKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojpsb2dUaW1p
bmcoY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMp
Cit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6bG9nVGltaW5nKEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50
cykKIHsKICAgICBpZiAoIW1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluc3BlY3RvckVudmlyb25t
ZW50KCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBB
U1NFUlQoIXRpdGxlLmlzTnVsbCgpKTsKLSAgICBpZiAodGl0bGUuaXNOdWxsKCkpCisgICAgQVNT
RVJUKCFsYWJlbC5pc051bGwoKSk7CisgICAgaWYgKGxhYmVsLmlzTnVsbCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBhdXRvIGl0ID0gbV90aW1lcy5maW5kKHRpdGxlKTsKKyAgICBhdXRvIGNh
bGxTdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoZXhlYywgMSk7CisKKyAg
ICBhdXRvIGl0ID0gbV90aW1lcy5maW5kKGxhYmVsKTsKICAgICBpZiAoaXQgPT0gbV90aW1lcy5l
bmQoKSkgewogICAgICAgICAvLyBGSVhNRTogU2VuZCBhbiBlbnVtIHRvIHRoZSBmcm9udGVuZCBm
b3IgbG9jYWxpemF0aW9uPwotICAgICAgICBTdHJpbmcgd2FybmluZyA9IG1ha2VTdHJpbmcoIlRp
bWVyIFwiIiwgdGl0bGUsICJcIiBkb2VzIG5vdCBleGlzdCIpOwotICAgICAgICBhZGRNZXNzYWdl
VG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6
OkNvbnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpUaW1pbmcsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywg
d2FybmluZykpOworICAgICAgICBTdHJpbmcgd2FybmluZyA9IG1ha2VTdHJpbmcoIlRpbWVyIFwi
IiwgbGFiZWwsICJcIiBkb2VzIG5vdCBleGlzdCIpOworICAgICAgICBhZGRNZXNzYWdlVG9Db25z
b2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNv
bGVBUEksIE1lc3NhZ2VUeXBlOjpUaW1pbmcsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgd2Fybmlu
ZywgV1RGTW92ZShjYWxsU3RhY2spKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBN
b25vdG9uaWNUaW1lIHN0YXJ0VGltZSA9IGl0LT52YWx1ZTsKICAgICBTZWNvbmRzIGVsYXBzZWQg
PSBNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9
IG1ha2VTdHJpbmcodGl0bGUsICI6ICIsIEZvcm1hdHRlZE51bWJlcjo6Zml4ZWRXaWR0aChlbGFw
c2VkLm1pbGxpc2Vjb25kcygpLCAzKSwgIm1zIik7Ci0gICAgYWRkTWVzc2FnZVRvQ29uc29sZShz
dGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJ
LCBNZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLCBXVEZN
b3ZlKGFyZ3VtZW50cykpKTsKKyAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcobGFiZWws
ICI6ICIsIEZvcm1hdHRlZE51bWJlcjo6Zml4ZWRXaWR0aChlbGFwc2VkLm1pbGxpc2Vjb25kcygp
LCAzKSwgIm1zIik7CisgICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENv
bnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGlt
aW5nLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdlLCBXVEZNb3ZlKGFyZ3VtZW50cyksIFdU
Rk1vdmUoY2FsbFN0YWNrKSkpOwogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c3Rv
cFRpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiYmIGNhbGxT
dGFjaykKK3ZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzdG9wVGltaW5nKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewogICAgIGlmICghbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXIuaW5zcGVjdG9yRW52aXJvbm1lbnQoKS5kZXZlbG9wZXJFeHRyYXNFbmFibGVk
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVCghdGl0bGUuaXNOdWxsKCkpOwotICAg
IGlmICh0aXRsZS5pc051bGwoKSkKKyAgICBBU1NFUlQoIWxhYmVsLmlzTnVsbCgpKTsKKyAgICBp
ZiAobGFiZWwuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gaXQgPSBtX3Rp
bWVzLmZpbmQodGl0bGUpOworICAgIGF1dG8gY2FsbFN0YWNrID0gY3JlYXRlU2NyaXB0Q2FsbFN0
YWNrRm9yQ29uc29sZShleGVjLCAxKTsKKworICAgIGF1dG8gaXQgPSBtX3RpbWVzLmZpbmQobGFi
ZWwpOwogICAgIGlmIChpdCA9PSBtX3RpbWVzLmVuZCgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBT
ZW5kIGFuIGVudW0gdG8gdGhlIGZyb250ZW5kIGZvciBsb2NhbGl6YXRpb24/Ci0gICAgICAgIFN0
cmluZyB3YXJuaW5nID0gbWFrZVN0cmluZygiVGltZXIgXCIiLCB0aXRsZSwgIlwiIGRvZXMgbm90
IGV4aXN0Iik7Ci0gICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxD
b25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlRp
bWluZywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCB3YXJuaW5nKSk7CisgICAgICAgIFN0cmluZyB3
YXJuaW5nID0gbWFrZVN0cmluZygiVGltZXIgXCIiLCBsYWJlbCwgIlwiIGRvZXMgbm90IGV4aXN0
Iik7CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xl
TWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlRpbWluZywg
TWVzc2FnZUxldmVsOjpXYXJuaW5nLCB3YXJuaW5nLCBXVEZNb3ZlKGNhbGxTdGFjaykpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lID0gaXQt
PnZhbHVlOwogICAgIFNlY29uZHMgZWxhcHNlZCA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3Rh
cnRUaW1lOwotICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZyh0aXRsZSwgIjogIiwgRm9y
bWF0dGVkTnVtYmVyOjpmaXhlZFdpZHRoKGVsYXBzZWQubWlsbGlzZWNvbmRzKCksIDMpLCAibXMi
KTsKKyAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcobGFiZWwsICI6ICIsIEZvcm1hdHRl
ZE51bWJlcjo6Zml4ZWRXaWR0aChlbGFwc2VkLm1pbGxpc2Vjb25kcygpLCAzKSwgIm1zIik7CiAg
ICAgYWRkTWVzc2FnZVRvQ29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihN
ZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6VGltaW5nLCBNZXNzYWdlTGV2
ZWw6OkRlYnVnLCBtZXNzYWdlLCBXVEZNb3ZlKGNhbGxTdGFjaykpKTsKIAogICAgIG1fdGltZXMu
cmVtb3ZlKGl0KTsKQEAgLTIwOCw1MyArMjEyLDMxIEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFn
ZW50Ojp0YWtlSGVhcFNuYXBzaG90KGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgbV9mcm9udGVu
ZERpc3BhdGNoZXItPmhlYXBTbmFwc2hvdCh0aW1lc3RhbXAsIHNuYXBzaG90RGF0YSwgdGl0bGUu
aXNFbXB0eSgpID8gbnVsbHB0ciA6ICZ0aXRsZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29s
ZUFnZW50OjpnZXRDb3VudGVyTGFiZWwoUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMs
IFN0cmluZyYgdGl0bGUsIFN0cmluZyYgaWRlbnRpZmllcikKLXsKLSAgICBpZiAoIWFyZ3VtZW50
cy0+YXJndW1lbnRDb3VudCgpKSB7Ci0gICAgICAgIC8vICdAJyBwcmVmaXggZm9yIGVuZ2luZSBn
ZW5lcmF0ZWQgbGFiZWxzLgotICAgICAgICB0aXRsZSA9ICJHbG9iYWwiX3M7Ci0gICAgICAgIGlk
ZW50aWZpZXIgPSBtYWtlU3RyaW5nKCdAJywgdGl0bGUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IC8vICcjJyBwcmVmaXggZm9yIHVzZXIgbGFiZWxzLgotICAgICAgICBhcmd1bWVudHMtPmdldEZp
cnN0QXJndW1lbnRBc1N0cmluZyh0aXRsZSk7Ci0gICAgICAgIGlkZW50aWZpZXIgPSBtYWtlU3Ry
aW5nKCcjJywgdGl0bGUpOwotICAgIH0KLX0KLQotdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6
OmNvdW50KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1
bWVudHMpCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7CiAgICAgaWYgKCFtX2luamVjdGVkU2NyaXB0
TWFuYWdlci5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIHRpdGxlOwotICAgIFN0cmluZyBpZGVudGlm
aWVyOwotICAgIGdldENvdW50ZXJMYWJlbChXVEZNb3ZlKGFyZ3VtZW50cyksIHRpdGxlLCBpZGVu
dGlmaWVyKTsKLQotICAgIGF1dG8gcmVzdWx0ID0gbV9jb3VudHMuYWRkKGlkZW50aWZpZXIsIDEp
OworICAgIGF1dG8gcmVzdWx0ID0gbV9jb3VudHMuYWRkKGxhYmVsLCAxKTsKICAgICBpZiAoIXJl
c3VsdC5pc05ld0VudHJ5KQogICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlICs9IDE7CiAK
ICAgICAvLyBGSVhNRTogV2ViIEluc3BlY3RvciBzaG91bGQgaGF2ZSBhIGJldHRlciBVSSBmb3Ig
Y291bnRlcnMsIGJ1dCBmb3Igbm93IHdlIGp1c3QgbG9nIGFuIHVwZGF0ZWQgY291bnRlciB2YWx1
ZS4KIAotICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZyh0aXRsZSwgIjogIiwgcmVzdWx0
Lml0ZXJhdG9yLT52YWx1ZSk7Ci0gICAgUmVmPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrID0g
Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShzdGF0ZSk7Ci0gICAgYWRkTWVzc2FnZVRv
Q29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpD
b25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBtZXNzYWdl
LCBXVEZNb3ZlKGNhbGxTdGFjaykpKTsKKyAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmco
bGFiZWwsICI6ICIsIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOworICAgIGFkZE1lc3NhZ2VUb0Nv
bnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29u
c29sZUFQSSwgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpEZWJ1ZywgbWVzc2FnZSwg
Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShleGVjLCAxKSkpOwogfQogCi12b2lkIElu
c3BlY3RvckNvbnNvbGVBZ2VudDo6Y291bnRSZXNldChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxTY3Jp
cHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmNv
dW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7CiAg
ICAgaWYgKCFtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRl
dmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIHRp
dGxlOwotICAgIFN0cmluZyBpZGVudGlmaWVyOwotICAgIGdldENvdW50ZXJMYWJlbChXVEZNb3Zl
KGFyZ3VtZW50cyksIHRpdGxlLCBpZGVudGlmaWVyKTsKLQotICAgIGF1dG8gaXQgPSBtX2NvdW50
cy5maW5kKGlkZW50aWZpZXIpOworICAgIGF1dG8gaXQgPSBtX2NvdW50cy5maW5kKGxhYmVsKTsK
ICAgICBpZiAoaXQgPT0gbV9jb3VudHMuZW5kKCkpIHsKICAgICAgICAgLy8gRklYTUU6IFNlbmQg
YW4gZW51bSB0byB0aGUgZnJvbnRlbmQgZm9yIGxvY2FsaXphdGlvbj8KLSAgICAgICAgU3RyaW5n
IHdhcm5pbmcgPSBtYWtlU3RyaW5nKCJDb3VudGVyIFwiIiwgdGl0bGUsICJcIiBkb2VzIG5vdCBl
eGlzdCIpOwotICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29u
c29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIE1lc3NhZ2VUeXBlOjpMb2cs
IE1lc3NhZ2VMZXZlbDo6V2FybmluZywgd2FybmluZykpOworICAgICAgICBTdHJpbmcgd2Fybmlu
ZyA9IG1ha2VTdHJpbmcoIkNvdW50ZXIgXCIiLCBsYWJlbCwgIlwiIGRvZXMgbm90IGV4aXN0Iik7
CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVz
c2FnZT4oTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCB3YXJuaW5nLCBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xl
KGV4ZWMsIDEpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29s
ZUFnZW50LmgKaW5kZXggZDlmNjIzNTczYTFmYmIxNjEzM2E3N2RhOTNhNDgwYzY2ZDczN2JiMS4u
NTUzODdjNDk3ZWFlOWIxN2I5MjVjYTcxM2Y2ZWNlODNkNGE4NGI3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmgKQEAgLTcwLDE4ICs3MCwxNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFk
ZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjp1bmlxdWVfcHRyPENvbnNvbGVNZXNzYWdlPik7CiAKLSAg
ICB2b2lkIHN0YXJ0VGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHZvaWQgbG9nVGlt
aW5nKGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpOwotICAgIHZv
aWQgc3RvcFRpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiYm
KTsKKyAgICB2b2lkIHN0YXJ0VGltaW5nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBs
YWJlbCk7CisgICAgdm9pZCBsb2dUaW1pbmcoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IGxhYmVsLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICB2b2lkIHN0b3BUaW1pbmcoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKICAgICB2b2lkIHRha2VIZWFwU25h
cHNob3QoY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0
ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpOwotICAgIHZvaWQgY291bnRSZXNldChKU0M6OkV4
ZWNTdGF0ZSosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpOworICAgIHZvaWQgY291bnQoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKyAgICB2b2lkIGNvdW50UmVzZXQoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKIAogICAgIHZvaWQgZ2V0TG9nZ2lu
Z0NoYW5uZWxzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNv
bnNvbGU6OkNoYW5uZWw+PiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0TG9nZ2luZ0NoYW5uZWxM
ZXZlbChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2hhbm5lbCwgY29uc3QgU3RyaW5nJiBs
ZXZlbCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIGdldENvdW50ZXJMYWJlbChS
ZWY8U2NyaXB0QXJndW1lbnRzPiYmLCBTdHJpbmcmIHRpdGxlLCBTdHJpbmcmIGlkZW50aWZpZXIp
OwogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPENvbnNvbGVNZXNz
YWdlPik7CiAKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXImIG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNs
aWVudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5oCmlu
ZGV4IDQ1NzA4MGI4MWQzODMwMzlhMzNjNTliY2EwZTIzYmNkNTlhOTdlMDMuLjE5OGVmZjNhMzZm
MjBjMTc3MTU3MzU4MjE0NjJmMTM4MGU3NTUxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmgKQEAgLTU1LDE0ICs1NSwxNCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBncm91cEVuZChFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVu
dHM+JiYpOwogCiAgICAgdmlydHVhbCB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2Ny
aXB0QXJndW1lbnRzPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvdW50KEV4ZWNTdGF0ZSos
IFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBjb3VudFJlc2V0KEV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3VudChFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IGxhYmVsKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvdW50UmVzZXQoRXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiBsYWJlbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwcm9maWxlKEV4ZWNTdGF0
ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcHJvZmlsZUVu
ZChFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHRha2VIZWFwU25hcHNob3QoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCB0aW1lKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgdGltZUxvZyhFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgdGltZUVuZChFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHRpbWUoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB0aW1lTG9nKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWws
IFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB0aW1lRW5kKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgdGltZVN0YW1wKEV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3Vt
ZW50cz4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNvcmQoRXhlY1N0YXRlKiwgUmVmPElu
c3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY29y
ZEVuZChFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKaW5k
ZXggOGM4MWE5NzAyNWVmZWY5YTgxM2YyNTk0NGM1OWJjMmE4NWEyODliNi4uN2Y0Y2Y3ZTQ2M2Zl
YzliM2Q1NTYxNzZjYzM1M2NiOGFiMDIwZDhiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKQEAgLTM0LDYgKzM0LDE4IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCitzdGF0aWMgU3RyaW5nIHZhbHVlT3JEZWZhdWx0TGFiZWxTdHJpbmcoRXhl
Y1N0YXRlKiBleGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAg
ICAgICByZXR1cm4gImRlZmF1bHQiX3M7CisKKyAgICBhdXRvIHZhbHVlID0gZXhlYy0+YXJndW1l
bnQoMCk7CisgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIHJldHVybiAiZGVm
YXVsdCJfczsKKworICAgIHJldHVybiB2YWx1ZS50b1dURlN0cmluZyhleGVjKTsKK30KKwogU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKENvbnNvbGVPYmplY3QpOwogCiBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRGVidWco
RXhlY1N0YXRlKik7CkBAIC0yMTksMjEgKzIzMSwyOSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KEV4ZWNTdGF0ZSogZXhlYykKIAog
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NvdW50
KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRShleGVjLT52bSgpKTsKKyAgICBhdXRvKiBjbGllbnQgPSBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVu
dCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAg
IGNsaWVudC0+Y291bnQoZXhlYywgSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhl
YywgMCkpOworICAgIGF1dG8gbGFiZWwgPSB2YWx1ZU9yRGVmYXVsdExhYmVsU3RyaW5nKGV4ZWMp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworCisg
ICAgY2xpZW50LT5jb3VudChleGVjLCBsYWJlbCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc29sZVByb3RvRnVuY0NvdW50UmVzZXQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIENv
bnNvbGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y29uc29s
ZUNsaWVudCgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGV4ZWMtPnZt
KCkpOworICAgIGF1dG8qIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y29u
c29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgY2xpZW50LT5jb3VudFJlc2V0KGV4ZWMsIElu
c3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDApKTsKKyAgICBhdXRvIGxhYmVs
ID0gdmFsdWVPckRlZmF1bHRMYWJlbFN0cmluZyhleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKworICAgIGNsaWVudC0+Y291bnRSZXNldChl
eGVjLCBsYWJlbCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIApAQCAtMzAwLDcwICszMjAsNDUgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25hcHNob3QoRXhlY1N0YXRlKgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBTdHJpbmcg
dmFsdWVPckRlZmF1bHRMYWJlbFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUp
Ci17Ci0gICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIHJldHVybiAiZGVmYXVs
dCJfczsKLSAgICByZXR1cm4gdmFsdWUudG9XVEZTdHJpbmcoZXhlYyk7Ci19Ci0KIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lKEV4ZWNTdGF0
ZSogZXhlYykKIHsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRShleGVjLT52bSgpKTsKKyAgICBhdXRvKiBjbGllbnQgPSBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNs
aWVudCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAot
ICAgIFN0cmluZyB0aXRsZTsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAg
ICAgICAgdGl0bGUgPSAiZGVmYXVsdCJfczsKLSAgICBlbHNlIHsKLSAgICAgICAgdGl0bGUgPSB2
YWx1ZU9yRGVmYXVsdExhYmVsU3RyaW5nKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApKTsKLSAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgfQor
ICAgIGF1dG8gbGFiZWwgPSB2YWx1ZU9yRGVmYXVsdExhYmVsU3RyaW5nKGV4ZWMpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCi0gICAgY2xpZW50
LT50aW1lKGV4ZWMsIHRpdGxlKTsKKyAgICBjbGllbnQtPnRpbWUoZXhlYywgbGFiZWwpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lTG9nKEV4ZWNTdGF0
ZSogZXhlYykKIHsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRShleGVjLT52bSgpKTsKKyAgICBhdXRvKiBjbGllbnQgPSBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNs
aWVudCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAot
ICAgIFN0cmluZyB0aXRsZTsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAg
ICAgICAgdGl0bGUgPSAgImRlZmF1bHQiX3M7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHRpdGxlID0g
dmFsdWVPckRlZmF1bHRMYWJlbFN0cmluZyhleGVjLCBleGVjLT5hcmd1bWVudCgwKSk7Ci0gICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIH0K
KyAgICBhdXRvIGxhYmVsID0gdmFsdWVPckRlZmF1bHRMYWJlbFN0cmluZyhleGVjKTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAotICAgIGNsaWVu
dC0+dGltZUxvZyhleGVjLCB0aXRsZSwgSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRBcmd1bWVudHMo
ZXhlYywgMSkpOworICAgIGNsaWVudC0+dGltZUxvZyhleGVjLCBsYWJlbCwgSW5zcGVjdG9yOjpj
cmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lRW5kKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RShleGVjLT52bSgpKTsKKyAgICBhdXRvKiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIFN0cmluZyB0aXRsZTsKLSAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAgICAgdGl0bGUgPSAgImRlZmF1
bHQiX3M7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHRpdGxlID0gdmFsdWVPckRlZmF1bHRMYWJlbFN0
cmluZyhleGVjLCBleGVjLT5hcmd1bWVudCgwKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIH0KKyAgICBhdXRvIGxhYmVsID0gdmFs
dWVPckRlZmF1bHRMYWJlbFN0cmluZyhleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAotICAgIGNsaWVudC0+dGltZUVuZChleGVjLCB0aXRs
ZSk7CisgICAgY2xpZW50LT50aW1lRW5kKGV4ZWMsIGxhYmVsKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDhjZmU4YTc1YTM2
YTBmZjAyZDIyNTFjOGI2YmVhZDNkMzZjMWI3ZWEuLmZiYjhhZjRhODJlYTBmZGY3OTJlNGExZmQz
MTBmNzljOWQ2MDQ1MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC04NTEsMTYgKzg1MSwxNiBAQCB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYgaW5zdAogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmNvbnNvbGVDb3VudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3Vt
ZW50cykKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEpTQzo6RXhlY1N0YXRlKiBz
dGF0ZSwgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBpZiAoV2ViQ29uc29sZUFnZW50KiBj
b25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNvbGVBZ2VudCgpKQotICAg
ICAgICBjb25zb2xlQWdlbnQtPmNvdW50KHN0YXRlLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAg
IGlmIChhdXRvKiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNvbGVB
Z2VudCgpKQorICAgICAgICBjb25zb2xlQWdlbnQtPmNvdW50KHN0YXRlLCBsYWJlbCk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRSZXNldEltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgSlNDOjpFeGVjU3RhdGUqIHN0
YXRlLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRSZXNldEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYg
aW5zdHJ1bWVudGluZ0FnZW50cywgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBjb25zdCBTdHJpbmcm
IGxhYmVsKQogewotICAgIGlmIChXZWJDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3Ry
dW1lbnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+
Y291bnRSZXNldChzdGF0ZSwgV1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBpZiAoYXV0byogY29u
c29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQoKSkKKyAgICAg
ICAgY29uc29sZUFnZW50LT5jb3VudFJlc2V0KHN0YXRlLCBsYWJlbCk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp0YWtlSGVhcFNuYXBzaG90SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIHRpdGxlKQpAQCAtODY5
LDUzICs4NjksNTMgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnRha2VIZWFwU25h
cHNob3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW0KICAgICAgICAgY29uc29sZUFn
ZW50LT50YWtlSGVhcFNuYXBzaG90KHRpdGxlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5z
dHJ1bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHRpdGxlKQordm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lLCBKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKICAgICBpZiAoIWluc3RydW1l
bnRpbmdBZ2VudHMuaW5zcGVjdG9yRW52aXJvbm1lbnQoKS5kZXZlbG9wZXJFeHRyYXNFbmFibGVk
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0
aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JUaW1lbGluZUFnZW50
KCkpCi0gICAgICAgIHRpbWVsaW5lQWdlbnQtPnRpbWUoZnJhbWUsIHRpdGxlKTsKLSAgICBpZiAo
V2ViQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNv
bnNvbGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPnN0YXJ0VGltaW5nKHRpdGxlKTsK
KyAgICBpZiAoYXV0byogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVj
dG9yVGltZWxpbmVBZ2VudCgpKQorICAgICAgICB0aW1lbGluZUFnZW50LT50aW1lKGZyYW1lLCBs
YWJlbCk7CisgICAgaWYgKGF1dG8qIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMu
d2ViQ29uc29sZUFnZW50KCkpCisgICAgICAgIGNvbnNvbGVBZ2VudC0+c3RhcnRUaW1pbmcoZXhl
YywgbGFiZWwpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25z
b2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBj
b25zdCBTdHJpbmcmIHRpdGxlKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0
Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50
cywgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7CiAgICAgaWYg
KCFpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckVudmlyb25tZW50KCkuZGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoV2ViQ29uc29sZUFnZW50
KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNvbGVBZ2VudCgpKQot
ICAgICAgICBjb25zb2xlQWdlbnQtPnN0YXJ0VGltaW5nKHRpdGxlKTsKKyAgICBpZiAoYXV0byog
Y29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQoKSkKKyAg
ICAgICAgY29uc29sZUFnZW50LT5zdGFydFRpbWluZyhleGVjLCBsYWJlbCk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8
SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmxvZ0NvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
IGluc3RydW1lbnRpbmdBZ2VudHMsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcm
IGxhYmVsLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQogewog
ICAgIGlmICghaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRldmVs
b3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKFdlYkNvbnNv
bGVBZ2VudCogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdl
bnQoKSkKLSAgICAgICAgY29uc29sZUFnZW50LT5sb2dUaW1pbmcodGl0bGUsIFdURk1vdmUoYXJn
dW1lbnRzKSk7CisgICAgaWYgKGF1dG8qIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMud2ViQ29uc29sZUFnZW50KCkpCisgICAgICAgIGNvbnNvbGVBZ2VudC0+bG9nVGltaW5nKGV4
ZWMsIGxhYmVsLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6c3RvcENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGlu
c3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVm
PFNjcmlwdENhbGxTdGFjaz4mJiBzdGFjaykKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGlu
Z0FnZW50cywgRnJhbWUmIGZyYW1lLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
JiBsYWJlbCkKIHsKICAgICBpZiAoIWluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRW52aXJv
bm1lbnQoKS5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChXZWJDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMu
d2ViQ29uc29sZUFnZW50KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+c3RvcFRpbWluZyh0aXRs
ZSwgV1RGTW92ZShzdGFjaykpOwotICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1l
bGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkp
Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPnRpbWVFbmQoZnJhbWUsIHRpdGxlKTsKKyAgICBpZiAo
YXV0byogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQo
KSkKKyAgICAgICAgY29uc29sZUFnZW50LT5zdG9wVGltaW5nKGV4ZWMsIGxhYmVsKTsKKyAgICBp
ZiAoYXV0byogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCgpKQorICAgICAgICB0aW1lbGluZUFnZW50LT50aW1lRW5kKGZyYW1lLCBsYWJl
bCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWlu
Z0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFjaykKK3ZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmlu
ZyYgbGFiZWwpCiB7CiAgICAgaWYgKCFpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckVudmly
b25tZW50KCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoV2ViQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LndlYkNvbnNvbGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPnN0b3BUaW1pbmcodGl0
bGUsIFdURk1vdmUoc3RhY2spKTsKKyAgICBpZiAoYXV0byogY29uc29sZUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQoKSkKKyAgICAgICAgY29uc29sZUFnZW50LT5z
dG9wVGltaW5nKGV4ZWMsIGxhYmVsKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmNvbnNvbGVUaW1lU3RhbXBJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRp
bmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKaW5kZXggZDUzNjhjMTJlMTNkYTExOTE4NDM4ODY5MDQ2ZmMwYzViZDVmOGQ5Ni4uYjJk
MTVjZTg2ZGRhZDZkY2JiY2VlYjQ0MmE1YzkyNmM2NGNjM2ZjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMjIxLDE4
ICsyMjEsMTggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
UGFnZSYsIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7CiAgICAg
c3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShXb3JrZXJHbG9iYWxTY29wZSYsIHN0ZDo6
dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7CiAKLSAgICBzdGF0aWMgdm9p
ZCBjb25zb2xlQ291bnQoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2Ny
aXB0QXJndW1lbnRzPiYmKTsKLSAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnQoV29ya2VyR2xv
YmFsU2NvcGUmLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50
cz4mJik7Ci0gICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50UmVzZXQoUGFnZSYsIEpTQzo6RXhl
Y1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKLSAgICBzdGF0aWMg
dm9pZCBjb25zb2xlQ291bnRSZXNldChXb3JrZXJHbG9iYWxTY29wZSYsIEpTQzo6RXhlY1N0YXRl
KiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICBzdGF0aWMgdm9pZCBj
b25zb2xlQ291bnQoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7
CisgICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50KFdvcmtlckdsb2JhbFNjb3BlJiwgSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKyAgICBzdGF0aWMgdm9pZCBjb25zb2xl
Q291bnRSZXNldChQYWdlJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsK
KyAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnRSZXNldChXb3JrZXJHbG9iYWxTY29wZSYsIEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CiAKICAgICBzdGF0aWMgdm9pZCB0
YWtlSGVhcFNuYXBzaG90KEZyYW1lJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgc3RhdGlj
IHZvaWQgc3RhcnRDb25zb2xlVGltaW5nKEZyYW1lJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0g
ICAgc3RhdGljIHZvaWQgc3RhcnRDb25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgc3RhdGljIHZvaWQgbG9nQ29uc29sZVRpbWluZyhGcmFt
ZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4m
Jik7Ci0gICAgc3RhdGljIHZvaWQgbG9nQ29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYs
IGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7
Ci0gICAgc3RhdGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmcoRnJhbWUmLCBjb25zdCBTdHJpbmcm
IHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwotICAgIHN0YXRpYyB2
b2lkIHN0b3BDb25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiwgY29uc3QgU3RyaW5nJiB0
aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKKyAgICBzdGF0aWMgdm9p
ZCBzdGFydENvbnNvbGVUaW1pbmcoRnJhbWUmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgbGFiZWwpOworICAgIHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRpbWluZyhXb3JrZXJHbG9i
YWxTY29wZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CisgICAgc3Rh
dGljIHZvaWQgbG9nQ29uc29sZVRpbWluZyhGcmFtZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICBz
dGF0aWMgdm9pZCBsb2dDb25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiwgSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVu
dHM+JiYpOworICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nKEZyYW1lJiwgSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKyAgICBzdGF0aWMgdm9pZCBzdG9wQ29u
c29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJiBsYWJlbCk7CiAgICAgc3RhdGljIHZvaWQgY29uc29sZVRpbWVTdGFtcChGcmFtZSYsIFJl
ZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CiAgICAgc3RhdGljIHZvaWQgc3RhcnRQ
cm9maWxpbmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAg
ICAgc3RhdGljIHZvaWQgc3RvcFByb2ZpbGluZyhQYWdlJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBTdHJpbmcmIHRpdGxlKTsKQEAgLTQwNSwxNCArNDA1LDE0IEBAIHByaXZhdGU6CiAKICAgICBz
dGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
c3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+KTsKIAotICAgIHN0YXRp
YyB2b2lkIGNvbnNvbGVDb3VudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0
YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKLSAgICBzdGF0aWMgdm9p
ZCBjb25zb2xlQ291bnRSZXNldEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0
YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKKyAgICBzdGF0aWMgdm9p
ZCBjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgbGFiZWwpOworICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVDb3VudFJlc2V0
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IGxhYmVsKTsKICAgICBzdGF0aWMgdm9pZCB0YWtlSGVhcFNuYXBzaG90SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgc3RhdGljIHZvaWQgc3RhcnRD
b25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmLCBjb25zdCBTdHJp
bmcmIHRpdGxlKTsKLSAgICBzdGF0aWMgdm9pZCBzdGFydENvbnNvbGVUaW1pbmdJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKLSAgICBzdGF0aWMgdm9pZCBs
b2dDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgY29uc3QgU3RyaW5nJiB0
aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKLSAgICBzdGF0aWMgdm9p
ZCBzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEZyYW1lJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKLSAg
ICBzdGF0aWMgdm9pZCBzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7
CisgICAgc3RhdGljIHZvaWQgc3RhcnRDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiwgRnJhbWUmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpOworICAg
IHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CisgICAgc3RhdGljIHZvaWQg
bG9nQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYm
KTsKKyAgICBzdGF0aWMgdm9pZCBzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIEZyYW1lJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKyAg
ICBzdGF0aWMgdm9pZCBzdG9wQ29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CiAgICAgc3RhdGljIHZvaWQg
Y29uc29sZVRpbWVTdGFtcEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEZyYW1lJiwgUmVmPElu
c3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKICAgICBzdGF0aWMgdm9pZCBzdGFydFByb2Zp
bGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSk7CiAgICAgc3RhdGljIHZvaWQgc3RvcFByb2ZpbGluZ0ltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CkBAIC0x
Mzg3LDI0ICsxMzg3LDI0IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
YWRkTWVzc2FnZVRvQ29uc29sZShXb3JrZXJHbG9iYWxTY29wZSYgd29yCiAgICAgYWRkTWVzc2Fn
ZVRvQ29uc29sZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdv
cmtlckdsb2JhbFNjb3BlKSwgV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKLWlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFBhZ2UmIHBhZ2UsIEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50
cykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFBh
Z2UmIHBhZ2UsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsK
LSAgICBjb25zb2xlQ291bnRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpLCBz
dGF0ZSwgV1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBjb25zb2xlQ291bnRJbXBsKGluc3RydW1l
bnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpLCBzdGF0ZSwgbGFiZWwpOwogfQogCi1pbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudChXb3JrZXJHbG9iYWxTY29w
ZSYgd29ya2VyR2xvYmFsU2NvcGUsIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgUmVmPEluc3BlY3Rv
cjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK2lubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9i
YWxTY29wZSwgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewot
ICAgIGNvbnNvbGVDb3VudEltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNj
b3BlKHdvcmtlckdsb2JhbFNjb3BlKSwgc3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAg
Y29uc29sZUNvdW50SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUo
d29ya2VyR2xvYmFsU2NvcGUpLCBzdGF0ZSwgbGFiZWwpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudFJlc2V0KFBhZ2UmIHBhZ2UsIEpTQzo6
RXhlY1N0YXRlKiBzdGF0ZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3Vt
ZW50cykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50
UmVzZXQoUGFnZSYgcGFnZSwgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBjb25zdCBTdHJpbmcmIGxh
YmVsKQogewotICAgIGNvbnNvbGVDb3VudFJlc2V0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9y
UGFnZShwYWdlKSwgc3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgY29uc29sZUNvdW50
UmVzZXRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpLCBzdGF0ZSwgbGFiZWwp
OwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3Vu
dFJlc2V0KFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwgSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQor
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRSZXNldChX
b3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIEpTQzo6RXhlY1N0YXRlKiBzdGF0
ZSwgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBjb25zb2xlQ291bnRSZXNldEltcGwoaW5z
dHJ1bWVudGluZ0FnZW50c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKSwg
c3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgY29uc29sZUNvdW50UmVzZXRJbXBsKGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSks
IHN0YXRlLCBsYWJlbCk7CiB9CiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6dGFrZUhlYXBTbmFwc2hvdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgdGl0bGUpCkBA
IC0xNDE0LDM3ICsxNDE0LDM3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6dGFrZUhlYXBTbmFwc2hvdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluCiAgICAgICAgIHRh
a2VIZWFwU25hcHNob3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCB0aXRsZSk7CiB9CiAKLWlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5nKEZy
YW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK2lubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5nKEZyYW1lJiBmcmFtZSwgSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgaWYgKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJh
bWUoZnJhbWUpKQotICAgICAgICBzdGFydENvbnNvbGVUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5n
QWdlbnRzLCBmcmFtZSwgdGl0bGUpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRz
ID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgc3RhcnRDb25z
b2xlVGltaW5nSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUsIGV4ZWMsIGxhYmVsKTsK
IH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydENvbnNvbGVU
aW1pbmcoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBjb25zdCBTdHJpbmcm
IHRpdGxlKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydENvbnNv
bGVUaW1pbmcoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBzdGFydENvbnNvbGVUaW1p
bmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9i
YWxTY29wZSksIHRpdGxlKTsKKyAgICBzdGFydENvbnNvbGVUaW1pbmdJbXBsKGluc3RydW1lbnRp
bmdBZ2VudHNGb3JXb3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSksIGV4ZWMsIGxh
YmVsKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25z
b2xlVGltaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rv
cjo6U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK2lubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6bG9nQ29uc29sZVRpbWluZyhGcmFtZSYgZnJhbWUsIEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1
bWVudHM+JiYgYXJndW1lbnRzKQogewotICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKLSAg
ICAgICAgbG9nQ29uc29sZVRpbWluZ0ltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHRpdGxlLCBX
VEZNb3ZlKGFyZ3VtZW50cykpOworICAgIGlmIChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0g
aW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgbG9nQ29uc29sZVRp
bWluZ0ltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGV4ZWMsIGxhYmVsLCBXVEZNb3ZlKGFyZ3Vt
ZW50cykpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvZ0Nv
bnNvbGVUaW1pbmcoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBjb25zdCBT
dHJpbmcmIHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRz
KQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dDb25zb2xlVGltaW5n
KFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwgSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4m
JiBhcmd1bWVudHMpCiB7Ci0gICAgbG9nQ29uc29sZVRpbWluZ0ltcGwoaW5zdHJ1bWVudGluZ0Fn
ZW50c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKSwgdGl0bGUsIFdURk1v
dmUoYXJndW1lbnRzKSk7CisgICAgbG9nQ29uc29sZVRpbWluZ0ltcGwoaW5zdHJ1bWVudGluZ0Fn
ZW50c0Zvcldvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKSwgZXhlYywgbGFiZWws
IFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6c3RvcENvbnNvbGVUaW1pbmcoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2spCitpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nKEZyYW1lJiBmcmFt
ZSwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgaWYg
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5n
QWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICBzdG9wQ29uc29sZVRpbWluZ0ltcGwoKmlu
c3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lLCB0aXRsZSwgV1RGTW92ZShzdGFjaykpOworICAgIGlm
IChhdXRvKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1l
KGZyYW1lKSkKKyAgICAgICAgc3RvcENvbnNvbGVUaW1pbmdJbXBsKCppbnN0cnVtZW50aW5nQWdl
bnRzLCBmcmFtZSwgZXhlYywgbGFiZWwpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJH
bG9iYWxTY29wZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0Q2Fs
bFN0YWNrPiYmIHN0YWNrKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpz
dG9wQ29uc29sZVRpbWluZyhXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewotICAgIHN0b3BDb25z
b2xlVGltaW5nSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUod29y
a2VyR2xvYmFsU2NvcGUpLCB0aXRsZSwgV1RGTW92ZShzdGFjaykpOworICAgIHN0b3BDb25zb2xl
VGltaW5nSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyR2xvYmFsU2NvcGUod29ya2Vy
R2xvYmFsU2NvcGUpLCBleGVjLCBsYWJlbCk7CiB9CiAKIGlubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcChGcmFtZSYgZnJhbWUsIFJlZjxJbnNwZWN0
b3I6OlNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbnNvbGVDbGllbnQuY3BwCmluZGV4IGFmMjI2N2NiMWQxMzYwYjZmMzMyMmNkMWMwMzIwZjAw
OGYzZGIyYzcuLmMzYjFkMzY5MjA4Njc3MGZiMTc4MGM0OTBlNDc3NDhlYmQ5MTI1N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCkBAIC0xNzAsMTQgKzE3MCwx
NCBAQCB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNz
YWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbAogICAgICAgICBDb25zb2xlQ2xpZW50Ojpwcmlu
dENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCB0
eXBlLCBsZXZlbCwgZXhlYywgV1RGTW92ZShhcmd1bWVudHMpKTsKIH0KIAotdm9pZCBQYWdlQ29u
c29sZUNsaWVudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJlZjxTY3JpcHRBcmd1bWVu
dHM+JiYgYXJndW1lbnRzKQordm9pZCBQYWdlQ29uc29sZUNsaWVudDo6Y291bnQoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpjb25zb2xlQ291bnQobV9wYWdlLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykp
OworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KG1fcGFnZSwgZXhl
YywgbGFiZWwpOwogfQogCi12b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojpjb3VudFJlc2V0KEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQg
UGFnZUNvbnNvbGVDbGllbnQ6OmNvdW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xl
Q291bnRSZXNldChtX3BhZ2UsIGV4ZWMsIFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRSZXNldChtX3BhZ2UsIGV4ZWMsIGxhYmVs
KTsKIH0KIAogdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZShKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKQEAgLTE5NywxOSArMTk3LDE5IEBAIHZvaWQgUGFn
ZUNvbnNvbGVDbGllbnQ6OnRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmIHRpdGxlKQogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dGFrZUhlYXBTbmFw
c2hvdChtX3BhZ2UubWFpbkZyYW1lKCksIHRpdGxlKTsKIH0KIAotdm9pZCBQYWdlQ29uc29sZUNs
aWVudDo6dGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCit2b2lkIFBh
Z2VDb25zb2xlQ2xpZW50Ojp0aW1lKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcm
IGxhYmVsKQogewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGlt
aW5nKG1fcGFnZS5tYWluRnJhbWUoKSwgdGl0bGUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c3RhcnRDb25zb2xlVGltaW5nKG1fcGFnZS5tYWluRnJhbWUoKSwgZXhlYywgbGFiZWwp
OwogfQogCi12b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2
b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKLSAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvZ0NvbnNvbGVUaW1pbmcobV9wYWdlLm1haW5G
cmFtZSgpLCB0aXRsZSwgV1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmxvZ0NvbnNvbGVUaW1pbmcobV9wYWdlLm1haW5GcmFtZSgpLCBleGVjLCBsYWJl
bCwgV1RGTW92ZShhcmd1bWVudHMpKTsKIH0KIAotdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6dGlt
ZUVuZChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgUGFn
ZUNvbnNvbGVDbGllbnQ6OnRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmlu
ZyYgbGFiZWwpCiB7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRp
bWluZyhtX3BhZ2UubWFpbkZyYW1lKCksIHRpdGxlLCBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JD
b25zb2xlKGV4ZWMsIDEpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25z
b2xlVGltaW5nKG1fcGFnZS5tYWluRnJhbWUoKSwgZXhlYywgbGFiZWwpOwogfQogCiB2b2lkIFBh
Z2VDb25zb2xlQ2xpZW50Ojp0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWY8U2NyaXB0QXJn
dW1lbnRzPiYmIGFyZ3VtZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQu
aAppbmRleCA4YTM5ZGEwZDdkYTMzMjM4MjQzYWJkYTFiMjc0YjBhZTA1YWNiMmU2Li5mZmJmNjJi
MjAxZmUzMTI4NTM4MjE3OGMzNDlkMGFiMmI3NGU1NTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uc29sZUNsaWVudC5oCkBAIC02NywxNCArNjcsMTQgQEAgcHVibGljOgogCiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4m
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0
b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb3VudFJlc2V0KEpT
Qzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBjb3VudFJlc2V0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJiBsYWJlbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxlRW5kKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0YWtl
SGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCB0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiB0aXRsZSwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVs
KSBvdmVycmlkZTsKKyAgICB2b2lkIHRpbWVMb2coSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJp
bmcmIGxhYmVsLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgdGltZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpIG92
ZXJyaWRlOwogICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rv
cjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHJlY29yZChKU0M6OkV4
ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCByZWNvcmRFbmQoSlNDOjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRB
cmd1bWVudHM+JiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29uc29sZUNsaWVudC5jcHAKaW5kZXggYzdiNmI0MGYyMDk1NGYyY2YzZGI5MTM2MGZlN2MzOGIy
NzhjMTg2Mi4uZGJlOTA3M2Q2YWRlYmZjNTAxNTljYzJlZGJiMjI4M2NjZDE3YmE4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuY3BwCkBAIC01MCwy
OSArNTAsMjkgQEAgdm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRM
ZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwKICAgICBtX3dvcmtlckdsb2JhbFNj
b3BlLmFkZENvbnNvbGVNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwogfQogCi12b2lkIFdvcmtl
ckNvbnNvbGVDbGllbnQ6OmNvdW50KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWY8U2NyaXB0QXJn
dW1lbnRzPiYmIGFyZ3VtZW50cykKK3ZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6Y291bnQoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0gICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnQobV93b3JrZXJHbG9iYWxTY29wZSwgZXhlYywg
V1RGTW92ZShhcmd1bWVudHMpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNv
bGVDb3VudChtX3dvcmtlckdsb2JhbFNjb3BlLCBleGVjLCBsYWJlbCk7CiB9CiAKLXZvaWQgV29y
a2VyQ29uc29sZUNsaWVudDo6Y291bnRSZXNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUmVmPFNj
cmlwdEFyZ3VtZW50cz4mJiBhcmd1bWVudHMpCit2b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OmNv
dW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7Ci0g
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRSZXNldChtX3dvcmtlckds
b2JhbFNjb3BlLCBleGVjLCBXVEZNb3ZlKGFyZ3VtZW50cykpOworICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6Y29uc29sZUNvdW50UmVzZXQobV93b3JrZXJHbG9iYWxTY29wZSwgZXhlYywg
bGFiZWwpOwogfQogCi12b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OnRpbWUoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQordm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50Ojp0aW1l
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewotICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5nKG1fd29ya2VyR2xvYmFsU2Nv
cGUsIHRpdGxlKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29uc29sZVRp
bWluZyhtX3dvcmtlckdsb2JhbFNjb3BlLCBleGVjLCBsYWJlbCk7CiB9CiAKLXZvaWQgV29ya2Vy
Q29uc29sZUNsaWVudDo6dGltZUxvZyhKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0
bGUsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYgYXJndW1lbnRzKQordm9pZCBXb3JrZXJDb25zb2xl
Q2xpZW50Ojp0aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIGxhYmVs
LCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmIGFyZ3VtZW50cykKIHsKLSAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmxvZ0NvbnNvbGVUaW1pbmcobV93b3JrZXJHbG9iYWxTY29wZSwgdGl0bGUs
IFdURk1vdmUoYXJndW1lbnRzKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2dD
b25zb2xlVGltaW5nKG1fd29ya2VyR2xvYmFsU2NvcGUsIGV4ZWMsIGxhYmVsLCBXVEZNb3ZlKGFy
Z3VtZW50cykpOwogfQogCi12b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OnRpbWVFbmQoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCit2b2lkIFdvcmtlckNvbnNvbGVD
bGllbnQ6OnRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbGFiZWwp
CiB7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZyhtX3dv
cmtlckdsb2JhbFNjb3BlLCB0aXRsZSwgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShl
eGVjLCAxKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWlu
ZyhtX3dvcmtlckdsb2JhbFNjb3BlLCBleGVjLCBsYWJlbCk7CiB9CiAKIC8vIEZJWE1FOiA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMTUzNDk5PiBXZWIgSW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUg
c2hvdWxkIHVzZSB0aGUgbmV3IFNhbXBsaW5nIFByb2ZpbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5oCmluZGV4IDYxNzdkYjE4ZmNmZWM5ZjAzNWJhMTE4
ZDQ5MDk5OGE2MWNjZDcxNjcuLjM4NDZkMjcxYjY4YmQ2OTgyMDAwYjUyYjlhYmFiOTc2NzY3NjE0
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29sZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5oCkBA
IC00MywxNCArNDMsMTQgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBtZXNzYWdl
V2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0
ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4m
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb3VudFJlc2V0KEpTQzo6RXhlY1N0YXRlKiwgUmVmPElu
c3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvdW50KEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBj
b3VudFJlc2V0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0aW1lKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0
aW1lTG9nKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmPEluc3BlY3Rv
cjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHRpbWVFbmQoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKKyAgICB2b2lkIHRpbWUo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBvdmVycmlkZTsKKyAgICB2b2lk
IHRpbWVMb2coSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8SW5zcGVj
dG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgdGltZUVuZChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpIG92ZXJyaWRlOwogICAgIHZvaWQgdGlt
ZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIHJlY29yZChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0
b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWNvcmRFbmQoSlND
OjpFeGVjU3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldENvbnNvbGVDbGll
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldENvbnNvbGVDbGllbnQuY3Bw
CmluZGV4IDlmMWQzN2RjZWFiYmU2M2ZhNmFjNTZlYTY5YTdhMzc5ZDllMDIyNzguLjhlOGEyYTRj
YTIzZTJiOTNkYTEzNGFmYjUyZDBlOTU3NmM0MDIxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5jcHAKQEAgLTUyLDggKzUyLDggQEAgdm9p
ZCBXb3JrbGV0Q29uc29sZUNsaWVudDo6bWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5
cGUgdHlwZSwgTWVzc2FnZUxldmUKICAgICBtX3dvcmtsZXRHbG9iYWxTY29wZS5hZGRDb25zb2xl
TWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAotdm9pZCBXb3JrbGV0Q29uc29sZUNsaWVu
dDo6Y291bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSB7IH0KLXZv
aWQgV29ya2xldENvbnNvbGVDbGllbnQ6OmNvdW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqLCBSZWY8
U2NyaXB0QXJndW1lbnRzPiYmKSB7IH0KK3ZvaWQgV29ya2xldENvbnNvbGVDbGllbnQ6OmNvdW50
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikgeyB9Cit2b2lkIFdvcmtsZXRDb25zb2xl
Q2xpZW50Ojpjb3VudFJlc2V0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikgeyB9CiAK
IHZvaWQgV29ya2xldENvbnNvbGVDbGllbnQ6OnRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmKSB7IH0KIHZvaWQgV29ya2xldENvbnNvbGVDbGllbnQ6OnRpbWVMb2coSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0Q29uc29sZUNsaWVudC5oCmluZGV4IGQ4NDQ2
NDAzYjMxNTllZDM0ZDJkNTM4MTQ1ZjQxZTAzMTE2NTNhYzUuLjYzMWRhZTk5MDFhYzlhNDNkMjA4
NjllYTVkODFmYzMzNDU4YzhlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRz
L1dvcmtsZXRDb25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29y
a2xldENvbnNvbGVDbGllbnQuaApAQCAtNDUsMTQgKzQ1LDE0IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlLCBNZXNzYWdl
TGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYm
KSBmaW5hbDsKLSAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6
U2NyaXB0QXJndW1lbnRzPiYmKSBmaW5hbDsKLSAgICB2b2lkIGNvdW50UmVzZXQoSlNDOjpFeGVj
U3RhdGUqLCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIGZpbmFsOworICAgIHZv
aWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBmaW5hbDsKKyAg
ICB2b2lkIGNvdW50UmVzZXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBm
aW5hbDsKICAgICB2b2lkIHByb2ZpbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRp
dGxlKSBmaW5hbDsKICAgICB2b2lkIHByb2ZpbGVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmIHRpdGxlKSBmaW5hbDsKICAgICB2b2lkIHRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBmaW5hbDsKLSAgICB2b2lkIHRpbWUoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBmaW5hbDsKLSAgICB2b2lkIHRpbWVMb2co
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWY8SW5zcGVjdG9yOjpTY3Jp
cHRBcmd1bWVudHM+JiYpIGZpbmFsOwotICAgIHZvaWQgdGltZUVuZChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgdGl0bGUpIGZpbmFsOworICAgIHZvaWQgdGltZShKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpIGZpbmFsOworICAgIHZvaWQgdGltZUxvZyhKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwsIFJlZjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3Vt
ZW50cz4mJikgZmluYWw7CisgICAgdm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiBsYWJlbCkgZmluYWw7CiAgICAgdm9pZCB0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUq
LCBSZWY8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIGZpbmFsOwogICAgIHZvaWQgcmVj
b3JkKEpTQzo6RXhlY1N0YXRlKiwgUmVmPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBm
aW5hbDsKICAgICB2b2lkIHJlY29yZEVuZChKU0M6OkV4ZWNTdGF0ZSosIFJlZjxJbnNwZWN0b3I6
OlNjcmlwdEFyZ3VtZW50cz4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9u
UGFyYW1ldGVycy5qcwppbmRleCBjY2JiNjZiYWFiMjEyMTk5OGE4NmVkYWYzOTdmYTJiMjkxYWEy
ZGI3Li40YjRiYmEyODFlZmRkYWJlNGRhYmNiZWM0MmVmNDA3ODE5MTMwYTAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rp
b25QYXJhbWV0ZXJzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMKQEAgLTE2MSw3ICsxNjEsOCBAQCBX
SS5OYXRpdmVDb25zdHJ1Y3RvckZ1bmN0aW9uUGFyYW1ldGVycyA9IHsKIAogICAgIENvbnNvbGU6
IHsKICAgICAgICAgYXNzZXJ0OiAiY29uZGl0aW9uLCBbbWVzc2FnZV0sIFsuLi52YWx1ZXNdIiwK
LSAgICAgICAgY291bnQ6ICJbbGFiZWxdIiwKKyAgICAgICAgY291bnQ6ICJsYWJlbCA9IFwiZGVm
YXVsdFwiIiwKKyAgICAgICAgY291bnRSZXNldDogImxhYmVsID0gXCJkZWZhdWx0XCIiLAogICAg
ICAgICBkZWJ1ZzogIm1lc3NhZ2UsIFsuLi52YWx1ZXNdIiwKICAgICAgICAgZGlyOiAib2JqZWN0
IiwKICAgICAgICAgZGlyeG1sOiAib2JqZWN0IiwKQEAgLTE3OCw4ICsxNzksOSBAQCBXSS5OYXRp
dmVDb25zdHJ1Y3RvckZ1bmN0aW9uUGFyYW1ldGVycyA9IHsKICAgICAgICAgc2NyZWVuc2hvdDog
Iltub2RlXSIsCiAgICAgICAgIHRhYmxlOiAiZGF0YSwgW2NvbHVtbnNdIiwKICAgICAgICAgdGFr
ZUhlYXBTbmFwc2hvdDogIltsYWJlbF0iLAotICAgICAgICB0aW1lOiAibmFtZSA9IFwiZGVmYXVs
dFwiIiwKLSAgICAgICAgdGltZUVuZDogIm5hbWUgPSBcImRlZmF1bHRcIiIsCisgICAgICAgIHRp
bWU6ICJsYWJlbCA9IFwiZGVmYXVsdFwiIiwKKyAgICAgICAgdGltZUxvZzogImxhYmVsID0gXCJk
ZWZhdWx0XCIiLAorICAgICAgICB0aW1lRW5kOiAibGFiZWwgPSBcImRlZmF1bHRcIiIsCiAgICAg
ICAgIHRpbWVTdGFtcDogIltsYWJlbF0iLAogICAgICAgICB0cmFjZTogIm1lc3NhZ2UsIFsuLi52
YWx1ZXNdIiwKICAgICAgICAgd2FybjogIm1lc3NhZ2UsIFsuLi52YWx1ZXNdIiwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAz
MzE2NWM1NTY2YWYyZDgxZTlhMmE1NDNhZTJmMjViODQwY2E2ODM4Li41Njg4MmFkOTY4NWExODRm
YTQzZTdkYjFiZDRkZTcxMTc1NTk2ZDYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDYt
MjcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHRocm93IGFuIGVycm9yIGlmIGNvbnNvbGUuY291bnQvY29uc29sZS5jb3VudFJlc2V0
IGlzIGNhbGxlZCB3aXRoIGFuIG9iamVjdCB0aGF0IHRocm93cyBhbiBlcnJvciBmcm9tIHRvU3Ry
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTky
NTIKKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNvdW50Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1jb3VudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1hcGktZXhwZWN0ZWQudHh0OgorCiAyMDE5LTA2LTI2ICBSdXNzZWxs
IEVwc3RlaW4gIDxydXNzZWxsX2VAYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCBUZXN0IGh0
dHAvdGVzdHMvcGVyZm9ybWFuY2UvcGVyZm9ybWFuY2UtcmVzb3VyY2UtdGltaW5nLXJlc291cmNl
dGltaW5nYnVmZmVyZnVsbC1zaHJpbmtpbmctYnVmZmVyLWNyYXNoLmh0bWwgaXMgZmFpbGluZy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYXBpLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYXBpLWV4
cGVjdGVkLnR4dAppbmRleCA4MzZlODE0MjQ2MzU0OWFiZjBlOGRjMTBlZjU5MzcwMzAxNmQ2YjAw
Li4yZGNkOWU2OWM1MjRjODI3NTI0Y2YzZmQ0MzBjOWNlNTE4ZTM1ZDE2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFwaS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hcGktZXhwZWN0ZWQudHh0
CkBAIC01ODUsNyArNTg1LDcgQEAgU1RFUDogY29uc29sZS5jb3VudCgpCiB7CiAgICJfc291cmNl
IjogImNvbnNvbGUtYXBpIiwKICAgIl9sZXZlbCI6ICJkZWJ1ZyIsCi0gICJfbWVzc2FnZVRleHQi
OiAiR2xvYmFsOiAxIiwKKyAgIl9tZXNzYWdlVGV4dCI6ICJkZWZhdWx0OiAxIiwKICAgIl90eXBl
IjogImxvZyIsCiAgICJfdXJsIjogbnVsbCwKICAgIl9saW5lIjogMywKQEAgLTU5OSw3ICs1OTks
MjEgQEAgU1RFUDogY29uc29sZS5jb3VudCgpCiB7CiAgICJfc291cmNlIjogImNvbnNvbGUtYXBp
IiwKICAgIl9sZXZlbCI6ICJkZWJ1ZyIsCi0gICJfbWVzc2FnZVRleHQiOiAiR2xvYmFsOiAyIiwK
KyAgIl9tZXNzYWdlVGV4dCI6ICJkZWZhdWx0OiAyIiwKKyAgIl90eXBlIjogImxvZyIsCisgICJf
dXJsIjogbnVsbCwKKyAgIl9saW5lIjogMywKKyAgIl9jb2x1bW4iOiAxNCwKKyAgIl9yZXBlYXRD
b3VudCI6IDEsCisgICJfc3RhY2tUcmFjZSI6ICI8ZmlsdGVyZWQ+IiwKKyAgIl9yZXF1ZXN0Ijog
bnVsbAorfQorCitTVEVQOiBjb25zb2xlLmNvdW50KCJkZWZhdWx0IikKK3sKKyAgIl9zb3VyY2Ui
OiAiY29uc29sZS1hcGkiLAorICAiX2xldmVsIjogImRlYnVnIiwKKyAgIl9tZXNzYWdlVGV4dCI6
ICJkZWZhdWx0OiAzIiwKICAgIl90eXBlIjogImxvZyIsCiAgICJfdXJsIjogbnVsbCwKICAgIl9s
aW5lIjogMywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFwaS5o
dG1sCmluZGV4IGQ1ZjFkZjgyOWM4ODNlYjFlNDlkOTA5ZTM4YzE4ZjFlNmIwNWMyYmQuLjI1YTcy
YTRmMmI4MTcwMTU1NGY4NDdjNmVjZjQ2N2IxNjRmZTkyZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYXBpLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hcGkuaHRtbApAQCAtMzQsNiArMzQsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgImNvbnNvbGUuZ3JvdXBFbmQoJ2NvbGxhcHNlZEdyb3VwTmFt
ZScpIiwKICAgICAgICAgImNvbnNvbGUuY291bnQoKSIsCiAgICAgICAgICJjb25zb2xlLmNvdW50
KCkiLAorICAgICAgICAiY29uc29sZS5jb3VudChcImRlZmF1bHRcIikiLAogICAgICAgICAiY29u
c29sZS5jb3VudCgnJykiLAogICAgICAgICAiY29uc29sZS5jb3VudCgnICAgICcpIiwKICAgICAg
ICAgImNvbnNvbGUuY291bnQoJycpIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtY291bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS1jb3VudC1leHBlY3RlZC50eHQKaW5kZXggOWU5YThlMjUyYTY0
MjM2ZDYyMTAzMGQxZmE1NmYzMmM4NWJiM2RkNi4uYWQ4NGQ1ODc2M2Q4MmRkOWM1ODUxZTc4ZWU0
ZGRkODcwMDAxZGIxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1jb3VudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1jb3VudC1leHBlY3RlZC50eHQKQEAgLTMsMjIgKzMsMjIgQEAgVGVzdHMg
Zm9yIHRoZSBjb25zb2xlLmNvdW50IGFuZCBjb25zb2xlLmNvdW50UmVzZXQgQVBJcy4KIAogPT0g
UnVubmluZyB0ZXN0IHN1aXRlOiBjb25zb2xlLmNvdW50CiAtLSBSdW5uaW5nIHRlc3QgY2FzZTog
Y29uc29sZS5jb3VudC5Ob0FyZ3VtZW50cwotR2xvYmFsOiAxCi1HbG9iYWw6IDIKLUdsb2JhbDog
MwotR2xvYmFsOiA0Ci1HbG9iYWw6IDUKLUdsb2JhbDogNgotR2xvYmFsOiA3Ci1HbG9iYWw6IDgK
LUdsb2JhbDogOQotR2xvYmFsOiAxMAotR2xvYmFsOiAxMQotR2xvYmFsOiAxMgotR2xvYmFsOiAx
MwotR2xvYmFsOiAxNAotR2xvYmFsOiAxNQotR2xvYmFsOiAxNgorZGVmYXVsdDogMQorZGVmYXVs
dDogMgorZGVmYXVsdDogMworZGVmYXVsdDogNAorZGVmYXVsdDogNQorZGVmYXVsdDogNgorZGVm
YXVsdDogNworZGVmYXVsdDogOAorZGVmYXVsdDogOQorZGVmYXVsdDogMTAKK2RlZmF1bHQ6IDEx
CitkZWZhdWx0OiAxMgorZGVmYXVsdDogMTMKK2RlZmF1bHQ6IDE0CitkZWZhdWx0OiAxNQorZGVm
YXVsdDogMTYKIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IGNvbnNvbGUuY291bnQuV2l0aExhYmVs
CiBhbHBoYTogMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS1jb3VudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1j
b3VudC5odG1sCmluZGV4IDY5OTk0NjViYmRjZDY3ZDQ2YTMyODE0ZmZkN2QwYTY0ODA2ZTc5MmEu
LjRmMDU3YThjYTM5NTQ0ZDAyMWNjZjE5YmY3MjFjZDAwNWM0N2M0ZGUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY291bnQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNvdW50Lmh0bWwKQEAgLTQwLDcgKzQw
LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAg
IG5hbWU6ICJjb25zb2xlLmNvdW50Lk5vQXJndW1lbnRzIiwKLSAgICAgICAgZGVzY3JpcHRpb246
ICJObyBhcmd1bWVudHMgaW5jcmVtZW50cyBhIHNoYXJlZCBnbG9iYWwgY291bnRlci4iLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIk5vIGFyZ3VtZW50cyB1c2VzIHRoZSBkZWZhdWx0IGxhYmVsLiIs
CiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICBsZXQgc2VlbiA9
IDA7CiAgICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IDE2OwpAQCAtNTUsNyArNTUsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgdHJpZ2dlckNvdW50Tm9Bcmd1bWVudHMoKWApOyAvLyAxNQotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgY29uc29sZS5jb3VudCgpYCk7
IC8vIDEKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNvbnNvbGUu
Y291bnQoImRlZmF1bHQiKWApOyAvLyAxNgogICAgICAgICB9CiAgICAgfSk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>