<?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>86406</bug_id>
          
          <creation_ts>2012-05-14 14:47:37 -0700</creation_ts>
          <short_desc>Web Inspector: Annotate timeline records with a frame identifier</short_desc>
          <delta_ts>2012-06-08 06:09:02 -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 (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Schneider">michschn</reporter>
          <assigned_to name="Bryan">bmcquade</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>paulirish</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>623358</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Schneider">michschn</who>
    <bug_when>2012-05-14 14:47:37 -0700</bug_when>
    <thetext>The timeline events of all frames are interleaved with each other, with no way to know on which frame they originated from.

As the timeline records are a very rich data source and enables to automatically analyze what the browser does, adding a frame id to would greatly simplify tools that analyze the timeline data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642119</commentid>
    <comment_count>1</comment_count>
      <attachid>145920</attachid>
    <who name="Bryan">bmcquade</who>
    <bug_when>2012-06-05 20:18:29 -0700</bug_when>
    <thetext>Created attachment 145920
Patch to add frameId to timeline records

This adds the ability to track the frame that each timeline event is associated with. Not all events have an associated frame. Only those events with an associated frame will have a frameId.

This patch is based on the suggestions and recommendations provided by caseq and pfeldman. This is a preliminary version of the change, to get some initial feedback. No tests have been written yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642120</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-05 20:25:40 -0700</bug_when>
    <thetext>Attachment 145920 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;]&quot; exit_code: 1
Total errors found: 0 in 0 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>642134</commentid>
    <comment_count>3</comment_count>
      <attachid>145925</attachid>
    <who name="Bryan">bmcquade</who>
    <bug_when>2012-06-05 20:55:26 -0700</bug_when>
    <thetext>Created attachment 145925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642342</commentid>
    <comment_count>4</comment_count>
      <attachid>145925</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-06-06 03:36:59 -0700</bug_when>
    <thetext>Comment on attachment 145925
Patch

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

A bunch of style nits, but general approach looks good.

&gt; b/Source/WebCore/inspector/InspectorController.cpp:354
&gt; +    m_profilerAgent-&gt;disable(&amp;error);

indent

&gt; b/Source/WebCore/inspector/InspectorTimelineAgent.cpp:333
&gt; +      String contextId(m_pageAgent-&gt;frameId(frame));
&gt; +      recordRaw-&gt;setString(&quot;frameId&quot;, contextId);

indent

&gt; b/Source/WebCore/inspector/InspectorTimelineAgent.cpp:420
&gt; +      String contextId(m_pageAgent-&gt;frameId(frame));
&gt; +      record-&gt;setString(&quot;frameId&quot;, contextId);

indent

&gt; b/Source/WebCore/inspector/front-end/TimelinePresentationModel.js:110
&gt; +    if (!mainFrame || mainFrame.id() != record.frameId) 

!= =&gt; !==

&gt; b/Source/WebCore/inspector/InspectorInstrumentation.cpp:442
&gt; +      timelineAgent-&gt;willLoadXHR(request-&gt;url(), frameForScriptExecutionContext(context));

indent

&gt; b/Source/WebCore/inspector/WorkerInspectorController.cpp:105
&gt; +    m_timelineAgent = InspectorTimelineAgent::create(m_instrumentingAgents.get(), NULL, m_state.get(), InspectorTimelineAgent::WorkerInspector, InspectorTimelineAgent::FrameInstrumentationNotSupported);

NULL =&gt; 0

&gt; b/Source/WebCore/inspector/InspectorInstrumentation.h:612
&gt; +      return willCallFunctionImpl(instrumentingAgents, scriptName, scriptLine, context);

indent

&gt; b/Source/WebCore/inspector/InspectorInstrumentation.h:651
&gt; +        return willDispatchEventImpl(instrumentingAgents, event, window, node, ancestors, document-&gt;frame());

frame looks redundant here, we can use window-&gt;frame(). actually, it also looks redundant in the instrumentation interface.

&gt; b/Source/WebCore/inspector/InspectorInstrumentation.h:689
&gt; +        return willDispatchEventOnWindowImpl(instrumentingAgents, event, window, frame);

ditto

&gt; b/Source/WebCore/inspector/InspectorTimelineAgent.h:154
&gt; +        Frame* frame;

Storing a raw pointer to a frame in something that is not a FrameDestructionObserver looks a bit scary. Can we resolve frames to ids early?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642349</commentid>
    <comment_count>5</comment_count>
      <attachid>145925</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-06-06 03:50:37 -0700</bug_when>
    <thetext>Comment on attachment 145925
Patch

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

&gt;&gt; b/Source/WebCore/inspector/front-end/TimelinePresentationModel.js:110
&gt;&gt; +    if (!mainFrame || mainFrame.id() != record.frameId) 
&gt; 
&gt; != =&gt; !==

Also, ResourceTreeFrame.id is a getter, not a function. If it doesn&apos;t break tests, we&apos;re in trouble :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642632</commentid>
    <comment_count>6</comment_count>
      <attachid>146070</attachid>
    <who name="Bryan">bmcquade</who>
    <bug_when>2012-06-06 11:26:34 -0700</bug_when>
    <thetext>Created attachment 146070
Patch with fixes for comments and updated layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642647</commentid>
    <comment_count>7</comment_count>
      <attachid>146070</attachid>
    <who name="Bryan">bmcquade</who>
    <bug_when>2012-06-06 11:39:43 -0700</bug_when>
    <thetext>Comment on attachment 146070
Patch with fixes for comments and updated layout tests.

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

A couple comments about whether certain objects can be null, and in turn whether I should protect against a null pointer dereference in those locations. Thanks!

&gt; b/Source/WebCore/inspector/InspectorInstrumentation.cpp:595
&gt; +        timelineAgent-&gt;willSendResourceRequest(identifier, request, loader-&gt;frame());

Is it possible that the loader may be null here? If so I&apos;ll add code to prevent a null pointer dereference.

&gt; b/Source/WebCore/inspector/InspectorInstrumentation.cpp:702
&gt; +        timelineAgent-&gt;didFinishLoadingResource(identifier, false, finishTime, loader-&gt;frame());

Same question.

&gt; b/Source/WebCore/inspector/InspectorInstrumentation.cpp:710
&gt; +        timelineAgent-&gt;didFinishLoadingResource(identifier, true, 0, loader-&gt;frame());

Same

&gt; b/Source/WebCore/inspector/InspectorInstrumentation.h:590
&gt; +        didScheduleResourceRequestImpl(instrumentingAgents, url, document-&gt;frame());

Is it possible for document to be null here?

&gt; b/Source/WebCore/inspector/InspectorInstrumentation.h:853
&gt; +        return willRecalculateStyleImpl(instrumentingAgents, document-&gt;frame());

Null issue here?

&gt; b/Source/WebCore/inspector/InspectorInstrumentation.h:1177
&gt; +        return willWriteHTMLImpl(instrumentingAgents, length, startLine, document-&gt;frame());

Same here? (And other locations as well)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642655</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-06 11:46:51 -0700</bug_when>
    <thetext>Attachment 146070 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;]&quot; exit_code: 1
Total errors found: 0 in 0 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>643487</commentid>
    <comment_count>9</comment_count>
      <attachid>146070</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-06-07 06:22:41 -0700</bug_when>
    <thetext>Comment on attachment 146070
Patch with fixes for comments and updated layout tests.

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

&gt; b/Source/WebCore/inspector/InspectorInstrumentation.cpp:321
&gt; +        timelineAgent-&gt;willDispatchEvent(event, window ? window-&gt;frame() : 0);

On a closer look at the call site of InspectorInstrumentation::willDispatchEvent(), I think that window, as passed to us, is not the best way to get frame. Check out WindowEventContext. I&apos;d rather get the frame from the document.

&gt; b/Source/WebCore/inspector/InspectorInstrumentation.cpp:349
&gt; +        timelineAgent-&gt;willDispatchEvent(event, window ? window-&gt;frame() : 0);

This call, on the other hand, should never receive a null window.

&gt;&gt; b/Source/WebCore/inspector/InspectorInstrumentation.cpp:595
&gt;&gt; +        timelineAgent-&gt;willSendResourceRequest(identifier, request, loader-&gt;frame());
&gt; 
&gt; Is it possible that the loader may be null here? If so I&apos;ll add code to prevent a null pointer dereference.

I don&apos;t think so -- if loader were null, we would crash in the resource agent anyway.

&gt;&gt; b/Source/WebCore/inspector/InspectorInstrumentation.cpp:702
&gt;&gt; +        timelineAgent-&gt;didFinishLoadingResource(identifier, false, finishTime, loader-&gt;frame());
&gt; 
&gt; Same question.

From what I can see, we have documentLoader while any resource notifications are dispatched.

&gt;&gt; b/Source/WebCore/inspector/InspectorInstrumentation.cpp:710
&gt;&gt; +        timelineAgent-&gt;didFinishLoadingResource(identifier, true, 0, loader-&gt;frame());
&gt; 
&gt; Same

As above.

&gt;&gt; b/Source/WebCore/inspector/InspectorInstrumentation.h:590
&gt;&gt; +        didScheduleResourceRequestImpl(instrumentingAgents, url, document-&gt;frame());
&gt; 
&gt; Is it possible for document to be null here?

instrumentingAgentsForDocument would crash if document were null.

&gt;&gt; b/Source/WebCore/inspector/InspectorInstrumentation.h:853
&gt;&gt; +        return willRecalculateStyleImpl(instrumentingAgents, document-&gt;frame());
&gt; 
&gt; Null issue here?

ditto

&gt;&gt; b/Source/WebCore/inspector/InspectorInstrumentation.h:1177
&gt;&gt; +        return willWriteHTMLImpl(instrumentingAgents, length, startLine, document-&gt;frame());
&gt; 
&gt; Same here? (And other locations as well)

as above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643491</commentid>
    <comment_count>10</comment_count>
      <attachid>146070</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-06-07 06:28:51 -0700</bug_when>
    <thetext>Comment on attachment 146070
Patch with fixes for comments and updated layout tests.

Also, please provide ChangeLog entries. Tools/Scripts/prepare-ChangeLog will do that for you (also normally invoked as part of Tools/Scripts/webkit-patch upload)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643783</commentid>
    <comment_count>11</comment_count>
      <attachid>146357</attachid>
    <who name="Bryan">bmcquade</who>
    <bug_when>2012-06-07 12:11:33 -0700</bug_when>
    <thetext>Created attachment 146357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644583</commentid>
    <comment_count>12</comment_count>
      <attachid>146357</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-06-08 05:04:01 -0700</bug_when>
    <thetext>Comment on attachment 146357
Patch

LGTM. Vsevolod, could you please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644589</commentid>
    <comment_count>13</comment_count>
      <attachid>146357</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-06-08 05:22:34 -0700</bug_when>
    <thetext>Comment on attachment 146357
Patch

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by Andrey Kosyakov

Please fix this before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644609</commentid>
    <comment_count>14</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-06-08 06:09:02 -0700</bug_when>
    <thetext>Committed r119826: &lt;http://trac.webkit.org/changeset/119826&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145920</attachid>
            <date>2012-06-05 20:18:29 -0700</date>
            <delta_ts>2012-06-05 20:55:26 -0700</delta_ts>
            <desc>Patch to add frameId to timeline records</desc>
            <filename>frameId.patch</filename>
            <type>text/plain</type>
            <size>62206</size>
            <attacher name="Bryan">bmcquade</attacher>
            
              <data encoding="base64">LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCShy
ZXZpc2lvbiAxMTkzNTIpCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzExMiw3IEBACiAgICAgSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50KiBkb21TdG9yYWdlQWdlbnQgPSBkb21TdG9yYWdlQWdlbnRQ
dHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRvbVN0b3JhZ2VBZ2VudFB0ci5yZWxlYXNl
KCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JNZW1vcnlBZ2VudDo6Y3JlYXRlKG1f
aW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9wYWdlLCBtX2RvbUFn
ZW50KSk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OlBhZ2VJbnNwZWN0b3IsCisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VB
Z2VudCwgbV9zdGF0ZS5nZXQoKSwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6UGFnZUluc3BlY3Rv
ciwKICAgICAgICBpbnNwZWN0b3JDbGllbnQtPnN1cHBvcnRzRnJhbWVJbnN0cnVtZW50YXRpb24o
KSA/IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OkZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydGVk
IDogSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6RnJhbWVJbnN0cnVtZW50YXRpb25Ob3RTdXBwb3J0
ZWQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBwYWdl
QWdlbnQpKTsKIApAQCAtMzUxLDcgKzM1MSw3IEBACiAgICAgaWYgKGVuYWJsZSkKICAgICAgICAg
bV9wcm9maWxlckFnZW50LT5lbmFibGUoJmVycm9yKTsKICAgICBlbHNlCi0gICAgICAgIG1fcHJv
ZmlsZXJBZ2VudC0+ZGlzYWJsZSgmZXJyb3IpOworICAgIG1fcHJvZmlsZXJBZ2VudC0+ZGlzYWJs
ZSgmZXJyb3IpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJlc3VtZSgpCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAkocmV2
aXNpb24gMTE5MzUyKQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDEwICszNSwxMiBAQAogI2luY2x1
ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKIAogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJZGVudGlmaWVyc0ZhY3RvcnkuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb3VudGVycy5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5n
QWdlbnRzLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtMTA2LDcgKzEwOCw3IEBACiAgICAg
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlR2VuZXJpY1JlY29yZCh0aW1lc3RhbXBGcm9tTWljcm9zZWNvbmRzKGktPnN0YXJ0
VGltZSksIG1fbWF4Q2FsbFN0YWNrRGVwdGgpOwogICAgICAgICByZWNvcmQtPnNldE9iamVjdCgi
ZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERhdGEoaS0+Y29sbGVj
dGVkQnl0ZXMpKTsKICAgICAgICAgcmVjb3JkLT5zZXROdW1iZXIoImVuZFRpbWUiLCB0aW1lc3Rh
bXBGcm9tTWljcm9zZWNvbmRzKGktPmVuZFRpbWUpKTsKLSAgICAgICAgYWRkUmVjb3JkVG9UaW1l
bGluZShyZWNvcmQucmVsZWFzZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OkdDRXZlbnQpOworICAg
ICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZC5yZWxlYXNlKCksIFRpbWVsaW5lUmVjb3Jk
VHlwZTo6R0NFdmVudCwgMCk7CiAgICAgfQogfQogCkBAIC0xODIsNyArMTg0LDcgQEAKIAogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRCZWdpbkZyYW1lKCkKIHsKLSAgICBwdXNoQ2Fu
Y2VsYWJsZVJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5
cGU6OkJlZ2luRnJhbWUpOworICAgIHB1c2hDYW5jZWxhYmxlUmVjb3JkKEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6QmVnaW5GcmFtZSwgMCk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ2FuY2VsRnJhbWUoKQpAQCAtMTkwLDkgKzE5
Miw5IEBACiAgICAgY2FuY2VsUmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6QmVnaW5GcmFtZSk7
CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbihjb25z
dCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQordm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50
IHNjcmlwdExpbmUsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoc2NyaXB0TmFtZSwgc2Ny
aXB0TGluZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6RnVuY3Rpb25DYWxsLCB0cnVlKTsKKyAgICBw
dXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2Fs
bERhdGEoc2NyaXB0TmFtZSwgc2NyaXB0TGluZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6RnVuY3Rp
b25DYWxsLCB0cnVlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
ZGlkQ2FsbEZ1bmN0aW9uKCkKQEAgLTIwMCw5ICsyMDIsOSBAQAogICAgIGRpZENvbXBsZXRlQ3Vy
cmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OkZ1bmN0aW9uQ2FsbCk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERpc3BhdGNoRXZlbnQoY29uc3QgRXZlbnQmIGV2
ZW50KQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGlzcGF0Y2hFdmVudChjb25z
dCBFdmVudCYgZXZlbnQsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKGV2ZW50KSwgVGlt
ZWxpbmVSZWNvcmRUeXBlOjpFdmVudERpc3BhdGNoLCBmYWxzZSk7CisgICAgcHVzaEN1cnJlbnRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmVudERpc3BhdGNoRGF0YShldmVu
dCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6RXZlbnREaXNwYXRjaCwgZmFsc2UsIGZyYW1lKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWREaXNwYXRjaEV2ZW50KCkKQEAgLTIx
MCw5ICsyMTIsOSBAQAogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29y
ZFR5cGU6OkV2ZW50RGlzcGF0Y2gpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OndpbGxMYXlvdXQoKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTGF5b3V0KEZy
YW1lKiBmcmFtZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OkxheW91dCwgdHJ1ZSk7CisgICAgcHVzaEN1cnJl
bnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpM
YXlvdXQsIHRydWUsIGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRMYXlvdXQoKQpAQCAtMjIwLDkgKzIyMiw5IEBACiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVj
b3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6TGF5b3V0KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsUmVjYWxjdWxhdGVTdHlsZSgpCit2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxSZWNhbGN1bGF0ZVN0eWxlKEZyYW1lKiBmcmFtZSkKIHsKLSAgICBwdXNoQ3Vy
cmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6
OlJlY2FsY3VsYXRlU3R5bGVzLCB0cnVlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OlJlY2FsY3VsYXRlU3R5bGVz
LCB0cnVlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVj
YWxjdWxhdGVTdHlsZSgpCkBAIC0yMzAsOSArMjMyLDkgQEAKICAgICBkaWRDb21wbGV0ZUN1cnJl
bnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpSZWNhbGN1bGF0ZVN0eWxlcyk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFBhaW50KGNvbnN0IExheW91dFJlY3QmIHJl
Y3QpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQYWludChjb25zdCBMYXlvdXRS
ZWN0JiByZWN0LCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYWludERhdGEocmVjdCksIFRpbWVsaW5lUmVjb3JkVHlw
ZTo6UGFpbnQsIHRydWUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlUGFpbnREYXRhKHJlY3QpLCBUaW1lbGluZVJlY29yZFR5cGU6OlBhaW50LCB0
cnVlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUGFpbnQo
KQpAQCAtMjQyLDcgKzI0NCw3IEBACiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2ls
bENvbXBvc2l0ZSgpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpDb21wb3NpdGVMYXllcnMsIGZhbHNlKTsKKyAg
ICBwdXNoQ3VycmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJl
Y29yZFR5cGU6OkNvbXBvc2l0ZUxheWVycywgZmFsc2UsIDApOwogfQogCiB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZENvbXBvc2l0ZSgpCkBAIC0yNTAsOSArMjUyLDkgQEAKICAgICBk
aWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpDb21wb3NpdGVMYXll
cnMpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxXcml0ZUhUTUwodW5z
aWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSkKK3ZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6d2lsbFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25l
ZCBpbnQgc3RhcnRMaW5lLCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQo
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYXJzZUhUTUxEYXRhKGxlbmd0aCwgc3RhcnRM
aW5lKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpQYXJzZUhUTUwsIHRydWUpOworICAgIHB1c2hDdXJy
ZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFyc2VIVE1MRGF0YShsZW5n
dGgsIHN0YXJ0TGluZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UGFyc2VIVE1MLCB0cnVlLCBmcmFt
ZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkV3JpdGVIVE1MKHVuc2ln
bmVkIGludCBlbmRMaW5lKQpAQCAtMjY0LDE5ICsyNjYsMTkgQEAKICAgICB9CiB9CiAKLXZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKGludCB0aW1lcklkLCBpbnQg
dGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRJbnN0YWxsVGltZXIoaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3Qs
IEZyYW1lKiBmcmFtZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVUaW1lckluc3RhbGxEYXRhKHRpbWVySWQsIHRpbWVvdXQsIHNpbmdsZVNob3QpLCBU
aW1lbGluZVJlY29yZFR5cGU6OlRpbWVySW5zdGFsbCwgdHJ1ZSk7CisgICAgYXBwZW5kUmVjb3Jk
KFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0YSh0aW1lcklkLCB0
aW1lb3V0LCBzaW5nbGVTaG90KSwgVGltZWxpbmVSZWNvcmRUeXBlOjpUaW1lckluc3RhbGwsIHRy
dWUsIGZyYW1lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZW1vdmVU
aW1lcihpbnQgdGltZXJJZCkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVtb3Zl
VGltZXIoaW50IHRpbWVySWQsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKHRpbWVySWQpLCBUaW1l
bGluZVJlY29yZFR5cGU6OlRpbWVyUmVtb3ZlLCB0cnVlKTsKKyAgICBhcHBlbmRSZWNvcmQoVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKHRpbWVySWQpLCBUaW1l
bGluZVJlY29yZFR5cGU6OlRpbWVyUmVtb3ZlLCB0cnVlLCBmcmFtZSk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbEZpcmVUaW1lcihpbnQgdGltZXJJZCkKK3ZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbEZpcmVUaW1lcihpbnQgdGltZXJJZCwgRnJhbWUqIGZy
YW1lKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlR2VuZXJpY1RpbWVyRGF0YSh0aW1lcklkKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpUaW1lckZp
cmUsIGZhbHNlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUdlbmVyaWNUaW1lckRhdGEodGltZXJJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6VGlt
ZXJGaXJlLCBmYWxzZSwgZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZEZpcmVUaW1lcigpCkBAIC0yODQsOSArMjg2LDkgQEAKICAgICBkaWRDb21wbGV0ZUN1cnJl
bnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpUaW1lckZpcmUpOwogfQogCi12b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlKGNvbnN0IFN0cmluZyYg
dXJsLCBpbnQgcmVhZHlTdGF0ZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENo
YW5nZVhIUlJlYWR5U3RhdGUoY29uc3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlLCBGcmFt
ZSogZnJhbWUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YSh1cmwsIHJlYWR5U3RhdGUpLCBUaW1lbGlu
ZVJlY29yZFR5cGU6OlhIUlJlYWR5U3RhdGVDaGFuZ2UsIGZhbHNlKTsKKyAgICBwdXNoQ3VycmVu
dFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VE
YXRhKHVybCwgcmVhZHlTdGF0ZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6WEhSUmVhZHlTdGF0ZUNo
YW5nZSwgZmFsc2UsIGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRDaGFuZ2VYSFJSZWFkeVN0YXRlKCkKQEAgLTI5NCw5ICsyOTYsOSBAQAogICAgIGRpZENvbXBs
ZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OlhIUlJlYWR5U3RhdGVDaGFuZ2Up
OwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxMb2FkWEhSKGNvbnN0IFN0
cmluZyYgdXJsKSAKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbExvYWRYSFIoY29u
c3QgU3RyaW5nJiB1cmwsIEZyYW1lKiBmcmFtZSkgCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQo
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YSh1cmwpLCBUaW1lbGluZVJl
Y29yZFR5cGU6OlhIUkxvYWQsIHRydWUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEodXJsKSwgVGltZWxpbmVSZWNvcmRUeXBl
OjpYSFJMb2FkLCB0cnVlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkTG9hZFhIUigpCkBAIC0zMDQsOSArMzA2LDkgQEAKICAgICBkaWRDb21wbGV0ZUN1cnJl
bnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpYSFJMb2FkKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50Ojp3aWxsRXZhbHVhdGVTY3JpcHQoY29uc3QgU3RyaW5nJiB1cmwsIGlu
dCBsaW5lTnVtYmVyKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRXZhbHVhdGVT
Y3JpcHQoY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyLCBGcmFtZSogZnJhbWUpCiB7
Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmFs
dWF0ZVNjcmlwdERhdGEodXJsLCBsaW5lTnVtYmVyKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpFdmFs
dWF0ZVNjcmlwdCwgdHJ1ZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVFdmFsdWF0ZVNjcmlwdERhdGEodXJsLCBsaW5lTnVtYmVyKSwgVGltZWxp
bmVSZWNvcmRUeXBlOjpFdmFsdWF0ZVNjcmlwdCwgdHJ1ZSwgZnJhbWUpOwogfQogICAgIAogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRFdmFsdWF0ZVNjcmlwdCgpCkBAIC0zMTQsMjgg
KzMxNiwzMiBAQAogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5
cGU6OkV2YWx1YXRlU2NyaXB0KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdChjb25zdCBTdHJpbmcmIHVybCkKK3ZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QoY29uc3QgU3RyaW5n
JiB1cmwsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEodXJsKSwgVGltZWxpbmVS
ZWNvcmRUeXBlOjpTY2hlZHVsZVJlc291cmNlUmVxdWVzdCwgdHJ1ZSk7CisgICAgYXBwZW5kUmVj
b3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RE
YXRhKHVybCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6U2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QsIHRy
dWUsIGZyYW1lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsU2VuZFJl
c291cmNlUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRSZXNv
dXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsK
ICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmRSYXcgPSBUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQodGltZXN0YW1wKCksIG1fbWF4Q2FsbFN0YWNrRGVw
dGgpOwogICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJ
ZChpZGVudGlmaWVyKTsKICAgICByZWNvcmRSYXctPnNldE9iamVjdCgiZGF0YSIsIFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEocmVxdWVzdElkLCBy
ZXF1ZXN0KSk7CiAgICAgcmVjb3JkUmF3LT5zZXRTdHJpbmcoInR5cGUiLCBUaW1lbGluZVJlY29y
ZFR5cGU6OlJlc291cmNlU2VuZFJlcXVlc3QpOworICAgIGlmIChmcmFtZSAmJiBtX3BhZ2VBZ2Vu
dCkgeworICAgICAgU3RyaW5nIGNvbnRleHRJZChtX3BhZ2VBZ2VudC0+ZnJhbWVJZChmcmFtZSkp
OworICAgICAgcmVjb3JkUmF3LT5zZXRTdHJpbmcoImZyYW1lSWQiLCBjb250ZXh0SWQpOworICAg
IH0KICAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmRSYXcuZ2V0KCkpOwogICAgIC8vIEZJ
WE1FOiBydW50aW1lQ2FzdCBpcyBhIGhhY2suIFdlIGRvIGl0IGJlY2F1c2Ugd2UgY2FuJ3QgYnVp
bGQgVGltZWxpbmVFdmVudCBkaXJlY3RseSBub3cuCiAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpU
aW1lbGluZTo6VGltZWxpbmVFdmVudD4gcmVjb3JkID0gVHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpU
aW1lbGluZUV2ZW50OjpydW50aW1lQ2FzdChyZWNvcmRSYXcucmVsZWFzZSgpKTsKICAgICBtX2Zy
b250ZW5kLT5ldmVudFJlY29yZGVkKHJlY29yZC5yZWxlYXNlKCkpOwogfQogCi12b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllcikKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVSZXNv
dXJjZURhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBGcmFtZSogZnJhbWUpCiB7CiAgICAg
U3RyaW5nIHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZp
ZXIpOwotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
UmVjZWl2ZVJlc291cmNlRGF0YShyZXF1ZXN0SWQpLCBUaW1lbGluZVJlY29yZFR5cGU6OlJlc291
cmNlUmVjZWl2ZWREYXRhLCBmYWxzZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKHJlcXVlc3RJZCksIFRpbWVs
aW5lUmVjb3JkVHlwZTo6UmVzb3VyY2VSZWNlaXZlZERhdGEsIGZhbHNlLCBmcmFtZSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YSgpCkBA
IC0zNDMsMTAgKzM0OSwxMCBAQAogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGlu
ZVJlY29yZFR5cGU6OlJlc291cmNlUmVjZWl2ZWREYXRhKTsKIH0KICAgICAKLXZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBGcmFt
ZSogZnJhbWUpCiB7CiAgICAgU3RyaW5nIHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6
cmVxdWVzdElkKGlkZW50aWZpZXIpOwotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VEYXRhKHJlcXVlc3RJZCwg
cmVzcG9uc2UpLCBUaW1lbGluZVJlY29yZFR5cGU6OlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlLCBm
YWxzZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEocmVxdWVzdElkLCByZXNwb25zZSksIFRpbWVs
aW5lUmVjb3JkVHlwZTo6UmVzb3VyY2VSZWNlaXZlUmVzcG9uc2UsIGZhbHNlLCBmcmFtZSk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9u
c2UoKQpAQCAtMzU0LDI0ICszNjAsMjQgQEAKICAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQo
VGltZWxpbmVSZWNvcmRUeXBlOjpSZXNvdXJjZVJlY2VpdmVSZXNwb25zZSk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgYm9vbCBkaWRGYWlsLCBkb3VibGUgZmluaXNoVGltZSkKK3ZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgYm9vbCBkaWRGYWlsLCBkb3VibGUgZmluaXNoVGltZSwgRnJhbWUq
IGZyYW1lKQogewotICAgIGFwcGVuZFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZVJlc291cmNlRmluaXNoRGF0YShJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlm
aWVyKSwgZGlkRmFpbCwgZmluaXNoVGltZSAqIDEwMDApLCBUaW1lbGluZVJlY29yZFR5cGU6OlJl
c291cmNlRmluaXNoLCBmYWxzZSk7CisgICAgYXBwZW5kUmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVz
dElkKGlkZW50aWZpZXIpLCBkaWRGYWlsLCBmaW5pc2hUaW1lICogMTAwMCksIFRpbWVsaW5lUmVj
b3JkVHlwZTo6UmVzb3VyY2VGaW5pc2gsIGZhbHNlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkVGltZVN0YW1wKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsK
LSAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lU3RhbXBE
YXRhKG1lc3NhZ2UpLCBUaW1lbGluZVJlY29yZFR5cGU6OlRpbWVTdGFtcCwgdHJ1ZSk7CisgICAg
YXBwZW5kUmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZVN0YW1wRGF0YSht
ZXNzYWdlKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpUaW1lU3RhbXAsIHRydWUsIDApOwogfQogCi12
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtET01Db250ZW50RXZlbnQoKQordm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrRE9NQ29udGVudEV2ZW50KEZyYW1lKiBm
cmFtZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgVGlt
ZWxpbmVSZWNvcmRUeXBlOjpNYXJrRE9NQ29udGVudCwgZmFsc2UpOworICAgIGFwcGVuZFJlY29y
ZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6Ok1hcmtET01D
b250ZW50LCBmYWxzZSwgZnJhbWUpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZE1hcmtMb2FkRXZlbnQoKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJr
TG9hZEV2ZW50KEZyYW1lKiBmcmFtZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpNYXJrTG9hZCwgZmFsc2UpOworICAg
IGFwcGVuZFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5
cGU6Ok1hcmtMb2FkLCBmYWxzZSwgZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZENvbW1pdExvYWQoKQpAQCAtMzc5LDE5ICszODUsMTkgQEAKICAgICBjbGVhclJl
Y29yZFN0YWNrKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQsIEZyYW1lKiBmcmFt
ZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVBbmlt
YXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVxdWVzdEFu
aW1hdGlvbkZyYW1lLCB0cnVlKTsKKyAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVBbmltYXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVsaW5lUmVjb3Jk
VHlwZTo6UmVxdWVzdEFuaW1hdGlvbkZyYW1lLCB0cnVlLCBmcmFtZSk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNr
SWQpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENhbmNlbEFuaW1hdGlvbkZyYW1l
KGludCBjYWxsYmFja0lkLCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgYXBwZW5kUmVjb3JkKFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlQW5pbWF0aW9uRnJhbWVEYXRhKGNhbGxiYWNrSWQpLCBU
aW1lbGluZVJlY29yZFR5cGU6OkNhbmNlbEFuaW1hdGlvbkZyYW1lLCB0cnVlKTsKKyAgICBhcHBl
bmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVBbmltYXRpb25GcmFtZURhdGEo
Y2FsbGJhY2tJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6Q2FuY2VsQW5pbWF0aW9uRnJhbWUsIHRy
dWUsIGZyYW1lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRmlyZUFu
aW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojp3aWxsRmlyZUFuaW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkLCBGcmFtZSogZnJhbWUpCiB7
Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVBbmlt
YXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6RmlyZUFuaW1h
dGlvbkZyYW1lLCBmYWxzZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVBbmltYXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVsaW5lUmVj
b3JkVHlwZTo6RmlyZUFuaW1hdGlvbkZyYW1lLCBmYWxzZSwgZnJhbWUpOwogfQogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpcmVBbmltYXRpb25GcmFtZSgpCkBAIC0zOTksMTYg
KzQwNSwyMCBAQAogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5
cGU6OkZpcmVBbmltYXRpb25GcmFtZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6YWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3Jk
LCBjb25zdCBTdHJpbmcmIHR5cGUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFkZFJl
Y29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCwgY29uc3Qg
U3RyaW5nJiB0eXBlLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgY29tbWl0Q2FuY2VsYWJsZVJlY29y
ZHMoKTsKLSAgICBpbm5lckFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCB0eXBlKTsKKyAgICBp
bm5lckFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCB0eXBlLCBmcmFtZSk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6aW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBwcnBSZWNvcmQsIGNvbnN0IFN0cmluZyYgdHlwZSkKK3ZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6aW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBwcnBSZWNvcmQsIGNvbnN0IFN0cmluZyYgdHlwZSwgRnJhbWUq
IGZyYW1lKQogewogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZChwcnBSZWNvcmQp
OwogICAgIHJlY29yZC0+c2V0U3RyaW5nKCJ0eXBlIiwgdHlwZSk7CisgICAgaWYgKGZyYW1lICYm
IG1fcGFnZUFnZW50KSB7CisgICAgICBTdHJpbmcgY29udGV4dElkKG1fcGFnZUFnZW50LT5mcmFt
ZUlkKGZyYW1lKSk7CisgICAgICByZWNvcmQtPnNldFN0cmluZygiZnJhbWVJZCIsIGNvbnRleHRJ
ZCk7CisgICAgfQogICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZC5nZXQoKSk7CiAgICAg
aWYgKG1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBydW50aW1l
Q2FzdCBpcyBhIGhhY2suIFdlIGRvIGl0IGJlY2F1c2Ugd2UgY2FuJ3QgYnVpbGQgVGltZWxpbmVF
dmVudCBkaXJlY3RseSBub3cuCkBAIC00NTAsMTIgKzQ2MCwxMyBAQAogICAgICAgICBlbnRyeS5y
ZWNvcmQtPnNldE9iamVjdCgiZGF0YSIsIGVudHJ5LmRhdGEpOwogICAgICAgICBlbnRyeS5yZWNv
cmQtPnNldEFycmF5KCJjaGlsZHJlbiIsIGVudHJ5LmNoaWxkcmVuKTsKICAgICAgICAgZW50cnku
cmVjb3JkLT5zZXROdW1iZXIoImVuZFRpbWUiLCB0aW1lc3RhbXAoKSk7Ci0gICAgICAgIGFkZFJl
Y29yZFRvVGltZWxpbmUoZW50cnkucmVjb3JkLCB0eXBlKTsKKyAgICAgICAgYWRkUmVjb3JkVG9U
aW1lbGluZShlbnRyeS5yZWNvcmQsIHR5cGUsIGVudHJ5LmZyYW1lKTsKICAgICB9CiB9CiAKLUlu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbnNw
ZWN0b3JUeXBlIHR5cGUsIEZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydCBmcmFtZUluc3RydW1l
bnRhdGlvblN1cHBvcnQpCitJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3Rv
clBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluc3BlY3RvclR5
cGUgdHlwZSwgRnJhbWVJbnN0cnVtZW50YXRpb25TdXBwb3J0IGZyYW1lSW5zdHJ1bWVudGF0aW9u
U3VwcG9ydCkKICAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JUaW1lbGluZUFnZW50
PigiVGltZWxpbmUiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKKyAgICAsIG1fcGFnZUFn
ZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1fdGltZXN0YW1wT2Zm
c2V0KDApCiAgICAgLCBtX2lkKDEpCkBAIC00NjUsMjcgKzQ3NiwyNyBAQAogewogfQogCi12b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFwcGVuZFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2sp
Cit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFwcGVuZFJlY29yZChQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxs
U3RhY2ssIEZyYW1lKiBmcmFtZSkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKICAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdlbmVyaWNSZWNvcmQodGltZXN0YW1wKCksIGNhcHR1cmVDYWxsU3RhY2sgPyBtX21heENh
bGxTdGFja0RlcHRoIDogMCk7CiAgICAgcmVjb3JkLT5zZXRPYmplY3QoImRhdGEiLCBkYXRhKTsK
ICAgICByZWNvcmQtPnNldFN0cmluZygidHlwZSIsIHR5cGUpOwotICAgIGFkZFJlY29yZFRvVGlt
ZWxpbmUocmVjb3JkLnJlbGVhc2UoKSwgdHlwZSk7CisgICAgYWRkUmVjb3JkVG9UaW1lbGluZShy
ZWNvcmQucmVsZWFzZSgpLCB0eXBlLCBmcmFtZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRh
dGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrKQordm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVudFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ss
IEZyYW1lKiBmcmFtZSkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKICAgICBjb21taXRD
YW5jZWxhYmxlUmVjb3JkcygpOwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCh0aW1lc3RhbXAoKSwg
Y2FwdHVyZUNhbGxTdGFjayA/IG1fbWF4Q2FsbFN0YWNrRGVwdGggOiAwKTsKLSAgICBtX3JlY29y
ZFN0YWNrLmFwcGVuZChUaW1lbGluZVJlY29yZEVudHJ5KHJlY29yZC5yZWxlYXNlKCksIGRhdGEs
IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKSwgdHlwZSkpOworICAgIG1fcmVjb3JkU3RhY2suYXBw
ZW5kKFRpbWVsaW5lUmVjb3JkRW50cnkocmVjb3JkLnJlbGVhc2UoKSwgZGF0YSwgSW5zcGVjdG9y
QXJyYXk6OmNyZWF0ZSgpLCB0eXBlLCBmcmFtZSkpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OnB1c2hDYW5jZWxhYmxlUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OnB1c2hDYW5jZWxhYmxlUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBj
b25zdCBTdHJpbmcmIHR5cGUsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNv
cmQodGltZXN0YW1wKCksIDApOwotICAgIG1fcmVjb3JkU3RhY2suYXBwZW5kKFRpbWVsaW5lUmVj
b3JkRW50cnkocmVjb3JkLnJlbGVhc2UoKSwgZGF0YSwgMCwgdHlwZSwgdHJ1ZSkpOworICAgIG1f
cmVjb3JkU3RhY2suYXBwZW5kKFRpbWVsaW5lUmVjb3JkRW50cnkocmVjb3JkLnJlbGVhc2UoKSwg
ZGF0YSwgMCwgdHlwZSwgZnJhbWUsIHRydWUpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50Ojpjb21taXRDYW5jZWxhYmxlUmVjb3JkcygpCkBAIC01MDIsNyArNTEzLDcgQEAKICAg
ICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeSBlbnRyeSA9IGNhbmNlbGFibGVSZWNvcmRzLmxhc3Qo
KTsKICAgICAgICAgY2FuY2VsYWJsZVJlY29yZHMucmVtb3ZlTGFzdCgpOwogICAgICAgICBlbnRy
eS5yZWNvcmQtPnNldE9iamVjdCgiZGF0YSIsIGVudHJ5LmRhdGEpOwotICAgICAgICBpbm5lckFk
ZFJlY29yZFRvVGltZWxpbmUoZW50cnkucmVjb3JkLnJlbGVhc2UoKSwgZW50cnkudHlwZSk7Cisg
ICAgICAgIGlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShlbnRyeS5yZWNvcmQucmVsZWFzZSgpLCBl
bnRyeS50eXBlLCBlbnRyeS5mcmFtZSk7CiAgICAgfQogfQogCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcwkocmV2aXNp
b24gMTE5MzUyKQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw2ICsxMDYsOSBA
QAogCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5pc0V2ZW50RGl2aWRl
ciA9IGZ1bmN0aW9uKHJlY29yZCkKIHsKKyAgICB2YXIgbWFpbkZyYW1lID0gV2ViSW5zcGVjdG9y
LnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZTsKKyAgICBpZiAoIW1haW5GcmFtZSB8fCBtYWlu
RnJhbWUuaWQoKSAhPSByZWNvcmQuZnJhbWVJZCkgCisgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB2YXIgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBl
OwogICAgIHJldHVybiByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0RPTUNvbnRlbnQg
fHwgcmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLk1hcmtMb2FkIHx8IHJlY29yZC50eXBlID09
PSByZWNvcmRUeXBlcy5UaW1lU3RhbXA7CiB9Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCShyZXZpc2lvbiAxMTkzNTIpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05OCw2ICs5OCwxNSBAQAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3Rh
dGljIEZyYW1lKiBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCkKK3sKKyAgRnJhbWUqIGZyYW1lID0gMDsKKyAgaWYgKGNvbnRleHQt
PmlzRG9jdW1lbnQoKSkgeworICAgIGZyYW1lID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250
ZXh0KS0+ZnJhbWUoKTsKKyAgfQorICByZXR1cm4gZnJhbWU7Cit9CisKIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSwgRE9NV3JhcHBl
cldvcmxkKiB3b3JsZCkKIHsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpOwpAQCAtMjUyLDMxICsyNjEs
MzEgQEAKICNlbmRpZgogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2No
ZWR1bGVSZXNvdXJjZVJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIGNvbnN0IFN0cmluZyYgdXJsKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIHVybCwgRnJhbWUqIGZyYW1lKQogewog
ICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFn
ZW50LT5kaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdCh1cmwpOworICAgICAgICB0aW1lbGluZUFn
ZW50LT5kaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdCh1cmwsIGZyYW1lKTsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBi
b29sIHNpbmdsZVNob3QpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFs
bFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQg
dGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKIHsKICAgICBwYXVzZU9uTmF0aXZlRXZlbnRJZk5lZWRlZChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBmYWxzZSwgc2V0VGltZXJFdmVudE5hbWUsIHRydWUpOwogICAgIGlmIChJ
bnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRJ
bnN0YWxsVGltZXIodGltZXJJZCwgdGltZW91dCwgc2luZ2xlU2hvdCk7CisgICAgICAgIHRpbWVs
aW5lQWdlbnQtPmRpZEluc3RhbGxUaW1lcih0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90LCBm
cmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogfQogCi12b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVtb3ZlVGltZXJJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCB0aW1lcklkKQordm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZFJlbW92ZVRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJZCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKIHsKICAgICBwYXVzZU9uTmF0aXZlRXZlbnRJZk5lZWRlZChpbnN0cnVtZW50aW5nQWdl
bnRzLCBmYWxzZSwgY2xlYXJUaW1lckV2ZW50TmFtZSwgdHJ1ZSk7CiAgICAgaWYgKEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNw
ZWN0b3JUaW1lbGluZUFnZW50KCkpCi0gICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZFJlbW92ZVRp
bWVyKHRpbWVySWQpOworICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRSZW1vdmVUaW1lcih0aW1l
cklkLCBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogfQogCi1JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
Q2FsbEZ1bmN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQorSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENhbGxGdW5j
dGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3Qg
U3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCkKIHsKICAgICBpbnQgdGltZWxpbmVBZ2VudElkID0gMDsKICAgICBpZiAoSW5z
cGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxs
Q2FsbEZ1bmN0aW9uKHNjcmlwdE5hbWUsIHNjcmlwdExpbmUpOworICAgICAgICB0aW1lbGluZUFn
ZW50LT53aWxsQ2FsbEZ1bmN0aW9uKHNjcmlwdE5hbWUsIHNjcmlwdExpbmUsIGZyYW1lRm9yU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9
IHRpbWVsaW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAg
LTI4OCwxMiArMjk3LDEyIEBACiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZENhbGxGdW5jdGlv
bigpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgWE1MSHR0cFJlcXVlc3QqIHJlcXVlc3QpCitJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ2hh
bmdlWEhSUmVhZHlTdGF0ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgWE1MSHR0cFJlcXVlc3QqIHJlcXVlc3QsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQpCiB7CiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAgICAgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3Rv
clRpbWVsaW5lQWdlbnQoKTsKICAgICBpZiAodGltZWxpbmVBZ2VudCAmJiByZXF1ZXN0LT5oYXNF
dmVudExpc3RlbmVycyhldmVudE5hbWVzKCkucmVhZHlzdGF0ZWNoYW5nZUV2ZW50KSkgewotICAg
ICAgICB0aW1lbGluZUFnZW50LT53aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZShyZXF1ZXN0LT51cmwo
KS5zdHJpbmcoKSwgcmVxdWVzdC0+cmVhZHlTdGF0ZSgpKTsKKyAgICAgICAgdGltZWxpbmVBZ2Vu
dC0+d2lsbENoYW5nZVhIUlJlYWR5U3RhdGUocmVxdWVzdC0+dXJsKCkuc3RyaW5nKCksIHJlcXVl
c3QtPnJlYWR5U3RhdGUoKSwgZnJhbWVGb3JTY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQp
KTsKICAgICAgICAgdGltZWxpbmVBZ2VudElkID0gdGltZWxpbmVBZ2VudC0+aWQoKTsKICAgICB9
CiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZShpbnN0cnVtZW50aW5n
QWdlbnRzLCB0aW1lbGluZUFnZW50SWQpOwpAQCAtMzA1LDEyICszMTQsMTIgQEAKICAgICAgICAg
dGltZWxpbmVBZ2VudC0+ZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZSgpOwogfQogCi1JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0
Y2hFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgY29u
c3QgRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHdpbmRvdywgTm9kZSogbm9kZSwgY29uc3QgVmVj
dG9yPEV2ZW50Q29udGV4dD4mIGFuY2VzdG9ycykKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBFdmVudCYgZXZlbnQs
IERPTVdpbmRvdyogd2luZG93LCBOb2RlKiBub2RlLCBjb25zdCBWZWN0b3I8RXZlbnRDb250ZXh0
PiYgYW5jZXN0b3JzLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9
IDA7CiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKICAgICBpZiAodGltZWxpbmVB
Z2VudCAmJiBldmVudEhhc0xpc3RlbmVycyhldmVudC50eXBlKCksIHdpbmRvdywgbm9kZSwgYW5j
ZXN0b3JzKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsRGlzcGF0Y2hFdmVudChldmVu
dCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxEaXNwYXRjaEV2ZW50KGV2ZW50LCBmcmFt
ZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7CiAgICAg
fQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoaW5zdHJ1bWVudGlu
Z0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTMzMywxMiArMzQyLDEyIEBACiAgICAgICAg
IHRpbWVsaW5lQWdlbnQtPmRpZERpc3BhdGNoRXZlbnQoKTsKIH0KIAotSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZl
bnRPbldpbmRvd0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
Y29uc3QgRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHdpbmRvdykKK0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50
T25XaW5kb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGNv
bnN0IEV2ZW50JiBldmVudCwgRE9NV2luZG93KiB3aW5kb3csIEZyYW1lKiBmcmFtZSkKIHsKICAg
ICBpbnQgdGltZWxpbmVBZ2VudElkID0gMDsKICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0
aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCgpOwogICAgIGlmICh0aW1lbGluZUFnZW50ICYmIHdpbmRvdy0+aGFzRXZlbnRMaXN0ZW5lcnMo
ZXZlbnQudHlwZSgpKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsRGlzcGF0Y2hFdmVu
dChldmVudCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxEaXNwYXRjaEV2ZW50KGV2ZW50
LCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7
CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoaW5zdHJ1
bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTM1MCwxMSArMzU5LDExIEBACiAg
ICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZERpc3BhdGNoRXZlbnQoKTsKIH0KIAotSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1
YXRlU2NyaXB0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBj
b25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1iZXIpCitJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHRJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFN0cmluZyYg
dXJsLCBpbnQgbGluZU51bWJlciwgRnJhbWUqIGZyYW1lKQogewogICAgIGludCB0aW1lbGluZUFn
ZW50SWQgPSAwOwogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKSB7Ci0gICAg
ICAgIHRpbWVsaW5lQWdlbnQtPndpbGxFdmFsdWF0ZVNjcmlwdCh1cmwsIGxpbmVOdW1iZXIpOwor
ICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsRXZhbHVhdGVTY3JpcHQodXJsLCBsaW5lTnVtYmVy
LCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7
CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoaW5zdHJ1
bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTM3MiwxMyArMzgxLDEzIEBACiAg
ICAgICAgIHJ1bnRpbWVBZ2VudC0+ZGlkQ3JlYXRlSXNvbGF0ZWRDb250ZXh0KGZyYW1lLCBzY3Jp
cHRTdGF0ZSwgb3JpZ2luKTsKIH0KIAotSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEZpcmVUaW1lckltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IHRpbWVySWQpCitJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRmlyZVRpbWVySW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJZCwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBwYXVzZU9uTmF0aXZlRXZl
bnRJZk5lZWRlZChpbnN0cnVtZW50aW5nQWdlbnRzLCBmYWxzZSwgdGltZXJGaXJlZEV2ZW50TmFt
ZSwgZmFsc2UpOwogCiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAgICAgaWYgKEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5p
bnNwZWN0b3JUaW1lbGluZUFnZW50KCkpIHsKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbEZp
cmVUaW1lcih0aW1lcklkKTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbEZpcmVUaW1lcih0
aW1lcklkLCBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogICAgICAg
ICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KICAgICByZXR1
cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKGluc3RydW1lbnRpbmdBZ2VudHMsIHRp
bWVsaW5lQWdlbnRJZCk7CkBAIC00MDQsMTEgKzQxMywxMSBAQAogICAgICAgICB0aW1lbGluZUFn
ZW50LT5kaWRDYW5jZWxGcmFtZSgpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsTGF5b3V0SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQorSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbExheW91dEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZyYW1lKQogewogICAgIGludCB0
aW1lbGluZUFnZW50SWQgPSAwOwogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1l
bGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgp
KSB7Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxMYXlvdXQoKTsKKyAgICAgICAgdGltZWxp
bmVBZ2VudC0+d2lsbExheW91dChmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRp
bWVsaW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25Db29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTQy
NiwxMiArNDM1LDEyIEBACiAgICAgICAgIHBhZ2VBZ2VudC0+ZGlkTGF5b3V0KCk7CiB9CiAKLUlu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxMb2FkWEhSSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBY
TUxIdHRwUmVxdWVzdCogcmVxdWVzdCkKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxMb2FkWEhSSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBYTUxIdHRwUmVxdWVzdCogcmVxdWVzdCwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBpbnQgdGltZWxpbmVBZ2VudElkID0g
MDsKICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpOwogICAgIGlmICh0aW1lbGluZUFn
ZW50ICYmIHJlcXVlc3QtPmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQp
KSB7Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxMb2FkWEhSKHJlcXVlc3QtPnVybCgpKTsK
KyAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxMb2FkWEhSKHJlcXVlc3QtPnVybCgpLCBmcmFtZUZv
clNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogICAgICAgICB0aW1lbGluZUFnZW50
SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KICAgICByZXR1cm4gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVsaW5lQWdlbnRJZCk7
CkBAIC00NDMsMTQgKzQ1MiwxNCBAQAogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRMb2FkWEhS
KCk7CiB9CiAKLUluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cywgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiByZWN0
KQorSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbFBhaW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJlY3QsIEZyYW1l
KiBmcmFtZSkKIHsKICAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKICAgICAgICAgcGFnZUFnZW50
LT53aWxsUGFpbnQoY29udGV4dCwgcmVjdCk7CiAKICAgICBpbnQgdGltZWxpbmVBZ2VudElkID0g
MDsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3Ry
dW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewotICAgICAgICB0aW1l
bGluZUFnZW50LT53aWxsUGFpbnQocmVjdCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxQ
YWludChyZWN0LCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdl
bnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTQ3NiwxMSArNDg1
LDExIEBACiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZENvbXBvc2l0ZSgpOwogfQogCi1JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
UmVjYWxjdWxhdGVTdHlsZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cykKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxSZWNhbGN1bGF0ZVN0eWxlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgaW50IHRpbWVsaW5lQWdlbnRJ
ZCA9IDA7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpIHsKLSAgICAgICAg
dGltZWxpbmVBZ2VudC0+d2lsbFJlY2FsY3VsYXRlU3R5bGUoKTsKKyAgICAgICAgdGltZWxpbmVB
Z2VudC0+d2lsbFJlY2FsY3VsYXRlU3R5bGUoZnJhbWUpOwogICAgICAgICB0aW1lbGluZUFnZW50
SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KICAgICBpZiAoSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclJl
c291cmNlQWdlbnQoKSkKQEAgLTU4NCw3ICs1OTMsNyBAQAogdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxTZW5kUmVxdWVzdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciog
bG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRp
bWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50
KCkpCi0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KGlkZW50
aWZpZXIsIHJlcXVlc3QpOworICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsU2VuZFJlc291cmNl
UmVxdWVzdChpZGVudGlmaWVyLCByZXF1ZXN0LCBsb2FkZXItPmZyYW1lKCkpOwogICAgIGlmIChJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQogICAgICAgICByZXNvdXJjZUFnZW50LT53aWxs
U2VuZFJlcXVlc3QoaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNl
KTsKIH0KQEAgLTYwOSwxMSArNjE4LDExIEBACiAgICAgICAgIHJlc291cmNlQWdlbnQtPmRpZExv
YWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShsb2FkZXIsIGNhY2hlZFJlc291cmNlKTsKIH0KIAot
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbFJlY2VpdmVSZXNvdXJjZURhdGFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKK0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3Vy
Y2VEYXRhSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBpbnQgdGltZWxpbmVB
Z2VudElkID0gMDsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewotICAg
ICAgICB0aW1lbGluZUFnZW50LT53aWxsUmVjZWl2ZVJlc291cmNlRGF0YShpZGVudGlmaWVyKTsK
KyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbFJlY2VpdmVSZXNvdXJjZURhdGEoaWRlbnRpZmll
ciwgZnJhbWUpOwogICAgICAgICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgp
OwogICAgIH0KICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKGluc3Ry
dW1lbnRpbmdBZ2VudHMsIHRpbWVsaW5lQWdlbnRJZCk7CkBAIC02MjUsMTIgKzYzNCwxMiBAQAog
ICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRSZWNlaXZlUmVzb3VyY2VEYXRhKCk7CiB9CiAKLUlu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgRnJhbWUqIGZyYW1lKQogewog
ICAgIGludCB0aW1lbGluZUFnZW50SWQgPSAwOwogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQq
IHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFn
ZW50KCk7CiAgICAgaWYgKHRpbWVsaW5lQWdlbnQpIHsKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+
d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKKyAgICAg
ICAgdGltZWxpbmVBZ2VudC0+d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGlkZW50aWZpZXIs
IHJlc3BvbnNlLCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdl
bnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTY5MSw3ICs3MDAs
NyBAQAogICAgICAgICBmaW5pc2hUaW1lID0gbG9hZGVyLT50aW1pbmcoKS0+Y29udmVydE1vbm90
b25pY1RpbWVUb0RvY3VtZW50VGltZShtb25vdG9uaWNGaW5pc2hUaW1lKTsKIAogICAgIGlmICh0
aW1lbGluZUFnZW50KQotICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5nUmVz
b3VyY2UoaWRlbnRpZmllciwgZmFsc2UsIGZpbmlzaFRpbWUpOworICAgICAgICB0aW1lbGluZUFn
ZW50LT5kaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UoaWRlbnRpZmllciwgZmFsc2UsIGZpbmlzaFRp
bWUsIGxvYWRlci0+ZnJhbWUoKSk7CiAgICAgaWYgKHJlc291cmNlQWdlbnQpCiAgICAgICAgIHJl
c291cmNlQWdlbnQtPmRpZEZpbmlzaExvYWRpbmcoaWRlbnRpZmllciwgbG9hZGVyLCBmaW5pc2hU
aW1lKTsKIH0KQEAgLTY5OSw3ICs3MDgsNyBAQAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZEZhaWxMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIs
IGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGlmIChJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5nUmVz
b3VyY2UoaWRlbnRpZmllciwgdHJ1ZSwgMCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZEZp
bmlzaExvYWRpbmdSZXNvdXJjZShpZGVudGlmaWVyLCB0cnVlLCAwLCBsb2FkZXItPmZyYW1lKCkp
OwogICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQogICAgICAgICByZXNvdXJj
ZUFnZW50LT5kaWRGYWlsTG9hZGluZyhpZGVudGlmaWVyLCBsb2FkZXIsIGVycm9yKTsKICAgICBp
ZiAoSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLT5pbnNwZWN0b3JDb25zb2xlQWdlbnQoKSkKQEAgLTc0Niw2ICs3NTUsOSBAQAogCiB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWRJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSkK
IHsKKyAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3Ry
dW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKKyAgICAgICAgdGltZWxp
bmVBZ2VudC0+ZGlkTWFya0RPTUNvbnRlbnRFdmVudChmcmFtZSk7CisKICAgICBpZiAoZnJhbWUt
PnBhZ2UoKS0+bWFpbkZyYW1lKCkgIT0gZnJhbWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzU1
LDkgKzc2Nyw2IEBACiAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3Ry
dW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTUFnZW50KCkpCiAgICAgICAgIGRvbUFnZW50LT5t
YWluRnJhbWVET01Db250ZW50TG9hZGVkKCk7CiAKLSAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVB
Z2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVs
aW5lQWdlbnQoKSkKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0RPTUNvbnRlbnRFdmVu
dCgpOwotCiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCiAgICAgICAgIHBhZ2VBZ2VudC0+ZG9t
Q29udGVudEV2ZW50RmlyZWQoKTsKIH0KQEAgLTc2NywxMiArNzc2LDEyIEBACiAgICAgaWYgKElu
c3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3Rv
ckRPTUFnZW50KCkpCiAgICAgICAgIGRvbUFnZW50LT5sb2FkRXZlbnRGaXJlZChmcmFtZS0+ZG9j
dW1lbnQoKSk7CiAKKyAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKKyAgICAg
ICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0xvYWRFdmVudChmcmFtZSk7CisKICAgICBpZiAoZnJh
bWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkgIT0gZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50
LT5kaWRNYXJrTG9hZEV2ZW50KCk7Ci0KICAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdl
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKICAgICAg
ICAgcGFnZUFnZW50LT5sb2FkRXZlbnRGaXJlZCgpOwogfQpAQCAtODIzLDExICs4MzIsMTEgQEAK
ICAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50LT5sb2FkZXJEZXRhY2hlZEZyb21GcmFtZShsb2Fk
ZXIpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsV3JpdGVIVE1MSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5l
KQorSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbFdyaXRlSFRNTEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSwgRnJhbWUq
IGZyYW1lKQogewogICAgIGludCB0aW1lbGluZUFnZW50SWQgPSAwOwogICAgIGlmIChJbnNwZWN0
b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5z
cGVjdG9yVGltZWxpbmVBZ2VudCgpKSB7Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxXcml0
ZUhUTUwobGVuZ3RoLCBzdGFydExpbmUpOworICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsV3Jp
dGVIVE1MKGxlbmd0aCwgc3RhcnRMaW5lLCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJ
ZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsK
QEAgLTEwNzgsMjkgKzEwODcsMjkgQEAKICNlbmRpZgogfQogCi12b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgY2FsbGJhY2tJZCkKK3ZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCBjYWxsYmFja0lkLCBGcmFtZSogZnJh
bWUpCiB7CiAgICAgcGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoaW5zdHJ1bWVudGluZ0FnZW50
cywgZmFsc2UsIHJlcXVlc3RBbmltYXRpb25GcmFtZUV2ZW50TmFtZSwgdHJ1ZSk7CiAKICAgICBp
ZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+
ZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrSWQpOworICAgICAgICB0aW1lbGluZUFn
ZW50LT5kaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2tJZCwgZnJhbWUpOwogfQogCi12
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWVJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCBjYWxsYmFja0lk
KQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbmNlbEFuaW1hdGlvbkZyYW1l
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgY2FsbGJh
Y2tJZCwgRnJhbWUqIGZyYW1lKQogewogICAgIHBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKGlu
c3RydW1lbnRpbmdBZ2VudHMsIGZhbHNlLCBjYW5jZWxBbmltYXRpb25GcmFtZUV2ZW50TmFtZSwg
dHJ1ZSk7CiAKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKLSAgICAgICAg
dGltZWxpbmVBZ2VudC0+ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWUoY2FsbGJhY2tJZCk7CisgICAg
ICAgIHRpbWVsaW5lQWdlbnQtPmRpZENhbmNlbEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrSWQsIGZy
YW1lKTsKIH0KIAotSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbEZpcmVBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IGNhbGxiYWNrSWQpCitJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRmlyZUFuaW1hdGlv
bkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQg
Y2FsbGJhY2tJZCwgRnJhbWUqIGZyYW1lKQogewogICAgIHBhdXNlT25OYXRpdmVFdmVudElmTmVl
ZGVkKGluc3RydW1lbnRpbmdBZ2VudHMsIGZhbHNlLCBhbmltYXRpb25GcmFtZUZpcmVkRXZlbnRO
YW1lLCBmYWxzZSk7CiAKICAgICBpbnQgdGltZWxpbmVBZ2VudElkID0gMDsKICAgICBpZiAoSW5z
cGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxs
RmlyZUFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrSWQpOworICAgICAgICB0aW1lbGluZUFnZW50LT53
aWxsRmlyZUFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrSWQsIGZyYW1lKTsKICAgICAgICAgdGltZWxp
bmVBZ2VudElkID0gdGltZWxpbmVBZ2VudC0+aWQoKTsKICAgICB9CiAgICAgcmV0dXJuIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZShpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lbGluZUFn
ZW50SWQpOwotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAJKHJldmlzaW9uIDExOTM1MikKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIs
NyArMTAyLDcgQEAKICAgICBtX2RlYnVnZ2VyQWdlbnQgPSBXb3JrZXJEZWJ1Z2dlckFnZW50Ojpj
cmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCB3b3JrZXJD
b250ZXh0LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSk7CiAgICAgbV9wcm9maWxlckFn
ZW50ID0gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50
cy5nZXQoKSwgbV9jb25zb2xlQWdlbnQuZ2V0KCksIHdvcmtlckNvbnRleHQsIG1fc3RhdGUuZ2V0
KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKTsKICNlbmRpZgotICAgIG1fdGltZWxp
bmVBZ2VudCA9IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Oldvcmtl
ckluc3BlY3RvciwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6RnJhbWVJbnN0cnVtZW50YXRpb25O
b3RTdXBwb3J0ZWQpOworICAgIG1fdGltZWxpbmVBZ2VudCA9IEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIE5VTEwsIG1fc3RhdGUuZ2V0
KCksIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Oldvcmtlckluc3BlY3RvciwgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6RnJhbWVJbnN0cnVtZW50YXRpb25Ob3RTdXBwb3J0ZWQpOwogCiAgICAgbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgpLT5pbml0KDAKICAgICAg
ICAgLCAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaAkocmV2aXNpb24gMTE5MzUyKQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NSwzNiArMjc1
LDM2IEBACiAgICAgc3RhdGljIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIEVsZW1lbnQqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSk7CiAKICAgICBzdGF0
aWMgdm9pZCB3aWxsU2VuZFhNTEh0dHBSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
Y29uc3QgU3RyaW5nJiB1cmwpOwotICAgIHN0YXRpYyB2b2lkIGRpZFNjaGVkdWxlUmVzb3VyY2VS
ZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgU3RyaW5nJiB1cmwpOwotICAg
IHN0YXRpYyB2b2lkIGRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGlu
dCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKLSAgICBzdGF0aWMgdm9p
ZCBkaWRSZW1vdmVUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCB0aW1lcklkKTsK
KyAgICBzdGF0aWMgdm9pZCBkaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIGNvbnN0IFN0cmluZyYgdXJsLCBGcmFtZSogZnJhbWUpOworICAgIHN0YXRp
YyB2b2lkIGRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCB0aW1l
cklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KTsKKyAgICBzdGF0aWMgdm9pZCBkaWRSZW1vdmVUaW1lckltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIGludCB0aW1lcklkLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KTsKIAotICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbENhbGxG
dW5jdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGNvbnN0IFN0cmluZyYgc2NyaXB0TmFt
ZSwgaW50IHNjcmlwdExpbmUpOworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUgd2lsbENhbGxGdW5jdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGNvbnN0IFN0
cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQpOwogICAgIHN0YXRpYyB2b2lkIGRpZENhbGxGdW5jdGlvbkltcGwoY29uc3QgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSB3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIFhNTEh0dHBSZXF1ZXN0Kik7CisgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSB3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIFhNTEh0dHBSZXF1ZXN0KiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCk7
CiAgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoY29uc3QgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IGNvbnN0IEV2ZW50JiwgRE9NV2luZG93KiwgTm9kZSosIGNvbnN0IFZlY3RvcjxFdmVudENvbnRl
eHQ+JiBhbmNlc3RvcnMpOworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUgd2lsbERpc3BhdGNoRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBFdmVu
dCYsIERPTVdpbmRvdyosIE5vZGUqLCBjb25zdCBWZWN0b3I8RXZlbnRDb250ZXh0PiYgYW5jZXN0
b3JzLCBGcmFtZSogZnJhbWUpOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUgd2lsbEhhbmRsZUV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRXZlbnQqKTsK
ICAgICBzdGF0aWMgdm9pZCBkaWRIYW5kbGVFdmVudEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hFdmVudEltcGwo
Y29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGljIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hFdmVudE9uV2luZG93SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgRXZlbnQmLCBET01XaW5kb3cqKTsKKyAgICBzdGF0
aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaEV2ZW50T25XaW5k
b3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBFdmVudCYsIERPTVdpbmRvdyosIEZy
YW1lKik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hFdmVudE9uV2luZG93SW1wbChjb25z
dCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxFdmFsdWF0ZVNjcmlwdEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgbGluZU51bWJlcik7CisgICAgc3RhdGlj
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRXZhbHVhdGVTY3JpcHRJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1iZXIsIEZy
YW1lKiBmcmFtZSk7CiAgICAgc3RhdGljIHZvaWQgZGlkRXZhbHVhdGVTY3JpcHRJbXBsKGNvbnN0
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyB2b2lkIGRpZENy
ZWF0ZUlzb2xhdGVkQ29udGV4dEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKiwgU2Ny
aXB0U3RhdGUqLCBTZWN1cml0eU9yaWdpbiopOwotICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUgd2lsbEZpcmVUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGlu
dCB0aW1lcklkKTsKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdp
bGxGaXJlVGltZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBpbnQgdGltZXJJZCwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmlyZVRpbWVy
SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMg
dm9pZCBkaWRCZWdpbkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGlj
IHZvaWQgZGlkQ2FuY2VsRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKLSAgICBzdGF0
aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxMYXlvdXRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMqKTsKKyAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3
aWxsTGF5b3V0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqIGZyYW1lKTsKICAgICBz
dGF0aWMgdm9pZCBkaWRMYXlvdXRJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSYpOwotICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbExv
YWRYSFJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBYTUxIdHRwUmVxdWVzdCopOworICAgIHN0
YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbExvYWRYSFJJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBYTUxIdHRwUmVxdWVzdCosIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
KTsKICAgICBzdGF0aWMgdm9pZCBkaWRMb2FkWEhSSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUmKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIHdpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IExheW91dFJlY3QmKTsKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llIHdpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IExheW91dFJlY3QmLCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZFBhaW50
SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMg
dm9pZCB3aWxsQ29tcG9zaXRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGlj
IHZvaWQgZGlkQ29tcG9zaXRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7Ci0gICAgc3RhdGlj
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUmVjYWxjdWxhdGVTdHlsZUltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyopOworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgd2lsbFJlY2FsY3VsYXRlU3R5bGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBG
cmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2FsY3VsYXRlU3R5bGVJbXBsKGNvbnN0IElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFNjaGVk
dWxlU3R5bGVSZWNhbGN1bGF0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRG9jdW1lbnQq
KTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxNYXRjaFJ1
bGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHlsZVJ1bGUqKTsKQEAgLTMyMSw5
ICszMjEsOSBAQAogICAgIHN0YXRpYyB2b2lkIGNvbnRpbnVlQWZ0ZXJQaW5nTG9hZGVySW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExv
YWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICBz
dGF0aWMgdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAgICAgc3RhdGljIHZvaWQgZGlkTG9hZFJlc291
cmNlRnJvbU1lbW9yeUNhY2hlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRG9jdW1lbnRMb2Fk
ZXIqLCBDYWNoZWRSZXNvdXJjZSopOwotICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgd2lsbFJlY2VpdmVSZXNvdXJjZURhdGFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUgd2lsbFJlY2VpdmVSZXNvdXJjZURhdGFJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIEZyYW1lKiBmcmFtZSk7CiAgICAgc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0YUltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSB3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxSZWNlaXZlUmVzb3Vy
Y2VSZXNwb25zZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIEZyYW1lKiBmcmFtZSk7CiAgICAgc3RhdGlj
IHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKGNvbnN0IEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2Fk
ZXIqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2
ZVJlc291cmNlUmVzcG9uc2VCdXRDYW5jZWxlZEltcGwoRnJhbWUqLCBEb2N1bWVudExvYWRlcios
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAg
IHN0YXRpYyB2b2lkIGNvbnRpbnVlQWZ0ZXJYRnJhbWVPcHRpb25zRGVuaWVkSW1wbChGcmFtZSos
IERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJik7CkBAIC0zNDQsNyArMzQ0LDcgQEAKICAgICBzdGF0aWMgdm9pZCBkaWRDb21t
aXRMb2FkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFnZSosIERvY3VtZW50TG9hZGVyKik7
CiAgICAgc3RhdGljIHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJhbWVJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMqLCBEb2N1bWVudExvYWRlciopOwogCi0gICAgc3RhdGljIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
dW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSk7CisgICAgc3RhdGlj
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGlu
ZSwgRnJhbWUqIGZyYW1lKTsKICAgICBzdGF0aWMgdm9pZCBkaWRXcml0ZUhUTUxJbXBsKGNvbnN0
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYsIHVuc2lnbmVkIGludCBlbmRMaW5lKTsK
IAogICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+KTsKQEAgLTM1NCw5ICszNTQsOSBAQAogICAgIHN0YXRpYyB2b2lkIHN0
b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgU3RyaW5nJiB0
aXRsZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICBzdGF0aWMgdm9pZCBjb25z
b2xlVGltZVN0YW1wSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFzc1JlZlB0cjxTY3JpcHRB
cmd1bWVudHM+KTsKIAotICAgIHN0YXRpYyB2b2lkIGRpZFJlcXVlc3RBbmltYXRpb25GcmFtZUlt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCBjYWxsYmFja0lkKTsKLSAgICBzdGF0aWMgdm9p
ZCBkaWRDYW5jZWxBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCBj
YWxsYmFja0lkKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdp
bGxGaXJlQW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBpbnQgY2FsbGJh
Y2tJZCk7CisgICAgc3RhdGljIHZvaWQgZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgaW50IGNhbGxiYWNrSWQsIEZyYW1lKiBmcmFtZSk7CisgICAgc3Rh
dGljIHZvaWQgZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBpbnQgY2FsbGJhY2tJZCwgRnJhbWUqIGZyYW1lKTsKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llIHdpbGxGaXJlQW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMqLCBpbnQgY2FsbGJhY2tJZCwgRnJhbWUqIGZyYW1lKTsKICAgICBzdGF0aWMgdm9p
ZCBkaWRGaXJlQW5pbWF0aW9uRnJhbWVJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSYpOwogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCkBAIC01ODIsNyAr
NTgyLDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZS
T05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkKLSAg
ICAgICAgZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMs
IHVybCk7CisgICAgICAgIGRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0SW1wbChpbnN0cnVtZW50
aW5nQWdlbnRzLCB1cmwsIGRvY3VtZW50LT5mcmFtZSgpKTsKICNlbmRpZgogfQogCkBAIC01OTEs
NyArNTkxLDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05P
X0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dCkpCi0g
ICAgICAgIGRpZEluc3RhbGxUaW1lckltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZXJJZCwg
dGltZW91dCwgc2luZ2xlU2hvdCk7CisgICAgICAgIGRpZEluc3RhbGxUaW1lckltcGwoaW5zdHJ1
bWVudGluZ0FnZW50cywgdGltZXJJZCwgdGltZW91dCwgc2luZ2xlU2hvdCwgY29udGV4dCk7CiAj
ZW5kaWYKIH0KIApAQCAtNjAwLDcgKzYwMCw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAg
ICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JD
b250ZXh0KGNvbnRleHQpKQotICAgICAgICBkaWRSZW1vdmVUaW1lckltcGwoaW5zdHJ1bWVudGlu
Z0FnZW50cywgdGltZXJJZCk7CisgICAgICAgIGRpZFJlbW92ZVRpbWVySW1wbChpbnN0cnVtZW50
aW5nQWdlbnRzLCB0aW1lcklkLCBjb250ZXh0KTsKICNlbmRpZgogfQogCkBAIC02MDksNyArNjA5
LDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05U
RU5EUyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKSk7CiAgICAgaWYgKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9y
Q29udGV4dChjb250ZXh0KSkKLSAgICAgICAgcmV0dXJuIHdpbGxDYWxsRnVuY3Rpb25JbXBsKGlu
c3RydW1lbnRpbmdBZ2VudHMsIHNjcmlwdE5hbWUsIHNjcmlwdExpbmUpOworICAgICAgcmV0dXJu
IHdpbGxDYWxsRnVuY3Rpb25JbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHNjcmlwdE5hbWUsIHNj
cmlwdExpbmUsIGNvbnRleHQpOwogI2VuZGlmCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSgpOwogfQpAQCAtNjI5LDcgKzYyOSw3IEBACiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dCkpCi0gICAg
ICAgIHJldHVybiB3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgcmVxdWVzdCk7CisgICAgICAgIHJldHVybiB3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwo
aW5zdHJ1bWVudGluZ0FnZW50cywgcmVxdWVzdCwgY29udGV4dCk7CiAjZW5kaWYKICAgICByZXR1
cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CiB9CkBAIC02NDgsNyArNjQ4LDcg
QEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5E
UyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKSk7CiAgICAgaWYgKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRG9j
dW1lbnQoZG9jdW1lbnQpKQotICAgICAgICByZXR1cm4gd2lsbERpc3BhdGNoRXZlbnRJbXBsKGlu
c3RydW1lbnRpbmdBZ2VudHMsIGV2ZW50LCB3aW5kb3csIG5vZGUsIGFuY2VzdG9ycyk7CisgICAg
ICAgIHJldHVybiB3aWxsRGlzcGF0Y2hFdmVudEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZXZl
bnQsIHdpbmRvdywgbm9kZSwgYW5jZXN0b3JzLCBkb2N1bWVudC0+ZnJhbWUoKSk7CiAjZW5kaWYK
ICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CiB9CkBAIC02ODYs
NyArNjg2LDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05P
X0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKSk7CiAgICAgaWYgKElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdl
bnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICByZXR1cm4gd2lsbERpc3BhdGNoRXZlbnRPbldp
bmRvd0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZXZlbnQsIHdpbmRvdyk7CisgICAgICAgIHJl
dHVybiB3aWxsRGlzcGF0Y2hFdmVudE9uV2luZG93SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBl
dmVudCwgd2luZG93LCBmcmFtZSk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llKCk7CiB9CkBAIC03MDUsNyArNzA1LDcgQEAKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAg
ICByZXR1cm4gd2lsbEV2YWx1YXRlU2NyaXB0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCB1cmws
IGxpbmVOdW1iZXIpOworICAgICAgICByZXR1cm4gd2lsbEV2YWx1YXRlU2NyaXB0SW1wbChpbnN0
cnVtZW50aW5nQWdlbnRzLCB1cmwsIGxpbmVOdW1iZXIsIGZyYW1lKTsKICNlbmRpZgogICAgIHJl
dHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsKIH0KQEAgLTczMyw3ICs3MzMs
NyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRF
TkRTKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpKTsKICAgICBpZiAoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JD
b250ZXh0KGNvbnRleHQpKQotICAgICAgICByZXR1cm4gd2lsbEZpcmVUaW1lckltcGwoaW5zdHJ1
bWVudGluZ0FnZW50cywgdGltZXJJZCk7CisgICAgICAgIHJldHVybiB3aWxsRmlyZVRpbWVySW1w
bChpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lcklkLCBjb250ZXh0KTsKICNlbmRpZgogICAgIHJl
dHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsKIH0KQEAgLTc3MCw3ICs3NzAs
NyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRF
TkRTKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpKTsKICAgICBpZiAoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JG
cmFtZShmcmFtZSkpCi0gICAgICAgIHJldHVybiB3aWxsTGF5b3V0SW1wbChpbnN0cnVtZW50aW5n
QWdlbnRzKTsKKyAgICAgICAgcmV0dXJuIHdpbGxMYXlvdXRJbXBsKGluc3RydW1lbnRpbmdBZ2Vu
dHMsIGZyYW1lKTsKICNlbmRpZgogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUoKTsKIH0KQEAgLTc4OSw3ICs3ODksNyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAg
ICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHQpKQotICAgICAgICByZXR1
cm4gd2lsbExvYWRYSFJJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHJlcXVlc3QpOworICAgICAg
ICByZXR1cm4gd2lsbExvYWRYSFJJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHJlcXVlc3QsIGNv
bnRleHQpOwogI2VuZGlmCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSgpOwogfQpAQCAtODA4LDcgKzgwOCw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBG
QVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
KCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0g
aW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKLSAgICAgICAgcmV0dXJuIHdpbGxQ
YWludEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4dCwgcmVjdCk7CisgICAgICAgIHJl
dHVybiB3aWxsUGFpbnRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnRleHQsIHJlY3QsIGZy
YW1lKTsKICNlbmRpZgogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUo
KTsKIH0KQEAgLTg0NSw3ICs4NDUsNyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFT
VF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgp
KTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JEb2N1bWVudChkb2N1bWVudCkpCi0gICAgICAgIHJldHVybiB3
aWxsUmVjYWxjdWxhdGVTdHlsZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cyk7CisgICAgICAgIHJl
dHVybiB3aWxsUmVjYWxjdWxhdGVTdHlsZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZG9jdW1l
bnQtPmZyYW1lKCkpOwogI2VuZGlmCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSgpOwogfQpAQCAtOTkyLDcgKzk5Miw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
ICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKLSAgICAgICAgcmV0dXJu
IHdpbGxSZWNlaXZlUmVzb3VyY2VEYXRhSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBpZGVudGlm
aWVyKTsKKyAgICAgICAgcmV0dXJuIHdpbGxSZWNlaXZlUmVzb3VyY2VEYXRhSW1wbChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBpZGVudGlmaWVyLCBmcmFtZSk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CiB9CkBAIC0xMDEwLDcgKzEwMTAsNyBAQAog
ewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQot
ICAgICAgICByZXR1cm4gd2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1wbChpbnN0cnVtZW50
aW5nQWdlbnRzLCBpZGVudGlmaWVyLCByZXNwb25zZSk7CisgICAgICAgIHJldHVybiB3aWxsUmVj
ZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGlkZW50aWZpZXIs
IHJlc3BvbnNlLCBmcmFtZSk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llKCk7CiB9CkBAIC0xMTY5LDcgKzExNjksNyBAQAogI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JEb2N1bWVudChkb2N1bWVudCkpCi0g
ICAgICAgIHJldHVybiB3aWxsV3JpdGVIVE1MSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBsZW5n
dGgsIHN0YXJ0TGluZSk7CisgICAgICAgIHJldHVybiB3aWxsV3JpdGVIVE1MSW1wbChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBsZW5ndGgsIHN0YXJ0TGluZSwgZG9jdW1lbnQtPmZyYW1lKCkpOwogI2Vu
ZGlmCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpOwogfQpAQCAt
MTMyNSw3ICsxMzI1LDcgQEAKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50
c0ZvckRvY3VtZW50KGRvY3VtZW50KSkKLSAgICAgICAgZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1l
SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBjYWxsYmFja0lkKTsKKyAgICAgICAgZGlkUmVxdWVz
dEFuaW1hdGlvbkZyYW1lSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBjYWxsYmFja0lkLCBkb2N1
bWVudC0+ZnJhbWUoKSk7CiAjZW5kaWYKIH0KIApAQCAtMTMzMyw3ICsxMzMzLDcgQEAKIHsKICNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkK
LSAgICAgICAgZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMs
IGNhbGxiYWNrSWQpOworICAgICAgICBkaWRDYW5jZWxBbmltYXRpb25GcmFtZUltcGwoaW5zdHJ1
bWVudGluZ0FnZW50cywgY2FsbGJhY2tJZCwgZG9jdW1lbnQtPmZyYW1lKCkpOwogI2VuZGlmCiB9
CiAKQEAgLTEzNDEsNyArMTM0MSw3IEBACiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBp
ZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRp
bmdBZ2VudHNGb3JEb2N1bWVudChkb2N1bWVudCkpCi0gICAgICAgIHJldHVybiB3aWxsRmlyZUFu
aW1hdGlvbkZyYW1lSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBjYWxsYmFja0lkKTsKKyAgICAg
ICAgcmV0dXJuIHdpbGxGaXJlQW5pbWF0aW9uRnJhbWVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMs
IGNhbGxiYWNrSWQsIGRvY3VtZW50LT5mcmFtZSgpKTsKICNlbmRpZgogICAgIHJldHVybiBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsKIH0KLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAkocmV2aXNpb24gMTE5MzUyKQorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NCw4ICs0NCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBF
dmVudDsKK2NsYXNzIEZyYW1lOwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwogY2xhc3MgSW5zcGVj
dG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JT
dGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBJbnRSZWN0OwpAQCAtNjAs
OSArNjIsOSBAQAogICAgIGVudW0gSW5zcGVjdG9yVHlwZSB7IFBhZ2VJbnNwZWN0b3IsIFdvcmtl
ckluc3BlY3RvciB9OwogICAgIGVudW0gRnJhbWVJbnN0cnVtZW50YXRpb25TdXBwb3J0IHsgRnJh
bWVJbnN0cnVtZW50YXRpb25Ob3RTdXBwb3J0ZWQsIEZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9y
dGVkIH07CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBj
cmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
U3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JUeXBlIHR5cGUsIEZyYW1lSW5zdHJ1bWVudGF0aW9uU3Vw
cG9ydCBmcmFtZUluc3RydW1lbnRhdGlvblN1cHBvcnQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8
SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JT
dGF0ZSogc3RhdGUsIEluc3BlY3RvclR5cGUgdHlwZSwgRnJhbWVJbnN0cnVtZW50YXRpb25TdXBw
b3J0IGZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBz
dGF0ZSwgdHlwZSwgZnJhbWVJbnN0cnVtZW50YXRpb25TdXBwb3J0KSk7CisgICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBwYWdlQWdlbnQsIHN0YXRlLCB0eXBlLCBmcmFtZUluc3RydW1lbnRhdGlvblN1cHBvcnQpKTsK
ICAgICB9CiAKICAgICB+SW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpOwpAQCAtODEsMjIgKzgzLDIy
IEBACiAgICAgdm9pZCBkaWRDb21taXRMb2FkKCk7CiAKICAgICAvLyBNZXRob2RzIGNhbGxlZCBm
cm9tIFdlYkNvcmUuCi0gICAgdm9pZCB3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgc2Ny
aXB0TmFtZSwgaW50IHNjcmlwdExpbmUpOworICAgIHZvaWQgd2lsbENhbGxGdW5jdGlvbihjb25z
dCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lLCBGcmFtZSopOwogICAgIHZvaWQg
ZGlkQ2FsbEZ1bmN0aW9uKCk7CiAKLSAgICB2b2lkIHdpbGxEaXNwYXRjaEV2ZW50KGNvbnN0IEV2
ZW50Jik7CisgICAgdm9pZCB3aWxsRGlzcGF0Y2hFdmVudChjb25zdCBFdmVudCYsIEZyYW1lKik7
CiAgICAgdm9pZCBkaWREaXNwYXRjaEV2ZW50KCk7CiAKICAgICB2b2lkIGRpZEJlZ2luRnJhbWUo
KTsKICAgICB2b2lkIGRpZENhbmNlbEZyYW1lKCk7CiAKLSAgICB2b2lkIHdpbGxMYXlvdXQoKTsK
KyAgICB2b2lkIHdpbGxMYXlvdXQoRnJhbWUqIGZyYW1lKTsKICAgICB2b2lkIGRpZExheW91dCgp
OwogCi0gICAgdm9pZCB3aWxsUmVjYWxjdWxhdGVTdHlsZSgpOworICAgIHZvaWQgd2lsbFJlY2Fs
Y3VsYXRlU3R5bGUoRnJhbWUqKTsKICAgICB2b2lkIGRpZFJlY2FsY3VsYXRlU3R5bGUoKTsKIAot
ICAgIHZvaWQgd2lsbFBhaW50KGNvbnN0IExheW91dFJlY3QmKTsKKyAgICB2b2lkIHdpbGxQYWlu
dChjb25zdCBMYXlvdXRSZWN0JiwgRnJhbWUqKTsKICAgICB2b2lkIGRpZFBhaW50KCk7CiAKICAg
ICB2b2lkIHdpbGxDb21wb3NpdGUoKTsKQEAgLTEwNCw2NiArMTA2LDY3IEBACiAKICAgICAvLyBG
SVhNRTogfGxlbmd0aHwgc2hvdWxkIGJlIHBhc3NlZCBpbiBkaWRXcml0ZSBpbnN0ZWFkIHdpbGxX
cml0ZQogICAgIC8vIGFzIHRoZSBwYXJzZXIgY2FuIG5vdCBrbm93IGhvdyBtdWNoIGl0IHdpbGwg
cHJvY2VzcyB1bnRpbCBpdCB0cmllcy4KLSAgICB2b2lkIHdpbGxXcml0ZUhUTUwodW5zaWduZWQg
aW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSk7CisgICAgdm9pZCB3aWxsV3JpdGVI
VE1MKHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUsIEZyYW1lKik7
CiAgICAgdm9pZCBkaWRXcml0ZUhUTUwodW5zaWduZWQgaW50IGVuZExpbmUpOwogCi0gICAgdm9p
ZCBkaWRJbnN0YWxsVGltZXIoaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNo
b3QpOwotICAgIHZvaWQgZGlkUmVtb3ZlVGltZXIoaW50IHRpbWVySWQpOwotICAgIHZvaWQgd2ls
bEZpcmVUaW1lcihpbnQgdGltZXJJZCk7CisgICAgdm9pZCBkaWRJbnN0YWxsVGltZXIoaW50IHRp
bWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIEZyYW1lKik7CisgICAgdm9pZCBk
aWRSZW1vdmVUaW1lcihpbnQgdGltZXJJZCwgRnJhbWUqKTsKKyAgICB2b2lkIHdpbGxGaXJlVGlt
ZXIoaW50IHRpbWVySWQsIEZyYW1lKik7CiAgICAgdm9pZCBkaWRGaXJlVGltZXIoKTsKIAotICAg
IHZvaWQgd2lsbENoYW5nZVhIUlJlYWR5U3RhdGUoY29uc3QgU3RyaW5nJiwgaW50KTsKKyAgICB2
b2lkIHdpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlKGNvbnN0IFN0cmluZyYsIGludCwgRnJhbWUqIGZy
YW1lKTsKICAgICB2b2lkIGRpZENoYW5nZVhIUlJlYWR5U3RhdGUoKTsKLSAgICB2b2lkIHdpbGxM
b2FkWEhSKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgd2lsbExvYWRYSFIoY29uc3QgU3RyaW5n
JiwgRnJhbWUqKTsKICAgICB2b2lkIGRpZExvYWRYSFIoKTsKIAotICAgIHZvaWQgd2lsbEV2YWx1
YXRlU2NyaXB0KGNvbnN0IFN0cmluZyYsIGludCk7CisgICAgdm9pZCB3aWxsRXZhbHVhdGVTY3Jp
cHQoY29uc3QgU3RyaW5nJiwgaW50LCBGcmFtZSopOwogICAgIHZvaWQgZGlkRXZhbHVhdGVTY3Jp
cHQoKTsKIAogICAgIHZvaWQgZGlkVGltZVN0YW1wKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQg
ZGlkTWFya0RPTUNvbnRlbnRFdmVudCgpOwotICAgIHZvaWQgZGlkTWFya0xvYWRFdmVudCgpOwor
ICAgIHZvaWQgZGlkTWFya0RPTUNvbnRlbnRFdmVudChGcmFtZSopOworICAgIHZvaWQgZGlkTWFy
a0xvYWRFdmVudChGcmFtZSopOwogCi0gICAgdm9pZCBkaWRTY2hlZHVsZVJlc291cmNlUmVxdWVz
dChjb25zdCBTdHJpbmcmIHVybCk7Ci0gICAgdm9pZCB3aWxsU2VuZFJlc291cmNlUmVxdWVzdCh1
bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICB2b2lkIHdpbGxSZWNl
aXZlUmVzb3VyY2VSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7CisgICAgdm9pZCBkaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdChjb25zdCBTdHJpbmcmIHVy
bCwgRnJhbWUqKTsKKyAgICB2b2lkIHdpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2lnbmVkIGxv
bmcsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZyYW1lKik7CisgICAgdm9pZCB3aWxsUmVjZWl2
ZVJlc291cmNlUmVzcG9uc2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYs
IEZyYW1lKik7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSgpOwotICAgIHZv
aWQgZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVkIGxvbmcsIGJvb2wgZGlkRmFpbCwg
ZG91YmxlIGZpbmlzaFRpbWUpOwotICAgIHZvaWQgd2lsbFJlY2VpdmVSZXNvdXJjZURhdGEodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdSZXNvdXJj
ZSh1bnNpZ25lZCBsb25nLCBib29sIGRpZEZhaWwsIGRvdWJsZSBmaW5pc2hUaW1lLCBGcmFtZSop
OworICAgIHZvaWQgd2lsbFJlY2VpdmVSZXNvdXJjZURhdGEodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBGcmFtZSopOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0YSgpOwogCi0gICAg
dm9pZCBkaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQpOwotICAgIHZvaWQg
ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQpOwotICAgIHZvaWQgd2lsbEZp
cmVBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCk7CisgICAgdm9pZCBkaWRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQsIEZyYW1lKik7CisgICAgdm9pZCBkaWRDYW5jZWxB
bmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCwgRnJhbWUqKTsKKyAgICB2b2lkIHdpbGxGaXJl
QW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQsIEZyYW1lKik7CiAgICAgdm9pZCBkaWRGaXJl
QW5pbWF0aW9uRnJhbWUoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRHQyhkb3VibGUsIGRvdWJs
ZSwgc2l6ZV90KTsKIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgVGltZWxpbmVSZWNvcmRFbnRyeSB7
Ci0gICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IHJlY29yZCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIFBhc3NSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+IGNoaWxkcmVuLCBjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wgY2FuY2VsYWJs
ZSA9IGZhbHNlKQotICAgICAgICAgICAgOiByZWNvcmQocmVjb3JkKSwgZGF0YShkYXRhKSwgY2hp
bGRyZW4oY2hpbGRyZW4pLCB0eXBlKHR5cGUpLCBjYW5jZWxhYmxlKGNhbmNlbGFibGUpCisgICAg
ICAgIFRpbWVsaW5lUmVjb3JkRW50cnkoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29y
ZCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIFBhc3NSZWZQdHI8SW5zcGVjdG9y
QXJyYXk+IGNoaWxkcmVuLCBjb25zdCBTdHJpbmcmIHR5cGUsIEZyYW1lKiBmcmFtZSwgYm9vbCBj
YW5jZWxhYmxlID0gZmFsc2UpCisgICAgICAgICAgICA6IHJlY29yZChyZWNvcmQpLCBkYXRhKGRh
dGEpLCBjaGlsZHJlbihjaGlsZHJlbiksIHR5cGUodHlwZSksIGZyYW1lKGZyYW1lKSwgY2FuY2Vs
YWJsZShjYW5jZWxhYmxlKQogICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gcmVjb3JkOwogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBk
YXRhOwogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGNoaWxkcmVuOwogICAgICAgICBT
dHJpbmcgdHlwZTsKKyAgICAgICAgRnJhbWUqIGZyYW1lOwogICAgICAgICBib29sIGNhbmNlbGFi
bGU7CiAgICAgfTsKICAgICAgICAgCi0gICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbnNwZWN0b3JUeXBlLCBGcmFtZUluc3Ry
dW1lbnRhdGlvblN1cHBvcnQpOworICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3RvclN0YXRlKiwgSW5zcGVj
dG9yVHlwZSwgRnJhbWVJbnN0cnVtZW50YXRpb25TdXBwb3J0KTsKIAotICAgIHZvaWQgcHVzaEN1
cnJlbnRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5
cGUsIGJvb2wgY2FwdHVyZUNhbGxTdGFjayk7CisgICAgdm9pZCBwdXNoQ3VycmVudFJlY29yZChQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4sIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0
dXJlQ2FsbFN0YWNrLCBGcmFtZSogZnJhbWUpOwogICAgIHZvaWQgc2V0SGVhcFNpemVTdGF0aXN0
aWMoSW5zcGVjdG9yT2JqZWN0KiByZWNvcmQpOwogICAgICAgICAKICAgICB2b2lkIGRpZENvbXBs
ZXRlQ3VycmVudFJlY29yZChjb25zdCBTdHJpbmcmIHR5cGUpOwotICAgIHZvaWQgYXBwZW5kUmVj
b3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUs
IGJvb2wgY2FwdHVyZUNhbGxTdGFjayk7Ci0gICAgdm9pZCBwdXNoQ2FuY2VsYWJsZVJlY29yZChQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4sIGNvbnN0IFN0cmluZyYgdHlwZSk7CisgICAgdm9p
ZCBhcHBlbmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0
cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSogZnJhbWUpOworICAgIHZv
aWQgcHVzaENhbmNlbGFibGVSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25z
dCBTdHJpbmcmIHR5cGUsIEZyYW1lKiBmcmFtZSk7CiAgICAgdm9pZCBjb21taXRDYW5jZWxhYmxl
UmVjb3JkcygpOwogICAgIHZvaWQgY2FuY2VsUmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSk7Ci0g
ICAgdm9pZCBhZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piwg
Y29uc3QgU3RyaW5nJiB0eXBlKTsKLSAgICB2b2lkIGlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4sIGNvbnN0IFN0cmluZyYgdHlwZSk7CisgICAgdm9p
ZCBhZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3Qg
U3RyaW5nJiB0eXBlLCBGcmFtZSogZnJhbWUpOworICAgIHZvaWQgaW5uZXJBZGRSZWNvcmRUb1Rp
bWVsaW5lKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlLCBG
cmFtZSogZnJhbWUpOwogCiAgICAgdm9pZCBwdXNoR0NFdmVudFJlY29yZHMoKTsKICAgICB2b2lk
IGNsZWFyUmVjb3JkU3RhY2soKTsKQEAgLTE3MSw2ICsxNzQsOCBAQAogICAgIGRvdWJsZSB0aW1l
c3RhbXAoKTsKICAgICBkb3VibGUgdGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyhkb3VibGUgbWlj
cm9zZWNvbmRzKTsKIAorICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CisKICAg
ICBJbnNwZWN0b3JGcm9udGVuZDo6VGltZWxpbmUqIG1fZnJvbnRlbmQ7CiAgICAgZG91YmxlIG1f
dGltZXN0YW1wT2Zmc2V0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145925</attachid>
            <date>2012-06-05 20:55:26 -0700</date>
            <delta_ts>2012-06-06 11:26:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>frameId2.patch</filename>
            <type>text/plain</type>
            <size>62109</size>
            <attacher name="Bryan">bmcquade</attacher>
            
              <data encoding="base64">LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCShy
ZXZpc2lvbiAxMTkzNTIpCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzExMiw3IEBACiAgICAgSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50KiBkb21TdG9yYWdlQWdlbnQgPSBkb21TdG9yYWdlQWdlbnRQ
dHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRvbVN0b3JhZ2VBZ2VudFB0ci5yZWxlYXNl
KCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JNZW1vcnlBZ2VudDo6Y3JlYXRlKG1f
aW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9wYWdlLCBtX2RvbUFn
ZW50KSk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OlBhZ2VJbnNwZWN0b3IsCisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VB
Z2VudCwgbV9zdGF0ZS5nZXQoKSwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6UGFnZUluc3BlY3Rv
ciwKICAgICAgICBpbnNwZWN0b3JDbGllbnQtPnN1cHBvcnRzRnJhbWVJbnN0cnVtZW50YXRpb24o
KSA/IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OkZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydGVk
IDogSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6RnJhbWVJbnN0cnVtZW50YXRpb25Ob3RTdXBwb3J0
ZWQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBwYWdl
QWdlbnQpKTsKIApAQCAtMzUxLDcgKzM1MSw3IEBACiAgICAgaWYgKGVuYWJsZSkKICAgICAgICAg
bV9wcm9maWxlckFnZW50LT5lbmFibGUoJmVycm9yKTsKICAgICBlbHNlCi0gICAgICAgIG1fcHJv
ZmlsZXJBZ2VudC0+ZGlzYWJsZSgmZXJyb3IpOworICAgIG1fcHJvZmlsZXJBZ2VudC0+ZGlzYWJs
ZSgmZXJyb3IpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJlc3VtZSgpCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAkocmV2
aXNpb24gMTE5MzUyKQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDEwICszNSwxMiBAQAogI2luY2x1
ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKIAogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJZGVudGlmaWVyc0ZhY3RvcnkuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb3VudGVycy5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5n
QWdlbnRzLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtMTA2LDcgKzEwOCw3IEBACiAgICAg
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlR2VuZXJpY1JlY29yZCh0aW1lc3RhbXBGcm9tTWljcm9zZWNvbmRzKGktPnN0YXJ0
VGltZSksIG1fbWF4Q2FsbFN0YWNrRGVwdGgpOwogICAgICAgICByZWNvcmQtPnNldE9iamVjdCgi
ZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERhdGEoaS0+Y29sbGVj
dGVkQnl0ZXMpKTsKICAgICAgICAgcmVjb3JkLT5zZXROdW1iZXIoImVuZFRpbWUiLCB0aW1lc3Rh
bXBGcm9tTWljcm9zZWNvbmRzKGktPmVuZFRpbWUpKTsKLSAgICAgICAgYWRkUmVjb3JkVG9UaW1l
bGluZShyZWNvcmQucmVsZWFzZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OkdDRXZlbnQpOworICAg
ICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZC5yZWxlYXNlKCksIFRpbWVsaW5lUmVjb3Jk
VHlwZTo6R0NFdmVudCwgMCk7CiAgICAgfQogfQogCkBAIC0xODIsNyArMTg0LDcgQEAKIAogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRCZWdpbkZyYW1lKCkKIHsKLSAgICBwdXNoQ2Fu
Y2VsYWJsZVJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5
cGU6OkJlZ2luRnJhbWUpOworICAgIHB1c2hDYW5jZWxhYmxlUmVjb3JkKEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6QmVnaW5GcmFtZSwgMCk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ2FuY2VsRnJhbWUoKQpAQCAtMTkwLDkgKzE5
Miw5IEBACiAgICAgY2FuY2VsUmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6QmVnaW5GcmFtZSk7
CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbihjb25z
dCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQordm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50
IHNjcmlwdExpbmUsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoc2NyaXB0TmFtZSwgc2Ny
aXB0TGluZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6RnVuY3Rpb25DYWxsLCB0cnVlKTsKKyAgICBw
dXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2Fs
bERhdGEoc2NyaXB0TmFtZSwgc2NyaXB0TGluZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6RnVuY3Rp
b25DYWxsLCB0cnVlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
ZGlkQ2FsbEZ1bmN0aW9uKCkKQEAgLTIwMCw5ICsyMDIsOSBAQAogICAgIGRpZENvbXBsZXRlQ3Vy
cmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OkZ1bmN0aW9uQ2FsbCk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERpc3BhdGNoRXZlbnQoY29uc3QgRXZlbnQmIGV2
ZW50KQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGlzcGF0Y2hFdmVudChjb25z
dCBFdmVudCYgZXZlbnQsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKGV2ZW50KSwgVGlt
ZWxpbmVSZWNvcmRUeXBlOjpFdmVudERpc3BhdGNoLCBmYWxzZSk7CisgICAgcHVzaEN1cnJlbnRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmVudERpc3BhdGNoRGF0YShldmVu
dCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6RXZlbnREaXNwYXRjaCwgZmFsc2UsIGZyYW1lKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWREaXNwYXRjaEV2ZW50KCkKQEAgLTIx
MCw5ICsyMTIsOSBAQAogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29y
ZFR5cGU6OkV2ZW50RGlzcGF0Y2gpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OndpbGxMYXlvdXQoKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTGF5b3V0KEZy
YW1lKiBmcmFtZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OkxheW91dCwgdHJ1ZSk7CisgICAgcHVzaEN1cnJl
bnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpM
YXlvdXQsIHRydWUsIGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRMYXlvdXQoKQpAQCAtMjIwLDkgKzIyMiw5IEBACiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVj
b3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6TGF5b3V0KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsUmVjYWxjdWxhdGVTdHlsZSgpCit2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxSZWNhbGN1bGF0ZVN0eWxlKEZyYW1lKiBmcmFtZSkKIHsKLSAgICBwdXNoQ3Vy
cmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6
OlJlY2FsY3VsYXRlU3R5bGVzLCB0cnVlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OlJlY2FsY3VsYXRlU3R5bGVz
LCB0cnVlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVj
YWxjdWxhdGVTdHlsZSgpCkBAIC0yMzAsOSArMjMyLDkgQEAKICAgICBkaWRDb21wbGV0ZUN1cnJl
bnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpSZWNhbGN1bGF0ZVN0eWxlcyk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFBhaW50KGNvbnN0IExheW91dFJlY3QmIHJl
Y3QpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQYWludChjb25zdCBMYXlvdXRS
ZWN0JiByZWN0LCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYWludERhdGEocmVjdCksIFRpbWVsaW5lUmVjb3JkVHlw
ZTo6UGFpbnQsIHRydWUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlUGFpbnREYXRhKHJlY3QpLCBUaW1lbGluZVJlY29yZFR5cGU6OlBhaW50LCB0
cnVlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUGFpbnQo
KQpAQCAtMjQyLDcgKzI0NCw3IEBACiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2ls
bENvbXBvc2l0ZSgpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpDb21wb3NpdGVMYXllcnMsIGZhbHNlKTsKKyAg
ICBwdXNoQ3VycmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJl
Y29yZFR5cGU6OkNvbXBvc2l0ZUxheWVycywgZmFsc2UsIDApOwogfQogCiB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZENvbXBvc2l0ZSgpCkBAIC0yNTAsOSArMjUyLDkgQEAKICAgICBk
aWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpDb21wb3NpdGVMYXll
cnMpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxXcml0ZUhUTUwodW5z
aWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSkKK3ZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6d2lsbFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25l
ZCBpbnQgc3RhcnRMaW5lLCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQo
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYXJzZUhUTUxEYXRhKGxlbmd0aCwgc3RhcnRM
aW5lKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpQYXJzZUhUTUwsIHRydWUpOworICAgIHB1c2hDdXJy
ZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFyc2VIVE1MRGF0YShsZW5n
dGgsIHN0YXJ0TGluZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UGFyc2VIVE1MLCB0cnVlLCBmcmFt
ZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkV3JpdGVIVE1MKHVuc2ln
bmVkIGludCBlbmRMaW5lKQpAQCAtMjY0LDE5ICsyNjYsMTkgQEAKICAgICB9CiB9CiAKLXZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKGludCB0aW1lcklkLCBpbnQg
dGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRJbnN0YWxsVGltZXIoaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3Qs
IEZyYW1lKiBmcmFtZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVUaW1lckluc3RhbGxEYXRhKHRpbWVySWQsIHRpbWVvdXQsIHNpbmdsZVNob3QpLCBU
aW1lbGluZVJlY29yZFR5cGU6OlRpbWVySW5zdGFsbCwgdHJ1ZSk7CisgICAgYXBwZW5kUmVjb3Jk
KFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0YSh0aW1lcklkLCB0
aW1lb3V0LCBzaW5nbGVTaG90KSwgVGltZWxpbmVSZWNvcmRUeXBlOjpUaW1lckluc3RhbGwsIHRy
dWUsIGZyYW1lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZW1vdmVU
aW1lcihpbnQgdGltZXJJZCkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVtb3Zl
VGltZXIoaW50IHRpbWVySWQsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKHRpbWVySWQpLCBUaW1l
bGluZVJlY29yZFR5cGU6OlRpbWVyUmVtb3ZlLCB0cnVlKTsKKyAgICBhcHBlbmRSZWNvcmQoVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKHRpbWVySWQpLCBUaW1l
bGluZVJlY29yZFR5cGU6OlRpbWVyUmVtb3ZlLCB0cnVlLCBmcmFtZSk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbEZpcmVUaW1lcihpbnQgdGltZXJJZCkKK3ZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbEZpcmVUaW1lcihpbnQgdGltZXJJZCwgRnJhbWUqIGZy
YW1lKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlR2VuZXJpY1RpbWVyRGF0YSh0aW1lcklkKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpUaW1lckZp
cmUsIGZhbHNlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUdlbmVyaWNUaW1lckRhdGEodGltZXJJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6VGlt
ZXJGaXJlLCBmYWxzZSwgZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZEZpcmVUaW1lcigpCkBAIC0yODQsOSArMjg2LDkgQEAKICAgICBkaWRDb21wbGV0ZUN1cnJl
bnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpUaW1lckZpcmUpOwogfQogCi12b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlKGNvbnN0IFN0cmluZyYg
dXJsLCBpbnQgcmVhZHlTdGF0ZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENo
YW5nZVhIUlJlYWR5U3RhdGUoY29uc3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlLCBGcmFt
ZSogZnJhbWUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YSh1cmwsIHJlYWR5U3RhdGUpLCBUaW1lbGlu
ZVJlY29yZFR5cGU6OlhIUlJlYWR5U3RhdGVDaGFuZ2UsIGZhbHNlKTsKKyAgICBwdXNoQ3VycmVu
dFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VE
YXRhKHVybCwgcmVhZHlTdGF0ZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6WEhSUmVhZHlTdGF0ZUNo
YW5nZSwgZmFsc2UsIGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRDaGFuZ2VYSFJSZWFkeVN0YXRlKCkKQEAgLTI5NCw5ICsyOTYsOSBAQAogICAgIGRpZENvbXBs
ZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OlhIUlJlYWR5U3RhdGVDaGFuZ2Up
OwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxMb2FkWEhSKGNvbnN0IFN0
cmluZyYgdXJsKSAKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbExvYWRYSFIoY29u
c3QgU3RyaW5nJiB1cmwsIEZyYW1lKiBmcmFtZSkgCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQo
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YSh1cmwpLCBUaW1lbGluZVJl
Y29yZFR5cGU6OlhIUkxvYWQsIHRydWUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEodXJsKSwgVGltZWxpbmVSZWNvcmRUeXBl
OjpYSFJMb2FkLCB0cnVlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkTG9hZFhIUigpCkBAIC0zMDQsOSArMzA2LDkgQEAKICAgICBkaWRDb21wbGV0ZUN1cnJl
bnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpYSFJMb2FkKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50Ojp3aWxsRXZhbHVhdGVTY3JpcHQoY29uc3QgU3RyaW5nJiB1cmwsIGlu
dCBsaW5lTnVtYmVyKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRXZhbHVhdGVT
Y3JpcHQoY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyLCBGcmFtZSogZnJhbWUpCiB7
Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmFs
dWF0ZVNjcmlwdERhdGEodXJsLCBsaW5lTnVtYmVyKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpFdmFs
dWF0ZVNjcmlwdCwgdHJ1ZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVFdmFsdWF0ZVNjcmlwdERhdGEodXJsLCBsaW5lTnVtYmVyKSwgVGltZWxp
bmVSZWNvcmRUeXBlOjpFdmFsdWF0ZVNjcmlwdCwgdHJ1ZSwgZnJhbWUpOwogfQogICAgIAogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRFdmFsdWF0ZVNjcmlwdCgpCkBAIC0zMTQsMjgg
KzMxNiwzMiBAQAogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5
cGU6OkV2YWx1YXRlU2NyaXB0KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdChjb25zdCBTdHJpbmcmIHVybCkKK3ZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QoY29uc3QgU3RyaW5n
JiB1cmwsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEodXJsKSwgVGltZWxpbmVS
ZWNvcmRUeXBlOjpTY2hlZHVsZVJlc291cmNlUmVxdWVzdCwgdHJ1ZSk7CisgICAgYXBwZW5kUmVj
b3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RE
YXRhKHVybCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6U2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QsIHRy
dWUsIGZyYW1lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsU2VuZFJl
c291cmNlUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRSZXNv
dXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsK
ICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmRSYXcgPSBUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQodGltZXN0YW1wKCksIG1fbWF4Q2FsbFN0YWNrRGVw
dGgpOwogICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJ
ZChpZGVudGlmaWVyKTsKICAgICByZWNvcmRSYXctPnNldE9iamVjdCgiZGF0YSIsIFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEocmVxdWVzdElkLCBy
ZXF1ZXN0KSk7CiAgICAgcmVjb3JkUmF3LT5zZXRTdHJpbmcoInR5cGUiLCBUaW1lbGluZVJlY29y
ZFR5cGU6OlJlc291cmNlU2VuZFJlcXVlc3QpOworICAgIGlmIChmcmFtZSAmJiBtX3BhZ2VBZ2Vu
dCkgeworICAgICAgU3RyaW5nIGNvbnRleHRJZChtX3BhZ2VBZ2VudC0+ZnJhbWVJZChmcmFtZSkp
OworICAgICAgcmVjb3JkUmF3LT5zZXRTdHJpbmcoImZyYW1lSWQiLCBjb250ZXh0SWQpOworICAg
IH0KICAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmRSYXcuZ2V0KCkpOwogICAgIC8vIEZJ
WE1FOiBydW50aW1lQ2FzdCBpcyBhIGhhY2suIFdlIGRvIGl0IGJlY2F1c2Ugd2UgY2FuJ3QgYnVp
bGQgVGltZWxpbmVFdmVudCBkaXJlY3RseSBub3cuCiAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpU
aW1lbGluZTo6VGltZWxpbmVFdmVudD4gcmVjb3JkID0gVHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpU
aW1lbGluZUV2ZW50OjpydW50aW1lQ2FzdChyZWNvcmRSYXcucmVsZWFzZSgpKTsKICAgICBtX2Zy
b250ZW5kLT5ldmVudFJlY29yZGVkKHJlY29yZC5yZWxlYXNlKCkpOwogfQogCi12b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllcikKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVSZXNv
dXJjZURhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBGcmFtZSogZnJhbWUpCiB7CiAgICAg
U3RyaW5nIHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZp
ZXIpOwotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
UmVjZWl2ZVJlc291cmNlRGF0YShyZXF1ZXN0SWQpLCBUaW1lbGluZVJlY29yZFR5cGU6OlJlc291
cmNlUmVjZWl2ZWREYXRhLCBmYWxzZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKHJlcXVlc3RJZCksIFRpbWVs
aW5lUmVjb3JkVHlwZTo6UmVzb3VyY2VSZWNlaXZlZERhdGEsIGZhbHNlLCBmcmFtZSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YSgpCkBA
IC0zNDMsMTAgKzM0OSwxMCBAQAogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGlu
ZVJlY29yZFR5cGU6OlJlc291cmNlUmVjZWl2ZWREYXRhKTsKIH0KICAgICAKLXZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBGcmFt
ZSogZnJhbWUpCiB7CiAgICAgU3RyaW5nIHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6
cmVxdWVzdElkKGlkZW50aWZpZXIpOwotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VEYXRhKHJlcXVlc3RJZCwg
cmVzcG9uc2UpLCBUaW1lbGluZVJlY29yZFR5cGU6OlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlLCBm
YWxzZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEocmVxdWVzdElkLCByZXNwb25zZSksIFRpbWVs
aW5lUmVjb3JkVHlwZTo6UmVzb3VyY2VSZWNlaXZlUmVzcG9uc2UsIGZhbHNlLCBmcmFtZSk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9u
c2UoKQpAQCAtMzU0LDI0ICszNjAsMjQgQEAKICAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQo
VGltZWxpbmVSZWNvcmRUeXBlOjpSZXNvdXJjZVJlY2VpdmVSZXNwb25zZSk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgYm9vbCBkaWRGYWlsLCBkb3VibGUgZmluaXNoVGltZSkKK3ZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgYm9vbCBkaWRGYWlsLCBkb3VibGUgZmluaXNoVGltZSwgRnJhbWUq
IGZyYW1lKQogewotICAgIGFwcGVuZFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZVJlc291cmNlRmluaXNoRGF0YShJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlm
aWVyKSwgZGlkRmFpbCwgZmluaXNoVGltZSAqIDEwMDApLCBUaW1lbGluZVJlY29yZFR5cGU6OlJl
c291cmNlRmluaXNoLCBmYWxzZSk7CisgICAgYXBwZW5kUmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVz
dElkKGlkZW50aWZpZXIpLCBkaWRGYWlsLCBmaW5pc2hUaW1lICogMTAwMCksIFRpbWVsaW5lUmVj
b3JkVHlwZTo6UmVzb3VyY2VGaW5pc2gsIGZhbHNlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkVGltZVN0YW1wKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsK
LSAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lU3RhbXBE
YXRhKG1lc3NhZ2UpLCBUaW1lbGluZVJlY29yZFR5cGU6OlRpbWVTdGFtcCwgdHJ1ZSk7CisgICAg
YXBwZW5kUmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZVN0YW1wRGF0YSht
ZXNzYWdlKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpUaW1lU3RhbXAsIHRydWUsIDApOwogfQogCi12
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtET01Db250ZW50RXZlbnQoKQordm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrRE9NQ29udGVudEV2ZW50KEZyYW1lKiBm
cmFtZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgVGlt
ZWxpbmVSZWNvcmRUeXBlOjpNYXJrRE9NQ29udGVudCwgZmFsc2UpOworICAgIGFwcGVuZFJlY29y
ZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6Ok1hcmtET01D
b250ZW50LCBmYWxzZSwgZnJhbWUpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZE1hcmtMb2FkRXZlbnQoKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJr
TG9hZEV2ZW50KEZyYW1lKiBmcmFtZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpNYXJrTG9hZCwgZmFsc2UpOworICAg
IGFwcGVuZFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5
cGU6Ok1hcmtMb2FkLCBmYWxzZSwgZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZENvbW1pdExvYWQoKQpAQCAtMzc5LDE5ICszODUsMTkgQEAKICAgICBjbGVhclJl
Y29yZFN0YWNrKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQsIEZyYW1lKiBmcmFt
ZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVBbmlt
YXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVxdWVzdEFu
aW1hdGlvbkZyYW1lLCB0cnVlKTsKKyAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVBbmltYXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVsaW5lUmVjb3Jk
VHlwZTo6UmVxdWVzdEFuaW1hdGlvbkZyYW1lLCB0cnVlLCBmcmFtZSk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNr
SWQpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENhbmNlbEFuaW1hdGlvbkZyYW1l
KGludCBjYWxsYmFja0lkLCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgYXBwZW5kUmVjb3JkKFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlQW5pbWF0aW9uRnJhbWVEYXRhKGNhbGxiYWNrSWQpLCBU
aW1lbGluZVJlY29yZFR5cGU6OkNhbmNlbEFuaW1hdGlvbkZyYW1lLCB0cnVlKTsKKyAgICBhcHBl
bmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVBbmltYXRpb25GcmFtZURhdGEo
Y2FsbGJhY2tJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6Q2FuY2VsQW5pbWF0aW9uRnJhbWUsIHRy
dWUsIGZyYW1lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRmlyZUFu
aW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojp3aWxsRmlyZUFuaW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkLCBGcmFtZSogZnJhbWUpCiB7
Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVBbmlt
YXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6RmlyZUFuaW1h
dGlvbkZyYW1lLCBmYWxzZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVBbmltYXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVsaW5lUmVj
b3JkVHlwZTo6RmlyZUFuaW1hdGlvbkZyYW1lLCBmYWxzZSwgZnJhbWUpOwogfQogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpcmVBbmltYXRpb25GcmFtZSgpCkBAIC0zOTksMTYg
KzQwNSwyMCBAQAogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5
cGU6OkZpcmVBbmltYXRpb25GcmFtZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6YWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3Jk
LCBjb25zdCBTdHJpbmcmIHR5cGUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFkZFJl
Y29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCwgY29uc3Qg
U3RyaW5nJiB0eXBlLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgY29tbWl0Q2FuY2VsYWJsZVJlY29y
ZHMoKTsKLSAgICBpbm5lckFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCB0eXBlKTsKKyAgICBp
bm5lckFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCB0eXBlLCBmcmFtZSk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6aW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBwcnBSZWNvcmQsIGNvbnN0IFN0cmluZyYgdHlwZSkKK3ZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6aW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBwcnBSZWNvcmQsIGNvbnN0IFN0cmluZyYgdHlwZSwgRnJhbWUq
IGZyYW1lKQogewogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZChwcnBSZWNvcmQp
OwogICAgIHJlY29yZC0+c2V0U3RyaW5nKCJ0eXBlIiwgdHlwZSk7CisgICAgaWYgKGZyYW1lICYm
IG1fcGFnZUFnZW50KSB7CisgICAgICBTdHJpbmcgY29udGV4dElkKG1fcGFnZUFnZW50LT5mcmFt
ZUlkKGZyYW1lKSk7CisgICAgICByZWNvcmQtPnNldFN0cmluZygiZnJhbWVJZCIsIGNvbnRleHRJ
ZCk7CisgICAgfQogICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZC5nZXQoKSk7CiAgICAg
aWYgKG1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBydW50aW1l
Q2FzdCBpcyBhIGhhY2suIFdlIGRvIGl0IGJlY2F1c2Ugd2UgY2FuJ3QgYnVpbGQgVGltZWxpbmVF
dmVudCBkaXJlY3RseSBub3cuCkBAIC00NTAsMTIgKzQ2MCwxMyBAQAogICAgICAgICBlbnRyeS5y
ZWNvcmQtPnNldE9iamVjdCgiZGF0YSIsIGVudHJ5LmRhdGEpOwogICAgICAgICBlbnRyeS5yZWNv
cmQtPnNldEFycmF5KCJjaGlsZHJlbiIsIGVudHJ5LmNoaWxkcmVuKTsKICAgICAgICAgZW50cnku
cmVjb3JkLT5zZXROdW1iZXIoImVuZFRpbWUiLCB0aW1lc3RhbXAoKSk7Ci0gICAgICAgIGFkZFJl
Y29yZFRvVGltZWxpbmUoZW50cnkucmVjb3JkLCB0eXBlKTsKKyAgICAgICAgYWRkUmVjb3JkVG9U
aW1lbGluZShlbnRyeS5yZWNvcmQsIHR5cGUsIGVudHJ5LmZyYW1lKTsKICAgICB9CiB9CiAKLUlu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbnNw
ZWN0b3JUeXBlIHR5cGUsIEZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydCBmcmFtZUluc3RydW1l
bnRhdGlvblN1cHBvcnQpCitJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3Rv
clBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluc3BlY3RvclR5
cGUgdHlwZSwgRnJhbWVJbnN0cnVtZW50YXRpb25TdXBwb3J0IGZyYW1lSW5zdHJ1bWVudGF0aW9u
U3VwcG9ydCkKICAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JUaW1lbGluZUFnZW50
PigiVGltZWxpbmUiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKKyAgICAsIG1fcGFnZUFn
ZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1fdGltZXN0YW1wT2Zm
c2V0KDApCiAgICAgLCBtX2lkKDEpCkBAIC00NjUsMjcgKzQ3NiwyNyBAQAogewogfQogCi12b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFwcGVuZFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2sp
Cit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFwcGVuZFJlY29yZChQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxs
U3RhY2ssIEZyYW1lKiBmcmFtZSkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKICAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdlbmVyaWNSZWNvcmQodGltZXN0YW1wKCksIGNhcHR1cmVDYWxsU3RhY2sgPyBtX21heENh
bGxTdGFja0RlcHRoIDogMCk7CiAgICAgcmVjb3JkLT5zZXRPYmplY3QoImRhdGEiLCBkYXRhKTsK
ICAgICByZWNvcmQtPnNldFN0cmluZygidHlwZSIsIHR5cGUpOwotICAgIGFkZFJlY29yZFRvVGlt
ZWxpbmUocmVjb3JkLnJlbGVhc2UoKSwgdHlwZSk7CisgICAgYWRkUmVjb3JkVG9UaW1lbGluZShy
ZWNvcmQucmVsZWFzZSgpLCB0eXBlLCBmcmFtZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRh
dGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrKQordm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVudFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ss
IEZyYW1lKiBmcmFtZSkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKICAgICBjb21taXRD
YW5jZWxhYmxlUmVjb3JkcygpOwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCh0aW1lc3RhbXAoKSwg
Y2FwdHVyZUNhbGxTdGFjayA/IG1fbWF4Q2FsbFN0YWNrRGVwdGggOiAwKTsKLSAgICBtX3JlY29y
ZFN0YWNrLmFwcGVuZChUaW1lbGluZVJlY29yZEVudHJ5KHJlY29yZC5yZWxlYXNlKCksIGRhdGEs
IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKSwgdHlwZSkpOworICAgIG1fcmVjb3JkU3RhY2suYXBw
ZW5kKFRpbWVsaW5lUmVjb3JkRW50cnkocmVjb3JkLnJlbGVhc2UoKSwgZGF0YSwgSW5zcGVjdG9y
QXJyYXk6OmNyZWF0ZSgpLCB0eXBlLCBmcmFtZSkpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OnB1c2hDYW5jZWxhYmxlUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OnB1c2hDYW5jZWxhYmxlUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBj
b25zdCBTdHJpbmcmIHR5cGUsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNv
cmQodGltZXN0YW1wKCksIDApOwotICAgIG1fcmVjb3JkU3RhY2suYXBwZW5kKFRpbWVsaW5lUmVj
b3JkRW50cnkocmVjb3JkLnJlbGVhc2UoKSwgZGF0YSwgMCwgdHlwZSwgdHJ1ZSkpOworICAgIG1f
cmVjb3JkU3RhY2suYXBwZW5kKFRpbWVsaW5lUmVjb3JkRW50cnkocmVjb3JkLnJlbGVhc2UoKSwg
ZGF0YSwgMCwgdHlwZSwgZnJhbWUsIHRydWUpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50Ojpjb21taXRDYW5jZWxhYmxlUmVjb3JkcygpCkBAIC01MDIsNyArNTEzLDcgQEAKICAg
ICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeSBlbnRyeSA9IGNhbmNlbGFibGVSZWNvcmRzLmxhc3Qo
KTsKICAgICAgICAgY2FuY2VsYWJsZVJlY29yZHMucmVtb3ZlTGFzdCgpOwogICAgICAgICBlbnRy
eS5yZWNvcmQtPnNldE9iamVjdCgiZGF0YSIsIGVudHJ5LmRhdGEpOwotICAgICAgICBpbm5lckFk
ZFJlY29yZFRvVGltZWxpbmUoZW50cnkucmVjb3JkLnJlbGVhc2UoKSwgZW50cnkudHlwZSk7Cisg
ICAgICAgIGlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShlbnRyeS5yZWNvcmQucmVsZWFzZSgpLCBl
bnRyeS50eXBlLCBlbnRyeS5mcmFtZSk7CiAgICAgfQogfQogCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcwkocmV2aXNp
b24gMTE5MzUyKQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw2ICsxMDYsOSBA
QAogCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5pc0V2ZW50RGl2aWRl
ciA9IGZ1bmN0aW9uKHJlY29yZCkKIHsKKyAgICB2YXIgbWFpbkZyYW1lID0gV2ViSW5zcGVjdG9y
LnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZTsKKyAgICBpZiAoIW1haW5GcmFtZSB8fCBtYWlu
RnJhbWUuaWQoKSAhPSByZWNvcmQuZnJhbWVJZCkgCisgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB2YXIgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBl
OwogICAgIHJldHVybiByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0RPTUNvbnRlbnQg
fHwgcmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLk1hcmtMb2FkIHx8IHJlY29yZC50eXBlID09
PSByZWNvcmRUeXBlcy5UaW1lU3RhbXA7CiB9Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCShyZXZpc2lvbiAxMTkzNTIpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05OCw2ICs5OCwxNCBAQAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3Rh
dGljIEZyYW1lKiBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSAwOworICAgIGlmIChjb250
ZXh0LT5pc0RvY3VtZW50KCkpCisgICAgICAgIGZyYW1lID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQq
Pihjb250ZXh0KS0+ZnJhbWUoKTsKKyAgICByZXR1cm4gZnJhbWU7Cit9CisKIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSwgRE9NV3Jh
cHBlcldvcmxkKiB3b3JsZCkKIHsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpOwpAQCAtMjUyLDMxICsy
NjAsMzEgQEAKICNlbmRpZgogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
U2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIGNvbnN0IFN0cmluZyYgdXJsKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIHVybCwgRnJhbWUqIGZyYW1lKQog
ewogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGlu
ZUFnZW50LT5kaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdCh1cmwpOworICAgICAgICB0aW1lbGlu
ZUFnZW50LT5kaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdCh1cmwsIGZyYW1lKTsKIH0KIAotdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IHRpbWVySWQsIGludCB0aW1lb3V0
LCBib29sIHNpbmdsZVNob3QpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5z
dGFsbFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBp
bnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCkKIHsKICAgICBwYXVzZU9uTmF0aXZlRXZlbnRJZk5lZWRlZChpbnN0
cnVtZW50aW5nQWdlbnRzLCBmYWxzZSwgc2V0VGltZXJFdmVudE5hbWUsIHRydWUpOwogICAgIGlm
IChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50LT5k
aWRJbnN0YWxsVGltZXIodGltZXJJZCwgdGltZW91dCwgc2luZ2xlU2hvdCk7CisgICAgICAgIHRp
bWVsaW5lQWdlbnQtPmRpZEluc3RhbGxUaW1lcih0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90
LCBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogfQogCi12b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVtb3ZlVGltZXJJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCB0aW1lcklkKQordm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFJlbW92ZVRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJZCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKIHsKICAgICBwYXVzZU9uTmF0aXZlRXZlbnRJZk5lZWRlZChpbnN0cnVtZW50aW5n
QWdlbnRzLCBmYWxzZSwgY2xlYXJUaW1lckV2ZW50TmFtZSwgdHJ1ZSk7CiAgICAgaWYgKEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5p
bnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCi0gICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZFJlbW92
ZVRpbWVyKHRpbWVySWQpOworICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRSZW1vdmVUaW1lcih0
aW1lcklkLCBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogfQogCi1J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsQ2FsbEZ1bmN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQorSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENhbGxG
dW5jdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgY29u
c3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKIHsKICAgICBpbnQgdGltZWxpbmVBZ2VudElkID0gMDsKICAgICBpZiAo
SW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53
aWxsQ2FsbEZ1bmN0aW9uKHNjcmlwdE5hbWUsIHNjcmlwdExpbmUpOworICAgICAgICB0aW1lbGlu
ZUFnZW50LT53aWxsQ2FsbEZ1bmN0aW9uKHNjcmlwdE5hbWUsIHNjcmlwdExpbmUsIGZyYW1lRm9y
U2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJ
ZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsK
QEAgLTI4OCwxMiArMjk2LDEyIEBACiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZENhbGxGdW5j
dGlvbigpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgWE1MSHR0cFJlcXVlc3QqIHJlcXVlc3QpCitJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
Q2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cywgWE1MSHR0cFJlcXVlc3QqIHJlcXVlc3QsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQpCiB7CiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAgICAgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQoKTsKICAgICBpZiAodGltZWxpbmVBZ2VudCAmJiByZXF1ZXN0LT5o
YXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkucmVhZHlzdGF0ZWNoYW5nZUV2ZW50KSkgewot
ICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZShyZXF1ZXN0LT51
cmwoKS5zdHJpbmcoKSwgcmVxdWVzdC0+cmVhZHlTdGF0ZSgpKTsKKyAgICAgICAgdGltZWxpbmVB
Z2VudC0+d2lsbENoYW5nZVhIUlJlYWR5U3RhdGUocmVxdWVzdC0+dXJsKCkuc3RyaW5nKCksIHJl
cXVlc3QtPnJlYWR5U3RhdGUoKSwgZnJhbWVGb3JTY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRl
eHQpKTsKICAgICAgICAgdGltZWxpbmVBZ2VudElkID0gdGltZWxpbmVBZ2VudC0+aWQoKTsKICAg
ICB9CiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZShpbnN0cnVtZW50
aW5nQWdlbnRzLCB0aW1lbGluZUFnZW50SWQpOwpAQCAtMzA1LDEyICszMTMsMTIgQEAKICAgICAg
ICAgdGltZWxpbmVBZ2VudC0+ZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZSgpOwogfQogCi1JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlz
cGF0Y2hFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
Y29uc3QgRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHdpbmRvdywgTm9kZSogbm9kZSwgY29uc3Qg
VmVjdG9yPEV2ZW50Q29udGV4dD4mIGFuY2VzdG9ycykKK0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBFdmVudCYgZXZl
bnQsIERPTVdpbmRvdyogd2luZG93LCBOb2RlKiBub2RlLCBjb25zdCBWZWN0b3I8RXZlbnRDb250
ZXh0PiYgYW5jZXN0b3JzLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgaW50IHRpbWVsaW5lQWdlbnRJ
ZCA9IDA7CiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3Ry
dW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKICAgICBpZiAodGltZWxp
bmVBZ2VudCAmJiBldmVudEhhc0xpc3RlbmVycyhldmVudC50eXBlKCksIHdpbmRvdywgbm9kZSwg
YW5jZXN0b3JzKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsRGlzcGF0Y2hFdmVudChl
dmVudCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxEaXNwYXRjaEV2ZW50KGV2ZW50LCBm
cmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7CiAg
ICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoaW5zdHJ1bWVu
dGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTMzMywxMiArMzQxLDEyIEBACiAgICAg
ICAgIHRpbWVsaW5lQWdlbnQtPmRpZERpc3BhdGNoRXZlbnQoKTsKIH0KIAotSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNo
RXZlbnRPbldpbmRvd0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgY29uc3QgRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHdpbmRvdykKK0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2
ZW50T25XaW5kb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IGNvbnN0IEV2ZW50JiBldmVudCwgRE9NV2luZG93KiB3aW5kb3csIEZyYW1lKiBmcmFtZSkKIHsK
ICAgICBpbnQgdGltZWxpbmVBZ2VudElkID0gMDsKICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50
KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVB
Z2VudCgpOwogICAgIGlmICh0aW1lbGluZUFnZW50ICYmIHdpbmRvdy0+aGFzRXZlbnRMaXN0ZW5l
cnMoZXZlbnQudHlwZSgpKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsRGlzcGF0Y2hF
dmVudChldmVudCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxEaXNwYXRjaEV2ZW50KGV2
ZW50LCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlk
KCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoaW5z
dHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTM1MCwxMSArMzU4LDExIEBA
CiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZERpc3BhdGNoRXZlbnQoKTsKIH0KIAotSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2
YWx1YXRlU2NyaXB0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBjb25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1iZXIpCitJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBpbnQgbGluZU51bWJlciwgRnJhbWUqIGZyYW1lKQogewogICAgIGludCB0aW1lbGlu
ZUFnZW50SWQgPSAwOwogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKSB7Ci0g
ICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxFdmFsdWF0ZVNjcmlwdCh1cmwsIGxpbmVOdW1iZXIp
OworICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsRXZhbHVhdGVTY3JpcHQodXJsLCBsaW5lTnVt
YmVyLCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlk
KCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoaW5z
dHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTM3MiwxMyArMzgwLDEzIEBA
CiAgICAgICAgIHJ1bnRpbWVBZ2VudC0+ZGlkQ3JlYXRlSXNvbGF0ZWRDb250ZXh0KGZyYW1lLCBz
Y3JpcHRTdGF0ZSwgb3JpZ2luKTsKIH0KIAotSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEZpcmVUaW1lckltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IHRpbWVySWQpCitJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRmlyZVRpbWVy
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJ
ZCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBwYXVzZU9uTmF0aXZl
RXZlbnRJZk5lZWRlZChpbnN0cnVtZW50aW5nQWdlbnRzLCBmYWxzZSwgdGltZXJGaXJlZEV2ZW50
TmFtZSwgZmFsc2UpOwogCiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAgICAgaWYgKElu
c3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpIHsKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+d2ls
bEZpcmVUaW1lcih0aW1lcklkKTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbEZpcmVUaW1l
cih0aW1lcklkLCBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogICAg
ICAgICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KICAgICBy
ZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKGluc3RydW1lbnRpbmdBZ2VudHMs
IHRpbWVsaW5lQWdlbnRJZCk7CkBAIC00MDQsMTEgKzQxMiwxMSBAQAogICAgICAgICB0aW1lbGlu
ZUFnZW50LT5kaWRDYW5jZWxGcmFtZSgpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsTGF5b3V0SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQorSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbExheW91dEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZyYW1lKQogewogICAgIGlu
dCB0aW1lbGluZUFnZW50SWQgPSAwOwogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0
aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCgpKSB7Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxMYXlvdXQoKTsKKyAgICAgICAgdGlt
ZWxpbmVBZ2VudC0+d2lsbExheW91dChmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9
IHRpbWVsaW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAg
LTQyNiwxMiArNDM0LDEyIEBACiAgICAgICAgIHBhZ2VBZ2VudC0+ZGlkTGF5b3V0KCk7CiB9CiAK
LUluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxMb2FkWEhSSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBYTUxIdHRwUmVxdWVzdCogcmVxdWVzdCkKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxMb2FkWEhSSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBYTUxIdHRwUmVxdWVzdCogcmVxdWVzdCwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBpbnQgdGltZWxpbmVBZ2VudElk
ID0gMDsKICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpOwogICAgIGlmICh0aW1lbGlu
ZUFnZW50ICYmIHJlcXVlc3QtPmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5sb2FkRXZl
bnQpKSB7Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxMb2FkWEhSKHJlcXVlc3QtPnVybCgp
KTsKKyAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxMb2FkWEhSKHJlcXVlc3QtPnVybCgpLCBmcmFt
ZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogICAgICAgICB0aW1lbGluZUFn
ZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KICAgICByZXR1cm4gSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVsaW5lQWdlbnRJ
ZCk7CkBAIC00NDMsMTQgKzQ1MSwxNCBAQAogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRMb2Fk
WEhSKCk7CiB9CiAKLUluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBy
ZWN0KQorSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbFBhaW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJlY3QsIEZy
YW1lKiBmcmFtZSkKIHsKICAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKICAgICAgICAgcGFnZUFn
ZW50LT53aWxsUGFpbnQoY29udGV4dCwgcmVjdCk7CiAKICAgICBpbnQgdGltZWxpbmVBZ2VudElk
ID0gMDsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewotICAgICAgICB0
aW1lbGluZUFnZW50LT53aWxsUGFpbnQocmVjdCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPndp
bGxQYWludChyZWN0LCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5l
QWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTQ3NiwxMSAr
NDg0LDExIEBACiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZENvbXBvc2l0ZSgpOwogfQogCi1J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsUmVjYWxjdWxhdGVTdHlsZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cykKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxSZWNhbGN1bGF0ZVN0eWxlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgaW50IHRpbWVsaW5lQWdl
bnRJZCA9IDA7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpIHsKLSAgICAg
ICAgdGltZWxpbmVBZ2VudC0+d2lsbFJlY2FsY3VsYXRlU3R5bGUoKTsKKyAgICAgICAgdGltZWxp
bmVBZ2VudC0+d2lsbFJlY2FsY3VsYXRlU3R5bGUoZnJhbWUpOwogICAgICAgICB0aW1lbGluZUFn
ZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KICAgICBpZiAoSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3Rv
clJlc291cmNlQWdlbnQoKSkKQEAgLTU4NCw3ICs1OTIsNyBAQAogdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRl
ciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQq
IHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFn
ZW50KCkpCi0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KGlk
ZW50aWZpZXIsIHJlcXVlc3QpOworICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsU2VuZFJlc291
cmNlUmVxdWVzdChpZGVudGlmaWVyLCByZXF1ZXN0LCBsb2FkZXItPmZyYW1lKCkpOwogICAgIGlm
IChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQogICAgICAgICByZXNvdXJjZUFnZW50LT53
aWxsU2VuZFJlcXVlc3QoaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3Bv
bnNlKTsKIH0KQEAgLTYwOSwxMSArNjE3LDExIEBACiAgICAgICAgIHJlc291cmNlQWdlbnQtPmRp
ZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShsb2FkZXIsIGNhY2hlZFJlc291cmNlKTsKIH0K
IAotSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbFJlY2VpdmVSZXNvdXJjZURhdGFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKK0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVz
b3VyY2VEYXRhSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBpbnQgdGltZWxp
bmVBZ2VudElkID0gMDsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVB
Z2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewot
ICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsUmVjZWl2ZVJlc291cmNlRGF0YShpZGVudGlmaWVy
KTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbFJlY2VpdmVSZXNvdXJjZURhdGEoaWRlbnRp
ZmllciwgZnJhbWUpOwogICAgICAgICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5p
ZCgpOwogICAgIH0KICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKGlu
c3RydW1lbnRpbmdBZ2VudHMsIHRpbWVsaW5lQWdlbnRJZCk7CkBAIC02MjUsMTIgKzYzMywxMiBA
QAogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRSZWNlaXZlUmVzb3VyY2VEYXRhKCk7CiB9CiAK
LUluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgRnJhbWUqIGZyYW1lKQog
ewogICAgIGludCB0aW1lbGluZUFnZW50SWQgPSAwOwogICAgIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KCk7CiAgICAgaWYgKHRpbWVsaW5lQWdlbnQpIHsKLSAgICAgICAgdGltZWxpbmVBZ2Vu
dC0+d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKKyAg
ICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGlkZW50aWZp
ZXIsIHJlc3BvbnNlLCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5l
QWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTY5MSw3ICs2
OTksNyBAQAogICAgICAgICBmaW5pc2hUaW1lID0gbG9hZGVyLT50aW1pbmcoKS0+Y29udmVydE1v
bm90b25pY1RpbWVUb0RvY3VtZW50VGltZShtb25vdG9uaWNGaW5pc2hUaW1lKTsKIAogICAgIGlm
ICh0aW1lbGluZUFnZW50KQotICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5n
UmVzb3VyY2UoaWRlbnRpZmllciwgZmFsc2UsIGZpbmlzaFRpbWUpOworICAgICAgICB0aW1lbGlu
ZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UoaWRlbnRpZmllciwgZmFsc2UsIGZpbmlz
aFRpbWUsIGxvYWRlci0+ZnJhbWUoKSk7CiAgICAgaWYgKHJlc291cmNlQWdlbnQpCiAgICAgICAg
IHJlc291cmNlQWdlbnQtPmRpZEZpbmlzaExvYWRpbmcoaWRlbnRpZmllciwgbG9hZGVyLCBmaW5p
c2hUaW1lKTsKIH0KQEAgLTY5OSw3ICs3MDcsNyBAQAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZEZhaWxMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGlmIChJbnNwZWN0b3JUaW1l
bGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9y
VGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5n
UmVzb3VyY2UoaWRlbnRpZmllciwgdHJ1ZSwgMCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRp
ZEZpbmlzaExvYWRpbmdSZXNvdXJjZShpZGVudGlmaWVyLCB0cnVlLCAwLCBsb2FkZXItPmZyYW1l
KCkpOwogICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQogICAgICAgICByZXNv
dXJjZUFnZW50LT5kaWRGYWlsTG9hZGluZyhpZGVudGlmaWVyLCBsb2FkZXIsIGVycm9yKTsKICAg
ICBpZiAoSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLT5pbnNwZWN0b3JDb25zb2xlQWdlbnQoKSkKQEAgLTc0Niw2ICs3NTQsOSBAQAogCiB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFt
ZSkKIHsKKyAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKKyAgICAgICAgdGlt
ZWxpbmVBZ2VudC0+ZGlkTWFya0RPTUNvbnRlbnRFdmVudChmcmFtZSk7CisKICAgICBpZiAoZnJh
bWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkgIT0gZnJhbWUpCiAgICAgICAgIHJldHVybjsKIApAQCAt
NzU1LDkgKzc2Niw2IEBACiAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTUFnZW50KCkpCiAgICAgICAgIGRvbUFnZW50
LT5tYWluRnJhbWVET01Db250ZW50TG9hZGVkKCk7CiAKLSAgICBpZiAoSW5zcGVjdG9yVGltZWxp
bmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRp
bWVsaW5lQWdlbnQoKSkKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0RPTUNvbnRlbnRF
dmVudCgpOwotCiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCiAgICAgICAgIHBhZ2VBZ2VudC0+
ZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKIH0KQEAgLTc2NywxMiArNzc1LDEyIEBACiAgICAgaWYg
KEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3Bl
Y3RvckRPTUFnZW50KCkpCiAgICAgICAgIGRvbUFnZW50LT5sb2FkRXZlbnRGaXJlZChmcmFtZS0+
ZG9jdW1lbnQoKSk7CiAKKyAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVB
Z2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKKyAg
ICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0xvYWRFdmVudChmcmFtZSk7CisKICAgICBpZiAo
ZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkgIT0gZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFn
ZW50LT5kaWRNYXJrTG9hZEV2ZW50KCk7Ci0KICAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBw
YWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKICAg
ICAgICAgcGFnZUFnZW50LT5sb2FkRXZlbnRGaXJlZCgpOwogfQpAQCAtODIzLDExICs4MzEsMTEg
QEAKICAgICAgICAgaW5zcGVjdG9yUGFnZUFnZW50LT5sb2FkZXJEZXRhY2hlZEZyb21GcmFtZShs
b2FkZXIpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsV3JpdGVIVE1MSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRM
aW5lKQorSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbFdyaXRlSFRNTEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cywgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSwgRnJh
bWUqIGZyYW1lKQogewogICAgIGludCB0aW1lbGluZUFnZW50SWQgPSAwOwogICAgIGlmIChJbnNw
ZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+
aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKSB7Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxX
cml0ZUhUTUwobGVuZ3RoLCBzdGFydExpbmUpOworICAgICAgICB0aW1lbGluZUFnZW50LT53aWxs
V3JpdGVIVE1MKGxlbmd0aCwgc3RhcnRMaW5lLCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdl
bnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElk
KTsKQEAgLTEwNzgsMjkgKzEwODYsMjkgQEAKICNlbmRpZgogfQogCi12b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgY2FsbGJhY2tJZCkKK3ZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCBjYWxsYmFja0lkLCBGcmFtZSog
ZnJhbWUpCiB7CiAgICAgcGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoaW5zdHJ1bWVudGluZ0Fn
ZW50cywgZmFsc2UsIHJlcXVlc3RBbmltYXRpb25GcmFtZUV2ZW50TmFtZSwgdHJ1ZSk7CiAKICAg
ICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKLSAgICAgICAgdGltZWxpbmVBZ2Vu
dC0+ZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrSWQpOworICAgICAgICB0aW1lbGlu
ZUFnZW50LT5kaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2tJZCwgZnJhbWUpOwogfQog
Ci12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWVJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCBjYWxsYmFj
a0lkKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbmNlbEFuaW1hdGlvbkZy
YW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgY2Fs
bGJhY2tJZCwgRnJhbWUqIGZyYW1lKQogewogICAgIHBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVk
KGluc3RydW1lbnRpbmdBZ2VudHMsIGZhbHNlLCBjYW5jZWxBbmltYXRpb25GcmFtZUV2ZW50TmFt
ZSwgdHJ1ZSk7CiAKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKLSAgICAg
ICAgdGltZWxpbmVBZ2VudC0+ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWUoY2FsbGJhY2tJZCk7Cisg
ICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZENhbmNlbEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrSWQs
IGZyYW1lKTsKIH0KIAotSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbEZpcmVBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IGNhbGxiYWNrSWQpCitJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRmlyZUFuaW1h
dGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBp
bnQgY2FsbGJhY2tJZCwgRnJhbWUqIGZyYW1lKQogewogICAgIHBhdXNlT25OYXRpdmVFdmVudElm
TmVlZGVkKGluc3RydW1lbnRpbmdBZ2VudHMsIGZhbHNlLCBhbmltYXRpb25GcmFtZUZpcmVkRXZl
bnROYW1lLCBmYWxzZSk7CiAKICAgICBpbnQgdGltZWxpbmVBZ2VudElkID0gMDsKICAgICBpZiAo
SW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53
aWxsRmlyZUFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrSWQpOworICAgICAgICB0aW1lbGluZUFnZW50
LT53aWxsRmlyZUFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrSWQsIGZyYW1lKTsKICAgICAgICAgdGlt
ZWxpbmVBZ2VudElkID0gdGltZWxpbmVBZ2VudC0+aWQoKTsKICAgICB9CiAgICAgcmV0dXJuIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZShpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lbGlu
ZUFnZW50SWQpOwotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDExOTM1MikKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDIsNyArMTAyLDcgQEAKICAgICBtX2RlYnVnZ2VyQWdlbnQgPSBXb3JrZXJEZWJ1Z2dlckFnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCB3b3Jr
ZXJDb250ZXh0LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSk7CiAgICAgbV9wcm9maWxl
ckFnZW50ID0gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5nZXQoKSwgbV9jb25zb2xlQWdlbnQuZ2V0KCksIHdvcmtlckNvbnRleHQsIG1fc3RhdGUu
Z2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKTsKICNlbmRpZgotICAgIG1fdGlt
ZWxpbmVBZ2VudCA9IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRp
bmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Oldv
cmtlckluc3BlY3RvciwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6RnJhbWVJbnN0cnVtZW50YXRp
b25Ob3RTdXBwb3J0ZWQpOworICAgIG1fdGltZWxpbmVBZ2VudCA9IEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIE5VTEwsIG1fc3RhdGUu
Z2V0KCksIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Oldvcmtlckluc3BlY3RvciwgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6RnJhbWVJbnN0cnVtZW50YXRpb25Ob3RTdXBwb3J0ZWQpOwogCiAgICAg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgpLT5pbml0KDAKICAg
ICAgICAgLCAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaAkocmV2aXNpb24gMTE5MzUyKQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NSwzNiAr
Mjc1LDM2IEBACiAgICAgc3RhdGljIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZUltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEVsZW1lbnQqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSk7CiAKICAgICBz
dGF0aWMgdm9pZCB3aWxsU2VuZFhNTEh0dHBSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiwgY29uc3QgU3RyaW5nJiB1cmwpOwotICAgIHN0YXRpYyB2b2lkIGRpZFNjaGVkdWxlUmVzb3Vy
Y2VSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgU3RyaW5nJiB1cmwpOwot
ICAgIHN0YXRpYyB2b2lkIGRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IGludCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKLSAgICBzdGF0aWMg
dm9pZCBkaWRSZW1vdmVUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCB0aW1lcklk
KTsKKyAgICBzdGF0aWMgdm9pZCBkaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyosIGNvbnN0IFN0cmluZyYgdXJsLCBGcmFtZSopOworICAgIHN0YXRpYyB2
b2lkIGRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCB0aW1lcklk
LCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0KTsKKyAgICBzdGF0aWMgdm9pZCBkaWRSZW1vdmVUaW1lckltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIGludCB0aW1lcklkLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KTsK
IAotICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbENhbGxGdW5j
dGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwg
aW50IHNjcmlwdExpbmUpOworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUgd2lsbENhbGxGdW5jdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGNvbnN0IFN0cmlu
ZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQpOwogICAgIHN0YXRpYyB2b2lkIGRpZENhbGxGdW5jdGlvbkltcGwoY29uc3QgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSB3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIFhNTEh0dHBSZXF1ZXN0Kik7CisgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSB3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyosIFhNTEh0dHBSZXF1ZXN0KiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCk7CiAg
ICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoY29uc3QgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGNv
bnN0IEV2ZW50JiwgRE9NV2luZG93KiwgTm9kZSosIGNvbnN0IFZlY3RvcjxFdmVudENvbnRleHQ+
JiBhbmNlc3RvcnMpOworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUg
d2lsbERpc3BhdGNoRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBFdmVudCYs
IERPTVdpbmRvdyosIE5vZGUqLCBjb25zdCBWZWN0b3I8RXZlbnRDb250ZXh0PiYgYW5jZXN0b3Jz
LCBGcmFtZSopOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2ls
bEhhbmRsZUV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRXZlbnQqKTsKICAgICBzdGF0
aWMgdm9pZCBkaWRIYW5kbGVFdmVudEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llJik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hFdmVudEltcGwoY29uc3QgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hFdmVudE9uV2luZG93SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgY29uc3QgRXZlbnQmLCBET01XaW5kb3cqKTsKKyAgICBzdGF0aWMgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBFdmVudCYsIERPTVdpbmRvdyosIEZyYW1lKik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hFdmVudE9uV2luZG93SW1wbChjb25zdCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llIHdpbGxFdmFsdWF0ZVNjcmlwdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgbGluZU51bWJlcik7CisgICAgc3RhdGljIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRXZhbHVhdGVTY3JpcHRJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1iZXIsIEZyYW1lKik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkRXZhbHVhdGVTY3JpcHRJbXBsKGNvbnN0IEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZUlzb2xhdGVkQ29u
dGV4dEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKiwgU2NyaXB0U3RhdGUqLCBTZWN1
cml0eU9yaWdpbiopOwotICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUg
d2lsbEZpcmVUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCB0aW1lcklkKTsKKyAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxGaXJlVGltZXJJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBpbnQgdGltZXJJZCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmlyZVRpbWVySW1wbChjb25zdCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRCZWdpbkZy
YW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FuY2Vs
RnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llIHdpbGxMYXlvdXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsK
KyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxMYXlvdXRJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZExheW91
dEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGlj
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsTG9hZFhIUkltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIFhNTEh0dHBSZXF1ZXN0Kik7CisgICAgc3RhdGljIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSB3aWxsTG9hZFhIUkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFhN
TEh0dHBSZXF1ZXN0KiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2b2lk
IGRpZExvYWRYSFJJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwot
ICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFBhaW50SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYp
OworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFBhaW50SW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVj
dCYsIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZGlkUGFpbnRJbXBsKGNvbnN0IEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxDb21wb3NpdGVJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDb21wb3NpdGVJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llIHdpbGxSZWNhbGN1bGF0ZVN0eWxlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
Kik7CisgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUmVjYWxj
dWxhdGVTdHlsZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CiAgICAgc3RhdGlj
IHZvaWQgZGlkUmVjYWxjdWxhdGVTdHlsZUltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llJik7CiAgICAgc3RhdGljIHZvaWQgZGlkU2NoZWR1bGVTdHlsZVJlY2FsY3VsYXRp
b25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVudCopOwogICAgIHN0YXRpYyBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbE1hdGNoUnVsZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIGNvbnN0IFN0eWxlUnVsZSopOwpAQCAtMzIxLDkgKzMyMSw5IEBACiAgICAgc3Rh
dGljIHZvaWQgY29udGludWVBZnRlclBpbmdMb2FkZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHN0YXRpYyB2b2lkIG1hcmtSZXNv
dXJjZUFzQ2FjaGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyKTsKICAgICBzdGF0aWMgdm9pZCBkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGVJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVudExvYWRlciosIENhY2hlZFJlc291cmNl
Kik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUmVjZWl2
ZVJlc291cmNlRGF0YUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllcik7CisgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxs
UmVjZWl2ZVJlc291cmNlRGF0YUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzb3Vy
Y2VEYXRhSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKLSAgICBz
dGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxSZWNlaXZlUmVzb3VyY2VS
ZXNwb25zZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUgd2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25z
ZUltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
ICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUJ1dENhbmNlbGVkSW1w
bChGcmFtZSosIERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgc3RhdGljIHZvaWQgY29udGludWVBZnRlclhGcmFt
ZU9wdGlvbnNEZW5pZWRJbXBsKEZyYW1lKiwgRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKQEAgLTM0NCw3ICszNDQsNyBA
QAogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBQYWdlKiwgRG9jdW1lbnRMb2FkZXIqKTsKICAgICBzdGF0aWMgdm9pZCBsb2FkZXJEZXRhY2hl
ZEZyb21GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIERvY3VtZW50TG9hZGVyKik7CiAK
LSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxXcml0ZUhUTUxJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBp
bnQgc3RhcnRMaW5lKTsKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
IHdpbGxXcml0ZUhUTUxJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBpbnQgbGVu
Z3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lLCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRp
ZFdyaXRlSFRNTEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiwgdW5z
aWduZWQgaW50IGVuZExpbmUpOwogCiAgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29s
ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1
bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwpAQCAtMzU0LDkgKzM1NCw5IEBA
CiAgICAgc3RhdGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwog
ICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVUaW1lU3RhbXBJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogCi0gICAgc3RhdGljIHZvaWQgZGlkUmVx
dWVzdEFuaW1hdGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgaW50IGNhbGxiYWNr
SWQpOwotICAgIHN0YXRpYyB2b2lkIGRpZENhbmNlbEFuaW1hdGlvbkZyYW1lSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgaW50IGNhbGxiYWNrSWQpOwotICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgd2lsbEZpcmVBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIGludCBjYWxsYmFja0lkKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBpbnQgY2FsbGJhY2tJZCwgRnJh
bWUqKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDYW5jZWxBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyosIGludCBjYWxsYmFja0lkLCBGcmFtZSopOworICAgIHN0YXRpYyBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbEZpcmVBbmltYXRpb25GcmFtZUltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyosIGludCBjYWxsYmFja0lkLCBGcmFtZSopOwogICAgIHN0YXRpYyB2
b2lkIGRpZEZpcmVBbmltYXRpb25GcmFtZUltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llJik7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKQEAgLTU4Miw3
ICs1ODIsNyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9f
RlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRG9jdW1lbnQoZG9jdW1lbnQpKQot
ICAgICAgICBkaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdEltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgdXJsKTsKKyAgICAgICAgZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RJbXBsKGluc3RydW1l
bnRpbmdBZ2VudHMsIHVybCwgZG9jdW1lbnQtPmZyYW1lKCkpOwogI2VuZGlmCiB9CiAKQEAgLTU5
MSw3ICs1OTEsNyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZf
Tk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0KSkK
LSAgICAgICAgZGlkSW5zdGFsbFRpbWVySW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lcklk
LCB0aW1lb3V0LCBzaW5nbGVTaG90KTsKKyAgICAgICAgZGlkSW5zdGFsbFRpbWVySW1wbChpbnN0
cnVtZW50aW5nQWdlbnRzLCB0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90LCBjb250ZXh0KTsK
ICNlbmRpZgogfQogCkBAIC02MDAsNyArNjAwLDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQog
ICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0Zv
ckNvbnRleHQoY29udGV4dCkpCi0gICAgICAgIGRpZFJlbW92ZVRpbWVySW1wbChpbnN0cnVtZW50
aW5nQWdlbnRzLCB0aW1lcklkKTsKKyAgICAgICAgZGlkUmVtb3ZlVGltZXJJbXBsKGluc3RydW1l
bnRpbmdBZ2VudHMsIHRpbWVySWQsIGNvbnRleHQpOwogI2VuZGlmCiB9CiAKQEAgLTYwOSw3ICs2
MDksNyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJP
TlRFTkRTKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpKTsKICAgICBpZiAoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNG
b3JDb250ZXh0KGNvbnRleHQpKQotICAgICAgICByZXR1cm4gd2lsbENhbGxGdW5jdGlvbkltcGwo
aW5zdHJ1bWVudGluZ0FnZW50cywgc2NyaXB0TmFtZSwgc2NyaXB0TGluZSk7CisgICAgICByZXR1
cm4gd2lsbENhbGxGdW5jdGlvbkltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgc2NyaXB0TmFtZSwg
c2NyaXB0TGluZSwgY29udGV4dCk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llKCk7CiB9CkBAIC02MjksNyArNjI5LDcgQEAKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0KSkKLSAg
ICAgICAgcmV0dXJuIHdpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlSW1wbChpbnN0cnVtZW50aW5nQWdl
bnRzLCByZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuIHdpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlSW1w
bChpbnN0cnVtZW50aW5nQWdlbnRzLCByZXF1ZXN0LCBjb250ZXh0KTsKICNlbmRpZgogICAgIHJl
dHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsKIH0KQEAgLTY0OCw3ICs2NDgs
NyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRF
TkRTKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpKTsKICAgICBpZiAoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JE
b2N1bWVudChkb2N1bWVudCkpCi0gICAgICAgIHJldHVybiB3aWxsRGlzcGF0Y2hFdmVudEltcGwo
aW5zdHJ1bWVudGluZ0FnZW50cywgZXZlbnQsIHdpbmRvdywgbm9kZSwgYW5jZXN0b3JzKTsKKyAg
ICAgICAgcmV0dXJuIHdpbGxEaXNwYXRjaEV2ZW50SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBl
dmVudCwgd2luZG93LCBub2RlLCBhbmNlc3RvcnMsIGRvY3VtZW50LT5mcmFtZSgpKTsKICNlbmRp
ZgogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsKIH0KQEAgLTY4
Niw3ICs2ODYsNyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZf
Tk9fRlJPTlRFTkRTKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpKTsKICAgICBpZiAo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdB
Z2VudHNGb3JGcmFtZShmcmFtZSkpCi0gICAgICAgIHJldHVybiB3aWxsRGlzcGF0Y2hFdmVudE9u
V2luZG93SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBldmVudCwgd2luZG93KTsKKyAgICAgICAg
cmV0dXJuIHdpbGxEaXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMs
IGV2ZW50LCB3aW5kb3csIGZyYW1lKTsKICNlbmRpZgogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUoKTsKIH0KQEAgLTcwNSw3ICs3MDUsNyBAQAogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCi0gICAg
ICAgIHJldHVybiB3aWxsRXZhbHVhdGVTY3JpcHRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHVy
bCwgbGluZU51bWJlcik7CisgICAgICAgIHJldHVybiB3aWxsRXZhbHVhdGVTY3JpcHRJbXBsKGlu
c3RydW1lbnRpbmdBZ2VudHMsIHVybCwgbGluZU51bWJlciwgZnJhbWUpOwogI2VuZGlmCiAgICAg
cmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpOwogfQpAQCAtNzMzLDcgKzcz
Myw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9O
VEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCkpOwogICAgIGlmIChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0Zv
ckNvbnRleHQoY29udGV4dCkpCi0gICAgICAgIHJldHVybiB3aWxsRmlyZVRpbWVySW1wbChpbnN0
cnVtZW50aW5nQWdlbnRzLCB0aW1lcklkKTsKKyAgICAgICAgcmV0dXJuIHdpbGxGaXJlVGltZXJJ
bXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVySWQsIGNvbnRleHQpOwogI2VuZGlmCiAgICAg
cmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpOwogfQpAQCAtNzcwLDcgKzc3
MCw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9O
VEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCkpOwogICAgIGlmIChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0Zv
ckZyYW1lKGZyYW1lKSkKLSAgICAgICAgcmV0dXJuIHdpbGxMYXlvdXRJbXBsKGluc3RydW1lbnRp
bmdBZ2VudHMpOworICAgICAgICByZXR1cm4gd2lsbExheW91dEltcGwoaW5zdHJ1bWVudGluZ0Fn
ZW50cywgZnJhbWUpOwogI2VuZGlmCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSgpOwogfQpAQCAtNzg5LDcgKzc4OSw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
ICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dCkpCi0gICAgICAgIHJl
dHVybiB3aWxsTG9hZFhIUkltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgcmVxdWVzdCk7CisgICAg
ICAgIHJldHVybiB3aWxsTG9hZFhIUkltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgcmVxdWVzdCwg
Y29udGV4dCk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llKCk7CiB9CkBAIC04MDgsNyArODA4LDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAg
IEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMg
PSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICByZXR1cm4gd2ls
bFBhaW50SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBjb250ZXh0LCByZWN0KTsKKyAgICAgICAg
cmV0dXJuIHdpbGxQYWludEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4dCwgcmVjdCwg
ZnJhbWUpOwogI2VuZGlmCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSgpOwogfQpAQCAtODQ1LDcgKzg0NSw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBG
QVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
KCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0g
aW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkKLSAgICAgICAgcmV0dXJu
IHdpbGxSZWNhbGN1bGF0ZVN0eWxlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzKTsKKyAgICAgICAg
cmV0dXJuIHdpbGxSZWNhbGN1bGF0ZVN0eWxlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBkb2N1
bWVudC0+ZnJhbWUoKSk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llKCk7CiB9CkBAIC05OTIsNyArOTkyLDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICByZXR1
cm4gd2lsbFJlY2VpdmVSZXNvdXJjZURhdGFJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGlkZW50
aWZpZXIpOworICAgICAgICByZXR1cm4gd2lsbFJlY2VpdmVSZXNvdXJjZURhdGFJbXBsKGluc3Ry
dW1lbnRpbmdBZ2VudHMsIGlkZW50aWZpZXIsIGZyYW1lKTsKICNlbmRpZgogICAgIHJldHVybiBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsKIH0KQEAgLTEwMTAsNyArMTAxMCw3IEBA
CiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkp
Ci0gICAgICAgIHJldHVybiB3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKGluc3RydW1l
bnRpbmdBZ2VudHMsIGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKKyAgICAgICAgcmV0dXJuIHdpbGxS
ZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgaWRlbnRpZmll
ciwgcmVzcG9uc2UsIGZyYW1lKTsKICNlbmRpZgogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUoKTsKIH0KQEAgLTExNjksNyArMTE2OSw3IEBACiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkK
LSAgICAgICAgcmV0dXJuIHdpbGxXcml0ZUhUTUxJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGxl
bmd0aCwgc3RhcnRMaW5lKTsKKyAgICAgICAgcmV0dXJuIHdpbGxXcml0ZUhUTUxJbXBsKGluc3Ry
dW1lbnRpbmdBZ2VudHMsIGxlbmd0aCwgc3RhcnRMaW5lLCBkb2N1bWVudC0+ZnJhbWUoKSk7CiAj
ZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CiB9CkBA
IC0xMzI1LDcgKzEzMjUsNyBAQAogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdl
bnRzRm9yRG9jdW1lbnQoZG9jdW1lbnQpKQotICAgICAgICBkaWRSZXF1ZXN0QW5pbWF0aW9uRnJh
bWVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGNhbGxiYWNrSWQpOworICAgICAgICBkaWRSZXF1
ZXN0QW5pbWF0aW9uRnJhbWVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGNhbGxiYWNrSWQsIGRv
Y3VtZW50LT5mcmFtZSgpKTsKICNlbmRpZgogfQogCkBAIC0xMzMzLDcgKzEzMzMsNyBAQAogewog
I2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRG9jdW1lbnQoZG9jdW1lbnQp
KQotICAgICAgICBkaWRDYW5jZWxBbmltYXRpb25GcmFtZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgY2FsbGJhY2tJZCk7CisgICAgICAgIGRpZENhbmNlbEFuaW1hdGlvbkZyYW1lSW1wbChpbnN0
cnVtZW50aW5nQWdlbnRzLCBjYWxsYmFja0lkLCBkb2N1bWVudC0+ZnJhbWUoKSk7CiAjZW5kaWYK
IH0KIApAQCAtMTM0MSw3ICsxMzQxLDcgQEAKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAg
IGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVu
dGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkKLSAgICAgICAgcmV0dXJuIHdpbGxGaXJl
QW5pbWF0aW9uRnJhbWVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGNhbGxiYWNrSWQpOworICAg
ICAgICByZXR1cm4gd2lsbEZpcmVBbmltYXRpb25GcmFtZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgY2FsbGJhY2tJZCwgZG9jdW1lbnQtPmZyYW1lKCkpOwogI2VuZGlmCiAgICAgcmV0dXJuIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpOwogfQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCShyZXZpc2lvbiAxMTkzNTIpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ0LDggKzQ0LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IEV2ZW50OworY2xhc3MgRnJhbWU7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNw
ZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNsYXNzIEluc3BlY3Rv
clN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIEludFJlY3Q7CkBAIC02
MCw5ICs2Miw5IEBACiAgICAgZW51bSBJbnNwZWN0b3JUeXBlIHsgUGFnZUluc3BlY3RvciwgV29y
a2VySW5zcGVjdG9yIH07CiAgICAgZW51bSBGcmFtZUluc3RydW1lbnRhdGlvblN1cHBvcnQgeyBG
cmFtZUluc3RydW1lbnRhdGlvbk5vdFN1cHBvcnRlZCwgRnJhbWVJbnN0cnVtZW50YXRpb25TdXBw
b3J0ZWQgfTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+
IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0
b3JTdGF0ZSogc3RhdGUsIEluc3BlY3RvclR5cGUgdHlwZSwgRnJhbWVJbnN0cnVtZW50YXRpb25T
dXBwb3J0IGZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydCkKKyAgICBzdGF0aWMgUGFzc093blB0
cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3Rv
clN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yVHlwZSB0eXBlLCBGcmFtZUluc3RydW1lbnRhdGlvblN1
cHBvcnQgZnJhbWVJbnN0cnVtZW50YXRpb25TdXBwb3J0KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JUaW1lbGluZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMs
IHN0YXRlLCB0eXBlLCBmcmFtZUluc3RydW1lbnRhdGlvblN1cHBvcnQpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JUaW1lbGluZUFnZW50KGluc3RydW1lbnRpbmdBZ2Vu
dHMsIHBhZ2VBZ2VudCwgc3RhdGUsIHR5cGUsIGZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydCkp
OwogICAgIH0KIAogICAgIH5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CkBAIC04MSwyMiArODMs
MjIgQEAKICAgICB2b2lkIGRpZENvbW1pdExvYWQoKTsKIAogICAgIC8vIE1ldGhvZHMgY2FsbGVk
IGZyb20gV2ViQ29yZS4KLSAgICB2b2lkIHdpbGxDYWxsRnVuY3Rpb24oY29uc3QgU3RyaW5nJiBz
Y3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CisgICAgdm9pZCB3aWxsQ2FsbEZ1bmN0aW9uKGNv
bnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIEZyYW1lKik7CiAgICAgdm9p
ZCBkaWRDYWxsRnVuY3Rpb24oKTsKIAotICAgIHZvaWQgd2lsbERpc3BhdGNoRXZlbnQoY29uc3Qg
RXZlbnQmKTsKKyAgICB2b2lkIHdpbGxEaXNwYXRjaEV2ZW50KGNvbnN0IEV2ZW50JiwgRnJhbWUq
KTsKICAgICB2b2lkIGRpZERpc3BhdGNoRXZlbnQoKTsKIAogICAgIHZvaWQgZGlkQmVnaW5GcmFt
ZSgpOwogICAgIHZvaWQgZGlkQ2FuY2VsRnJhbWUoKTsKIAotICAgIHZvaWQgd2lsbExheW91dCgp
OworICAgIHZvaWQgd2lsbExheW91dChGcmFtZSopOwogICAgIHZvaWQgZGlkTGF5b3V0KCk7CiAK
LSAgICB2b2lkIHdpbGxSZWNhbGN1bGF0ZVN0eWxlKCk7CisgICAgdm9pZCB3aWxsUmVjYWxjdWxh
dGVTdHlsZShGcmFtZSopOwogICAgIHZvaWQgZGlkUmVjYWxjdWxhdGVTdHlsZSgpOwogCi0gICAg
dm9pZCB3aWxsUGFpbnQoY29uc3QgTGF5b3V0UmVjdCYpOworICAgIHZvaWQgd2lsbFBhaW50KGNv
bnN0IExheW91dFJlY3QmLCBGcmFtZSopOwogICAgIHZvaWQgZGlkUGFpbnQoKTsKIAogICAgIHZv
aWQgd2lsbENvbXBvc2l0ZSgpOwpAQCAtMTA0LDY2ICsxMDYsNjcgQEAKIAogICAgIC8vIEZJWE1F
OiB8bGVuZ3RofCBzaG91bGQgYmUgcGFzc2VkIGluIGRpZFdyaXRlIGluc3RlYWQgd2lsbFdyaXRl
CiAgICAgLy8gYXMgdGhlIHBhcnNlciBjYW4gbm90IGtub3cgaG93IG11Y2ggaXQgd2lsbCBwcm9j
ZXNzIHVudGlsIGl0IHRyaWVzLgotICAgIHZvaWQgd2lsbFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQg
bGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsKKyAgICB2b2lkIHdpbGxXcml0ZUhUTUwo
dW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSwgRnJhbWUqKTsKICAg
ICB2b2lkIGRpZFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgZW5kTGluZSk7CiAKLSAgICB2b2lkIGRp
ZEluc3RhbGxUaW1lcihpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7
Ci0gICAgdm9pZCBkaWRSZW1vdmVUaW1lcihpbnQgdGltZXJJZCk7Ci0gICAgdm9pZCB3aWxsRmly
ZVRpbWVyKGludCB0aW1lcklkKTsKKyAgICB2b2lkIGRpZEluc3RhbGxUaW1lcihpbnQgdGltZXJJ
ZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqKTsKKyAgICB2b2lkIGRpZFJl
bW92ZVRpbWVyKGludCB0aW1lcklkLCBGcmFtZSopOworICAgIHZvaWQgd2lsbEZpcmVUaW1lcihp
bnQgdGltZXJJZCwgRnJhbWUqKTsKICAgICB2b2lkIGRpZEZpcmVUaW1lcigpOwogCi0gICAgdm9p
ZCB3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZShjb25zdCBTdHJpbmcmLCBpbnQpOworICAgIHZvaWQg
d2lsbENoYW5nZVhIUlJlYWR5U3RhdGUoY29uc3QgU3RyaW5nJiwgaW50LCBGcmFtZSopOwogICAg
IHZvaWQgZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZSgpOwotICAgIHZvaWQgd2lsbExvYWRYSFIoY29u
c3QgU3RyaW5nJik7CisgICAgdm9pZCB3aWxsTG9hZFhIUihjb25zdCBTdHJpbmcmLCBGcmFtZSop
OwogICAgIHZvaWQgZGlkTG9hZFhIUigpOwogCi0gICAgdm9pZCB3aWxsRXZhbHVhdGVTY3JpcHQo
Y29uc3QgU3RyaW5nJiwgaW50KTsKKyAgICB2b2lkIHdpbGxFdmFsdWF0ZVNjcmlwdChjb25zdCBT
dHJpbmcmLCBpbnQsIEZyYW1lKik7CiAgICAgdm9pZCBkaWRFdmFsdWF0ZVNjcmlwdCgpOwogCiAg
ICAgdm9pZCBkaWRUaW1lU3RhbXAoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBkaWRNYXJrRE9N
Q29udGVudEV2ZW50KCk7Ci0gICAgdm9pZCBkaWRNYXJrTG9hZEV2ZW50KCk7CisgICAgdm9pZCBk
aWRNYXJrRE9NQ29udGVudEV2ZW50KEZyYW1lKik7CisgICAgdm9pZCBkaWRNYXJrTG9hZEV2ZW50
KEZyYW1lKik7CiAKLSAgICB2b2lkIGRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFN0
cmluZyYgdXJsKTsKLSAgICB2b2lkIHdpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2lnbmVkIGxv
bmcsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotICAgIHZvaWQgd2lsbFJlY2VpdmVSZXNvdXJj
ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2
b2lkIGRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsLCBGcmFtZSop
OworICAgIHZvaWQgd2lsbFNlbmRSZXNvdXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZywgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKTsKKyAgICB2b2lkIHdpbGxSZWNlaXZlUmVzb3VyY2VS
ZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgRnJhbWUqKTsK
ICAgICB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKCk7Ci0gICAgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nUmVzb3VyY2UodW5zaWduZWQgbG9uZywgYm9vbCBkaWRGYWlsLCBkb3VibGUgZmlu
aXNoVGltZSk7Ci0gICAgdm9pZCB3aWxsUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVk
IGxvbmcsIGJvb2wgZGlkRmFpbCwgZG91YmxlIGZpbmlzaFRpbWUsIEZyYW1lKik7CisgICAgdm9p
ZCB3aWxsUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIEZyYW1l
Kik7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VEYXRhKCk7CiAKLSAgICB2b2lkIGRpZFJl
cXVlc3RBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCk7Ci0gICAgdm9pZCBkaWRDYW5jZWxB
bmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCk7Ci0gICAgdm9pZCB3aWxsRmlyZUFuaW1hdGlv
bkZyYW1lKGludCBjYWxsYmFja0lkKTsKKyAgICB2b2lkIGRpZFJlcXVlc3RBbmltYXRpb25GcmFt
ZShpbnQgY2FsbGJhY2tJZCwgRnJhbWUqKTsKKyAgICB2b2lkIGRpZENhbmNlbEFuaW1hdGlvbkZy
YW1lKGludCBjYWxsYmFja0lkLCBGcmFtZSopOworICAgIHZvaWQgd2lsbEZpcmVBbmltYXRpb25G
cmFtZShpbnQgY2FsbGJhY2tJZCwgRnJhbWUqKTsKICAgICB2b2lkIGRpZEZpcmVBbmltYXRpb25G
cmFtZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZEdDKGRvdWJsZSwgZG91YmxlLCBzaXplX3Qp
OwogCiBwcml2YXRlOgogICAgIHN0cnVjdCBUaW1lbGluZVJlY29yZEVudHJ5IHsKLSAgICAgICAg
VGltZWxpbmVSZWNvcmRFbnRyeShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkLCBQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJh
eT4gY2hpbGRyZW4sIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYW5jZWxhYmxlID0gZmFsc2Up
Ci0gICAgICAgICAgICA6IHJlY29yZChyZWNvcmQpLCBkYXRhKGRhdGEpLCBjaGlsZHJlbihjaGls
ZHJlbiksIHR5cGUodHlwZSksIGNhbmNlbGFibGUoY2FuY2VsYWJsZSkKKyAgICAgICAgVGltZWxp
bmVSZWNvcmRFbnRyeShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkLCBQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hp
bGRyZW4sIGNvbnN0IFN0cmluZyYgdHlwZSwgRnJhbWUqIGZyYW1lLCBib29sIGNhbmNlbGFibGUg
PSBmYWxzZSkKKyAgICAgICAgICAgIDogcmVjb3JkKHJlY29yZCksIGRhdGEoZGF0YSksIGNoaWxk
cmVuKGNoaWxkcmVuKSwgdHlwZSh0eXBlKSwgZnJhbWUoZnJhbWUpLCBjYW5jZWxhYmxlKGNhbmNl
bGFibGUpCiAgICAgICAgIHsKICAgICAgICAgfQogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiByZWNvcmQ7CiAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGE7CiAgICAg
ICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW47CiAgICAgICAgIFN0cmluZyB0eXBl
OworICAgICAgICBGcmFtZSogZnJhbWU7CiAgICAgICAgIGJvb2wgY2FuY2VsYWJsZTsKICAgICB9
OwogICAgICAgICAKLSAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluc3BlY3RvclR5cGUsIEZyYW1lSW5zdHJ1bWVudGF0aW9u
U3VwcG9ydCk7CisgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yU3RhdGUqLCBJbnNwZWN0b3JUeXBlLCBG
cmFtZUluc3RydW1lbnRhdGlvblN1cHBvcnQpOwogCi0gICAgdm9pZCBwdXNoQ3VycmVudFJlY29y
ZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4sIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBj
YXB0dXJlQ2FsbFN0YWNrKTsKKyAgICB2b2lkIHB1c2hDdXJyZW50UmVjb3JkKFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3Rh
Y2ssIEZyYW1lKik7CiAgICAgdm9pZCBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhJbnNwZWN0b3JPYmpl
Y3QqIHJlY29yZCk7CiAgICAgICAgIAogICAgIHZvaWQgZGlkQ29tcGxldGVDdXJyZW50UmVjb3Jk
KGNvbnN0IFN0cmluZyYgdHlwZSk7Ci0gICAgdm9pZCBhcHBlbmRSZWNvcmQoUGFzc1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2Fs
bFN0YWNrKTsKLSAgICB2b2lkIHB1c2hDYW5jZWxhYmxlUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlKTsKKyAgICB2b2lkIGFwcGVuZFJlY29yZChQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29s
IGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKik7CisgICAgdm9pZCBwdXNoQ2FuY2VsYWJsZVJlY29y
ZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4sIGNvbnN0IFN0cmluZyYgdHlwZSwgRnJhbWUq
KTsKICAgICB2b2lkIGNvbW1pdENhbmNlbGFibGVSZWNvcmRzKCk7CiAgICAgdm9pZCBjYW5jZWxS
ZWNvcmQoY29uc3QgU3RyaW5nJiB0eXBlKTsKLSAgICB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUo
UGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5cGUpOwotICAgIHZv
aWQgaW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piwg
Y29uc3QgU3RyaW5nJiB0eXBlKTsKKyAgICB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5cGUsIEZyYW1lKik7CisgICAg
dm9pZCBpbm5lckFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
LCBjb25zdCBTdHJpbmcmIHR5cGUsIEZyYW1lKik7CiAKICAgICB2b2lkIHB1c2hHQ0V2ZW50UmVj
b3JkcygpOwogICAgIHZvaWQgY2xlYXJSZWNvcmRTdGFjaygpOwpAQCAtMTcxLDYgKzE3NCw4IEBA
CiAgICAgZG91YmxlIHRpbWVzdGFtcCgpOwogICAgIGRvdWJsZSB0aW1lc3RhbXBGcm9tTWljcm9z
ZWNvbmRzKGRvdWJsZSBtaWNyb3NlY29uZHMpOwogCisgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBt
X3BhZ2VBZ2VudDsKKwogICAgIEluc3BlY3RvckZyb250ZW5kOjpUaW1lbGluZSogbV9mcm9udGVu
ZDsKICAgICBkb3VibGUgbV90aW1lc3RhbXBPZmZzZXQ7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146070</attachid>
            <date>2012-06-06 11:26:34 -0700</date>
            <delta_ts>2012-06-07 12:11:28 -0700</delta_ts>
            <desc>Patch with fixes for comments and updated layout tests.</desc>
            <filename>frameId3.patch</filename>
            <type>text/plain</type>
            <size>75021</size>
            <attacher name="Bryan">bmcquade</attacher>
            
              <data encoding="base64">LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCShy
ZXZpc2lvbiAxMTk1ODEpCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDcgKzExMyw3IEBACiAgICAgSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50KiBkb21TdG9yYWdlQWdlbnQgPSBkb21TdG9yYWdlQWdlbnRQ
dHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRvbVN0b3JhZ2VBZ2VudFB0ci5yZWxlYXNl
KCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JNZW1vcnlBZ2VudDo6Y3JlYXRlKG1f
aW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9wYWdlLCBtX2RvbUFn
ZW50KSk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OlBhZ2VJbnNwZWN0b3IsCisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VB
Z2VudCwgbV9zdGF0ZS5nZXQoKSwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6UGFnZUluc3BlY3Rv
ciwKICAgICAgICBpbnNwZWN0b3JDbGllbnQtPnN1cHBvcnRzRnJhbWVJbnN0cnVtZW50YXRpb24o
KSA/IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OkZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydGVk
IDogSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6RnJhbWVJbnN0cnVtZW50YXRpb25Ob3RTdXBwb3J0
ZWQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBwYWdl
QWdlbnQpKTsKIAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5jcHAJKHJldmlzaW9uIDExOTU4MSkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMCAr
MzUsMTIgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAKICNpbmNsdWRl
ICJFdmVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllcnNGYWN0
b3J5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q291bnRlcnMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgIklu
c3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVk
ZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKQEAgLTEwNiw3
ICsxMDgsNyBAQAogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQodGltZXN0YW1wRnJvbU1pY3Jv
c2Vjb25kcyhpLT5zdGFydFRpbWUpLCBtX21heENhbGxTdGFja0RlcHRoKTsKICAgICAgICAgcmVj
b3JkLT5zZXRPYmplY3QoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdDRXZl
bnREYXRhKGktPmNvbGxlY3RlZEJ5dGVzKSk7CiAgICAgICAgIHJlY29yZC0+c2V0TnVtYmVyKCJl
bmRUaW1lIiwgdGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyhpLT5lbmRUaW1lKSk7Ci0gICAgICAg
IGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLnJlbGVhc2UoKSwgVGltZWxpbmVSZWNvcmRUeXBl
OjpHQ0V2ZW50KTsKKyAgICAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQucmVsZWFzZSgp
LCBUaW1lbGluZVJlY29yZFR5cGU6OkdDRXZlbnQsIFN0cmluZygpKTsKICAgICB9CiB9CiAKQEAg
LTE4Miw3ICsxODQsNyBAQAogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEJlZ2lu
RnJhbWUoKQogewotICAgIHB1c2hDYW5jZWxhYmxlUmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3Jl
YXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6QmVnaW5GcmFtZSk7CisgICAgcHVzaENhbmNlbGFi
bGVSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpC
ZWdpbkZyYW1lLCAwKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDYW5j
ZWxGcmFtZSgpCkBAIC0xOTAsOSArMTkyLDkgQEAKICAgICBjYW5jZWxSZWNvcmQoVGltZWxpbmVS
ZWNvcmRUeXBlOjpCZWdpbkZyYW1lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExp
bmUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxDYWxsRnVuY3Rpb24oY29uc3Qg
U3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSwgRnJhbWUqIGZyYW1lKQogewotICAg
IHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRnVuY3Rpb25D
YWxsRGF0YShzY3JpcHROYW1lLCBzY3JpcHRMaW5lKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpGdW5j
dGlvbkNhbGwsIHRydWUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShzY3JpcHROYW1lLCBzY3JpcHRMaW5lKSwgVGlt
ZWxpbmVSZWNvcmRUeXBlOjpGdW5jdGlvbkNhbGwsIHRydWUsIGZyYW1lKTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDYWxsRnVuY3Rpb24oKQpAQCAtMjAwLDkgKzIwMiw5
IEBACiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6RnVu
Y3Rpb25DYWxsKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGlzcGF0
Y2hFdmVudChjb25zdCBFdmVudCYgZXZlbnQpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OndpbGxEaXNwYXRjaEV2ZW50KGNvbnN0IEV2ZW50JiBldmVudCwgRnJhbWUqIGZyYW1lKQogewot
ICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnRE
aXNwYXRjaERhdGEoZXZlbnQpLCBUaW1lbGluZVJlY29yZFR5cGU6OkV2ZW50RGlzcGF0Y2gsIGZh
bHNlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZUV2ZW50RGlzcGF0Y2hEYXRhKGV2ZW50KSwgVGltZWxpbmVSZWNvcmRUeXBlOjpFdmVudERpc3Bh
dGNoLCBmYWxzZSwgZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZERpc3BhdGNoRXZlbnQoKQpAQCAtMjEwLDkgKzIxMiw5IEBACiAgICAgZGlkQ29tcGxldGVDdXJy
ZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6RXZlbnREaXNwYXRjaCk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbExheW91dCgpCit2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxMYXlvdXQoRnJhbWUqIGZyYW1lKQogewotICAgIHB1c2hDdXJyZW50UmVj
b3JkKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6TGF5b3V0
LCB0cnVlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgp
LCBUaW1lbGluZVJlY29yZFR5cGU6OkxheW91dCwgdHJ1ZSwgZnJhbWUpOwogfQogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZExheW91dCgpCkBAIC0yMjAsOSArMjIyLDkgQEAKICAg
ICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpMYXlvdXQpOwog
fQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNhbGN1bGF0ZVN0eWxlKCkK
K3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2FsY3VsYXRlU3R5bGUoRnJhbWUq
IGZyYW1lKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRl
KCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVjYWxjdWxhdGVTdHlsZXMsIHRydWUpOworICAgIHB1
c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3Jk
VHlwZTo6UmVjYWxjdWxhdGVTdHlsZXMsIHRydWUsIGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpkaWRSZWNhbGN1bGF0ZVN0eWxlKCkKQEAgLTIzMCw5ICsyMzIsOSBA
QAogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OlJlY2Fs
Y3VsYXRlU3R5bGVzKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUGFp
bnQoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
d2lsbFBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3QsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBw
dXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhaW50RGF0YShy
ZWN0KSwgVGltZWxpbmVSZWNvcmRUeXBlOjpQYWludCwgdHJ1ZSk7CisgICAgcHVzaEN1cnJlbnRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYWludERhdGEocmVjdCksIFRpbWVs
aW5lUmVjb3JkVHlwZTo6UGFpbnQsIHRydWUsIGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpkaWRQYWludCgpCkBAIC0yNDIsNyArMjQ0LDcgQEAKIAogdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ29tcG9zaXRlKCkKIHsKLSAgICBwdXNoQ3VycmVudFJl
Y29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OkNvbXBv
c2l0ZUxheWVycywgZmFsc2UpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6Q29tcG9zaXRlTGF5ZXJzLCBmYWxzZSwg
MCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcG9zaXRlKCkKQEAg
LTI1MCw5ICsyNTIsOSBAQAogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJl
Y29yZFR5cGU6OkNvbXBvc2l0ZUxheWVycyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3Rh
cnRMaW5lKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsV3JpdGVIVE1MKHVuc2ln
bmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUsIEZyYW1lKiBmcmFtZSkKIHsK
LSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhcnNl
SFRNTERhdGEobGVuZ3RoLCBzdGFydExpbmUpLCBUaW1lbGluZVJlY29yZFR5cGU6OlBhcnNlSFRN
TCwgdHJ1ZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVQYXJzZUhUTUxEYXRhKGxlbmd0aCwgc3RhcnRMaW5lKSwgVGltZWxpbmVSZWNvcmRUeXBl
OjpQYXJzZUhUTUwsIHRydWUsIGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRXcml0ZUhUTUwodW5zaWduZWQgaW50IGVuZExpbmUpCkBAIC0yNjQsMTkgKzI2Niwx
OSBAQAogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxs
VGltZXIoaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpCit2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEluc3RhbGxUaW1lcihpbnQgdGltZXJJZCwgaW50IHRp
bWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqIGZyYW1lKQogewotICAgIGFwcGVuZFJlY29y
ZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEodGltZXJJZCwg
dGltZW91dCwgc2luZ2xlU2hvdCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6VGltZXJJbnN0YWxsLCB0
cnVlKTsKKyAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1l
ckluc3RhbGxEYXRhKHRpbWVySWQsIHRpbWVvdXQsIHNpbmdsZVNob3QpLCBUaW1lbGluZVJlY29y
ZFR5cGU6OlRpbWVySW5zdGFsbCwgdHJ1ZSwgZnJhbWUpOwogfQogCi12b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkKQordm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpkaWRSZW1vdmVUaW1lcihpbnQgdGltZXJJZCwgRnJhbWUqIGZyYW1lKQog
ewotICAgIGFwcGVuZFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNU
aW1lckRhdGEodGltZXJJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6VGltZXJSZW1vdmUsIHRydWUp
OworICAgIGFwcGVuZFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNU
aW1lckRhdGEodGltZXJJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6VGltZXJSZW1vdmUsIHRydWUs
IGZyYW1lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRmlyZVRpbWVy
KGludCB0aW1lcklkKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRmlyZVRpbWVy
KGludCB0aW1lcklkLCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKHRpbWVySWQpLCBUaW1l
bGluZVJlY29yZFR5cGU6OlRpbWVyRmlyZSwgZmFsc2UpOworICAgIHB1c2hDdXJyZW50UmVjb3Jk
KFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YSh0aW1lcklkKSwg
VGltZWxpbmVSZWNvcmRUeXBlOjpUaW1lckZpcmUsIGZhbHNlLCBmcmFtZSk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmlyZVRpbWVyKCkKQEAgLTI4NCw5ICsyODYsOSBA
QAogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OlRpbWVy
RmlyZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENoYW5nZVhIUlJl
YWR5U3RhdGUoY29uc3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlKQordm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZShjb25zdCBTdHJpbmcmIHVy
bCwgaW50IHJlYWR5U3RhdGUsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29y
ZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRhKHVy
bCwgcmVhZHlTdGF0ZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6WEhSUmVhZHlTdGF0ZUNoYW5nZSwg
ZmFsc2UpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlWEhSUmVhZHlTdGF0ZUNoYW5nZURhdGEodXJsLCByZWFkeVN0YXRlKSwgVGltZWxpbmVSZWNv
cmRUeXBlOjpYSFJSZWFkeVN0YXRlQ2hhbmdlLCBmYWxzZSwgZnJhbWUpOwogfQogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENoYW5nZVhIUlJlYWR5U3RhdGUoKQpAQCAtMjk0LDkg
KzI5Niw5IEBACiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlw
ZTo6WEhSUmVhZHlTdGF0ZUNoYW5nZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbExvYWRYSFIoY29uc3QgU3RyaW5nJiB1cmwpIAordm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50Ojp3aWxsTG9hZFhIUihjb25zdCBTdHJpbmcmIHVybCwgRnJhbWUqIGZyYW1lKSAKIHsK
LSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUkxv
YWREYXRhKHVybCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6WEhSTG9hZCwgdHJ1ZSk7CisgICAgcHVz
aEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YSh1
cmwpLCBUaW1lbGluZVJlY29yZFR5cGU6OlhIUkxvYWQsIHRydWUsIGZyYW1lKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRMb2FkWEhSKCkKQEAgLTMwNCw5ICszMDYsOSBA
QAogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OlhIUkxv
YWQpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxFdmFsdWF0ZVNjcmlw
dChjb25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1iZXIpCit2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxFdmFsdWF0ZVNjcmlwdChjb25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVO
dW1iZXIsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YSh1cmwsIGxpbmVOdW1iZXIpLCBU
aW1lbGluZVJlY29yZFR5cGU6OkV2YWx1YXRlU2NyaXB0LCB0cnVlKTsKKyAgICBwdXNoQ3VycmVu
dFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YSh1
cmwsIGxpbmVOdW1iZXIpLCBUaW1lbGluZVJlY29yZFR5cGU6OkV2YWx1YXRlU2NyaXB0LCB0cnVl
LCBmcmFtZSk7CiB9CiAgICAgCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEV2YWx1
YXRlU2NyaXB0KCkKQEAgLTMxNCwyOCArMzE2LDMyIEBACiAgICAgZGlkQ29tcGxldGVDdXJyZW50
UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6RXZhbHVhdGVTY3JpcHQpOwogfQogCi12b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFN0
cmluZyYgdXJsKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRTY2hlZHVsZVJlc291
cmNlUmVxdWVzdChjb25zdCBTdHJpbmcmIHVybCwgRnJhbWUqIGZyYW1lKQogewotICAgIGFwcGVu
ZFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1
ZXN0RGF0YSh1cmwpLCBUaW1lbGluZVJlY29yZFR5cGU6OlNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0
LCB0cnVlKTsKKyAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVT
Y2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEodXJsKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpTY2hl
ZHVsZVJlc291cmNlUmVxdWVzdCwgdHJ1ZSwgZnJhbWUpOwogfQogCi12b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsU2VuZFJlc291cmNlUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRnJhbWUqIGZyYW1lKQogewogICAg
IHB1c2hHQ0V2ZW50UmVjb3JkcygpOwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29y
ZFJhdyA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCh0aW1lc3Rh
bXAoKSwgbV9tYXhDYWxsU3RhY2tEZXB0aCk7CiAgICAgU3RyaW5nIHJlcXVlc3RJZCA9IElkZW50
aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpOwogICAgIHJlY29yZFJhdy0+c2V0
T2JqZWN0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRS
ZXF1ZXN0RGF0YShyZXF1ZXN0SWQsIHJlcXVlc3QpKTsKICAgICByZWNvcmRSYXctPnNldFN0cmlu
ZygidHlwZSIsIFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVzb3VyY2VTZW5kUmVxdWVzdCk7CisgICAg
aWYgKGZyYW1lICYmIG1fcGFnZUFnZW50KSB7CisgICAgICAgIFN0cmluZyBmcmFtZUlkKG1fcGFn
ZUFnZW50LT5mcmFtZUlkKGZyYW1lKSk7CisgICAgICAgIHJlY29yZFJhdy0+c2V0U3RyaW5nKCJm
cmFtZUlkIiwgZnJhbWVJZCk7CisgICAgfQogICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29y
ZFJhdy5nZXQoKSk7CiAgICAgLy8gRklYTUU6IHJ1bnRpbWVDYXN0IGlzIGEgaGFjay4gV2UgZG8g
aXQgYmVjYXVzZSB3ZSBjYW4ndCBidWlsZCBUaW1lbGluZUV2ZW50IGRpcmVjdGx5IG5vdy4KICAg
ICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50PiByZWNvcmQgPSBU
eXBlQnVpbGRlcjo6VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ6OnJ1bnRpbWVDYXN0KHJlY29yZFJh
dy5yZWxlYXNlKCkpOwogICAgIG1fZnJvbnRlbmQtPmV2ZW50UmVjb3JkZWQocmVjb3JkLnJlbGVh
c2UoKSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVSZXNv
dXJjZURhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQordm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50Ojp3aWxsUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IEZyYW1lKiBmcmFtZSkKIHsKICAgICBTdHJpbmcgcmVxdWVzdElkID0gSWRlbnRpZmllcnNGYWN0
b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKHJlcXVlc3RJZCksIFRp
bWVsaW5lUmVjb3JkVHlwZTo6UmVzb3VyY2VSZWNlaXZlZERhdGEsIGZhbHNlKTsKKyAgICBwdXNo
Q3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlY2VpdmVSZXNvdXJj
ZURhdGEocmVxdWVzdElkKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpSZXNvdXJjZVJlY2VpdmVkRGF0
YSwgZmFsc2UsIGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRS
ZWNlaXZlUmVzb3VyY2VEYXRhKCkKQEAgLTM0MywxMCArMzQ5LDEwIEBACiAgICAgZGlkQ29tcGxl
dGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVzb3VyY2VSZWNlaXZlZERhdGEp
OwogfQogICAgIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUmVjZWl2ZVJlc291
cmNlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVS
ZXNvdXJjZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBTdHJpbmcgcmVxdWVzdElk
ID0gSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7Ci0gICAgcHVzaEN1
cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVJlY2VpdmVS
ZXNwb25zZURhdGEocmVxdWVzdElkLCByZXNwb25zZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVz
b3VyY2VSZWNlaXZlUmVzcG9uc2UsIGZhbHNlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0YShyZXF1
ZXN0SWQsIHJlc3BvbnNlKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpSZXNvdXJjZVJlY2VpdmVSZXNw
b25zZSwgZmFsc2UsIGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSgpCkBAIC0zNTQsMjQgKzM2MCwyNCBAQAogICAgIGRp
ZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OlJlc291cmNlUmVjZWl2
ZVJlc3BvbnNlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaW5pc2hM
b2FkaW5nUmVzb3VyY2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwsIGRv
dWJsZSBmaW5pc2hUaW1lKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaW5pc2hM
b2FkaW5nUmVzb3VyY2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwsIGRv
dWJsZSBmaW5pc2hUaW1lLCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgYXBwZW5kUmVjb3JkKFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKElkZW50aWZpZXJzRmFj
dG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCBkaWRGYWlsLCBmaW5pc2hUaW1lICogMTAwMCks
IFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVzb3VyY2VGaW5pc2gsIGZhbHNlKTsKKyAgICBhcHBlbmRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZUZpbmlzaERhdGEoSWRl
bnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIGRpZEZhaWwsIGZpbmlzaFRp
bWUgKiAxMDAwKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpSZXNvdXJjZUZpbmlzaCwgZmFsc2UsIGZy
YW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRUaW1lU3RhbXAoY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIGFwcGVuZFJlY29yZChUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZVRpbWVTdGFtcERhdGEobWVzc2FnZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6
VGltZVN0YW1wLCB0cnVlKTsKKyAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVUaW1lU3RhbXBEYXRhKG1lc3NhZ2UpLCBUaW1lbGluZVJlY29yZFR5cGU6OlRpbWVT
dGFtcCwgdHJ1ZSwgMCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFy
a0RPTUNvbnRlbnRFdmVudCgpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtE
T01Db250ZW50RXZlbnQoRnJhbWUqIGZyYW1lKQogewotICAgIGFwcGVuZFJlY29yZChJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6Ok1hcmtET01Db250ZW50LCBm
YWxzZSk7CisgICAgYXBwZW5kUmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIFRpbWVs
aW5lUmVjb3JkVHlwZTo6TWFya0RPTUNvbnRlbnQsIGZhbHNlLCBmcmFtZSk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFya0xvYWRFdmVudCgpCit2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtMb2FkRXZlbnQoRnJhbWUqIGZyYW1lKQogewotICAgIGFw
cGVuZFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6
Ok1hcmtMb2FkLCBmYWxzZSk7CisgICAgYXBwZW5kUmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3Jl
YXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6TWFya0xvYWQsIGZhbHNlLCBmcmFtZSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tbWl0TG9hZCgpCkBAIC0zNzksMTkg
KzM4NSwxOSBAQAogICAgIGNsZWFyUmVjb3JkU3RhY2soKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpkaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQpCit2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlcXVlc3RBbmltYXRpb25GcmFtZShpbnQg
Y2FsbGJhY2tJZCwgRnJhbWUqIGZyYW1lKQogewotICAgIGFwcGVuZFJlY29yZChUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZUFuaW1hdGlvbkZyYW1lRGF0YShjYWxsYmFja0lkKSwgVGltZWxp
bmVSZWNvcmRUeXBlOjpSZXF1ZXN0QW5pbWF0aW9uRnJhbWUsIHRydWUpOworICAgIGFwcGVuZFJl
Y29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUFuaW1hdGlvbkZyYW1lRGF0YShjYWxs
YmFja0lkKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpSZXF1ZXN0QW5pbWF0aW9uRnJhbWUsIHRydWUs
IGZyYW1lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDYW5jZWxBbmlt
YXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQsIEZyYW1lKiBmcmFtZSkKIHsK
LSAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVBbmltYXRpb25G
cmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6Q2FuY2VsQW5pbWF0aW9u
RnJhbWUsIHRydWUpOworICAgIGFwcGVuZFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUFuaW1hdGlvbkZyYW1lRGF0YShjYWxsYmFja0lkKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpD
YW5jZWxBbmltYXRpb25GcmFtZSwgdHJ1ZSwgZnJhbWUpOwogfQogCi12b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OndpbGxGaXJlQW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQpCit2b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxGaXJlQW5pbWF0aW9uRnJhbWUoaW50IGNhbGxi
YWNrSWQsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZUFuaW1hdGlvbkZyYW1lRGF0YShjYWxsYmFja0lkKSwgVGltZWxp
bmVSZWNvcmRUeXBlOjpGaXJlQW5pbWF0aW9uRnJhbWUsIGZhbHNlKTsKKyAgICBwdXNoQ3VycmVu
dFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUFuaW1hdGlvbkZyYW1lRGF0YShj
YWxsYmFja0lkKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpGaXJlQW5pbWF0aW9uRnJhbWUsIGZhbHNl
LCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmlyZUFuaW1h
dGlvbkZyYW1lKCkKQEAgLTM5OSwxNiArNDA1LDE4IEBACiAgICAgZGlkQ29tcGxldGVDdXJyZW50
UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6RmlyZUFuaW1hdGlvbkZyYW1lKTsKIH0KIAotdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQsIGNvbnN0IFN0cmluZyYgdHlwZSkKK3ZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gcmVjb3JkLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJ
ZCkKIHsKICAgICBjb21taXRDYW5jZWxhYmxlUmVjb3JkcygpOwotICAgIGlubmVyQWRkUmVjb3Jk
VG9UaW1lbGluZShyZWNvcmQsIHR5cGUpOworICAgIGlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShy
ZWNvcmQsIHR5cGUsIGZyYW1lSWQpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcHJw
UmVjb3JkLCBjb25zdCBTdHJpbmcmIHR5cGUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcHJw
UmVjb3JkLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkKIHsKICAg
ICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQocHJwUmVjb3JkKTsKICAgICByZWNvcmQt
PnNldFN0cmluZygidHlwZSIsIHR5cGUpOworICAgIGlmICghZnJhbWVJZC5pc0VtcHR5KCkpCisg
ICAgICAgIHJlY29yZC0+c2V0U3RyaW5nKCJmcmFtZUlkIiwgZnJhbWVJZCk7CiAgICAgc2V0SGVh
cFNpemVTdGF0aXN0aWMocmVjb3JkLmdldCgpKTsKICAgICBpZiAobV9yZWNvcmRTdGFjay5pc0Vt
cHR5KCkpIHsKICAgICAgICAgLy8gRklYTUU6IHJ1bnRpbWVDYXN0IGlzIGEgaGFjay4gV2UgZG8g
aXQgYmVjYXVzZSB3ZSBjYW4ndCBidWlsZCBUaW1lbGluZUV2ZW50IGRpcmVjdGx5IG5vdy4KQEAg
LTQ1MCwxMiArNDU4LDEzIEBACiAgICAgICAgIGVudHJ5LnJlY29yZC0+c2V0T2JqZWN0KCJkYXRh
IiwgZW50cnkuZGF0YSk7CiAgICAgICAgIGVudHJ5LnJlY29yZC0+c2V0QXJyYXkoImNoaWxkcmVu
IiwgZW50cnkuY2hpbGRyZW4pOwogICAgICAgICBlbnRyeS5yZWNvcmQtPnNldE51bWJlcigiZW5k
VGltZSIsIHRpbWVzdGFtcCgpKTsKLSAgICAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShlbnRyeS5y
ZWNvcmQsIHR5cGUpOworICAgICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKGVudHJ5LnJlY29yZCwg
dHlwZSwgZW50cnkuZnJhbWVJZCk7CiAgICAgfQogfQogCi1JbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yVHlwZSB0eXBlLCBGcmFt
ZUluc3RydW1lbnRhdGlvblN1cHBvcnQgZnJhbWVJbnN0cnVtZW50YXRpb25TdXBwb3J0KQorSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2Vu
dCwgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JUeXBlIHR5cGUsIEZyYW1lSW5zdHJ1
bWVudGF0aW9uU3VwcG9ydCBmcmFtZUluc3RydW1lbnRhdGlvblN1cHBvcnQpCiAgICAgOiBJbnNw
ZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4oIlRpbWVsaW5lIiwgaW5zdHJ1
bWVudGluZ0FnZW50cywgc3RhdGUpCisgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCiAgICAg
LCBtX2Zyb250ZW5kKDApCiAgICAgLCBtX3RpbWVzdGFtcE9mZnNldCgwKQogICAgICwgbV9pZCgx
KQpAQCAtNDY1LDI3ICs0NzQsMzYgQEAKIHsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjphcHBlbmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0
IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrKQordm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjphcHBlbmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEs
IGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSogZnJhbWUp
CiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKHRp
bWVzdGFtcCgpLCBjYXB0dXJlQ2FsbFN0YWNrID8gbV9tYXhDYWxsU3RhY2tEZXB0aCA6IDApOwog
ICAgIHJlY29yZC0+c2V0T2JqZWN0KCJkYXRhIiwgZGF0YSk7CiAgICAgcmVjb3JkLT5zZXRTdHJp
bmcoInR5cGUiLCB0eXBlKTsKLSAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZC5yZWxlYXNl
KCksIHR5cGUpOworICAgIFN0cmluZyBmcmFtZUlkOworICAgIGlmIChmcmFtZSAmJiBtX3BhZ2VB
Z2VudCkKKyAgICAgICAgZnJhbWVJZCA9IG1fcGFnZUFnZW50LT5mcmFtZUlkKGZyYW1lKTsKKyAg
ICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZC5yZWxlYXNlKCksIHR5cGUsIGZyYW1lSWQpOwog
fQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hDdXJyZW50UmVjb3JkKFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wgY2Fw
dHVyZUNhbGxTdGFjaykKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEN1cnJlbnRS
ZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYgdHlw
ZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgcHVzaEdDRXZl
bnRSZWNvcmRzKCk7CiAgICAgY29tbWl0Q2FuY2VsYWJsZVJlY29yZHMoKTsKICAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdl
bmVyaWNSZWNvcmQodGltZXN0YW1wKCksIGNhcHR1cmVDYWxsU3RhY2sgPyBtX21heENhbGxTdGFj
a0RlcHRoIDogMCk7Ci0gICAgbV9yZWNvcmRTdGFjay5hcHBlbmQoVGltZWxpbmVSZWNvcmRFbnRy
eShyZWNvcmQucmVsZWFzZSgpLCBkYXRhLCBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCksIHR5cGUp
KTsKKyAgICBTdHJpbmcgZnJhbWVJZDsKKyAgICBpZiAoZnJhbWUgJiYgbV9wYWdlQWdlbnQpCisg
ICAgICAgIGZyYW1lSWQgPSBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChmcmFtZSk7CisgICAgbV9yZWNv
cmRTdGFjay5hcHBlbmQoVGltZWxpbmVSZWNvcmRFbnRyeShyZWNvcmQucmVsZWFzZSgpLCBkYXRh
LCBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCksIHR5cGUsIGZyYW1lSWQpKTsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ2FuY2VsYWJsZVJlY29yZChQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKQordm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpwdXNoQ2FuY2VsYWJsZVJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVHZW5lcmljUmVjb3JkKHRpbWVzdGFtcCgpLCAwKTsKLSAgICBtX3JlY29yZFN0YWNrLmFwcGVu
ZChUaW1lbGluZVJlY29yZEVudHJ5KHJlY29yZC5yZWxlYXNlKCksIGRhdGEsIDAsIHR5cGUsIHRy
dWUpKTsKKyAgICBTdHJpbmcgZnJhbWVJZDsKKyAgICBpZiAoZnJhbWUgJiYgbV9wYWdlQWdlbnQp
CisgICAgICAgIGZyYW1lSWQgPSBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChmcmFtZSk7CisgICAgbV9y
ZWNvcmRTdGFjay5hcHBlbmQoVGltZWxpbmVSZWNvcmRFbnRyeShyZWNvcmQucmVsZWFzZSgpLCBk
YXRhLCAwLCB0eXBlLCBmcmFtZUlkLCB0cnVlKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6Y29tbWl0Q2FuY2VsYWJsZVJlY29yZHMoKQpAQCAtNTAyLDcgKzUyMCw3IEBACiAg
ICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkgZW50cnkgPSBjYW5jZWxhYmxlUmVjb3Jkcy5sYXN0
KCk7CiAgICAgICAgIGNhbmNlbGFibGVSZWNvcmRzLnJlbW92ZUxhc3QoKTsKICAgICAgICAgZW50
cnkucmVjb3JkLT5zZXRPYmplY3QoImRhdGEiLCBlbnRyeS5kYXRhKTsKLSAgICAgICAgaW5uZXJB
ZGRSZWNvcmRUb1RpbWVsaW5lKGVudHJ5LnJlY29yZC5yZWxlYXNlKCksIGVudHJ5LnR5cGUpOwor
ICAgICAgICBpbm5lckFkZFJlY29yZFRvVGltZWxpbmUoZW50cnkucmVjb3JkLnJlbGVhc2UoKSwg
ZW50cnkudHlwZSwgZW50cnkuZnJhbWVJZCk7CiAgICAgfQogfQogCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcwkocmV2
aXNpb24gMTE5NTgxKQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw3ICsxMDcs
MTIgQEAKIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmlzRXZlbnREaXZp
ZGVyID0gZnVuY3Rpb24ocmVjb3JkKQogewogICAgIHZhciByZWNvcmRUeXBlcyA9IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGU7Ci0gICAgcmV0dXJuIHJlY29yZC50eXBlID09
PSByZWNvcmRUeXBlcy5NYXJrRE9NQ29udGVudCB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlw
ZXMuTWFya0xvYWQgfHwgcmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlRpbWVTdGFtcDsKKyAg
ICBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLk1hcmtET01Db250ZW50IHx8IHJlY29y
ZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJrTG9hZCB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3Jk
VHlwZXMuVGltZVN0YW1wKSB7CisgICAgICAgIHZhciBtYWluRnJhbWUgPSBXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lOworICAgICAgICBpZiAobWFpbkZyYW1lICYmIG1h
aW5GcmFtZS5pZCA9PT0gcmVjb3JkLmZyYW1lSWQpIAorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJl
c2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyA9IGZ1bmN0aW9uKHJlY29yZHNBcnJheSwgY2Fs
bGJhY2spCkBAIC0zNTcsNiArMzYyLDcgQEAKICAgICB0aGlzLnN0YXJ0VGltZSA9IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU1vZGVsLnN0YXJ0VGltZUluU2Vjb25kcyhyZWNvcmQpOwogICAgIHRoaXMu
ZGF0YSA9IHJlY29yZC5kYXRhOwogICAgIHRoaXMudHlwZSA9IHJlY29yZC50eXBlOworICAgIHRo
aXMuZnJhbWVJZCA9IHJlY29yZC5mcmFtZUlkOwogICAgIHRoaXMuZW5kVGltZSA9IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU1vZGVsLmVuZFRpbWVJblNlY29uZHMocmVjb3JkKTsKICAgICB0aGlzLl9z
ZWxmVGltZSA9IHRoaXMuZW5kVGltZSAtIHRoaXMuc3RhcnRUaW1lOwogICAgIHRoaXMuX2xhc3RD
aGlsZEVuZFRpbWUgPSB0aGlzLmVuZFRpbWU7Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCShyZXZpc2lvbiAxMTk1ODEpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05OCw2ICs5OCwxNCBAQAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3Rh
dGljIEZyYW1lKiBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSAwOworICAgIGlmIChjb250
ZXh0LT5pc0RvY3VtZW50KCkpCisgICAgICAgIGZyYW1lID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQq
Pihjb250ZXh0KS0+ZnJhbWUoKTsKKyAgICByZXR1cm4gZnJhbWU7Cit9CisKIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSwgRE9NV3Jh
cHBlcldvcmxkKiB3b3JsZCkKIHsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpOwpAQCAtMjUyLDMxICsy
NjAsMzEgQEAKICNlbmRpZgogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
U2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIGNvbnN0IFN0cmluZyYgdXJsKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIHVybCwgRnJhbWUqIGZyYW1lKQog
ewogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGlu
ZUFnZW50LT5kaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdCh1cmwpOworICAgICAgICB0aW1lbGlu
ZUFnZW50LT5kaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdCh1cmwsIGZyYW1lKTsKIH0KIAotdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IHRpbWVySWQsIGludCB0aW1lb3V0
LCBib29sIHNpbmdsZVNob3QpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5z
dGFsbFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBp
bnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCkKIHsKICAgICBwYXVzZU9uTmF0aXZlRXZlbnRJZk5lZWRlZChpbnN0
cnVtZW50aW5nQWdlbnRzLCBmYWxzZSwgc2V0VGltZXJFdmVudE5hbWUsIHRydWUpOwogICAgIGlm
IChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50LT5k
aWRJbnN0YWxsVGltZXIodGltZXJJZCwgdGltZW91dCwgc2luZ2xlU2hvdCk7CisgICAgICAgIHRp
bWVsaW5lQWdlbnQtPmRpZEluc3RhbGxUaW1lcih0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90
LCBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogfQogCi12b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVtb3ZlVGltZXJJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCB0aW1lcklkKQordm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFJlbW92ZVRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJZCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKIHsKICAgICBwYXVzZU9uTmF0aXZlRXZlbnRJZk5lZWRlZChpbnN0cnVtZW50aW5n
QWdlbnRzLCBmYWxzZSwgY2xlYXJUaW1lckV2ZW50TmFtZSwgdHJ1ZSk7CiAgICAgaWYgKEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5p
bnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCi0gICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZFJlbW92
ZVRpbWVyKHRpbWVySWQpOworICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRSZW1vdmVUaW1lcih0
aW1lcklkLCBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogfQogCi1J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsQ2FsbEZ1bmN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQorSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENhbGxG
dW5jdGlvbkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgY29u
c3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKIHsKICAgICBpbnQgdGltZWxpbmVBZ2VudElkID0gMDsKICAgICBpZiAo
SW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53
aWxsQ2FsbEZ1bmN0aW9uKHNjcmlwdE5hbWUsIHNjcmlwdExpbmUpOworICAgICAgICB0aW1lbGlu
ZUFnZW50LT53aWxsQ2FsbEZ1bmN0aW9uKHNjcmlwdE5hbWUsIHNjcmlwdExpbmUsIGZyYW1lRm9y
U2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJ
ZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsK
QEAgLTI4OCwxMiArMjk2LDEyIEBACiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZENhbGxGdW5j
dGlvbigpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgWE1MSHR0cFJlcXVlc3QqIHJlcXVlc3QpCitJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
Q2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cywgWE1MSHR0cFJlcXVlc3QqIHJlcXVlc3QsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQpCiB7CiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAgICAgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQoKTsKICAgICBpZiAodGltZWxpbmVBZ2VudCAmJiByZXF1ZXN0LT5o
YXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkucmVhZHlzdGF0ZWNoYW5nZUV2ZW50KSkgewot
ICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZShyZXF1ZXN0LT51
cmwoKS5zdHJpbmcoKSwgcmVxdWVzdC0+cmVhZHlTdGF0ZSgpKTsKKyAgICAgICAgdGltZWxpbmVB
Z2VudC0+d2lsbENoYW5nZVhIUlJlYWR5U3RhdGUocmVxdWVzdC0+dXJsKCkuc3RyaW5nKCksIHJl
cXVlc3QtPnJlYWR5U3RhdGUoKSwgZnJhbWVGb3JTY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRl
eHQpKTsKICAgICAgICAgdGltZWxpbmVBZ2VudElkID0gdGltZWxpbmVBZ2VudC0+aWQoKTsKICAg
ICB9CiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZShpbnN0cnVtZW50
aW5nQWdlbnRzLCB0aW1lbGluZUFnZW50SWQpOwpAQCAtMzEwLDcgKzMxOCw3IEBACiAgICAgaW50
IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxp
bmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsK
ICAgICBpZiAodGltZWxpbmVBZ2VudCAmJiBldmVudEhhc0xpc3RlbmVycyhldmVudC50eXBlKCks
IHdpbmRvdywgbm9kZSwgYW5jZXN0b3JzKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxs
RGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxEaXNwYXRj
aEV2ZW50KGV2ZW50LCB3aW5kb3cgPyB3aW5kb3ctPmZyYW1lKCkgOiAwKTsKICAgICAgICAgdGlt
ZWxpbmVBZ2VudElkID0gdGltZWxpbmVBZ2VudC0+aWQoKTsKICAgICB9CiAgICAgcmV0dXJuIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZShpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lbGlu
ZUFnZW50SWQpOwpAQCAtMzM4LDcgKzM0Niw3IEBACiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9
IDA7CiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKICAgICBpZiAodGltZWxpbmVB
Z2VudCAmJiB3aW5kb3ctPmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50LnR5cGUoKSkpIHsKLSAgICAg
ICAgdGltZWxpbmVBZ2VudC0+d2lsbERpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgICAgICB0aW1l
bGluZUFnZW50LT53aWxsRGlzcGF0Y2hFdmVudChldmVudCwgd2luZG93ID8gd2luZG93LT5mcmFt
ZSgpIDogMCk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7
CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoaW5zdHJ1
bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTM1MCwxMSArMzU4LDExIEBACiAg
ICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZERpc3BhdGNoRXZlbnQoKTsKIH0KIAotSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1
YXRlU2NyaXB0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBj
b25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1iZXIpCitJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHRJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFN0cmluZyYg
dXJsLCBpbnQgbGluZU51bWJlciwgRnJhbWUqIGZyYW1lKQogewogICAgIGludCB0aW1lbGluZUFn
ZW50SWQgPSAwOwogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKSB7Ci0gICAg
ICAgIHRpbWVsaW5lQWdlbnQtPndpbGxFdmFsdWF0ZVNjcmlwdCh1cmwsIGxpbmVOdW1iZXIpOwor
ICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsRXZhbHVhdGVTY3JpcHQodXJsLCBsaW5lTnVtYmVy
LCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7
CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoaW5zdHJ1
bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTM3MiwxMyArMzgwLDEzIEBACiAg
ICAgICAgIHJ1bnRpbWVBZ2VudC0+ZGlkQ3JlYXRlSXNvbGF0ZWRDb250ZXh0KGZyYW1lLCBzY3Jp
cHRTdGF0ZSwgb3JpZ2luKTsKIH0KIAotSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEZpcmVUaW1lckltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IHRpbWVySWQpCitJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRmlyZVRpbWVySW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJZCwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBwYXVzZU9uTmF0aXZlRXZl
bnRJZk5lZWRlZChpbnN0cnVtZW50aW5nQWdlbnRzLCBmYWxzZSwgdGltZXJGaXJlZEV2ZW50TmFt
ZSwgZmFsc2UpOwogCiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAgICAgaWYgKEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5p
bnNwZWN0b3JUaW1lbGluZUFnZW50KCkpIHsKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbEZp
cmVUaW1lcih0aW1lcklkKTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbEZpcmVUaW1lcih0
aW1lcklkLCBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogICAgICAg
ICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KICAgICByZXR1
cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKGluc3RydW1lbnRpbmdBZ2VudHMsIHRp
bWVsaW5lQWdlbnRJZCk7CkBAIC00MDQsMTEgKzQxMiwxMSBAQAogICAgICAgICB0aW1lbGluZUFn
ZW50LT5kaWRDYW5jZWxGcmFtZSgpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsTGF5b3V0SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQorSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbExheW91dEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZyYW1lKQogewogICAgIGludCB0
aW1lbGluZUFnZW50SWQgPSAwOwogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1l
bGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgp
KSB7Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxMYXlvdXQoKTsKKyAgICAgICAgdGltZWxp
bmVBZ2VudC0+d2lsbExheW91dChmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRp
bWVsaW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25Db29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTQy
NiwxMiArNDM0LDEyIEBACiAgICAgICAgIHBhZ2VBZ2VudC0+ZGlkTGF5b3V0KCk7CiB9CiAKLUlu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxMb2FkWEhSSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBY
TUxIdHRwUmVxdWVzdCogcmVxdWVzdCkKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxMb2FkWEhSSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBYTUxIdHRwUmVxdWVzdCogcmVxdWVzdCwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBpbnQgdGltZWxpbmVBZ2VudElkID0g
MDsKICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpOwogICAgIGlmICh0aW1lbGluZUFn
ZW50ICYmIHJlcXVlc3QtPmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQp
KSB7Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxMb2FkWEhSKHJlcXVlc3QtPnVybCgpKTsK
KyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbExvYWRYSFIocmVxdWVzdC0+dXJsKCksIGZyYW1l
Rm9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KSk7CiAgICAgICAgIHRpbWVsaW5lQWdl
bnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElk
KTsKQEAgLTQ0MywxNCArNDUxLDE0IEBACiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZExvYWRY
SFIoKTsKIH0KIAotSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFBhaW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJl
Y3QpCitJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsUGFpbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgRnJh
bWUqIGZyYW1lKQogewogICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQogICAgICAgICBwYWdlQWdl
bnQtPndpbGxQYWludChjb250ZXh0LCByZWN0KTsKIAogICAgIGludCB0aW1lbGluZUFnZW50SWQg
PSAwOwogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKSB7Ci0gICAgICAgIHRp
bWVsaW5lQWdlbnQtPndpbGxQYWludChyZWN0KTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2ls
bFBhaW50KHJlY3QsIGZyYW1lKTsKICAgICAgICAgdGltZWxpbmVBZ2VudElkID0gdGltZWxpbmVB
Z2VudC0+aWQoKTsKICAgICB9CiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZShpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lbGluZUFnZW50SWQpOwpAQCAtNDc2LDExICs0
ODQsMTEgQEAKICAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkQ29tcG9zaXRlKCk7CiB9CiAKLUlu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxSZWNhbGN1bGF0ZVN0eWxlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzKQorSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbFJlY2FsY3VsYXRlU3R5bGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBpbnQgdGltZWxpbmVBZ2Vu
dElkID0gMDsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewotICAgICAg
ICB0aW1lbGluZUFnZW50LT53aWxsUmVjYWxjdWxhdGVTdHlsZSgpOworICAgICAgICB0aW1lbGlu
ZUFnZW50LT53aWxsUmVjYWxjdWxhdGVTdHlsZShmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdl
bnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAgIGlmIChJbnNwZWN0b3JSZXNv
dXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9y
UmVzb3VyY2VBZ2VudCgpKQpAQCAtNTg0LDcgKzU5Miw3IEBACiB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVy
KiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCog
dGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdl
bnQoKSkKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbFNlbmRSZXNvdXJjZVJlcXVlc3QoaWRl
bnRpZmllciwgcmVxdWVzdCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxTZW5kUmVzb3Vy
Y2VSZXF1ZXN0KGlkZW50aWZpZXIsIHJlcXVlc3QsIGxvYWRlci0+ZnJhbWUoKSk7CiAgICAgaWYg
KEluc3BlY3RvclJlc291cmNlQWdlbnQqIHJlc291cmNlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLT5pbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkpCiAgICAgICAgIHJlc291cmNlQWdlbnQtPndp
bGxTZW5kUmVxdWVzdChpZGVudGlmaWVyLCBsb2FkZXIsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9u
c2UpOwogfQpAQCAtNjA5LDExICs2MTcsMTEgQEAKICAgICAgICAgcmVzb3VyY2VBZ2VudC0+ZGlk
TG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKGxvYWRlciwgY2FjaGVkUmVzb3VyY2UpOwogfQog
Ci1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsUmVjZWl2ZVJlc291cmNlRGF0YUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQorSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNv
dXJjZURhdGFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRnJhbWUqIGZyYW1lKQogewogICAgIGludCB0aW1lbGlu
ZUFnZW50SWQgPSAwOwogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKSB7Ci0g
ICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxSZWNlaXZlUmVzb3VyY2VEYXRhKGlkZW50aWZpZXIp
OworICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsUmVjZWl2ZVJlc291cmNlRGF0YShpZGVudGlm
aWVyLCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlk
KCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoaW5z
dHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTYyNSwxMiArNjMzLDEyIEBA
CiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZFJlY2VpdmVSZXNvdXJjZURhdGEoKTsKIH0KIAot
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQorSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBGcmFtZSogZnJhbWUpCiB7
CiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5l
QWdlbnQoKTsKICAgICBpZiAodGltZWxpbmVBZ2VudCkgewotICAgICAgICB0aW1lbGluZUFnZW50
LT53aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoaWRlbnRpZmllciwgcmVzcG9uc2UpOworICAg
ICAgICB0aW1lbGluZUFnZW50LT53aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoaWRlbnRpZmll
ciwgcmVzcG9uc2UsIGZyYW1lKTsKICAgICAgICAgdGltZWxpbmVBZ2VudElkID0gdGltZWxpbmVB
Z2VudC0+aWQoKTsKICAgICB9CiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZShpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lbGluZUFnZW50SWQpOwpAQCAtNjkxLDcgKzY5
OSw3IEBACiAgICAgICAgIGZpbmlzaFRpbWUgPSBsb2FkZXItPnRpbWluZygpLT5jb252ZXJ0TW9u
b3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1vbm90b25pY0ZpbmlzaFRpbWUpOwogCiAgICAgaWYg
KHRpbWVsaW5lQWdlbnQpCi0gICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZEZpbmlzaExvYWRpbmdS
ZXNvdXJjZShpZGVudGlmaWVyLCBmYWxzZSwgZmluaXNoVGltZSk7CisgICAgICAgIHRpbWVsaW5l
QWdlbnQtPmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZShpZGVudGlmaWVyLCBmYWxzZSwgZmluaXNo
VGltZSwgbG9hZGVyLT5mcmFtZSgpKTsKICAgICBpZiAocmVzb3VyY2VBZ2VudCkKICAgICAgICAg
cmVzb3VyY2VBZ2VudC0+ZGlkRmluaXNoTG9hZGluZyhpZGVudGlmaWVyLCBsb2FkZXIsIGZpbmlz
aFRpbWUpOwogfQpAQCAtNjk5LDcgKzcwNyw3IEBACiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkRmFpbExvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRl
ciwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgaWYgKEluc3BlY3RvclRpbWVs
aW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JU
aW1lbGluZUFnZW50KCkpCi0gICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZEZpbmlzaExvYWRpbmdS
ZXNvdXJjZShpZGVudGlmaWVyLCB0cnVlLCAwKTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlk
RmluaXNoTG9hZGluZ1Jlc291cmNlKGlkZW50aWZpZXIsIHRydWUsIDAsIGxvYWRlci0+ZnJhbWUo
KSk7CiAgICAgaWYgKEluc3BlY3RvclJlc291cmNlQWdlbnQqIHJlc291cmNlQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkpCiAgICAgICAgIHJlc291
cmNlQWdlbnQtPmRpZEZhaWxMb2FkaW5nKGlkZW50aWZpZXIsIGxvYWRlciwgZXJyb3IpOwogICAg
IGlmIChJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMtPmluc3BlY3RvckNvbnNvbGVBZ2VudCgpKQpAQCAtNzQ2LDYgKzc1NCw5IEBACiAKIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZyYW1l
KQogeworICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQorICAgICAgICB0aW1l
bGluZUFnZW50LT5kaWRNYXJrRE9NQ29udGVudEV2ZW50KGZyYW1lKTsKKwogICAgIGlmIChmcmFt
ZS0+cGFnZSgpLT5tYWluRnJhbWUoKSAhPSBmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC03
NTUsOSArNzY2LDYgQEAKICAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NQWdlbnQoKSkKICAgICAgICAgZG9tQWdlbnQt
Pm1haW5GcmFtZURPTUNvbnRlbnRMb2FkZWQoKTsKIAotICAgIGlmIChJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJrRE9NQ29udGVudEV2
ZW50KCk7Ci0KICAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKICAgICAgICAgcGFnZUFnZW50LT5k
b21Db250ZW50RXZlbnRGaXJlZCgpOwogfQpAQCAtNzY3LDEyICs3NzUsMTIgQEAKICAgICBpZiAo
SW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVj
dG9yRE9NQWdlbnQoKSkKICAgICAgICAgZG9tQWdlbnQtPmxvYWRFdmVudEZpcmVkKGZyYW1lLT5k
b2N1bWVudCgpKTsKIAorICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQorICAg
ICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJrTG9hZEV2ZW50KGZyYW1lKTsKKwogICAgIGlmIChm
cmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKSAhPSBmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCi0gICAgICAgIHRpbWVsaW5lQWdl
bnQtPmRpZE1hcmtMb2FkRXZlbnQoKTsKLQogICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBh
Z2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQogICAg
ICAgICBwYWdlQWdlbnQtPmxvYWRFdmVudEZpcmVkKCk7CiB9CkBAIC04MjMsMTEgKzgzMSwxMSBA
QAogICAgICAgICBpbnNwZWN0b3JQYWdlQWdlbnQtPmxvYWRlckRldGFjaGVkRnJvbUZyYW1lKGxv
YWRlcik7CiB9CiAKLUluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxXcml0ZUhUTUxJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExp
bmUpCitJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsV3JpdGVIVE1MSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lLCBGcmFt
ZSogZnJhbWUpCiB7CiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAgICAgaWYgKEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5p
bnNwZWN0b3JUaW1lbGluZUFnZW50KCkpIHsKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbFdy
aXRlSFRNTChsZW5ndGgsIHN0YXJ0TGluZSk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxX
cml0ZUhUTUwobGVuZ3RoLCBzdGFydExpbmUsIGZyYW1lKTsKICAgICAgICAgdGltZWxpbmVBZ2Vu
dElkID0gdGltZWxpbmVBZ2VudC0+aWQoKTsKICAgICB9CiAgICAgcmV0dXJuIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbkNvb2tpZShpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lbGluZUFnZW50SWQp
OwpAQCAtMTA3OCwyOSArMTA4NiwyOSBAQAogI2VuZGlmCiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCBjYWxsYmFja0lkKQordm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFJlcXVlc3RBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IGNhbGxiYWNrSWQsIEZyYW1lKiBm
cmFtZSkKIHsKICAgICBwYXVzZU9uTmF0aXZlRXZlbnRJZk5lZWRlZChpbnN0cnVtZW50aW5nQWdl
bnRzLCBmYWxzZSwgcmVxdWVzdEFuaW1hdGlvbkZyYW1lRXZlbnROYW1lLCB0cnVlKTsKIAogICAg
IGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50
LT5kaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2tJZCk7CisgICAgICAgIHRpbWVsaW5l
QWdlbnQtPmRpZFJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFja0lkLCBmcmFtZSk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDYW5jZWxBbmltYXRpb25GcmFtZUlt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IGNhbGxiYWNr
SWQpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FuY2VsQW5pbWF0aW9uRnJh
bWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCBjYWxs
YmFja0lkLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgcGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQo
aW5zdHJ1bWVudGluZ0FnZW50cywgZmFsc2UsIGNhbmNlbEFuaW1hdGlvbkZyYW1lRXZlbnROYW1l
LCB0cnVlKTsKIAogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAg
ICB0aW1lbGluZUFnZW50LT5kaWRDYW5jZWxBbmltYXRpb25GcmFtZShjYWxsYmFja0lkKTsKKyAg
ICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWUoY2FsbGJhY2tJZCwg
ZnJhbWUpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsRmlyZUFuaW1hdGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgY2FsbGJhY2tJZCkKK0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxGaXJlQW5pbWF0
aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGlu
dCBjYWxsYmFja0lkLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgcGF1c2VPbk5hdGl2ZUV2ZW50SWZO
ZWVkZWQoaW5zdHJ1bWVudGluZ0FnZW50cywgZmFsc2UsIGFuaW1hdGlvbkZyYW1lRmlyZWRFdmVu
dE5hbWUsIGZhbHNlKTsKIAogICAgIGludCB0aW1lbGluZUFnZW50SWQgPSAwOwogICAgIGlmIChJ
bnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKSB7Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndp
bGxGaXJlQW5pbWF0aW9uRnJhbWUoY2FsbGJhY2tJZCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQt
PndpbGxGaXJlQW5pbWF0aW9uRnJhbWUoY2FsbGJhY2tJZCwgZnJhbWUpOwogICAgICAgICB0aW1l
bGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KICAgICByZXR1cm4gSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVsaW5l
QWdlbnRJZCk7Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmNwcAkocmV2aXNpb24gMTE5NTgxKQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
Miw3ICsxMDIsNyBAQAogICAgIG1fZGVidWdnZXJBZ2VudCA9IFdvcmtlckRlYnVnZ2VyQWdlbnQ6
OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIHdvcmtl
ckNvbnRleHQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKTsKICAgICBtX3Byb2ZpbGVy
QWdlbnQgPSBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdl
bnRzLmdldCgpLCBtX2NvbnNvbGVBZ2VudC5nZXQoKSwgd29ya2VyQ29udGV4dCwgbV9zdGF0ZS5n
ZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpOwogI2VuZGlmCi0gICAgbV90aW1l
bGluZUFnZW50ID0gSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGlu
Z0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6V29y
a2VySW5zcGVjdG9yLCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpGcmFtZUluc3RydW1lbnRhdGlv
bk5vdFN1cHBvcnRlZCk7CisgICAgbV90aW1lbGluZUFnZW50ID0gSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgMCwgbV9zdGF0ZS5nZXQo
KSwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6V29ya2VySW5zcGVjdG9yLCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpGcmFtZUluc3RydW1lbnRhdGlvbk5vdFN1cHBvcnRlZCk7CiAKICAgICBtX2lu
amVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRIb3N0KCktPmluaXQoMAogICAgICAg
ICAsIDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCShyZXZpc2lvbiAxMTk1ODEpCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjgwLDEzICsyODAs
MTMgQEAKICAgICBzdGF0aWMgYm9vbCBmb3JjZVBzZXVkb1N0YXRlSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgRWxlbWVudCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlKTsKIAogICAgIHN0YXRp
YyB2b2lkIHdpbGxTZW5kWE1MSHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBj
b25zdCBTdHJpbmcmIHVybCk7Ci0gICAgc3RhdGljIHZvaWQgZGlkU2NoZWR1bGVSZXNvdXJjZVJl
cXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIHVybCk7Ci0gICAg
c3RhdGljIHZvaWQgZGlkSW5zdGFsbFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgaW50
IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOwotICAgIHN0YXRpYyB2b2lk
IGRpZFJlbW92ZVRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgaW50IHRpbWVySWQpOwor
ICAgIHN0YXRpYyB2b2lkIGRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgY29uc3QgU3RyaW5nJiB1cmwsIEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQg
ZGlkSW5zdGFsbFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgaW50IHRpbWVySWQsIGlu
dCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpOworICAgIHN0YXRpYyB2b2lkIGRpZFJlbW92ZVRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiwgaW50IHRpbWVySWQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpOwogCi0g
ICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsQ2FsbEZ1bmN0aW9u
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQg
c2NyaXB0TGluZSk7CisgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3
aWxsQ2FsbEZ1bmN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgU3RyaW5nJiBz
Y3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCk7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FsbEZ1bmN0aW9uSW1wbChjb25zdCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUmKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIHdpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiwgWE1MSHR0cFJlcXVlc3QqKTsKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llIHdpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
WE1MSHR0cFJlcXVlc3QqLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KTsKICAgICBz
dGF0aWMgdm9pZCBkaWRDaGFuZ2VYSFJSZWFkeVN0YXRlSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llIHdpbGxEaXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3Qg
RXZlbnQmLCBET01XaW5kb3cqLCBOb2RlKiwgY29uc3QgVmVjdG9yPEV2ZW50Q29udGV4dD4mIGFu
Y2VzdG9ycyk7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxs
SGFuZGxlRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBFdmVudCopOwpAQCAtMjk0LDIy
ICsyOTQsMjIgQEAKICAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaEV2ZW50SW1wbChjb25zdCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMqLCBjb25zdCBFdmVudCYsIERPTVdpbmRvdyopOwogICAgIHN0YXRpYyB2b2lk
IGRpZERpc3BhdGNoRXZlbnRPbldpbmRvd0ltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llJik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3
aWxsRXZhbHVhdGVTY3JpcHRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcm
IHVybCwgaW50IGxpbmVOdW1iZXIpOworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgd2lsbEV2YWx1YXRlU2NyaXB0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29u
c3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyLCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lk
IGRpZEV2YWx1YXRlU2NyaXB0SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVJc29sYXRlZENvbnRleHRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBGcmFtZSosIFNjcmlwdFN0YXRlKiwgU2VjdXJpdHlPcmlnaW4qKTsK
LSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxGaXJlVGltZXJJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBpbnQgdGltZXJJZCk7CisgICAgc3RhdGljIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRmlyZVRpbWVySW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgaW50IHRpbWVySWQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpOwog
ICAgIHN0YXRpYyB2b2lkIGRpZEZpcmVUaW1lckltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIHZvaWQgZGlkQmVnaW5GcmFtZUltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyopOwogICAgIHN0YXRpYyB2b2lkIGRpZENhbmNlbEZyYW1lSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSB3aWxsTGF5b3V0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CisgICAgc3RhdGljIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsTGF5b3V0SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRMYXlvdXRJbXBsKGNvbnN0IElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwotICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgd2lsbExvYWRYSFJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBY
TUxIdHRwUmVxdWVzdCopOworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUgd2lsbExvYWRYSFJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBYTUxIdHRwUmVxdWVzdCos
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRMb2FkWEhSSW1w
bChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKLSAgICBzdGF0aWMgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmKTsKKyAgICBzdGF0aWMg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxQYWludEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBGcmFtZSopOwog
ICAgIHN0YXRpYyB2b2lkIGRpZFBhaW50SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsQ29tcG9zaXRlSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tcG9zaXRlSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3
aWxsUmVjYWxjdWxhdGVTdHlsZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyopOworICAgIHN0YXRp
YyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFJlY2FsY3VsYXRlU3R5bGVJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2Fs
Y3VsYXRlU3R5bGVJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwog
ICAgIHN0YXRpYyB2b2lkIGRpZFNjaGVkdWxlU3R5bGVSZWNhbGN1bGF0aW9uSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgRG9jdW1lbnQqKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llIHdpbGxNYXRjaFJ1bGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25z
dCBTdHlsZVJ1bGUqKTsKQEAgLTMyNiw5ICszMjYsOSBAQAogICAgIHN0YXRpYyB2b2lkIGNvbnRp
bnVlQWZ0ZXJQaW5nTG9hZGVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKTsKICAgICBzdGF0aWMgdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAgICAg
c3RhdGljIHZvaWQgZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgRG9jdW1lbnRMb2FkZXIqLCBDYWNoZWRSZXNvdXJjZSopOwotICAgIHN0YXRp
YyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFJlY2VpdmVSZXNvdXJjZURhdGFJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworICAg
IHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFJlY2VpdmVSZXNvdXJj
ZURhdGFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0YUltcGwoY29u
c3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGljIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
IHdpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIEZyYW1lKik7
CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKGNvbnN0IElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VCdXRDYW5jZWxlZEltcGwoRnJhbWUqLCBEb2N1
bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOwogICAgIHN0YXRpYyB2b2lkIGNvbnRpbnVlQWZ0ZXJYRnJhbWVPcHRpb25zRGVuaWVk
SW1wbChGcmFtZSosIERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CkBAIC0zNDksNyArMzQ5LDcgQEAKICAgICBzdGF0aWMg
dm9pZCBkaWRDb21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFnZSosIERvY3Vt
ZW50TG9hZGVyKik7CiAgICAgc3RhdGljIHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJhbWVJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVudExvYWRlciopOwogCi0gICAgc3RhdGljIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSk7
CisgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1M
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQg
aW50IHN0YXJ0TGluZSwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRXcml0ZUhUTUxJbXBs
KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYsIHVuc2lnbmVkIGludCBlbmRM
aW5lKTsKIAogICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKQEAgLTM1OSw5ICszNTksOSBAQAogICAgIHN0YXRpYyB2
b2lkIHN0b3BDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICBzdGF0aWMgdm9p
ZCBjb25zb2xlVGltZVN0YW1wSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFzc1JlZlB0cjxT
Y3JpcHRBcmd1bWVudHM+KTsKIAotICAgIHN0YXRpYyB2b2lkIGRpZFJlcXVlc3RBbmltYXRpb25G
cmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCBjYWxsYmFja0lkKTsKLSAgICBzdGF0
aWMgdm9pZCBkaWRDYW5jZWxBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IGludCBjYWxsYmFja0lkKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIHdpbGxGaXJlQW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBpbnQg
Y2FsbGJhY2tJZCk7CisgICAgc3RhdGljIHZvaWQgZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiwgaW50IGNhbGxiYWNrSWQsIEZyYW1lKik7CisgICAgc3Rh
dGljIHZvaWQgZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBpbnQgY2FsbGJhY2tJZCwgRnJhbWUqKTsKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llIHdpbGxGaXJlQW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBpbnQgY2FsbGJhY2tJZCwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaXJlQW5p
bWF0aW9uRnJhbWVJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwog
CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCkBAIC01ODcsNyArNTg3LDcgQEAKICNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lk
KCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0g
aW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkKLSAgICAgICAgZGlkU2No
ZWR1bGVSZXNvdXJjZVJlcXVlc3RJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHVybCk7CisgICAg
ICAgIGRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCB1
cmwsIGRvY3VtZW50LT5mcmFtZSgpKTsKICNlbmRpZgogfQogCkBAIC01OTYsNyArNTk2LDcgQEAK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2
b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
ID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dCkpCi0gICAgICAgIGRpZElu
c3RhbGxUaW1lckltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZXJJZCwgdGltZW91dCwgc2lu
Z2xlU2hvdCk7CisgICAgICAgIGRpZEluc3RhbGxUaW1lckltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgdGltZXJJZCwgdGltZW91dCwgc2luZ2xlU2hvdCwgY29udGV4dCk7CiAjZW5kaWYKIH0KIApA
QCAtNjA1LDcgKzYwNSw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBGQVNUX1JFVFVS
Tl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRl
eHQpKQotICAgICAgICBkaWRSZW1vdmVUaW1lckltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgdGlt
ZXJJZCk7CisgICAgICAgIGRpZFJlbW92ZVRpbWVySW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCB0
aW1lcklkLCBjb250ZXh0KTsKICNlbmRpZgogfQogCkBAIC02MTQsNyArNjE0LDcgQEAKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250
ZXh0KSkKLSAgICAgICAgcmV0dXJuIHdpbGxDYWxsRnVuY3Rpb25JbXBsKGluc3RydW1lbnRpbmdB
Z2VudHMsIHNjcmlwdE5hbWUsIHNjcmlwdExpbmUpOworICAgICAgICByZXR1cm4gd2lsbENhbGxG
dW5jdGlvbkltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgc2NyaXB0TmFtZSwgc2NyaXB0TGluZSwg
Y29udGV4dCk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llKCk7CiB9CkBAIC02MzQsNyArNjM0LDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAg
IEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMg
PSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0KSkKLSAgICAgICAgcmV0dXJu
IHdpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCByZXF1ZXN0
KTsKKyAgICAgICAgcmV0dXJuIHdpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlSW1wbChpbnN0cnVtZW50
aW5nQWdlbnRzLCByZXF1ZXN0LCBjb250ZXh0KTsKICNlbmRpZgogICAgIHJldHVybiBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsKIH0KQEAgLTcxMCw3ICs3MTAsNyBAQAogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkp
Ci0gICAgICAgIHJldHVybiB3aWxsRXZhbHVhdGVTY3JpcHRJbXBsKGluc3RydW1lbnRpbmdBZ2Vu
dHMsIHVybCwgbGluZU51bWJlcik7CisgICAgICAgIHJldHVybiB3aWxsRXZhbHVhdGVTY3JpcHRJ
bXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHVybCwgbGluZU51bWJlciwgZnJhbWUpOwogI2VuZGlm
CiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpOwogfQpAQCAtNzM4
LDcgKzczOCw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9O
T19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCkpOwogICAgIGlmIChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0Fn
ZW50c0ZvckNvbnRleHQoY29udGV4dCkpCi0gICAgICAgIHJldHVybiB3aWxsRmlyZVRpbWVySW1w
bChpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lcklkKTsKKyAgICAgICAgcmV0dXJuIHdpbGxGaXJl
VGltZXJJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVySWQsIGNvbnRleHQpOwogI2VuZGlm
CiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpOwogfQpAQCAtNzc1
LDcgKzc3NSw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9O
T19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCkpOwogICAgIGlmIChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0Fn
ZW50c0ZvckZyYW1lKGZyYW1lKSkKLSAgICAgICAgcmV0dXJuIHdpbGxMYXlvdXRJbXBsKGluc3Ry
dW1lbnRpbmdBZ2VudHMpOworICAgICAgICByZXR1cm4gd2lsbExheW91dEltcGwoaW5zdHJ1bWVu
dGluZ0FnZW50cywgZnJhbWUpOwogI2VuZGlmCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSgpOwogfQpAQCAtNzk0LDcgKzc5NCw3IEBACiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dCkpCi0gICAg
ICAgIHJldHVybiB3aWxsTG9hZFhIUkltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgcmVxdWVzdCk7
CisgICAgICAgIHJldHVybiB3aWxsTG9hZFhIUkltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgcmVx
dWVzdCwgY29udGV4dCk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llKCk7CiB9CkBAIC04MTMsNyArODEzLDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICByZXR1
cm4gd2lsbFBhaW50SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBjb250ZXh0LCByZWN0KTsKKyAg
ICAgICAgcmV0dXJuIHdpbGxQYWludEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4dCwg
cmVjdCwgZnJhbWUpOwogI2VuZGlmCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSgpOwogfQpAQCAtODUwLDcgKzg1MCw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
ICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkKLSAgICAgICAg
cmV0dXJuIHdpbGxSZWNhbGN1bGF0ZVN0eWxlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzKTsKKyAg
ICAgICAgcmV0dXJuIHdpbGxSZWNhbGN1bGF0ZVN0eWxlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRz
LCBkb2N1bWVudC0+ZnJhbWUoKSk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llKCk7CiB9CkBAIC05OTcsNyArOTk3LDcgQEAKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAg
ICByZXR1cm4gd2lsbFJlY2VpdmVSZXNvdXJjZURhdGFJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMs
IGlkZW50aWZpZXIpOworICAgICAgICByZXR1cm4gd2lsbFJlY2VpdmVSZXNvdXJjZURhdGFJbXBs
KGluc3RydW1lbnRpbmdBZ2VudHMsIGlkZW50aWZpZXIsIGZyYW1lKTsKICNlbmRpZgogICAgIHJl
dHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsKIH0KQEAgLTEwMTUsNyArMTAx
NSw3IEBACiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShm
cmFtZSkpCi0gICAgICAgIHJldHVybiB3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKGlu
c3RydW1lbnRpbmdBZ2VudHMsIGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKKyAgICAgICAgcmV0dXJu
IHdpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgaWRl
bnRpZmllciwgcmVzcG9uc2UsIGZyYW1lKTsKICNlbmRpZgogICAgIHJldHVybiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUoKTsKIH0KQEAgLTExNzQsNyArMTE3NCw3IEBACiAjaWYgRU5B
QkxFKElOU1BFQ1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3Vt
ZW50KSkKLSAgICAgICAgcmV0dXJuIHdpbGxXcml0ZUhUTUxJbXBsKGluc3RydW1lbnRpbmdBZ2Vu
dHMsIGxlbmd0aCwgc3RhcnRMaW5lKTsKKyAgICAgICAgcmV0dXJuIHdpbGxXcml0ZUhUTUxJbXBs
KGluc3RydW1lbnRpbmdBZ2VudHMsIGxlbmd0aCwgc3RhcnRMaW5lLCBkb2N1bWVudC0+ZnJhbWUo
KSk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7
CiB9CkBAIC0xMzMwLDcgKzEzMzAsNyBAQAogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAg
aWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50
aW5nQWdlbnRzRm9yRG9jdW1lbnQoZG9jdW1lbnQpKQotICAgICAgICBkaWRSZXF1ZXN0QW5pbWF0
aW9uRnJhbWVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGNhbGxiYWNrSWQpOworICAgICAgICBk
aWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGNhbGxiYWNr
SWQsIGRvY3VtZW50LT5mcmFtZSgpKTsKICNlbmRpZgogfQogCkBAIC0xMzM4LDcgKzEzMzgsNyBA
QAogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRG9jdW1lbnQoZG9j
dW1lbnQpKQotICAgICAgICBkaWRDYW5jZWxBbmltYXRpb25GcmFtZUltcGwoaW5zdHJ1bWVudGlu
Z0FnZW50cywgY2FsbGJhY2tJZCk7CisgICAgICAgIGRpZENhbmNlbEFuaW1hdGlvbkZyYW1lSW1w
bChpbnN0cnVtZW50aW5nQWdlbnRzLCBjYWxsYmFja0lkLCBkb2N1bWVudC0+ZnJhbWUoKSk7CiAj
ZW5kaWYKIH0KIApAQCAtMTM0Niw3ICsxMzQ2LDcgQEAKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5z
dHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkKLSAgICAgICAgcmV0dXJuIHdp
bGxGaXJlQW5pbWF0aW9uRnJhbWVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGNhbGxiYWNrSWQp
OworICAgICAgICByZXR1cm4gd2lsbEZpcmVBbmltYXRpb25GcmFtZUltcGwoaW5zdHJ1bWVudGlu
Z0FnZW50cywgY2FsbGJhY2tJZCwgZG9jdW1lbnQtPmZyYW1lKCkpOwogI2VuZGlmCiAgICAgcmV0
dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpOwogfQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCShyZXZpc2lvbiAxMTk1ODEp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0LDggKzQ0LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEV2ZW50OworY2xhc3MgRnJhbWU7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFz
cyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNsYXNzIElu
c3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIEludFJlY3Q7
CkBAIC02MCw5ICs2Miw5IEBACiAgICAgZW51bSBJbnNwZWN0b3JUeXBlIHsgUGFnZUluc3BlY3Rv
ciwgV29ya2VySW5zcGVjdG9yIH07CiAgICAgZW51bSBGcmFtZUluc3RydW1lbnRhdGlvblN1cHBv
cnQgeyBGcmFtZUluc3RydW1lbnRhdGlvbk5vdFN1cHBvcnRlZCwgRnJhbWVJbnN0cnVtZW50YXRp
b25TdXBwb3J0ZWQgfTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJ
bnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluc3BlY3RvclR5cGUgdHlwZSwgRnJhbWVJbnN0cnVtZW50
YXRpb25TdXBwb3J0IGZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydCkKKyAgICBzdGF0aWMgUGFz
c093blB0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIElu
c3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yVHlwZSB0eXBlLCBGcmFtZUluc3RydW1lbnRh
dGlvblN1cHBvcnQgZnJhbWVJbnN0cnVtZW50YXRpb25TdXBwb3J0KQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JUaW1lbGluZUFnZW50KGluc3RydW1lbnRpbmdB
Z2VudHMsIHN0YXRlLCB0eXBlLCBmcmFtZUluc3RydW1lbnRhdGlvblN1cHBvcnQpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JUaW1lbGluZUFnZW50KGluc3RydW1lbnRp
bmdBZ2VudHMsIHBhZ2VBZ2VudCwgc3RhdGUsIHR5cGUsIGZyYW1lSW5zdHJ1bWVudGF0aW9uU3Vw
cG9ydCkpOwogICAgIH0KIAogICAgIH5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CkBAIC04MSwy
MiArODMsMjIgQEAKICAgICB2b2lkIGRpZENvbW1pdExvYWQoKTsKIAogICAgIC8vIE1ldGhvZHMg
Y2FsbGVkIGZyb20gV2ViQ29yZS4KLSAgICB2b2lkIHdpbGxDYWxsRnVuY3Rpb24oY29uc3QgU3Ry
aW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CisgICAgdm9pZCB3aWxsQ2FsbEZ1bmN0
aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIEZyYW1lKik7CiAg
ICAgdm9pZCBkaWRDYWxsRnVuY3Rpb24oKTsKIAotICAgIHZvaWQgd2lsbERpc3BhdGNoRXZlbnQo
Y29uc3QgRXZlbnQmKTsKKyAgICB2b2lkIHdpbGxEaXNwYXRjaEV2ZW50KGNvbnN0IEV2ZW50Jiwg
RnJhbWUqKTsKICAgICB2b2lkIGRpZERpc3BhdGNoRXZlbnQoKTsKIAogICAgIHZvaWQgZGlkQmVn
aW5GcmFtZSgpOwogICAgIHZvaWQgZGlkQ2FuY2VsRnJhbWUoKTsKIAotICAgIHZvaWQgd2lsbExh
eW91dCgpOworICAgIHZvaWQgd2lsbExheW91dChGcmFtZSopOwogICAgIHZvaWQgZGlkTGF5b3V0
KCk7CiAKLSAgICB2b2lkIHdpbGxSZWNhbGN1bGF0ZVN0eWxlKCk7CisgICAgdm9pZCB3aWxsUmVj
YWxjdWxhdGVTdHlsZShGcmFtZSopOwogICAgIHZvaWQgZGlkUmVjYWxjdWxhdGVTdHlsZSgpOwog
Ci0gICAgdm9pZCB3aWxsUGFpbnQoY29uc3QgTGF5b3V0UmVjdCYpOworICAgIHZvaWQgd2lsbFBh
aW50KGNvbnN0IExheW91dFJlY3QmLCBGcmFtZSopOwogICAgIHZvaWQgZGlkUGFpbnQoKTsKIAog
ICAgIHZvaWQgd2lsbENvbXBvc2l0ZSgpOwpAQCAtMTA0LDY2ICsxMDYsNjcgQEAKIAogICAgIC8v
IEZJWE1FOiB8bGVuZ3RofCBzaG91bGQgYmUgcGFzc2VkIGluIGRpZFdyaXRlIGluc3RlYWQgd2ls
bFdyaXRlCiAgICAgLy8gYXMgdGhlIHBhcnNlciBjYW4gbm90IGtub3cgaG93IG11Y2ggaXQgd2ls
bCBwcm9jZXNzIHVudGlsIGl0IHRyaWVzLgotICAgIHZvaWQgd2lsbFdyaXRlSFRNTCh1bnNpZ25l
ZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsKKyAgICB2b2lkIHdpbGxXcml0
ZUhUTUwodW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSwgRnJhbWUq
KTsKICAgICB2b2lkIGRpZFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgZW5kTGluZSk7CiAKLSAgICB2
b2lkIGRpZEluc3RhbGxUaW1lcihpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xl
U2hvdCk7Ci0gICAgdm9pZCBkaWRSZW1vdmVUaW1lcihpbnQgdGltZXJJZCk7Ci0gICAgdm9pZCB3
aWxsRmlyZVRpbWVyKGludCB0aW1lcklkKTsKKyAgICB2b2lkIGRpZEluc3RhbGxUaW1lcihpbnQg
dGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqKTsKKyAgICB2b2lk
IGRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkLCBGcmFtZSopOworICAgIHZvaWQgd2lsbEZpcmVU
aW1lcihpbnQgdGltZXJJZCwgRnJhbWUqKTsKICAgICB2b2lkIGRpZEZpcmVUaW1lcigpOwogCi0g
ICAgdm9pZCB3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZShjb25zdCBTdHJpbmcmLCBpbnQpOworICAg
IHZvaWQgd2lsbENoYW5nZVhIUlJlYWR5U3RhdGUoY29uc3QgU3RyaW5nJiwgaW50LCBGcmFtZSop
OwogICAgIHZvaWQgZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZSgpOwotICAgIHZvaWQgd2lsbExvYWRY
SFIoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCB3aWxsTG9hZFhIUihjb25zdCBTdHJpbmcmLCBG
cmFtZSopOwogICAgIHZvaWQgZGlkTG9hZFhIUigpOwogCi0gICAgdm9pZCB3aWxsRXZhbHVhdGVT
Y3JpcHQoY29uc3QgU3RyaW5nJiwgaW50KTsKKyAgICB2b2lkIHdpbGxFdmFsdWF0ZVNjcmlwdChj
b25zdCBTdHJpbmcmLCBpbnQsIEZyYW1lKik7CiAgICAgdm9pZCBkaWRFdmFsdWF0ZVNjcmlwdCgp
OwogCiAgICAgdm9pZCBkaWRUaW1lU3RhbXAoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBkaWRN
YXJrRE9NQ29udGVudEV2ZW50KCk7Ci0gICAgdm9pZCBkaWRNYXJrTG9hZEV2ZW50KCk7CisgICAg
dm9pZCBkaWRNYXJrRE9NQ29udGVudEV2ZW50KEZyYW1lKik7CisgICAgdm9pZCBkaWRNYXJrTG9h
ZEV2ZW50KEZyYW1lKik7CiAKLSAgICB2b2lkIGRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KGNv
bnN0IFN0cmluZyYgdXJsKTsKLSAgICB2b2lkIHdpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2ln
bmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotICAgIHZvaWQgd2lsbFJlY2VpdmVS
ZXNvdXJjZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
KyAgICB2b2lkIGRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsLCBG
cmFtZSopOworICAgIHZvaWQgd2lsbFNlbmRSZXNvdXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZywg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKTsKKyAgICB2b2lkIHdpbGxSZWNlaXZlUmVz
b3VyY2VSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgRnJh
bWUqKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKCk7Ci0gICAgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UodW5zaWduZWQgbG9uZywgYm9vbCBkaWRGYWlsLCBkb3Vi
bGUgZmluaXNoVGltZSk7Ci0gICAgdm9pZCB3aWxsUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVu
c2lnbmVkIGxvbmcsIGJvb2wgZGlkRmFpbCwgZG91YmxlIGZpbmlzaFRpbWUsIEZyYW1lKik7Cisg
ICAgdm9pZCB3aWxsUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IEZyYW1lKik7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VEYXRhKCk7CiAKLSAgICB2b2lk
IGRpZFJlcXVlc3RBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCk7Ci0gICAgdm9pZCBkaWRD
YW5jZWxBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCk7Ci0gICAgdm9pZCB3aWxsRmlyZUFu
aW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkKTsKKyAgICB2b2lkIGRpZFJlcXVlc3RBbmltYXRp
b25GcmFtZShpbnQgY2FsbGJhY2tJZCwgRnJhbWUqKTsKKyAgICB2b2lkIGRpZENhbmNlbEFuaW1h
dGlvbkZyYW1lKGludCBjYWxsYmFja0lkLCBGcmFtZSopOworICAgIHZvaWQgd2lsbEZpcmVBbmlt
YXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCwgRnJhbWUqKTsKICAgICB2b2lkIGRpZEZpcmVBbmlt
YXRpb25GcmFtZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZEdDKGRvdWJsZSwgZG91YmxlLCBz
aXplX3QpOwogCiBwcml2YXRlOgogICAgIHN0cnVjdCBUaW1lbGluZVJlY29yZEVudHJ5IHsKLSAg
ICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVj
b3JkLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgUGFzc1JlZlB0cjxJbnNwZWN0
b3JBcnJheT4gY2hpbGRyZW4sIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYW5jZWxhYmxlID0g
ZmFsc2UpCi0gICAgICAgICAgICA6IHJlY29yZChyZWNvcmQpLCBkYXRhKGRhdGEpLCBjaGlsZHJl
bihjaGlsZHJlbiksIHR5cGUodHlwZSksIGNhbmNlbGFibGUoY2FuY2VsYWJsZSkKKyAgICAgICAg
VGltZWxpbmVSZWNvcmRFbnRyeShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkLCBQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJh
eT4gY2hpbGRyZW4sIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBi
b29sIGNhbmNlbGFibGUgPSBmYWxzZSkKKyAgICAgICAgICAgIDogcmVjb3JkKHJlY29yZCksIGRh
dGEoZGF0YSksIGNoaWxkcmVuKGNoaWxkcmVuKSwgdHlwZSh0eXBlKSwgZnJhbWVJZChmcmFtZUlk
KSwgY2FuY2VsYWJsZShjYW5jZWxhYmxlKQogICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkOwogICAgICAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBkYXRhOwogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGNoaWxkcmVuOwog
ICAgICAgICBTdHJpbmcgdHlwZTsKKyAgICAgICAgU3RyaW5nIGZyYW1lSWQ7CiAgICAgICAgIGJv
b2wgY2FuY2VsYWJsZTsKICAgICB9OwogICAgICAgICAKLSAgICBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluc3BlY3RvclR5cGUs
IEZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydCk7CisgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yU3Rh
dGUqLCBJbnNwZWN0b3JUeXBlLCBGcmFtZUluc3RydW1lbnRhdGlvblN1cHBvcnQpOwogCi0gICAg
dm9pZCBwdXNoQ3VycmVudFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4sIGNvbnN0
IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrKTsKKyAgICB2b2lkIHB1c2hDdXJy
ZW50UmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBl
LCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKik7CiAgICAgdm9pZCBzZXRIZWFwU2l6ZVN0
YXRpc3RpYyhJbnNwZWN0b3JPYmplY3QqIHJlY29yZCk7CiAgICAgICAgIAogICAgIHZvaWQgZGlk
Q29tcGxldGVDdXJyZW50UmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSk7Ci0gICAgdm9pZCBhcHBl
bmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYg
dHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrKTsKLSAgICB2b2lkIHB1c2hDYW5jZWxhYmxlUmVj
b3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlKTsKKyAg
ICB2b2lkIGFwcGVuZFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgY29u
c3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKik7CisgICAgdm9p
ZCBwdXNoQ2FuY2VsYWJsZVJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4sIGNvbnN0
IFN0cmluZyYgdHlwZSwgRnJhbWUqKTsKICAgICB2b2lkIGNvbW1pdENhbmNlbGFibGVSZWNvcmRz
KCk7CiAgICAgdm9pZCBjYW5jZWxSZWNvcmQoY29uc3QgU3RyaW5nJiB0eXBlKTsKLSAgICB2b2lk
IGFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBT
dHJpbmcmIHR5cGUpOwotICAgIHZvaWQgaW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlKTsKKyAgICB2b2lkIGFkZFJl
Y29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CisgICAgdm9pZCBpbm5lckFkZFJlY29yZFRv
VGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CiAKICAgICB2b2lkIHB1c2hHQ0V2ZW50UmVjb3Jkcygp
OwogICAgIHZvaWQgY2xlYXJSZWNvcmRTdGFjaygpOwpAQCAtMTcxLDYgKzE3NCw4IEBACiAgICAg
ZG91YmxlIHRpbWVzdGFtcCgpOwogICAgIGRvdWJsZSB0aW1lc3RhbXBGcm9tTWljcm9zZWNvbmRz
KGRvdWJsZSBtaWNyb3NlY29uZHMpOwogCisgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VB
Z2VudDsKKwogICAgIEluc3BlY3RvckZyb250ZW5kOjpUaW1lbGluZSogbV9mcm9udGVuZDsKICAg
ICBkb3VibGUgbV90aW1lc3RhbXBPZmZzZXQ7CiAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTE5NTk4KQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw3IEBACiAgICAgY2hpbGRyZW4gOiA8b2Jq
ZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiRXZlbnREaXNwYXRjaCIK
KyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAg
IHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTk1OTgpCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1u
ZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTMsNiArMTMs
NyBAQAogICAgICAgICByZXF1ZXN0TWV0aG9kIDogIkdFVCIKICAgICB9CiAgICAgdHlwZSA6ICJS
ZXNvdXJjZVNlbmRSZXF1ZXN0IgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFw
U2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRl
cnMgOiA8b2JqZWN0PgpAQCAtMjksNiArMzAsNyBAQAogICAgIGNoaWxkcmVuIDogPG9iamVjdD4K
ICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIlJlc291cmNlUmVjZWl2ZVJlc3Bv
bnNlIgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+
CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpA
QCAtNDIsNiArNDQsNyBAQAogICAgICAgICBkaWRGYWlsIDogZmFsc2UKICAgICB9CiAgICAgdHlw
ZSA6ICJSZXNvdXJjZUZpbmlzaCIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVh
cFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50
ZXJzIDogPG9iamVjdD4KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVj
dG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5NTk4
KQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtdGltZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw3
IEBACiAgICAgICAgIHNpbmdsZVNob3QgOiB0cnVlCiAgICAgfQogICAgIHR5cGUgOiAiVGltZXJJ
bnN0YWxsIgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1i
ZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0
PgpAQCAtMjQsNiArMjUsNyBAQAogICAgICAgICBzaW5nbGVTaG90IDogZmFsc2UKICAgICB9CiAg
ICAgdHlwZSA6ICJUaW1lckluc3RhbGwiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNl
ZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBj
b3VudGVycyA6IDxvYmplY3Q+CkBAIC0zNyw2ICszOSw3IEBACiAgICAgY2hpbGRyZW4gOiA8b2Jq
ZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiVGltZXJGaXJlIgorICAg
IGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90
YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAtNTAsNiAr
NTMsNyBAQAogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4K
ICAgICB0eXBlIDogIlRpbWVyRmlyZSIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2Vk
SGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNv
dW50ZXJzIDogPG9iamVjdD4KQEAgLTYzLDYgKzY3LDcgQEAKICAgICBjaGlsZHJlbiA6IDxvYmpl
Y3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJUaW1lckZpcmUiCisgICAg
ZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3Rh
bEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CkBAIC03NSw2ICs4
MCw3IEBACiAgICAgICAgIHRpbWVySWQgOiA8bnVtYmVyPgogICAgIH0KICAgICB0eXBlIDogIlRp
bWVyUmVtb3ZlIgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxu
dW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2Jq
ZWN0PgpAQCAtODksNiArOTUsNyBAQAogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRU
aW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIkZ1bmN0aW9uQ2FsbCIKKyAgICBmcmFtZUlkIDog
PHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUg
OiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4KQEAgLTEwMyw2ICsxMTAsNyBAQAog
ICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBl
IDogIkZ1bmN0aW9uQ2FsbCIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNp
emUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJz
IDogPG9iamVjdD4KQEAgLTExNyw2ICsxMjUsNyBAQAogICAgIGNoaWxkcmVuIDogPG9iamVjdD4K
ICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIkZ1bmN0aW9uQ2FsbCIKKyAgICBm
cmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFs
SGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4KQEAgLTEzMSw2ICsx
NDAsNyBAQAogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4K
ICAgICB0eXBlIDogIkZ1bmN0aW9uQ2FsbCIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1
c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAg
IGNvdW50ZXJzIDogPG9iamVjdD4KQEAgLTE0NSw2ICsxNTUsNyBAQAogICAgIGNoaWxkcmVuIDog
PG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIkV2YWx1YXRlU2Ny
aXB0IgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+
CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0Pgot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtYW5pbWF0aW9uLWZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5NTk4KQorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtYW5pbWF0aW9uLWZyYW1lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOCw2ICs4
LDcgQEAKICAgICAgICAgaWQgOiA8bnVtYmVyPgogICAgIH0KICAgICB0eXBlIDogIlJlcXVlc3RB
bmltYXRpb25GcmFtZSIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUg
OiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDog
PG9iamVjdD4KQEAgLTIxLDYgKzIyLDcgQEAKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+CiAgICAg
ZW5kVGltZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJGaXJlQW5pbWF0aW9uRnJhbWUiCisgICAg
ZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3Rh
bEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CkBAIC0zMyw2ICsz
NSw3IEBACiAgICAgICAgIGlkIDogPG51bWJlcj4KICAgICB9CiAgICAgdHlwZSA6ICJDYW5jZWxB
bmltYXRpb25GcmFtZSIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUg
OiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDog
PG9iamVjdD4KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5NTk4KQorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtcGFpbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMyw2ICsxMyw3IEBACiAg
ICAgY2hpbGRyZW4gOiA8b2JqZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUg
OiAiUGFpbnQiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51
bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmpl
Y3Q+Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5NTk4KQorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzLDYgKzEzLDcg
QEAKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+CiAgICAg
dHlwZSA6ICJQYXJzZUhUTUwiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBT
aXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVy
cyA6IDxvYmplY3Q+CkBAIC0yOSw2ICszMCw3IEBACiAgICAgY2hpbGRyZW4gOiA8b2JqZWN0Pgog
ICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiUGFyc2VIVE1MIgorICAgIGZyYW1l
SWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFw
U2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbGF5b3V0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5NTk4KQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbGF5b3V0LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsNyBAQAogICAgIGNoaWxkcmVuIDogPG9iamVjdD4K
ICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIkxheW91dCIKKyAgICBmcmFtZUlk
IDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNp
emUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxMTk1OTgpCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNyw2ICs3LDcgQEAK
ICAgICBkYXRhIDogewogICAgIH0KICAgICB0eXBlIDogIk1hcmtMb2FkIgorICAgIGZyYW1lSWQg
OiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6
ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTE5NTk4KQorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTYsNiArMTYs
NyBAQAogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAg
ICB0eXBlIDogIkV2YWx1YXRlU2NyaXB0IgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVz
ZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAg
Y291bnRlcnMgOiA8b2JqZWN0PgotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExOTU5OCkKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMiw2ICsxMiw3IEBACiAgICAgY2hpbGRyZW4gOiA8
b2JqZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiUGFyc2VIVE1MIgor
ICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAg
dG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAtMjcs
NiArMjgsNyBAQAogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJl
cj4KICAgICB0eXBlIDogIlBhcnNlSFRNTCIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1
c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAg
IGNvdW50ZXJzIDogPG9iamVjdD4KLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExOTU5OCkKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw3IEBACiAgICAgY2hpbGRyZW4gOiA8b2JqZWN0Pgog
ICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiTGF5b3V0IgorICAgIGZyYW1lSWQg
OiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6
ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxMTk1OTgpCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1l
bGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYg
KzEwLDcgQEAKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+
CiAgICAgdHlwZSA6ICJFdmVudERpc3BhdGNoIgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAg
IHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAg
ICAgY291bnRlcnMgOiA8b2JqZWN0PgotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExOTU5
OCkKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmst
cmVzb3VyY2UtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMiw2ICsxMiw3IEBACiAg
ICAgICAgIHJlcXVlc3RNZXRob2QgOiAiR0VUIgogICAgIH0KICAgICB0eXBlIDogIlJlc291cmNl
U2VuZFJlcXVlc3QiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDog
PG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxv
YmplY3Q+CkBAIC0yOCw2ICsyOSw3IEBACiAgICAgY2hpbGRyZW4gOiA8b2JqZWN0PgogICAgIGVu
ZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2UiCisg
ICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0
b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CkBAIC00MSw2
ICs0Myw3IEBACiAgICAgICAgIGRpZEZhaWwgOiBmYWxzZQogICAgIH0KICAgICB0eXBlIDogIlJl
c291cmNlRmluaXNoIgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6
IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8
b2JqZWN0PgotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZG9t
LWNvbnRlbnQtbG9hZGVkLWV2ZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5NTk4KQorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZG9tLWNvbnRlbnQtbG9h
ZGVkLWV2ZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDcgQEAKICAg
ICBkYXRhIDogewogICAgIH0KICAgICB0eXBlIDogIk1hcmtET01Db250ZW50IgorICAgIGZyYW1l
SWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFw
U2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTE5NTk4KQorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtOSw2ICs5LDcgQEAKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6
IDxudW1iZXI+CiAgICAgdHlwZSA6ICJSZWNhbGN1bGF0ZVN0eWxlcyIKKyAgICBmcmFtZUlkIDog
PHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUg
OiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4KLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDExOTU5OCkKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLWFuaW1hdGlvbi1mcmFtZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNiAr
Nyw3IEBACiAgICAgICAgIGlkIDogPG51bWJlcj4KICAgICB9CiAgICAgdHlwZSA6ICJSZXF1ZXN0
QW5pbWF0aW9uRnJhbWUiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXpl
IDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6
IDxvYmplY3Q+CkBAIC0yMCw2ICsyMSw3IEBACiAgICAgY2hpbGRyZW4gOiA8b2JqZWN0PgogICAg
IGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiRmlyZUFuaW1hdGlvbkZyYW1lIgorICAg
IGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90
YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAtMzEsNiAr
MzMsNyBAQAogICAgICAgICBpZCA6IDxudW1iZXI+CiAgICAgfQogICAgIHR5cGUgOiAiQ2FuY2Vs
QW5pbWF0aW9uRnJhbWUiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXpl
IDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6
IDxvYmplY3Q+Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1w
YWludC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExOTU5OCkKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMTIsNiArMTIsNyBAQAogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1l
IDogPG51bWJlcj4KICAgICB0eXBlIDogIlBhaW50IgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgog
ICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+
CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtaW5qZWN0ZWQtc2NyaXB0LWV2YWwtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxMTk1OTgpCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1p
bmplY3RlZC1zY3JpcHQtZXZhbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYg
KzEwLDcgQEAKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+
CiAgICAgdHlwZSA6ICJGdW5jdGlvbkNhbGwiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAg
dXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAg
ICBjb3VudGVycyA6IDxvYmplY3Q+CkBAIC0yNCw2ICsyNSw3IEBACiAgICAgY2hpbGRyZW4gOiA8
b2JqZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiRnVuY3Rpb25DYWxs
IgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAg
ICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0yLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5NTk4KQorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMTEsNiArMTEsNyBAQAogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1l
IDogPG51bWJlcj4KICAgICB0eXBlIDogIkV2YWx1YXRlU2NyaXB0IgorICAgIGZyYW1lSWQgOiA8
c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6
IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGVzdC5qcwkocmV2aXNpb24gMTE5NTk4KQorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGVzdC5qcwkod29ya2luZyBj
b3B5KQpAQCAtMTgsNyArMTgsOCBAQAogICAgIGNvdW50ZXJzOiAiZm9ybWF0QXNUeXBlTmFtZSIs
CiAgICAgdGltZXJJZDogImZvcm1hdEFzVHlwZU5hbWUiLAogICAgIHNjcmlwdExpbmU6ICJmb3Jt
YXRBc1R5cGVOYW1lIiwKLSAgICBsaW5lTnVtYmVyOiAiZm9ybWF0QXNUeXBlTmFtZSIKKyAgICBs
aW5lTnVtYmVyOiAiZm9ybWF0QXNUeXBlTmFtZSIsCisgICAgZnJhbWVJZDogImZvcm1hdEFzVHlw
ZU5hbWUiCiB9OwogCiBJbnNwZWN0b3JUZXN0LnN0YXJ0VGltZWxpbmUgPSBmdW5jdGlvbihjYWxs
YmFjaykKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWVy
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE5NTk4KQorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC05LDYgKzksNyBAQAogICAgICAgICBzaW5nbGVTaG90IDogdHJ1ZQogICAgIH0KICAgICB0eXBl
IDogIlRpbWVySW5zdGFsbCIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNp
emUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJz
IDogPG9iamVjdD4KQEAgLTIyLDYgKzIzLDcgQEAKICAgICAgICAgc2luZ2xlU2hvdCA6IGZhbHNl
CiAgICAgfQogICAgIHR5cGUgOiAiVGltZXJJbnN0YWxsIgorICAgIGZyYW1lSWQgOiA8c3RyaW5n
PgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1i
ZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAtMzUsNiArMzcsNyBAQAogICAgIGNoaWxk
cmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIlRpbWVy
RmlyZSIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVy
PgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4K
QEAgLTQ4LDYgKzUxLDcgQEAKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6
IDxudW1iZXI+CiAgICAgdHlwZSA6ICJUaW1lckZpcmUiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+
CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJl
cj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CkBAIC02MSw2ICs2NSw3IEBACiAgICAgY2hpbGRy
ZW4gOiA8b2JqZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiVGltZXJG
aXJlIgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+
CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpA
QCAtNzIsNiArNzcsNyBAQAogICAgICAgICB0aW1lcklkIDogPG51bWJlcj4KICAgICB9CiAgICAg
dHlwZSA6ICJUaW1lclJlbW92ZSIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVh
cFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50
ZXJzIDogPG9iamVjdD4KQEAgLTg2LDYgKzkyLDcgQEAKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+
CiAgICAgZW5kVGltZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJGdW5jdGlvbkNhbGwiCisgICAg
ZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3Rh
bEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CkBAIC0xMDAsNiAr
MTA3LDcgQEAKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+
CiAgICAgdHlwZSA6ICJGdW5jdGlvbkNhbGwiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAg
dXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAg
ICBjb3VudGVycyA6IDxvYmplY3Q+CkBAIC0xMTQsNiArMTIyLDcgQEAKICAgICBjaGlsZHJlbiA6
IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJGdW5jdGlvbkNh
bGwiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4K
ICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CkBA
IC0xMjgsNiArMTM3LDcgQEAKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6
IDxudW1iZXI+CiAgICAgdHlwZSA6ICJGdW5jdGlvbkNhbGwiCisgICAgZnJhbWVJZCA6IDxzdHJp
bmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51
bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CkBAIC0xNDIsNiArMTUyLDcgQEAKICAgICBj
aGlsZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJF
dmFsdWF0ZVNjcmlwdCIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUg
OiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDog
PG9iamVjdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146357</attachid>
            <date>2012-06-07 12:11:33 -0700</date>
            <delta_ts>2012-06-08 05:22:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86406-20120607151132.patch</filename>
            <type>text/plain</type>
            <size>96899</size>
            <attacher name="Bryan">bmcquade</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWU2MDRmODY5YmIxYzNm
NjIxMzc3MzJhMjJlYjhmMDg3YWQzYWZkMi4uY2E1YjNjN2VkNzRjOGM1OGMxNDkxNjU1YTRhMDc5
MDlkNDFmOGFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOCBAQAorMjAxMi0wNi0wNyAgQnJ5
YW4gTWNRdWFkZSAgPGJtY3F1YWRlQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogQW5ub3RhdGUgdGltZWxpbmUgcmVjb3JkcyB3aXRoIGEgZnJhbWUgaWRlbnRpZmllcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY0MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbmRyZXkgS29zeWFrb3YKKworICAgICAgICBUZXN0czogVXBkYXRl
ZCBleGlzdGluZyBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpJ
bnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZyYW1lRm9yU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RJbXBsKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVySW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlbW92
ZVRpbWVySW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxDYWxsRnVuY3Rpb25JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbENoYW5nZVhIUlJlYWR5U3RhdGVJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZlbnRJbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZl
bnRPbldpbmRvd0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbEZpcmVUaW1lckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsTGF5b3V0SW1wbCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxMb2FkWEhSSW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQYWludEltcGwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVjYWxjdWxhdGVT
dHlsZUltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsU2VuZFJlcXVlc3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZURhdGFJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlz
aExvYWRpbmdJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkRmFpbExvYWRpbmdJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWRJbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWRJbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFdyaXRlSFRNTElt
cGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZXF1
ZXN0QW5pbWF0aW9uRnJhbWVJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWVJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEZpcmVBbmltYXRpb25GcmFtZUltcGwp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAg
ICAgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRpbWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVtb3ZlVGltZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ2FsbEZ1
bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bENoYW5nZVhIUlJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxGaXJlVGltZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsTGF5b3V0KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbExvYWRYSFIpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVjYWxjdWxhdGVTdHlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZl
UmVzb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFdyaXRlSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlcXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbmNlbEFuaW1hdGlv
bkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bEZpcmVBbmltYXRpb25GcmFtZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVs
aW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
cHVzaEdDRXZlbnRSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZEJlZ2luRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JU
aW1lbGluZUFnZW50Ojp3aWxsRGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNhbGN1bGF0ZVN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ29tcG9zaXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxXcml0ZUhUTUwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlbW92ZVRpbWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxGaXJlVGltZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENoYW5nZVhIUlJlYWR5
U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbExv
YWRYSFIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbEV2
YWx1YXRlU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNlaXZlUmVzb3VyY2VEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNlaXZlUmVzb3Vy
Y2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkVGltZVN0YW1wKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZE1hcmtET01Db250ZW50RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFya0xvYWRFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ2FuY2VsQW5pbWF0
aW9uRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2ls
bEZpcmVBbmltYXRpb25GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmlubmVyQWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphcHBl
bmRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVz
aEN1cnJlbnRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6cHVzaENhbmNlbGFibGVSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6Y29tbWl0Q2FuY2VsYWJsZVJlY29yZHMpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChJbnNw
ZWN0b3JUaW1lbGluZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OlRpbWVsaW5lUmVjb3JkRW50cnk6OlRpbWVsaW5lUmVjb3JkRW50cnkpOgorICAgICAg
ICAoVGltZWxpbmVSZWNvcmRFbnRyeSk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuaXNFdmVudERpdmlkZXIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3JkKToKKwogMjAx
Mi0wNi0wNyAgQW1pIEZpc2NobWFuICA8ZmlzY2htYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFBsdW1iIENPUlMgYXR0cmlidXRlIGluZm9ybWF0aW9uIGZyb20gSFRNTE1lZGlhRWxlbWVudCB0
byBtZWRpYSBwbGF5ZXJzIHNvIGl0IGNhbiBiZSB1c2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggYWMxOWM3ZGI5NTNkMjQ1ODM5
Y2FkZmEzMjg2ZWY2OGI1Mjk2MmVmMC4uZDJjODFiN2JjZmZmMTYzMWRiZWU0YjE2NDIyM2UwMzMx
OWZmNzQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3Bl
Y3RvckNvbnRyb2xsZXIoUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAg
ICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KiBkb21TdG9yYWdlQWdlbnQgPSBkb21TdG9yYWdl
QWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRvbVN0b3JhZ2VBZ2VudFB0ci5y
ZWxlYXNlKCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JNZW1vcnlBZ2VudDo6Y3Jl
YXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9wYWdlLCBt
X2RvbUFnZW50KSk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OlBhZ2VJbnNwZWN0b3IsCisgICAgbV9hZ2VudHMuYXBwZW5kKElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCks
IHBhZ2VBZ2VudCwgbV9zdGF0ZS5nZXQoKSwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6UGFnZUlu
c3BlY3RvciwKICAgICAgICBpbnNwZWN0b3JDbGllbnQtPnN1cHBvcnRzRnJhbWVJbnN0cnVtZW50
YXRpb24oKSA/IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OkZyYW1lSW5zdHJ1bWVudGF0aW9uU3Vw
cG9ydGVkIDogSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6RnJhbWVJbnN0cnVtZW50YXRpb25Ob3RT
dXBwb3J0ZWQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgp
LCBwYWdlQWdlbnQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkNzY3Yjk0NDg0ZmQ5ZDI3NGNmMzY2ZTAy
YzA1NWMxYzRmNjQ4NDhjLi5mYmVhMTgwN2I5NDY1OTRhZGVlMTUzNzQ3YmQ4MDFjMTEzNTI3YjRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcApAQCAtOTgsNiArOTgsMTQgQEAgc3RhdGljIGJvb2wgZXZlbnRIYXNMaXN0
ZW5lcnMoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogd2luZG93LAog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIEZyYW1lKiBmcmFtZUZvclNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBGcmFt
ZSogZnJhbWUgPSAwOworICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpCisgICAgICAgIGZy
YW1lID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KS0+ZnJhbWUoKTsKKyAgICByZXR1
cm4gZnJhbWU7Cit9CisKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbGVhcldp
bmRvd09iamVjdEluV29ybGRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEZyYW1lKiBmcmFtZSwgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKIHsKICAgICBJbnNw
ZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3Rv
clBhZ2VBZ2VudCgpOwpAQCAtMjUyLDMxICsyNjAsMzEgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxTZW5kWE1MSHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGkKICNlbmRpZgogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2NoZWR1
bGVSZXNvdXJjZVJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIGNvbnN0IFN0cmluZyYgdXJsKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIHVybCwgRnJhbWUqIGZyYW1lKQogewogICAg
IGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50
LT5kaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdCh1cmwpOworICAgICAgICB0aW1lbGluZUFnZW50
LT5kaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdCh1cmwsIGZyYW1lKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEluc3RhbGxUaW1lckltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29s
IHNpbmdsZVNob3QpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zdGFsbFRp
bWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnQgdGlt
ZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCkKIHsKICAgICBwYXVzZU9uTmF0aXZlRXZlbnRJZk5lZWRlZChpbnN0cnVtZW50
aW5nQWdlbnRzLCBmYWxzZSwgc2V0VGltZXJFdmVudE5hbWUsIHRydWUpOwogICAgIGlmIChJbnNw
ZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+
aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRJbnN0
YWxsVGltZXIodGltZXJJZCwgdGltZW91dCwgc2luZ2xlU2hvdCk7CisgICAgICAgIHRpbWVsaW5l
QWdlbnQtPmRpZEluc3RhbGxUaW1lcih0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90LCBmcmFt
ZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogfQogCi12b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUmVtb3ZlVGltZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIGludCB0aW1lcklkKQordm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlbW92ZVRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBpbnQgdGltZXJJZCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKIHsKICAgICBwYXVzZU9uTmF0aXZlRXZlbnRJZk5lZWRlZChpbnN0cnVtZW50aW5nQWdlbnRz
LCBmYWxzZSwgY2xlYXJUaW1lckV2ZW50TmFtZSwgdHJ1ZSk7CiAgICAgaWYgKEluc3BlY3RvclRp
bWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0
b3JUaW1lbGluZUFnZW50KCkpCi0gICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZFJlbW92ZVRpbWVy
KHRpbWVySWQpOworICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRSZW1vdmVUaW1lcih0aW1lcklk
LCBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkpOwogfQogCi1JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ2Fs
bEZ1bmN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBj
b25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQorSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENhbGxGdW5jdGlv
bkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgU3Ry
aW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKIHsKICAgICBpbnQgdGltZWxpbmVBZ2VudElkID0gMDsKICAgICBpZiAoSW5zcGVj
dG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmlu
c3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsQ2Fs
bEZ1bmN0aW9uKHNjcmlwdE5hbWUsIHNjcmlwdExpbmUpOworICAgICAgICB0aW1lbGluZUFnZW50
LT53aWxsQ2FsbEZ1bmN0aW9uKHNjcmlwdE5hbWUsIHNjcmlwdExpbmUsIGZyYW1lRm9yU2NyaXB0
RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRp
bWVsaW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25Db29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTI4
OCwxMiArMjk2LDEyIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDYWxsRnVu
Y3Rpb25JbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvCiAgICAgICAgIHRpbWVsaW5l
QWdlbnQtPmRpZENhbGxGdW5jdGlvbigpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZUlt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgWE1MSHR0cFJlcXVl
c3QqIHJlcXVlc3QpCitJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgWE1MSHR0cFJlcXVlc3QqIHJlcXVlc3QsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9
IDA7CiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKICAgICBpZiAodGltZWxpbmVB
Z2VudCAmJiByZXF1ZXN0LT5oYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkucmVhZHlzdGF0
ZWNoYW5nZUV2ZW50KSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsQ2hhbmdlWEhSUmVh
ZHlTdGF0ZShyZXF1ZXN0LT51cmwoKS5zdHJpbmcoKSwgcmVxdWVzdC0+cmVhZHlTdGF0ZSgpKTsK
KyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbENoYW5nZVhIUlJlYWR5U3RhdGUocmVxdWVzdC0+
dXJsKCkuc3RyaW5nKCksIHJlcXVlc3QtPnJlYWR5U3RhdGUoKSwgZnJhbWVGb3JTY3JpcHRFeGVj
dXRpb25Db250ZXh0KGNvbnRleHQpKTsKICAgICAgICAgdGltZWxpbmVBZ2VudElkID0gdGltZWxp
bmVBZ2VudC0+aWQoKTsKICAgICB9CiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZShpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lbGluZUFnZW50SWQpOwpAQCAtMzA1LDEy
ICszMTMsMTIgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVhIUlJl
YWR5U3RhdGVJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW0KICAgICAgICAgdGltZWxpbmVBZ2Vu
dC0+ZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZSgpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgRXZlbnQmIGV2
ZW50LCBET01XaW5kb3cqIHdpbmRvdywgTm9kZSogbm9kZSwgY29uc3QgVmVjdG9yPEV2ZW50Q29u
dGV4dD4mIGFuY2VzdG9ycykKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBFdmVudCYgZXZlbnQsIERPTVdpbmRvdyog
d2luZG93LCBOb2RlKiBub2RlLCBjb25zdCBWZWN0b3I8RXZlbnRDb250ZXh0PiYgYW5jZXN0b3Jz
LCBEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAg
ICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKICAgICBpZiAodGltZWxpbmVBZ2VudCAm
JiBldmVudEhhc0xpc3RlbmVycyhldmVudC50eXBlKCksIHdpbmRvdywgbm9kZSwgYW5jZXN0b3Jz
KSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsRGlzcGF0Y2hFdmVudChldmVudCk7Cisg
ICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxEaXNwYXRjaEV2ZW50KGV2ZW50LCBkb2N1bWVudC0+
ZnJhbWUoKSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7
CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoaW5zdHJ1
bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTMzOCw3ICszNDYsNyBAQCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
RGlzcGF0Y2hFdmVudE9uV2luZAogICAgIGludCB0aW1lbGluZUFnZW50SWQgPSAwOwogICAgIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CiAgICAgaWYgKHRpbWVsaW5lQWdlbnQgJiYgd2lu
ZG93LT5oYXNFdmVudExpc3RlbmVycyhldmVudC50eXBlKCkpKSB7Ci0gICAgICAgIHRpbWVsaW5l
QWdlbnQtPndpbGxEaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+
d2lsbERpc3BhdGNoRXZlbnQoZXZlbnQsIHdpbmRvdyA/IHdpbmRvdy0+ZnJhbWUoKSA6IDApOwog
ICAgICAgICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KICAg
ICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKGluc3RydW1lbnRpbmdBZ2Vu
dHMsIHRpbWVsaW5lQWdlbnRJZCk7CkBAIC0zNTAsMTEgKzM1OCwxMSBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hFdmVudE9uV2luZG93SW1wbChjb25zdCBJbnNw
ZWN0b3JJbnN0cgogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWREaXNwYXRjaEV2ZW50KCk7CiB9
CiAKLUluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxFdmFsdWF0ZVNjcmlwdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyKQorSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1
YXRlU2NyaXB0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBj
b25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1iZXIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBp
bnQgdGltZWxpbmVBZ2VudElkID0gMDsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCog
dGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdl
bnQoKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsRXZhbHVhdGVTY3JpcHQodXJsLCBs
aW5lTnVtYmVyKTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbEV2YWx1YXRlU2NyaXB0KHVy
bCwgbGluZU51bWJlciwgZnJhbWUpOwogICAgICAgICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGlu
ZUFnZW50LT5pZCgpOwogICAgIH0KICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVsaW5lQWdlbnRJZCk7CkBAIC0zNzIsMTMg
KzM4MCwxMyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlSXNvbGF0
ZWRDb250ZXh0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKgogICAgICAgICBydW50aW1lQWdlbnQt
PmRpZENyZWF0ZUlzb2xhdGVkQ29udGV4dChmcmFtZSwgc2NyaXB0U3RhdGUsIG9yaWdpbik7CiB9
CiAKLUluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxGaXJlVGltZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIGludCB0aW1lcklkKQorSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEZpcmVUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgaW50IHRpbWVySWQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpCiB7CiAgICAgcGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoaW5zdHJ1bWVu
dGluZ0FnZW50cywgZmFsc2UsIHRpbWVyRmlyZWRFdmVudE5hbWUsIGZhbHNlKTsKIAogICAgIGlu
dCB0aW1lbGluZUFnZW50SWQgPSAwOwogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0
aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCgpKSB7Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxGaXJlVGltZXIodGltZXJJZCk7Cisg
ICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxGaXJlVGltZXIodGltZXJJZCwgZnJhbWVGb3JTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpKTsKICAgICAgICAgdGltZWxpbmVBZ2VudElkID0g
dGltZWxpbmVBZ2VudC0+aWQoKTsKICAgICB9CiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZShpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lbGluZUFnZW50SWQpOwpAQCAt
NDA0LDExICs0MTIsMTEgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbmNl
bEZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW4KICAgICAgICAgdGltZWxp
bmVBZ2VudC0+ZGlkQ2FuY2VsRnJhbWUoKTsKIH0KIAotSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbExheW91dEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKK0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxMYXlvdXRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBp
bnQgdGltZWxpbmVBZ2VudElkID0gMDsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCog
dGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdl
bnQoKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsTGF5b3V0KCk7CisgICAgICAgIHRp
bWVsaW5lQWdlbnQtPndpbGxMYXlvdXQoZnJhbWUpOwogICAgICAgICB0aW1lbGluZUFnZW50SWQg
PSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVsaW5lQWdlbnRJZCk7CkBA
IC00MjYsMTIgKzQzNCwxMiBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkTGF5
b3V0SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raQogICAgICAgICBwYWdl
QWdlbnQtPmRpZExheW91dCgpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsTG9hZFhIUkltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgWE1MSHR0cFJlcXVlc3QqIHJlcXVlc3QpCitJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
TG9hZFhIUkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgWE1M
SHR0cFJlcXVlc3QqIHJlcXVlc3QsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7
CiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5l
QWdlbnQoKTsKICAgICBpZiAodGltZWxpbmVBZ2VudCAmJiByZXF1ZXN0LT5oYXNFdmVudExpc3Rl
bmVycyhldmVudE5hbWVzKCkubG9hZEV2ZW50KSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53
aWxsTG9hZFhIUihyZXF1ZXN0LT51cmwoKSk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxM
b2FkWEhSKHJlcXVlc3QtPnVybCgpLCBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29u
dGV4dCkpOwogICAgICAgICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwog
ICAgIH0KICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKGluc3RydW1l
bnRpbmdBZ2VudHMsIHRpbWVsaW5lQWdlbnRJZCk7CkBAIC00NDMsMTQgKzQ1MSwxNCBAQCB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkTG9hZFhIUkltcGwoY29uc3QgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29vawogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRMb2FkWEhSKCk7
CiB9CiAKLUluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiByZWN0KQor
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbFBhaW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJlY3QsIEZyYW1lKiBm
cmFtZSkKIHsKICAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKICAgICAgICAgcGFnZUFnZW50LT53
aWxsUGFpbnQoY29udGV4dCwgcmVjdCk7CiAKICAgICBpbnQgdGltZWxpbmVBZ2VudElkID0gMDsK
ICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewotICAgICAgICB0aW1lbGlu
ZUFnZW50LT53aWxsUGFpbnQocmVjdCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxQYWlu
dChyZWN0LCBmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdlbnQt
PmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUo
aW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTQ3NiwxMSArNDg0LDEx
IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21wb3NpdGVJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZENv
bXBvc2l0ZSgpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVjYWxjdWxhdGVTdHlsZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNhbGN1bGF0ZVN0eWxlSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUpCiB7CiAg
ICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdl
bnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KCkpIHsKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbFJlY2FsY3VsYXRlU3R5bGUo
KTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbFJlY2FsY3VsYXRlU3R5bGUoZnJhbWUpOwog
ICAgICAgICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KICAg
ICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMtPmluc3BlY3RvclJlc291cmNlQWdlbnQoKSkKQEAgLTU4NCw3ICs1OTIsNyBAQCBi
b29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkQXBwbHlTY3JlZW5IZWlnaHRPdmVy
cmlkZUltcGwoSW5zdHJ1bWVudGluZwogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxTZW5kUmVxdWVzdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVz
cG9uc2UpCiB7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCi0gICAgICAg
IHRpbWVsaW5lQWdlbnQtPndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KGlkZW50aWZpZXIsIHJlcXVl
c3QpOworICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsU2VuZFJlc291cmNlUmVxdWVzdChpZGVu
dGlmaWVyLCByZXF1ZXN0LCBsb2FkZXItPmZyYW1lKCkpOwogICAgIGlmIChJbnNwZWN0b3JSZXNv
dXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9y
UmVzb3VyY2VBZ2VudCgpKQogICAgICAgICByZXNvdXJjZUFnZW50LT53aWxsU2VuZFJlcXVlc3Qo
aWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKIH0KQEAgLTYw
OSwxMSArNjE3LDExIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRMb2FkUmVz
b3VyY2VGcm9tTWVtb3J5Q2FjaGVJbXBsKEluc3RydW1lbnRpbmdBCiAgICAgICAgIHJlc291cmNl
QWdlbnQtPmRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShsb2FkZXIsIGNhY2hlZFJlc291
cmNlKTsKIH0KIAotSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZURhdGFJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKK0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxS
ZWNlaXZlUmVzb3VyY2VEYXRhSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBp
bnQgdGltZWxpbmVBZ2VudElkID0gMDsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCog
dGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdl
bnQoKSkgewotICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsUmVjZWl2ZVJlc291cmNlRGF0YShp
ZGVudGlmaWVyKTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbFJlY2VpdmVSZXNvdXJjZURh
dGEoaWRlbnRpZmllciwgZnJhbWUpOwogICAgICAgICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGlu
ZUFnZW50LT5pZCgpOwogICAgIH0KICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVsaW5lQWdlbnRJZCk7CkBAIC02MjUsMTIg
KzYzMywxMiBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291
cmNlRGF0YUltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bQogICAgICAgICB0aW1lbGluZUFnZW50
LT5kaWRSZWNlaXZlUmVzb3VyY2VEYXRhKCk7CiB9CiAKLUluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNw
b25zZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgRnJhbWUqIGZyYW1lKQogewogICAgIGludCB0aW1lbGluZUFnZW50
SWQgPSAwOwogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CiAgICAgaWYgKHRpbWVs
aW5lQWdlbnQpIHsKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbFJlY2VpdmVSZXNvdXJjZVJl
c3BvbnNlKGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+d2ls
bFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGlkZW50aWZpZXIsIHJlc3BvbnNlLCBmcmFtZSk7CiAg
ICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVsaW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAg
IHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoaW5zdHJ1bWVudGluZ0FnZW50
cywgdGltZWxpbmVBZ2VudElkKTsKQEAgLTY5MSw3ICs2OTksNyBAQCB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bQogICAgICAgICBmaW5pc2hUaW1lID0gbG9hZGVyLT50aW1pbmcoKS0+Y29udmVydE1v
bm90b25pY1RpbWVUb0RvY3VtZW50VGltZShtb25vdG9uaWNGaW5pc2hUaW1lKTsKIAogICAgIGlm
ICh0aW1lbGluZUFnZW50KQotICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5n
UmVzb3VyY2UoaWRlbnRpZmllciwgZmFsc2UsIGZpbmlzaFRpbWUpOworICAgICAgICB0aW1lbGlu
ZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UoaWRlbnRpZmllciwgZmFsc2UsIGZpbmlz
aFRpbWUsIGxvYWRlci0+ZnJhbWUoKSk7CiAgICAgaWYgKHJlc291cmNlQWdlbnQpCiAgICAgICAg
IHJlc291cmNlQWdlbnQtPmRpZEZpbmlzaExvYWRpbmcoaWRlbnRpZmllciwgbG9hZGVyLCBmaW5p
c2hUaW1lKTsKIH0KQEAgLTY5OSw3ICs3MDcsNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bQog
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZhaWxMb2FkaW5nSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQog
ewogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGlu
ZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UoaWRlbnRpZmllciwgdHJ1ZSwgMCk7Cisg
ICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZShpZGVudGlmaWVy
LCB0cnVlLCAwLCBsb2FkZXItPmZyYW1lKCkpOwogICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50KiByZXNvdXJjZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudCgpKQogICAgICAgICByZXNvdXJjZUFnZW50LT5kaWRGYWlsTG9hZGluZyhpZGVudGlm
aWVyLCBsb2FkZXIsIGVycm9yKTsKICAgICBpZiAoSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25z
b2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JDb25zb2xlQWdlbnQoKSkK
QEAgLTc0Niw2ICs3NTQsOSBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVj
ZWl2ZVNjcmlwdFJlc3BvbnNlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKgogCiB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSkKIHsKKyAg
ICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKKyAgICAgICAgdGltZWxpbmVBZ2Vu
dC0+ZGlkTWFya0RPTUNvbnRlbnRFdmVudChmcmFtZSk7CisKICAgICBpZiAoZnJhbWUtPnBhZ2Uo
KS0+bWFpbkZyYW1lKCkgIT0gZnJhbWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzU1LDkgKzc2
Niw2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZl
bnRGaXJlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50CiAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50
KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTUFnZW50KCkpCiAg
ICAgICAgIGRvbUFnZW50LT5tYWluRnJhbWVET01Db250ZW50TG9hZGVkKCk7CiAKLSAgICBpZiAo
SW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlk
TWFya0RPTUNvbnRlbnRFdmVudCgpOwotCiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFn
ZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCiAgICAg
ICAgIHBhZ2VBZ2VudC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKIH0KQEAgLTc2NywxMiArNzc1
LDEyIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVuCiAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50
KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTUFnZW50KCkpCiAg
ICAgICAgIGRvbUFnZW50LT5sb2FkRXZlbnRGaXJlZChmcmFtZS0+ZG9jdW1lbnQoKSk7CiAKKyAg
ICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKKyAgICAgICAgdGltZWxpbmVBZ2Vu
dC0+ZGlkTWFya0xvYWRFdmVudChmcmFtZSk7CisKICAgICBpZiAoZnJhbWUtPnBhZ2UoKS0+bWFp
bkZyYW1lKCkgIT0gZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChJbnNwZWN0b3JU
aW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVj
dG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJrTG9hZEV2
ZW50KCk7Ci0KICAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKICAgICAgICAgcGFnZUFnZW50LT5s
b2FkRXZlbnRGaXJlZCgpOwogfQpAQCAtODIzLDExICs4MzEsMTEgQEAgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmxvYWRlckRldGFjaGVkRnJvbUZyYW1lSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKgogICAgICAgICBpbnNwZWN0b3JQYWdlQWdlbnQtPmxvYWRlckRldGFjaGVkRnJvbUZy
YW1lKGxvYWRlcik7CiB9CiAKLUluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxXcml0ZUhUTUxJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBz
dGFydExpbmUpCitJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsV3JpdGVIVE1MSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5l
LCBGcmFtZSogZnJhbWUpCiB7CiAgICAgaW50IHRpbWVsaW5lQWdlbnRJZCA9IDA7CiAgICAgaWYg
KEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpIHsKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+
d2lsbFdyaXRlSFRNTChsZW5ndGgsIHN0YXJ0TGluZSk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQt
PndpbGxXcml0ZUhUTUwobGVuZ3RoLCBzdGFydExpbmUsIGZyYW1lKTsKICAgICAgICAgdGltZWxp
bmVBZ2VudElkID0gdGltZWxpbmVBZ2VudC0+aWQoKTsKICAgICB9CiAgICAgcmV0dXJuIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZShpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lbGluZUFn
ZW50SWQpOwpAQCAtMTA3OCwyOSArMTA4NiwyOSBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6Y2FuY2VsUGF1c2VPbk5hdGl2ZUV2ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGlucwog
I2VuZGlmCiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IGludCBjYWxsYmFja0lkKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlcXVl
c3RBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgaW50IGNhbGxiYWNrSWQsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBwYXVzZU9uTmF0aXZl
RXZlbnRJZk5lZWRlZChpbnN0cnVtZW50aW5nQWdlbnRzLCBmYWxzZSwgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lRXZlbnROYW1lLCB0cnVlKTsKIAogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50
KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVB
Z2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
Y2FsbGJhY2tJZCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZFJlcXVlc3RBbmltYXRpb25G
cmFtZShjYWxsYmFja0lkLCBmcmFtZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRDYW5jZWxBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgaW50IGNhbGxiYWNrSWQpCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIGludCBjYWxsYmFja0lkLCBGcmFtZSogZnJhbWUpCiB7CiAg
ICAgcGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoaW5zdHJ1bWVudGluZ0FnZW50cywgZmFsc2Us
IGNhbmNlbEFuaW1hdGlvbkZyYW1lRXZlbnROYW1lLCB0cnVlKTsKIAogICAgIGlmIChJbnNwZWN0
b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5z
cGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRDYW5jZWxB
bmltYXRpb25GcmFtZShjYWxsYmFja0lkKTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkQ2Fu
Y2VsQW5pbWF0aW9uRnJhbWUoY2FsbGJhY2tJZCwgZnJhbWUpOwogfQogCi1JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRmlyZUFuaW1h
dGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBp
bnQgY2FsbGJhY2tJZCkKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxGaXJlQW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGludCBjYWxsYmFja0lkLCBGcmFtZSogZnJhbWUp
CiB7CiAgICAgcGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoaW5zdHJ1bWVudGluZ0FnZW50cywg
ZmFsc2UsIGFuaW1hdGlvbkZyYW1lRmlyZWRFdmVudE5hbWUsIGZhbHNlKTsKIAogICAgIGludCB0
aW1lbGluZUFnZW50SWQgPSAwOwogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1l
bGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgp
KSB7Ci0gICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxGaXJlQW5pbWF0aW9uRnJhbWUoY2FsbGJh
Y2tJZCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxGaXJlQW5pbWF0aW9uRnJhbWUoY2Fs
bGJhY2tJZCwgZnJhbWUpOwogICAgICAgICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50
LT5pZCgpOwogICAgIH0KICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
KGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVsaW5lQWdlbnRJZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggYzQ1ZTJh
ZjNmOWMzMDFlMGZlMzA4OTUzNTUwNzAzMTcxODQxZjdkZS4uNTA3Njk0OTdiMGYxMzQwYzUwYWU0
NTBhY2NhMTIwNDE0ZDJhMWQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMjgwLDM2ICsyODAsMzYgQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgYm9vbCBmb3JjZVBzZXVkb1N0YXRlSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiwgRWxlbWVudCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlKTsKIAogICAgIHN0YXRpYyB2
b2lkIHdpbGxTZW5kWE1MSHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25z
dCBTdHJpbmcmIHVybCk7Ci0gICAgc3RhdGljIHZvaWQgZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVl
c3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIHVybCk7Ci0gICAgc3Rh
dGljIHZvaWQgZGlkSW5zdGFsbFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgaW50IHRp
bWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOwotICAgIHN0YXRpYyB2b2lkIGRp
ZFJlbW92ZVRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgaW50IHRpbWVySWQpOworICAg
IHN0YXRpYyB2b2lkIGRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgY29uc3QgU3RyaW5nJiB1cmwsIEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgZGlk
SW5zdGFsbFRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgaW50IHRpbWVySWQsIGludCB0
aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICBz
dGF0aWMgdm9pZCBkaWRSZW1vdmVUaW1lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCB0
aW1lcklkLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKLSAgICBzdGF0aWMgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxDYWxsRnVuY3Rpb25JbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKKyAgICBz
dGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxDYWxsRnVuY3Rpb25JbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3Jp
cHRMaW5lLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2Fs
bEZ1bmN0aW9uSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKLSAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxDaGFuZ2VYSFJSZWFk
eVN0YXRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgWE1MSHR0cFJlcXVlc3QqKTsKKyAgICBz
dGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxDaGFuZ2VYSFJSZWFkeVN0
YXRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgWE1MSHR0cFJlcXVlc3QqLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZUlt
cGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGljIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hFdmVudEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyosIGNvbnN0IEV2ZW50JiwgRE9NV2luZG93KiwgTm9kZSosIGNvbnN0IFZl
Y3RvcjxFdmVudENvbnRleHQ+JiBhbmNlc3RvcnMpOworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgd2lsbERpc3BhdGNoRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBjb25zdCBFdmVudCYsIERPTVdpbmRvdyosIE5vZGUqLCBjb25zdCBWZWN0b3I8RXZlbnRD
b250ZXh0PiYgYW5jZXN0b3JzLCBEb2N1bWVudCopOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgd2lsbEhhbmRsZUV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiwgRXZlbnQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRIYW5kbGVFdmVudEltcGwoY29uc3QgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0
Y2hFdmVudEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAg
c3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hFdmVudE9u
V2luZG93SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgRXZlbnQmLCBET01XaW5kb3cq
KTsKICAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsKGNvbnN0IElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwotICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgd2lsbEV2YWx1YXRlU2NyaXB0SW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyKTsKKyAgICBzdGF0aWMgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxFdmFsdWF0ZVNjcmlwdEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgbGluZU51bWJlciwgRnJhbWUq
KTsKICAgICBzdGF0aWMgdm9pZCBkaWRFdmFsdWF0ZVNjcmlwdEltcGwoY29uc3QgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlSXNvbGF0
ZWRDb250ZXh0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqLCBTY3JpcHRTdGF0ZSos
IFNlY3VyaXR5T3JpZ2luKik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSB3aWxsRmlyZVRpbWVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgaW50IHRpbWVySWQp
OworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbEZpcmVUaW1l
ckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCB0aW1lcklkLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkRmlyZVRpbWVySW1wbChjb25zdCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRCZWdpbkZyYW1l
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FuY2VsRnJh
bWVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llIHdpbGxMYXlvdXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKKyAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxMYXlvdXRJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZExheW91dElt
cGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGljIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsTG9hZFhIUkltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIFhNTEh0dHBSZXF1ZXN0Kik7CisgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSB3aWxsTG9hZFhIUkltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFhNTEh0
dHBSZXF1ZXN0KiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2b2lkIGRp
ZExvYWRYSFJJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwotICAg
IHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFBhaW50SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYpOwor
ICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFBhaW50SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYs
IEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZGlkUGFpbnRJbXBsKGNvbnN0IEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxDb21wb3NpdGVJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDb21wb3NpdGVJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIHdpbGxSZWNhbGN1bGF0ZVN0eWxlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7
CisgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUmVjYWxjdWxh
dGVTdHlsZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CiAgICAgc3RhdGljIHZv
aWQgZGlkUmVjYWxjdWxhdGVTdHlsZUltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llJik7CiAgICAgc3RhdGljIHZvaWQgZGlkU2NoZWR1bGVTdHlsZVJlY2FsY3VsYXRpb25J
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVudCopOwogICAgIHN0YXRpYyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbE1hdGNoUnVsZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIGNvbnN0IFN0eWxlUnVsZSopOwpAQCAtMzI2LDkgKzMyNiw5IEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIHZvaWQgY29udGludWVBZnRlclBpbmdMb2FkZXJJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHN0YXRpYyB2b2lkIG1h
cmtSZXNvdXJjZUFzQ2FjaGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyKTsKICAgICBzdGF0aWMgdm9pZCBkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5
Q2FjaGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVudExvYWRlciosIENhY2hlZFJl
c291cmNlKik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxs
UmVjZWl2ZVJlc291cmNlRGF0YUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllcik7CisgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSB3aWxsUmVjZWl2ZVJlc291cmNlRGF0YUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZl
UmVzb3VyY2VEYXRhSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsK
LSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxSZWNlaXZlUmVz
b3VyY2VSZXNwb25zZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHN0YXRpYyBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUgd2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VS
ZXNwb25zZUltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUJ1dENhbmNl
bGVkSW1wbChGcmFtZSosIERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgc3RhdGljIHZvaWQgY29udGludWVBZnRl
clhGcmFtZU9wdGlvbnNEZW5pZWRJbXBsKEZyYW1lKiwgRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKQEAgLTM0OSw3ICsz
NDksNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBQYWdlKiwgRG9jdW1lbnRMb2FkZXIqKTsKICAgICBzdGF0aWMgdm9p
ZCBsb2FkZXJEZXRhY2hlZEZyb21GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIERvY3Vt
ZW50TG9hZGVyKik7CiAKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
IHdpbGxXcml0ZUhUTUxJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBpbnQgbGVu
Z3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llIHdpbGxXcml0ZUhUTUxJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1
bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lLCBGcmFtZSopOwogICAg
IHN0YXRpYyB2b2lkIGRpZFdyaXRlSFRNTEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llJiwgdW5zaWduZWQgaW50IGVuZExpbmUpOwogCiAgICAgc3RhdGljIHZvaWQgYWRk
TWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1Jl
ZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwpAQCAt
MzU5LDkgKzM1OSw5IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgc3RvcENvbnNvbGVUaW1p
bmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVUaW1lU3RhbXBJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwog
Ci0gICAgc3RhdGljIHZvaWQgZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgaW50IGNhbGxiYWNrSWQpOwotICAgIHN0YXRpYyB2b2lkIGRpZENhbmNlbEFu
aW1hdGlvbkZyYW1lSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgaW50IGNhbGxiYWNrSWQpOwot
ICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbEZpcmVBbmltYXRp
b25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCBjYWxsYmFja0lkKTsKKyAgICBz
dGF0aWMgdm9pZCBkaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBpbnQgY2FsbGJhY2tJZCwgRnJhbWUqKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDYW5jZWxB
bmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCBjYWxsYmFja0lkLCBG
cmFtZSopOworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbEZp
cmVBbmltYXRpb25GcmFtZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGludCBjYWxsYmFja0lk
LCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZEZpcmVBbmltYXRpb25GcmFtZUltcGwoY29u
c3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAKICNpZiBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikKQEAgLTU4Nyw3ICs1ODcsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KERvY3VtZW50KiBkb2N1
bQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRT
KHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRG9jdW1lbnQoZG9jdW1lbnQpKQotICAgICAgICBk
aWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgdXJsKTsK
KyAgICAgICAgZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RJbXBsKGluc3RydW1lbnRpbmdBZ2Vu
dHMsIHVybCwgZG9jdW1lbnQtPmZyYW1lKCkpOwogI2VuZGlmCiB9CiAKQEAgLTU5Niw3ICs1OTYs
NyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEluc3RhbGxUaW1l
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjbwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAg
RkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29u
dGV4dChjb250ZXh0KSkKLSAgICAgICAgZGlkSW5zdGFsbFRpbWVySW1wbChpbnN0cnVtZW50aW5n
QWdlbnRzLCB0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90KTsKKyAgICAgICAgZGlkSW5zdGFs
bFRpbWVySW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVT
aG90LCBjb250ZXh0KTsKICNlbmRpZgogfQogCkBAIC02MDUsNyArNjA1LDcgQEAgaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZW1vdmVUaW1lcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb24KICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lG
X05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dCkp
Ci0gICAgICAgIGRpZFJlbW92ZVRpbWVySW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCB0aW1lcklk
KTsKKyAgICAgICAgZGlkUmVtb3ZlVGltZXJJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVy
SWQsIGNvbnRleHQpOwogI2VuZGlmCiB9CiAKQEAgLTYxNCw3ICs2MTQsNyBAQCBpbmxpbmUgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bENhbGxGdW5jdGlvbgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZf
Tk9fRlJPTlRFTkRTKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpKTsKICAgICBpZiAo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdB
Z2VudHNGb3JDb250ZXh0KGNvbnRleHQpKQotICAgICAgICByZXR1cm4gd2lsbENhbGxGdW5jdGlv
bkltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgc2NyaXB0TmFtZSwgc2NyaXB0TGluZSk7CisgICAg
ICAgIHJldHVybiB3aWxsQ2FsbEZ1bmN0aW9uSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBzY3Jp
cHROYW1lLCBzY3JpcHRMaW5lLCBjb250ZXh0KTsKICNlbmRpZgogICAgIHJldHVybiBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsKIH0KQEAgLTYzNCw3ICs2MzQsNyBAQCBpbmxpbmUg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbENoYW5nZVhIUlJlYQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5f
SUZfTk9fRlJPTlRFTkRTKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpKTsKICAgICBp
ZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRp
bmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHQpKQotICAgICAgICByZXR1cm4gd2lsbENoYW5nZVhI
UlJlYWR5U3RhdGVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHJlcXVlc3QpOworICAgICAgICBy
ZXR1cm4gd2lsbENoYW5nZVhIUlJlYWR5U3RhdGVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHJl
cXVlc3QsIGNvbnRleHQpOwogI2VuZGlmCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSgpOwogfQpAQCAtNjUzLDcgKzY1Myw3IEBAIGlubGluZSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hF
dmVuCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVO
RFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCkpOwogICAgIGlmIChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRv
Y3VtZW50KGRvY3VtZW50KSkKLSAgICAgICAgcmV0dXJuIHdpbGxEaXNwYXRjaEV2ZW50SW1wbChp
bnN0cnVtZW50aW5nQWdlbnRzLCBldmVudCwgd2luZG93LCBub2RlLCBhbmNlc3RvcnMpOworICAg
ICAgICByZXR1cm4gd2lsbERpc3BhdGNoRXZlbnRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGV2
ZW50LCB3aW5kb3csIG5vZGUsIGFuY2VzdG9ycywgZG9jdW1lbnQpOwogI2VuZGlmCiAgICAgcmV0
dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpOwogfQpAQCAtNzEwLDcgKzcxMCw3
IEBAIGlubGluZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBG
QVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
KCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0g
aW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKLSAgICAgICAgcmV0dXJuIHdpbGxF
dmFsdWF0ZVNjcmlwdEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgdXJsLCBsaW5lTnVtYmVyKTsK
KyAgICAgICAgcmV0dXJuIHdpbGxFdmFsdWF0ZVNjcmlwdEltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgdXJsLCBsaW5lTnVtYmVyLCBmcmFtZSk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CiB9CkBAIC03MzgsNyArNzM4LDcgQEAgaW5saW5lIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxGaXJlVGltZXIoU2MKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lG
X05PX0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKSk7CiAgICAgaWYg
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5n
QWdlbnRzRm9yQ29udGV4dChjb250ZXh0KSkKLSAgICAgICAgcmV0dXJuIHdpbGxGaXJlVGltZXJJ
bXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVySWQpOworICAgICAgICByZXR1cm4gd2lsbEZp
cmVUaW1lckltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZXJJZCwgY29udGV4dCk7CiAjZW5k
aWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CiB9CkBAIC03
NzUsNyArNzc1LDcgQEAgaW5saW5lIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxMYXlvdXQoRnJhbWUKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25Db29raWUoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICBy
ZXR1cm4gd2lsbExheW91dEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cyk7CisgICAgICAgIHJldHVy
biB3aWxsTGF5b3V0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBmcmFtZSk7CiAjZW5kaWYKICAg
ICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CiB9CkBAIC03OTQsNyAr
Nzk0LDcgQEAgaW5saW5lIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxMb2FkWEhSKFNjcmkKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQog
ICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0KSkKLSAgICAgICAgcmV0
dXJuIHdpbGxMb2FkWEhSSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCByZXF1ZXN0KTsKKyAgICAg
ICAgcmV0dXJuIHdpbGxMb2FkWEhSSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCByZXF1ZXN0LCBj
b250ZXh0KTsKICNlbmRpZgogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUoKTsKIH0KQEAgLTgxMyw3ICs4MTMsNyBAQCBpbmxpbmUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KEZyYW1lKgogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFt
ZSkpCi0gICAgICAgIHJldHVybiB3aWxsUGFpbnRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGNv
bnRleHQsIHJlY3QpOworICAgICAgICByZXR1cm4gd2lsbFBhaW50SW1wbChpbnN0cnVtZW50aW5n
QWdlbnRzLCBjb250ZXh0LCByZWN0LCBmcmFtZSk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CiB9CkBAIC04NTAsNyArODUwLDcgQEAgaW5saW5l
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxSZWNhbGN1bGF0ZVMKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJO
X0lGX05PX0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKSk7CiAgICAg
aWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50
aW5nQWdlbnRzRm9yRG9jdW1lbnQoZG9jdW1lbnQpKQotICAgICAgICByZXR1cm4gd2lsbFJlY2Fs
Y3VsYXRlU3R5bGVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMpOworICAgICAgICByZXR1cm4gd2ls
bFJlY2FsY3VsYXRlU3R5bGVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGRvY3VtZW50LT5mcmFt
ZSgpKTsKICNlbmRpZgogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUo
KTsKIH0KQEAgLTk5Nyw3ICs5OTcsNyBAQCBpbmxpbmUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdQogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkp
Ci0gICAgICAgIHJldHVybiB3aWxsUmVjZWl2ZVJlc291cmNlRGF0YUltcGwoaW5zdHJ1bWVudGlu
Z0FnZW50cywgaWRlbnRpZmllcik7CisgICAgICAgIHJldHVybiB3aWxsUmVjZWl2ZVJlc291cmNl
RGF0YUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgaWRlbnRpZmllciwgZnJhbWUpOwogI2VuZGlm
CiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpOwogfQpAQCAtMTAx
NSw3ICsxMDE1LDcgQEAgaW5saW5lIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3UKIHsKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
ID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKLSAgICAgICAgcmV0dXJuIHdp
bGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgaWRlbnRp
ZmllciwgcmVzcG9uc2UpOworICAgICAgICByZXR1cm4gd2lsbFJlY2VpdmVSZXNvdXJjZVJlc3Bv
bnNlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBpZGVudGlmaWVyLCByZXNwb25zZSwgZnJhbWUp
OwogI2VuZGlmCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpOwog
fQpAQCAtMTE3NCw3ICsxMTc0LDcgQEAgaW5saW5lIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxXcml0ZUhUTUwoRG8KICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRG9jdW1lbnQoZG9jdW1l
bnQpKQotICAgICAgICByZXR1cm4gd2lsbFdyaXRlSFRNTEltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgbGVuZ3RoLCBzdGFydExpbmUpOworICAgICAgICByZXR1cm4gd2lsbFdyaXRlSFRNTEltcGwo
aW5zdHJ1bWVudGluZ0FnZW50cywgbGVuZ3RoLCBzdGFydExpbmUsIGRvY3VtZW50LT5mcmFtZSgp
KTsKICNlbmRpZgogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsK
IH0KQEAgLTEzMzAsNyArMTMzMCw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lKERvY3VtZW50KiBkb2N1bWVuCiB7CiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JEb2N1bWVudChkb2N1bWVudCkpCi0g
ICAgICAgIGRpZFJlcXVlc3RBbmltYXRpb25GcmFtZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywg
Y2FsbGJhY2tJZCk7CisgICAgICAgIGRpZFJlcXVlc3RBbmltYXRpb25GcmFtZUltcGwoaW5zdHJ1
bWVudGluZ0FnZW50cywgY2FsbGJhY2tJZCwgZG9jdW1lbnQtPmZyYW1lKCkpOwogI2VuZGlmCiB9
CiAKQEAgLTEzMzgsNyArMTMzOCw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWUoRG9jdW1lbnQqIGRvY3VtZW50CiB7CiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JEb2N1bWVudChkb2N1bWVudCkpCi0g
ICAgICAgIGRpZENhbmNlbEFuaW1hdGlvbkZyYW1lSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBj
YWxsYmFja0lkKTsKKyAgICAgICAgZGlkQ2FuY2VsQW5pbWF0aW9uRnJhbWVJbXBsKGluc3RydW1l
bnRpbmdBZ2VudHMsIGNhbGxiYWNrSWQsIGRvY3VtZW50LT5mcmFtZSgpKTsKICNlbmRpZgogfQog
CkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBpbmxpbmUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEZpcmVBbmltYXRpbwogewogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRG9jdW1lbnQoZG9jdW1lbnQpKQotICAg
ICAgICByZXR1cm4gd2lsbEZpcmVBbmltYXRpb25GcmFtZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgY2FsbGJhY2tJZCk7CisgICAgICAgIHJldHVybiB3aWxsRmlyZUFuaW1hdGlvbkZyYW1lSW1w
bChpbnN0cnVtZW50aW5nQWdlbnRzLCBjYWxsYmFja0lkLCBkb2N1bWVudC0+ZnJhbWUoKSk7CiAj
ZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5j
cHAKaW5kZXggNTA5NjVmZWQ1NGQxOWE0NTgwZjU4NjE3NDdkM2U2MmE3ZDUxOWMxZi4uZDY1N2E0
ZGY0NDczNTViMmUzNjMyYTlhOTQ5NTA5MTY3MGQzOTkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMzUsMTAgKzM1
LDEyIEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogCiAjaW5jbHVkZSAi
RXZlbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIklkZW50aWZpZXJzRmFjdG9y
eS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNv
dW50ZXJzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKKyNpbmNsdWRlICJJbnNw
ZWN0b3JQYWdlQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUg
Ikluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCkBAIC0xMDYsNyAr
MTA4LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoR0NFdmVudFJlY29yZHMo
KQogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQodGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyhp
LT5zdGFydFRpbWUpLCBtX21heENhbGxTdGFja0RlcHRoKTsKICAgICAgICAgcmVjb3JkLT5zZXRP
YmplY3QoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdDRXZlbnREYXRhKGkt
PmNvbGxlY3RlZEJ5dGVzKSk7CiAgICAgICAgIHJlY29yZC0+c2V0TnVtYmVyKCJlbmRUaW1lIiwg
dGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyhpLT5lbmRUaW1lKSk7Ci0gICAgICAgIGFkZFJlY29y
ZFRvVGltZWxpbmUocmVjb3JkLnJlbGVhc2UoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpHQ0V2ZW50
KTsKKyAgICAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQucmVsZWFzZSgpLCBUaW1lbGlu
ZVJlY29yZFR5cGU6OkdDRXZlbnQsIFN0cmluZygpKTsKICAgICB9CiB9CiAKQEAgLTE4Miw3ICsx
ODQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN1cHBvcnRzRnJhbWVJbnN0cnVt
ZW50YXRpb24oRXJyb3JTdHJpbmcqLCBib29sKiByZQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZEJlZ2luRnJhbWUoKQogewotICAgIHB1c2hDYW5jZWxhYmxlUmVjb3JkKEluc3Bl
Y3Rvck9iamVjdDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6QmVnaW5GcmFtZSk7Cisg
ICAgcHVzaENhbmNlbGFibGVSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgVGltZWxp
bmVSZWNvcmRUeXBlOjpCZWdpbkZyYW1lLCAwKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpkaWRDYW5jZWxGcmFtZSgpCkBAIC0xOTAsOSArMTkyLDkgQEAgdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpkaWRDYW5jZWxGcmFtZSgpCiAgICAgY2FuY2VsUmVjb3JkKFRpbWVs
aW5lUmVjb3JkVHlwZTo6QmVnaW5GcmFtZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbENhbGxGdW5jdGlvbihjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3Jp
cHRMaW5lKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2FsbEZ1bmN0aW9uKGNv
bnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIEZyYW1lKiBmcmFtZSkKIHsK
LSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0
aW9uQ2FsbERhdGEoc2NyaXB0TmFtZSwgc2NyaXB0TGluZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6
RnVuY3Rpb25DYWxsLCB0cnVlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoc2NyaXB0TmFtZSwgc2NyaXB0TGluZSks
IFRpbWVsaW5lUmVjb3JkVHlwZTo6RnVuY3Rpb25DYWxsLCB0cnVlLCBmcmFtZSk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ2FsbEZ1bmN0aW9uKCkKQEAgLTIwMCw5ICsy
MDIsOSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENhbGxGdW5jdGlvbigpCiAg
ICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6RnVuY3Rpb25D
YWxsKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGlzcGF0Y2hFdmVu
dChjb25zdCBFdmVudCYgZXZlbnQpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxE
aXNwYXRjaEV2ZW50KGNvbnN0IEV2ZW50JiBldmVudCwgRnJhbWUqIGZyYW1lKQogewotICAgIHB1
c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRj
aERhdGEoZXZlbnQpLCBUaW1lbGluZVJlY29yZFR5cGU6OkV2ZW50RGlzcGF0Y2gsIGZhbHNlKTsK
KyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2ZW50
RGlzcGF0Y2hEYXRhKGV2ZW50KSwgVGltZWxpbmVSZWNvcmRUeXBlOjpFdmVudERpc3BhdGNoLCBm
YWxzZSwgZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZERpc3Bh
dGNoRXZlbnQoKQpAQCAtMjEwLDkgKzIxMiw5IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkRGlzcGF0Y2hFdmVudCgpCiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVs
aW5lUmVjb3JkVHlwZTo6RXZlbnREaXNwYXRjaCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6d2lsbExheW91dCgpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxM
YXlvdXQoRnJhbWUqIGZyYW1lKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6TGF5b3V0LCB0cnVlKTsKKyAgICBw
dXNoQ3VycmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29y
ZFR5cGU6OkxheW91dCwgdHJ1ZSwgZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZExheW91dCgpCkBAIC0yMjAsOSArMjIyLDkgQEAgdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRMYXlvdXQoKQogICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1l
bGluZVJlY29yZFR5cGU6OkxheW91dCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbFJlY2FsY3VsYXRlU3R5bGUoKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3
aWxsUmVjYWxjdWxhdGVTdHlsZShGcmFtZSogZnJhbWUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNv
cmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpSZWNhbGN1
bGF0ZVN0eWxlcywgdHJ1ZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0
OjpjcmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpSZWNhbGN1bGF0ZVN0eWxlcywgdHJ1ZSwg
ZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlY2FsY3VsYXRl
U3R5bGUoKQpAQCAtMjMwLDkgKzIzMiw5IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
ZGlkUmVjYWxjdWxhdGVTdHlsZSgpCiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVs
aW5lUmVjb3JkVHlwZTo6UmVjYWxjdWxhdGVTdHlsZXMpOwogfQogCi12b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OndpbGxQYWludChjb25zdCBMYXlvdXRSZWN0JiByZWN0KQordm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUGFpbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgRnJh
bWUqIGZyYW1lKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlUGFpbnREYXRhKHJlY3QpLCBUaW1lbGluZVJlY29yZFR5cGU6OlBhaW50LCB0cnVl
KTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBh
aW50RGF0YShyZWN0KSwgVGltZWxpbmVSZWNvcmRUeXBlOjpQYWludCwgdHJ1ZSwgZnJhbWUpOwog
fQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFBhaW50KCkKQEAgLTI0Miw3ICsy
NDQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFBhaW50KCkKIAogdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ29tcG9zaXRlKCkKIHsKLSAgICBwdXNoQ3VycmVu
dFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OkNv
bXBvc2l0ZUxheWVycywgZmFsc2UpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6Q29tcG9zaXRlTGF5ZXJzLCBmYWxz
ZSwgMCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcG9zaXRlKCkK
QEAgLTI1MCw5ICsyNTIsOSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBv
c2l0ZSgpCiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6
Q29tcG9zaXRlTGF5ZXJzKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxs
V3JpdGVIVE1MKHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpCit2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxXcml0ZUhUTUwodW5zaWduZWQgaW50IGxl
bmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSwgRnJhbWUqIGZyYW1lKQogewotICAgIHB1c2hD
dXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFyc2VIVE1MRGF0YShs
ZW5ndGgsIHN0YXJ0TGluZSksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UGFyc2VIVE1MLCB0cnVlKTsK
KyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhcnNl
SFRNTERhdGEobGVuZ3RoLCBzdGFydExpbmUpLCBUaW1lbGluZVJlY29yZFR5cGU6OlBhcnNlSFRN
TCwgdHJ1ZSwgZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFdy
aXRlSFRNTCh1bnNpZ25lZCBpbnQgZW5kTGluZSkKQEAgLTI2NCwxOSArMjY2LDE5IEBAIHZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkV3JpdGVIVE1MKHVuc2lnbmVkIGludCBlbmRMaW5l
KQogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGlt
ZXIoaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpCit2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmRpZEluc3RhbGxUaW1lcihpbnQgdGltZXJJZCwgaW50IHRpbWVv
dXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqIGZyYW1lKQogewotICAgIGFwcGVuZFJlY29yZChU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEodGltZXJJZCwgdGlt
ZW91dCwgc2luZ2xlU2hvdCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6VGltZXJJbnN0YWxsLCB0cnVl
KTsKKyAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lcklu
c3RhbGxEYXRhKHRpbWVySWQsIHRpbWVvdXQsIHNpbmdsZVNob3QpLCBUaW1lbGluZVJlY29yZFR5
cGU6OlRpbWVySW5zdGFsbCwgdHJ1ZSwgZnJhbWUpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkKQordm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRSZW1vdmVUaW1lcihpbnQgdGltZXJJZCwgRnJhbWUqIGZyYW1lKQogewot
ICAgIGFwcGVuZFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNUaW1l
ckRhdGEodGltZXJJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6VGltZXJSZW1vdmUsIHRydWUpOwor
ICAgIGFwcGVuZFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNUaW1l
ckRhdGEodGltZXJJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6VGltZXJSZW1vdmUsIHRydWUsIGZy
YW1lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRmlyZVRpbWVyKGlu
dCB0aW1lcklkKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRmlyZVRpbWVyKGlu
dCB0aW1lcklkLCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKHRpbWVySWQpLCBUaW1lbGlu
ZVJlY29yZFR5cGU6OlRpbWVyRmlyZSwgZmFsc2UpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YSh0aW1lcklkKSwgVGlt
ZWxpbmVSZWNvcmRUeXBlOjpUaW1lckZpcmUsIGZhbHNlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmlyZVRpbWVyKCkKQEAgLTI4NCw5ICsyODYsOSBAQCB2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpcmVUaW1lcigpCiAgICAgZGlkQ29tcGxl
dGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6VGltZXJGaXJlKTsKIH0KIAotdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZShjb25zdCBT
dHJpbmcmIHVybCwgaW50IHJlYWR5U3RhdGUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OndpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlKGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgcmVhZHlTdGF0
ZSwgRnJhbWUqIGZyYW1lKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlWEhSUmVhZHlTdGF0ZUNoYW5nZURhdGEodXJsLCByZWFkeVN0YXRlKSwg
VGltZWxpbmVSZWNvcmRUeXBlOjpYSFJSZWFkeVN0YXRlQ2hhbmdlLCBmYWxzZSk7CisgICAgcHVz
aEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJSZWFkeVN0YXRl
Q2hhbmdlRGF0YSh1cmwsIHJlYWR5U3RhdGUpLCBUaW1lbGluZVJlY29yZFR5cGU6OlhIUlJlYWR5
U3RhdGVDaGFuZ2UsIGZhbHNlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZSgpCkBAIC0yOTQsOSArMjk2LDkgQEAgdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDaGFuZ2VYSFJSZWFkeVN0YXRlKCkKICAgICBkaWRD
b21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpYSFJSZWFkeVN0YXRlQ2hh
bmdlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTG9hZFhIUihjb25z
dCBTdHJpbmcmIHVybCkgCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxMb2FkWEhS
KGNvbnN0IFN0cmluZyYgdXJsLCBGcmFtZSogZnJhbWUpIAogewotICAgIHB1c2hDdXJyZW50UmVj
b3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEodXJsKSwgVGltZWxp
bmVSZWNvcmRUeXBlOjpYSFJMb2FkLCB0cnVlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUkxvYWREYXRhKHVybCksIFRpbWVsaW5lUmVjb3Jk
VHlwZTo6WEhSTG9hZCwgdHJ1ZSwgZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZExvYWRYSFIoKQpAQCAtMzA0LDkgKzMwNiw5IEBAIHZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkTG9hZFhIUigpCiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRp
bWVsaW5lUmVjb3JkVHlwZTo6WEhSTG9hZCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbEV2YWx1YXRlU2NyaXB0KGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgbGluZU51bWJl
cikKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbEV2YWx1YXRlU2NyaXB0KGNvbnN0
IFN0cmluZyYgdXJsLCBpbnQgbGluZU51bWJlciwgRnJhbWUqIGZyYW1lKQogewotICAgIHB1c2hD
dXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHRE
YXRhKHVybCwgbGluZU51bWJlciksIFRpbWVsaW5lUmVjb3JkVHlwZTo6RXZhbHVhdGVTY3JpcHQs
IHRydWUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlRXZhbHVhdGVTY3JpcHREYXRhKHVybCwgbGluZU51bWJlciksIFRpbWVsaW5lUmVjb3JkVHlw
ZTo6RXZhbHVhdGVTY3JpcHQsIHRydWUsIGZyYW1lKTsKIH0KICAgICAKIHZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6ZGlkRXZhbHVhdGVTY3JpcHQoKQpAQCAtMzE0LDI4ICszMTYsMzIgQEAg
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRFdmFsdWF0ZVNjcmlwdCgpCiAgICAgZGlk
Q29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6RXZhbHVhdGVTY3JpcHQp
OwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFNjaGVkdWxlUmVzb3VyY2VS
ZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdChjb25zdCBTdHJpbmcmIHVybCwgRnJhbWUqIGZyYW1l
KQogewotICAgIGFwcGVuZFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVNjaGVk
dWxlUmVzb3VyY2VSZXF1ZXN0RGF0YSh1cmwpLCBUaW1lbGluZVJlY29yZFR5cGU6OlNjaGVkdWxl
UmVzb3VyY2VSZXF1ZXN0LCB0cnVlKTsKKyAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEodXJsKSwgVGltZWxpbmVS
ZWNvcmRUeXBlOjpTY2hlZHVsZVJlc291cmNlUmVxdWVzdCwgdHJ1ZSwgZnJhbWUpOwogfQogCi12
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsU2VuZFJlc291cmNlUmVxdWVzdCh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRnJhbWUq
IGZyYW1lKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwogICAgIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IHJlY29yZFJhdyA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJp
Y1JlY29yZCh0aW1lc3RhbXAoKSwgbV9tYXhDYWxsU3RhY2tEZXB0aCk7CiAgICAgU3RyaW5nIHJl
cXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpOwogICAg
IHJlY29yZFJhdy0+c2V0T2JqZWN0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShyZXF1ZXN0SWQsIHJlcXVlc3QpKTsKICAgICByZWNv
cmRSYXctPnNldFN0cmluZygidHlwZSIsIFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVzb3VyY2VTZW5k
UmVxdWVzdCk7CisgICAgaWYgKGZyYW1lICYmIG1fcGFnZUFnZW50KSB7CisgICAgICAgIFN0cmlu
ZyBmcmFtZUlkKG1fcGFnZUFnZW50LT5mcmFtZUlkKGZyYW1lKSk7CisgICAgICAgIHJlY29yZFJh
dy0+c2V0U3RyaW5nKCJmcmFtZUlkIiwgZnJhbWVJZCk7CisgICAgfQogICAgIHNldEhlYXBTaXpl
U3RhdGlzdGljKHJlY29yZFJhdy5nZXQoKSk7CiAgICAgLy8gRklYTUU6IHJ1bnRpbWVDYXN0IGlz
IGEgaGFjay4gV2UgZG8gaXQgYmVjYXVzZSB3ZSBjYW4ndCBidWlsZCBUaW1lbGluZUV2ZW50IGRp
cmVjdGx5IG5vdy4KICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2
ZW50PiByZWNvcmQgPSBUeXBlQnVpbGRlcjo6VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ6OnJ1bnRp
bWVDYXN0KHJlY29yZFJhdy5yZWxlYXNlKCkpOwogICAgIG1fZnJvbnRlbmQtPmV2ZW50UmVjb3Jk
ZWQocmVjb3JkLnJlbGVhc2UoKSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
d2lsbFJlY2VpdmVSZXNvdXJjZURhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQordm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBTdHJpbmcgcmVxdWVzdElkID0g
SWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7Ci0gICAgcHVzaEN1cnJl
bnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRh
KHJlcXVlc3RJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVzb3VyY2VSZWNlaXZlZERhdGEsIGZh
bHNlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZVJlY2VpdmVSZXNvdXJjZURhdGEocmVxdWVzdElkKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpSZXNv
dXJjZVJlY2VpdmVkRGF0YSwgZmFsc2UsIGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRSZWNlaXZlUmVzb3VyY2VEYXRhKCkKQEAgLTM0MywxMCArMzQ5LDEwIEBA
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YSgpCiAg
ICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVzb3VyY2VS
ZWNlaXZlZERhdGEpOwogfQogICAgIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxs
UmVjZWl2ZVJlc291cmNlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBTdHJp
bmcgcmVxdWVzdElkID0gSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7
Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNv
dXJjZVJlY2VpdmVSZXNwb25zZURhdGEocmVxdWVzdElkLCByZXNwb25zZSksIFRpbWVsaW5lUmVj
b3JkVHlwZTo6UmVzb3VyY2VSZWNlaXZlUmVzcG9uc2UsIGZhbHNlKTsKKyAgICBwdXNoQ3VycmVu
dFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3Bv
bnNlRGF0YShyZXF1ZXN0SWQsIHJlc3BvbnNlKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpSZXNvdXJj
ZVJlY2VpdmVSZXNwb25zZSwgZmFsc2UsIGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSgpCkBAIC0zNTQsMjQgKzM2MCwy
NCBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3Bv
bnNlKCkKICAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpS
ZXNvdXJjZVJlY2VpdmVSZXNwb25zZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9v
bCBkaWRGYWlsLCBkb3VibGUgZmluaXNoVGltZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9v
bCBkaWRGYWlsLCBkb3VibGUgZmluaXNoVGltZSwgRnJhbWUqIGZyYW1lKQogewotICAgIGFwcGVu
ZFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlRmluaXNoRGF0YShJ
ZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgZGlkRmFpbCwgZmluaXNo
VGltZSAqIDEwMDApLCBUaW1lbGluZVJlY29yZFR5cGU6OlJlc291cmNlRmluaXNoLCBmYWxzZSk7
CisgICAgYXBwZW5kUmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VG
aW5pc2hEYXRhKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCBkaWRG
YWlsLCBmaW5pc2hUaW1lICogMTAwMCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVzb3VyY2VGaW5p
c2gsIGZhbHNlLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
VGltZVN0YW1wKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lU3RhbXBEYXRhKG1lc3NhZ2UpLCBUaW1lbGlu
ZVJlY29yZFR5cGU6OlRpbWVTdGFtcCwgdHJ1ZSk7CisgICAgYXBwZW5kUmVjb3JkKFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZVN0YW1wRGF0YShtZXNzYWdlKSwgVGltZWxpbmVSZWNv
cmRUeXBlOjpUaW1lU3RhbXAsIHRydWUsIDApOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZE1hcmtET01Db250ZW50RXZlbnQoKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRNYXJrRE9NQ29udGVudEV2ZW50KEZyYW1lKiBmcmFtZSkKIHsKLSAgICBhcHBlbmRS
ZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpNYXJr
RE9NQ29udGVudCwgZmFsc2UpOworICAgIGFwcGVuZFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6Ok1hcmtET01Db250ZW50LCBmYWxzZSwgZnJhbWUp
OwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtMb2FkRXZlbnQoKQor
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrTG9hZEV2ZW50KEZyYW1lKiBmcmFt
ZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgVGltZWxp
bmVSZWNvcmRUeXBlOjpNYXJrTG9hZCwgZmFsc2UpOworICAgIGFwcGVuZFJlY29yZChJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6Ok1hcmtMb2FkLCBmYWxzZSwg
ZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbW1pdExvYWQo
KQpAQCAtMzc5LDE5ICszODUsMTkgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRD
b21taXRMb2FkKCkKICAgICBjbGVhclJlY29yZFN0YWNrKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6ZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkKQor
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaW50
IGNhbGxiYWNrSWQsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVBbmltYXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVs
aW5lUmVjb3JkVHlwZTo6UmVxdWVzdEFuaW1hdGlvbkZyYW1lLCB0cnVlKTsKKyAgICBhcHBlbmRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVBbmltYXRpb25GcmFtZURhdGEoY2Fs
bGJhY2tJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVxdWVzdEFuaW1hdGlvbkZyYW1lLCB0cnVl
LCBmcmFtZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ2FuY2VsQW5p
bWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZENhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkLCBGcmFtZSogZnJhbWUpCiB7
Ci0gICAgYXBwZW5kUmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlQW5pbWF0aW9u
RnJhbWVEYXRhKGNhbGxiYWNrSWQpLCBUaW1lbGluZVJlY29yZFR5cGU6OkNhbmNlbEFuaW1hdGlv
bkZyYW1lLCB0cnVlKTsKKyAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVBbmltYXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6
Q2FuY2VsQW5pbWF0aW9uRnJhbWUsIHRydWUsIGZyYW1lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50Ojp3aWxsRmlyZUFuaW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkKQordm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRmlyZUFuaW1hdGlvbkZyYW1lKGludCBjYWxs
YmFja0lkLCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVBbmltYXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVs
aW5lUmVjb3JkVHlwZTo6RmlyZUFuaW1hdGlvbkZyYW1lLCBmYWxzZSk7CisgICAgcHVzaEN1cnJl
bnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVBbmltYXRpb25GcmFtZURhdGEo
Y2FsbGJhY2tJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6RmlyZUFuaW1hdGlvbkZyYW1lLCBmYWxz
ZSwgZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpcmVBbmlt
YXRpb25GcmFtZSgpCkBAIC0zOTksMTYgKzQwNSwxOCBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZEZpcmVBbmltYXRpb25GcmFtZSgpCiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVj
b3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6RmlyZUFuaW1hdGlvbkZyYW1lKTsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiByZWNvcmQsIGNvbnN0IFN0cmluZyYgdHlwZSkKK3ZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gcmVjb3JkLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkK
IHsKICAgICBjb21taXRDYW5jZWxhYmxlUmVjb3JkcygpOwotICAgIGlubmVyQWRkUmVjb3JkVG9U
aW1lbGluZShyZWNvcmQsIHR5cGUpOworICAgIGlubmVyQWRkUmVjb3JkVG9UaW1lbGluZShyZWNv
cmQsIHR5cGUsIGZyYW1lSWQpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Omlu
bmVyQWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcHJwUmVj
b3JkLCBjb25zdCBTdHJpbmcmIHR5cGUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Omlu
bmVyQWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcHJwUmVj
b3JkLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkKIHsKICAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQocHJwUmVjb3JkKTsKICAgICByZWNvcmQtPnNl
dFN0cmluZygidHlwZSIsIHR5cGUpOworICAgIGlmICghZnJhbWVJZC5pc0VtcHR5KCkpCisgICAg
ICAgIHJlY29yZC0+c2V0U3RyaW5nKCJmcmFtZUlkIiwgZnJhbWVJZCk7CiAgICAgc2V0SGVhcFNp
emVTdGF0aXN0aWMocmVjb3JkLmdldCgpKTsKICAgICBpZiAobV9yZWNvcmRTdGFjay5pc0VtcHR5
KCkpIHsKICAgICAgICAgLy8gRklYTUU6IHJ1bnRpbWVDYXN0IGlzIGEgaGFjay4gV2UgZG8gaXQg
YmVjYXVzZSB3ZSBjYW4ndCBidWlsZCBUaW1lbGluZUV2ZW50IGRpcmVjdGx5IG5vdy4KQEAgLTQ1
MCwxMiArNDU4LDEzIEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcGxldGVD
dXJyZW50UmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICAgICAgZW50cnkucmVjb3JkLT5z
ZXRPYmplY3QoImRhdGEiLCBlbnRyeS5kYXRhKTsKICAgICAgICAgZW50cnkucmVjb3JkLT5zZXRB
cnJheSgiY2hpbGRyZW4iLCBlbnRyeS5jaGlsZHJlbik7CiAgICAgICAgIGVudHJ5LnJlY29yZC0+
c2V0TnVtYmVyKCJlbmRUaW1lIiwgdGltZXN0YW1wKCkpOwotICAgICAgICBhZGRSZWNvcmRUb1Rp
bWVsaW5lKGVudHJ5LnJlY29yZCwgdHlwZSk7CisgICAgICAgIGFkZFJlY29yZFRvVGltZWxpbmUo
ZW50cnkucmVjb3JkLCB0eXBlLCBlbnRyeS5mcmFtZUlkKTsKICAgICB9CiB9CiAKLUluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JU
eXBlIHR5cGUsIEZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydCBmcmFtZUluc3RydW1lbnRhdGlv
blN1cHBvcnQpCitJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VB
Z2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluc3BlY3RvclR5cGUgdHlw
ZSwgRnJhbWVJbnN0cnVtZW50YXRpb25TdXBwb3J0IGZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9y
dCkKICAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JUaW1lbGluZUFnZW50PigiVGlt
ZWxpbmUiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKKyAgICAsIG1fcGFnZUFnZW50KHBh
Z2VBZ2VudCkKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1fdGltZXN0YW1wT2Zmc2V0KDAp
CiAgICAgLCBtX2lkKDEpCkBAIC00NjUsMjcgKzQ3NCwzNiBAQCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbgogewogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFwcGVuZFJlY29yZChQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29s
IGNhcHR1cmVDYWxsU3RhY2spCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFwcGVuZFJl
Y29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBl
LCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKiBmcmFtZSkKIHsKICAgICBwdXNoR0NFdmVu
dFJlY29yZHMoKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQodGltZXN0YW1wKCksIGNhcHR1cmVD
YWxsU3RhY2sgPyBtX21heENhbGxTdGFja0RlcHRoIDogMCk7CiAgICAgcmVjb3JkLT5zZXRPYmpl
Y3QoImRhdGEiLCBkYXRhKTsKICAgICByZWNvcmQtPnNldFN0cmluZygidHlwZSIsIHR5cGUpOwot
ICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLnJlbGVhc2UoKSwgdHlwZSk7CisgICAgU3Ry
aW5nIGZyYW1lSWQ7CisgICAgaWYgKGZyYW1lICYmIG1fcGFnZUFnZW50KQorICAgICAgICBmcmFt
ZUlkID0gbV9wYWdlQWdlbnQtPmZyYW1lSWQoZnJhbWUpOworICAgIGFkZFJlY29yZFRvVGltZWxp
bmUocmVjb3JkLnJlbGVhc2UoKSwgdHlwZSwgZnJhbWVJZCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrKQordm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVudFJlY29yZChQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxs
U3RhY2ssIEZyYW1lKiBmcmFtZSkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKICAgICBj
b21taXRDYW5jZWxhYmxlUmVjb3JkcygpOwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJl
Y29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCh0aW1lc3Rh
bXAoKSwgY2FwdHVyZUNhbGxTdGFjayA/IG1fbWF4Q2FsbFN0YWNrRGVwdGggOiAwKTsKLSAgICBt
X3JlY29yZFN0YWNrLmFwcGVuZChUaW1lbGluZVJlY29yZEVudHJ5KHJlY29yZC5yZWxlYXNlKCks
IGRhdGEsIEluc3BlY3RvckFycmF5OjpjcmVhdGUoKSwgdHlwZSkpOworICAgIFN0cmluZyBmcmFt
ZUlkOworICAgIGlmIChmcmFtZSAmJiBtX3BhZ2VBZ2VudCkKKyAgICAgICAgZnJhbWVJZCA9IG1f
cGFnZUFnZW50LT5mcmFtZUlkKGZyYW1lKTsKKyAgICBtX3JlY29yZFN0YWNrLmFwcGVuZChUaW1l
bGluZVJlY29yZEVudHJ5KHJlY29yZC5yZWxlYXNlKCksIGRhdGEsIEluc3BlY3RvckFycmF5Ojpj
cmVhdGUoKSwgdHlwZSwgZnJhbWVJZCkpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OnB1c2hDYW5jZWxhYmxlUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRh
LCBjb25zdCBTdHJpbmcmIHR5cGUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hD
YW5jZWxhYmxlUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBjb25zdCBT
dHJpbmcmIHR5cGUsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQodGlt
ZXN0YW1wKCksIDApOwotICAgIG1fcmVjb3JkU3RhY2suYXBwZW5kKFRpbWVsaW5lUmVjb3JkRW50
cnkocmVjb3JkLnJlbGVhc2UoKSwgZGF0YSwgMCwgdHlwZSwgdHJ1ZSkpOworICAgIFN0cmluZyBm
cmFtZUlkOworICAgIGlmIChmcmFtZSAmJiBtX3BhZ2VBZ2VudCkKKyAgICAgICAgZnJhbWVJZCA9
IG1fcGFnZUFnZW50LT5mcmFtZUlkKGZyYW1lKTsKKyAgICBtX3JlY29yZFN0YWNrLmFwcGVuZChU
aW1lbGluZVJlY29yZEVudHJ5KHJlY29yZC5yZWxlYXNlKCksIGRhdGEsIDAsIHR5cGUsIGZyYW1l
SWQsIHRydWUpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpjb21taXRDYW5j
ZWxhYmxlUmVjb3JkcygpCkBAIC01MDIsNyArNTIwLDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50Ojpjb21taXRDYW5jZWxhYmxlUmVjb3JkcygpCiAgICAgICAgIFRpbWVsaW5lUmVjb3Jk
RW50cnkgZW50cnkgPSBjYW5jZWxhYmxlUmVjb3Jkcy5sYXN0KCk7CiAgICAgICAgIGNhbmNlbGFi
bGVSZWNvcmRzLnJlbW92ZUxhc3QoKTsKICAgICAgICAgZW50cnkucmVjb3JkLT5zZXRPYmplY3Qo
ImRhdGEiLCBlbnRyeS5kYXRhKTsKLSAgICAgICAgaW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKGVu
dHJ5LnJlY29yZC5yZWxlYXNlKCksIGVudHJ5LnR5cGUpOworICAgICAgICBpbm5lckFkZFJlY29y
ZFRvVGltZWxpbmUoZW50cnkucmVjb3JkLnJlbGVhc2UoKSwgZW50cnkudHlwZSwgZW50cnkuZnJh
bWVJZCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCA5MTk4OTc1ZjkwNDVlYWFkZjU4MmQ5NWQ0MTFkNDEz
NTU3ZDVmMjFiLi5kMTlhNzZiOGE4MWE1MjFmMTIwMjNlZGJhZDc4YjRmMDk0MTUzNDg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgK
QEAgLTQ0LDggKzQ0LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV2ZW50Owor
Y2xhc3MgRnJhbWU7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JGcm9u
dGVuZDsKK2NsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvclN0YXRlOwog
Y2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIEludFJlY3Q7CkBAIC02MCw5ICs2Miw5
IEBAIHB1YmxpYzoKICAgICBlbnVtIEluc3BlY3RvclR5cGUgeyBQYWdlSW5zcGVjdG9yLCBXb3Jr
ZXJJbnNwZWN0b3IgfTsKICAgICBlbnVtIEZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydCB7IEZy
YW1lSW5zdHJ1bWVudGF0aW9uTm90U3VwcG9ydGVkLCBGcmFtZUluc3RydW1lbnRhdGlvblN1cHBv
cnRlZCB9OwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4g
Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3Rv
clN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yVHlwZSB0eXBlLCBGcmFtZUluc3RydW1lbnRhdGlvblN1
cHBvcnQgZnJhbWVJbnN0cnVtZW50YXRpb25TdXBwb3J0KQorICAgIHN0YXRpYyBQYXNzT3duUHRy
PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9y
U3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JUeXBlIHR5cGUsIEZyYW1lSW5zdHJ1bWVudGF0aW9uU3Vw
cG9ydCBmcmFtZUluc3RydW1lbnRhdGlvblN1cHBvcnQpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IEluc3BlY3RvclRpbWVsaW5lQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywg
c3RhdGUsIHR5cGUsIGZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydCkpOworICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvclRpbWVsaW5lQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50
cywgcGFnZUFnZW50LCBzdGF0ZSwgdHlwZSwgZnJhbWVJbnN0cnVtZW50YXRpb25TdXBwb3J0KSk7
CiAgICAgfQogCiAgICAgfkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKQEAgLTgxLDIyICs4Mywy
MiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDb21taXRMb2FkKCk7CiAKICAgICAvLyBNZXRob2Rz
IGNhbGxlZCBmcm9tIFdlYkNvcmUuCi0gICAgdm9pZCB3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0
cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpOworICAgIHZvaWQgd2lsbENhbGxGdW5j
dGlvbihjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lLCBGcmFtZSopOwog
ICAgIHZvaWQgZGlkQ2FsbEZ1bmN0aW9uKCk7CiAKLSAgICB2b2lkIHdpbGxEaXNwYXRjaEV2ZW50
KGNvbnN0IEV2ZW50Jik7CisgICAgdm9pZCB3aWxsRGlzcGF0Y2hFdmVudChjb25zdCBFdmVudCYs
IEZyYW1lKik7CiAgICAgdm9pZCBkaWREaXNwYXRjaEV2ZW50KCk7CiAKICAgICB2b2lkIGRpZEJl
Z2luRnJhbWUoKTsKICAgICB2b2lkIGRpZENhbmNlbEZyYW1lKCk7CiAKLSAgICB2b2lkIHdpbGxM
YXlvdXQoKTsKKyAgICB2b2lkIHdpbGxMYXlvdXQoRnJhbWUqKTsKICAgICB2b2lkIGRpZExheW91
dCgpOwogCi0gICAgdm9pZCB3aWxsUmVjYWxjdWxhdGVTdHlsZSgpOworICAgIHZvaWQgd2lsbFJl
Y2FsY3VsYXRlU3R5bGUoRnJhbWUqKTsKICAgICB2b2lkIGRpZFJlY2FsY3VsYXRlU3R5bGUoKTsK
IAotICAgIHZvaWQgd2lsbFBhaW50KGNvbnN0IExheW91dFJlY3QmKTsKKyAgICB2b2lkIHdpbGxQ
YWludChjb25zdCBMYXlvdXRSZWN0JiwgRnJhbWUqKTsKICAgICB2b2lkIGRpZFBhaW50KCk7CiAK
ICAgICB2b2lkIHdpbGxDb21wb3NpdGUoKTsKQEAgLTEwNCw2NiArMTA2LDY3IEBAIHB1YmxpYzoK
IAogICAgIC8vIEZJWE1FOiB8bGVuZ3RofCBzaG91bGQgYmUgcGFzc2VkIGluIGRpZFdyaXRlIGlu
c3RlYWQgd2lsbFdyaXRlCiAgICAgLy8gYXMgdGhlIHBhcnNlciBjYW4gbm90IGtub3cgaG93IG11
Y2ggaXQgd2lsbCBwcm9jZXNzIHVudGlsIGl0IHRyaWVzLgotICAgIHZvaWQgd2lsbFdyaXRlSFRN
TCh1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsKKyAgICB2b2lk
IHdpbGxXcml0ZUhUTUwodW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGlu
ZSwgRnJhbWUqKTsKICAgICB2b2lkIGRpZFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgZW5kTGluZSk7
CiAKLSAgICB2b2lkIGRpZEluc3RhbGxUaW1lcihpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJv
b2wgc2luZ2xlU2hvdCk7Ci0gICAgdm9pZCBkaWRSZW1vdmVUaW1lcihpbnQgdGltZXJJZCk7Ci0g
ICAgdm9pZCB3aWxsRmlyZVRpbWVyKGludCB0aW1lcklkKTsKKyAgICB2b2lkIGRpZEluc3RhbGxU
aW1lcihpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqKTsK
KyAgICB2b2lkIGRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkLCBGcmFtZSopOworICAgIHZvaWQg
d2lsbEZpcmVUaW1lcihpbnQgdGltZXJJZCwgRnJhbWUqKTsKICAgICB2b2lkIGRpZEZpcmVUaW1l
cigpOwogCi0gICAgdm9pZCB3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZShjb25zdCBTdHJpbmcmLCBp
bnQpOworICAgIHZvaWQgd2lsbENoYW5nZVhIUlJlYWR5U3RhdGUoY29uc3QgU3RyaW5nJiwgaW50
LCBGcmFtZSopOwogICAgIHZvaWQgZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZSgpOwotICAgIHZvaWQg
d2lsbExvYWRYSFIoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCB3aWxsTG9hZFhIUihjb25zdCBT
dHJpbmcmLCBGcmFtZSopOwogICAgIHZvaWQgZGlkTG9hZFhIUigpOwogCi0gICAgdm9pZCB3aWxs
RXZhbHVhdGVTY3JpcHQoY29uc3QgU3RyaW5nJiwgaW50KTsKKyAgICB2b2lkIHdpbGxFdmFsdWF0
ZVNjcmlwdChjb25zdCBTdHJpbmcmLCBpbnQsIEZyYW1lKik7CiAgICAgdm9pZCBkaWRFdmFsdWF0
ZVNjcmlwdCgpOwogCiAgICAgdm9pZCBkaWRUaW1lU3RhbXAoY29uc3QgU3RyaW5nJik7Ci0gICAg
dm9pZCBkaWRNYXJrRE9NQ29udGVudEV2ZW50KCk7Ci0gICAgdm9pZCBkaWRNYXJrTG9hZEV2ZW50
KCk7CisgICAgdm9pZCBkaWRNYXJrRE9NQ29udGVudEV2ZW50KEZyYW1lKik7CisgICAgdm9pZCBk
aWRNYXJrTG9hZEV2ZW50KEZyYW1lKik7CiAKLSAgICB2b2lkIGRpZFNjaGVkdWxlUmVzb3VyY2VS
ZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsKTsKLSAgICB2b2lkIHdpbGxTZW5kUmVzb3VyY2VSZXF1
ZXN0KHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotICAgIHZvaWQgd2ls
bFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKKyAgICB2b2lkIGRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFN0cmlu
ZyYgdXJsLCBGcmFtZSopOworICAgIHZvaWQgd2lsbFNlbmRSZXNvdXJjZVJlcXVlc3QodW5zaWdu
ZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWUqKTsKKyAgICB2b2lkIHdpbGxS
ZWNlaXZlUmVzb3VyY2VSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiwgRnJhbWUqKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKCk7Ci0g
ICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UodW5zaWduZWQgbG9uZywgYm9vbCBkaWRG
YWlsLCBkb3VibGUgZmluaXNoVGltZSk7Ci0gICAgdm9pZCB3aWxsUmVjZWl2ZVJlc291cmNlRGF0
YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ1Jl
c291cmNlKHVuc2lnbmVkIGxvbmcsIGJvb2wgZGlkRmFpbCwgZG91YmxlIGZpbmlzaFRpbWUsIEZy
YW1lKik7CisgICAgdm9pZCB3aWxsUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIEZyYW1lKik7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VEYXRhKCk7CiAK
LSAgICB2b2lkIGRpZFJlcXVlc3RBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCk7Ci0gICAg
dm9pZCBkaWRDYW5jZWxBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCk7Ci0gICAgdm9pZCB3
aWxsRmlyZUFuaW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkKTsKKyAgICB2b2lkIGRpZFJlcXVl
c3RBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCwgRnJhbWUqKTsKKyAgICB2b2lkIGRpZENh
bmNlbEFuaW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkLCBGcmFtZSopOworICAgIHZvaWQgd2ls
bEZpcmVBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCwgRnJhbWUqKTsKICAgICB2b2lkIGRp
ZEZpcmVBbmltYXRpb25GcmFtZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZEdDKGRvdWJsZSwg
ZG91YmxlLCBzaXplX3QpOwogCiBwcml2YXRlOgogICAgIHN0cnVjdCBUaW1lbGluZVJlY29yZEVu
dHJ5IHsKLSAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gcmVjb3JkLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgUGFzc1JlZlB0
cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW4sIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYW5j
ZWxhYmxlID0gZmFsc2UpCi0gICAgICAgICAgICA6IHJlY29yZChyZWNvcmQpLCBkYXRhKGRhdGEp
LCBjaGlsZHJlbihjaGlsZHJlbiksIHR5cGUodHlwZSksIGNhbmNlbGFibGUoY2FuY2VsYWJsZSkK
KyAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
cmVjb3JkLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JBcnJheT4gY2hpbGRyZW4sIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBm
cmFtZUlkLCBib29sIGNhbmNlbGFibGUgPSBmYWxzZSkKKyAgICAgICAgICAgIDogcmVjb3JkKHJl
Y29yZCksIGRhdGEoZGF0YSksIGNoaWxkcmVuKGNoaWxkcmVuKSwgdHlwZSh0eXBlKSwgZnJhbWVJ
ZChmcmFtZUlkKSwgY2FuY2VsYWJsZShjYW5jZWxhYmxlKQogICAgICAgICB7CiAgICAgICAgIH0K
ICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkOwogICAgICAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBkYXRhOwogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGNo
aWxkcmVuOwogICAgICAgICBTdHJpbmcgdHlwZTsKKyAgICAgICAgU3RyaW5nIGZyYW1lSWQ7CiAg
ICAgICAgIGJvb2wgY2FuY2VsYWJsZTsKICAgICB9OwogICAgICAgICAKLSAgICBJbnNwZWN0b3JU
aW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluc3Bl
Y3RvclR5cGUsIEZyYW1lSW5zdHJ1bWVudGF0aW9uU3VwcG9ydCk7CisgICAgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5z
cGVjdG9yU3RhdGUqLCBJbnNwZWN0b3JUeXBlLCBGcmFtZUluc3RydW1lbnRhdGlvblN1cHBvcnQp
OwogCi0gICAgdm9pZCBwdXNoQ3VycmVudFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4sIGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrKTsKKyAgICB2b2lk
IHB1c2hDdXJyZW50UmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3Ry
aW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKik7CiAgICAgdm9pZCBzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyhJbnNwZWN0b3JPYmplY3QqIHJlY29yZCk7CiAgICAgICAgIAogICAg
IHZvaWQgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKGNvbnN0IFN0cmluZyYgdHlwZSk7Ci0gICAg
dm9pZCBhcHBlbmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0
IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrKTsKLSAgICB2b2lkIHB1c2hDYW5j
ZWxhYmxlUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0
eXBlKTsKKyAgICB2b2lkIGFwcGVuZFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
ZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKik7
CisgICAgdm9pZCBwdXNoQ2FuY2VsYWJsZVJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4sIGNvbnN0IFN0cmluZyYgdHlwZSwgRnJhbWUqKTsKICAgICB2b2lkIGNvbW1pdENhbmNlbGFi
bGVSZWNvcmRzKCk7CiAgICAgdm9pZCBjYW5jZWxSZWNvcmQoY29uc3QgU3RyaW5nJiB0eXBlKTsK
LSAgICB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
LCBjb25zdCBTdHJpbmcmIHR5cGUpOwotICAgIHZvaWQgaW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5l
KFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlKTsKKyAgICB2
b2lkIGFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CisgICAgdm9pZCBpbm5lckFk
ZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CiAKICAgICB2b2lkIHB1c2hHQ0V2ZW50
UmVjb3JkcygpOwogICAgIHZvaWQgY2xlYXJSZWNvcmRTdGFjaygpOwpAQCAtMTcxLDYgKzE3NCw4
IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIHRpbWVzdGFtcCgpOwogICAgIGRvdWJsZSB0aW1lc3Rh
bXBGcm9tTWljcm9zZWNvbmRzKGRvdWJsZSBtaWNyb3NlY29uZHMpOwogCisgICAgSW5zcGVjdG9y
UGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKKwogICAgIEluc3BlY3RvckZyb250ZW5kOjpUaW1lbGlu
ZSogbV9mcm9udGVuZDsKICAgICBkb3VibGUgbV90aW1lc3RhbXBPZmZzZXQ7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNw
cAppbmRleCAwZDdhNDU1YTNmNDZmMDZkY2VlNDk0ZTNmM2E1MzU5OTViOTc5YjUwLi44N2RiYmYy
ZWVjODMxY2MzMjg5YjgzYTkxYTE0NGZkNzM1YTg0ZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMDIs
NyArMTAyLDcgQEAgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6V29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlcihXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXgKICAgICBtX2RlYnVnZ2VyQWdlbnQg
PSBXb3JrZXJEZWJ1Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCBtX3N0YXRlLmdldCgpLCB3b3JrZXJDb250ZXh0LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5n
ZXQoKSk7CiAgICAgbV9wcm9maWxlckFnZW50ID0gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3Jl
YXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9jb25zb2xlQWdlbnQuZ2V0KCksIHdv
cmtlckNvbnRleHQsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgp
KTsKICNlbmRpZgotICAgIG1fdGltZWxpbmVBZ2VudCA9IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6Oldvcmtlckluc3BlY3RvciwgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6RnJhbWVJbnN0cnVtZW50YXRpb25Ob3RTdXBwb3J0ZWQpOworICAgIG1fdGltZWxpbmVBZ2Vu
dCA9IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMu
Z2V0KCksIDAsIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Oldvcmtlcklu
c3BlY3RvciwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6RnJhbWVJbnN0cnVtZW50YXRpb25Ob3RT
dXBwb3J0ZWQpOwogCiAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0
SG9zdCgpLT5pbml0KDAKICAgICAgICAgLCAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMK
aW5kZXggYTQxMTU5ZDY1NDNlZDE2YmMwNTI5ZTNhMTRkNmMyNWEwYTQxNDYwNS4uODgzM2NmYmIw
MTFkNmNjNGEyODAwYjk0N2ZhZjM0YmI4MGY3ZWE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5qcwpAQCAtMTA3LDcgKzEwNywxMiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5jYXRlZ29yeUZvclJlY29yZCA9IGZ1bmN0aW9uKHJlY29yZCkKIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmlzRXZlbnREaXZpZGVyID0gZnVuY3Rpb24o
cmVjb3JkKQogewogICAgIHZhciByZWNvcmRUeXBlcyA9IFdlYkluc3BlY3Rvci5UaW1lbGluZU1v
ZGVsLlJlY29yZFR5cGU7Ci0gICAgcmV0dXJuIHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5N
YXJrRE9NQ29udGVudCB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0xvYWQgfHwg
cmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlRpbWVTdGFtcDsKKyAgICBpZiAocmVjb3JkLnR5
cGUgPT09IHJlY29yZFR5cGVzLk1hcmtET01Db250ZW50IHx8IHJlY29yZC50eXBlID09PSByZWNv
cmRUeXBlcy5NYXJrTG9hZCB8fCByZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuVGltZVN0YW1w
KSB7CisgICAgICAgIHZhciBtYWluRnJhbWUgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9k
ZWwubWFpbkZyYW1lOworICAgICAgICBpZiAobWFpbkZyYW1lICYmIG1haW5GcmFtZS5pZCA9PT0g
cmVjb3JkLmZyYW1lSWQpIAorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJl
dHVybiBmYWxzZTsKIH0KIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
Zm9yQWxsUmVjb3JkcyA9IGZ1bmN0aW9uKHJlY29yZHNBcnJheSwgY2FsbGJhY2spCkBAIC0zNTcs
NiArMzYyLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3Jk
ID0gZnVuY3Rpb24ocHJlc2VudGF0aW9uTW9kZWwsIHJlY28KICAgICB0aGlzLnN0YXJ0VGltZSA9
IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnN0YXJ0VGltZUluU2Vjb25kcyhyZWNvcmQpOwog
ICAgIHRoaXMuZGF0YSA9IHJlY29yZC5kYXRhOwogICAgIHRoaXMudHlwZSA9IHJlY29yZC50eXBl
OworICAgIHRoaXMuZnJhbWVJZCA9IHJlY29yZC5mcmFtZUlkOwogICAgIHRoaXMuZW5kVGltZSA9
IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLmVuZFRpbWVJblNlY29uZHMocmVjb3JkKTsKICAg
ICB0aGlzLl9zZWxmVGltZSA9IHRoaXMuZW5kVGltZSAtIHRoaXMuc3RhcnRUaW1lOwogICAgIHRo
aXMuX2xhc3RDaGlsZEVuZFRpbWUgPSB0aGlzLmVuZFRpbWU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTEyMTQzNjU1OWEz
ZjRhYzg3NzgyYTA2ZTU0OTcxMDMxZTkzN2I1Mi4uMTljODE5ODgzOGIwMzU1NGVmMzFmMGRiMTBh
OWI5N2NlYjFkYzVhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA2LTA3ICBCcnlhbiBN
Y1F1YWRlICA8Ym1jcXVhZGVAZ29vZ2xlLmNvbT4KKyAgICAgICAgV2ViIEluc3BlY3RvcjogQW5u
b3RhdGUgdGltZWxpbmUgcmVjb3JkcyB3aXRoIGEgZnJhbWUgaWRlbnRpZmllcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY0MDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBBbmRyZXkgS29zeWFrb3YKKworICAgICAgICAqIGluc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1hbmltYXRpb24tZnJhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1kb20tY29udGVudC1sb2FkZWQtZXZlbnQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1ldmVudC1kaXNwYXRj
aC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWlu
amVjdGVkLXNjcmlwdC1ldmFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtbGF5b3V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
dGltZWxpbmUvdGltZWxpbmUtbG9hZC1ldmVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5z
cGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNhbGN1bGF0
ZS1zdHlsZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1l
bGluZS1zY3JpcHQtdGFnLTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS10ZXN0LmpzOgorICAgICAgICAqIGluc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS10aW1lci1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbGF5b3V0LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
bmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcGFyc2Ut
aHRtbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9y
L3RpbWVsaW5lL3RpbWVsaW5lLXRpbWVyLWV4cGVjdGVkLnR4dDoKKwogMjAxMi0wNi0wNyAgQW1p
IEZpc2NobWFuICA8ZmlzY2htYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFBsdW1iIENPUlMg
YXR0cmlidXRlIGluZm9ybWF0aW9uIGZyb20gSFRNTE1lZGlhRWxlbWVudCB0byBtZWRpYSBwbGF5
ZXJzIHNvIGl0IGNhbiBiZSB1c2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUvdGltZWxpbmUtYW5pbWF0aW9uLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1hbmltYXRpb24tZnJhbWUtZXhwZWN0ZWQu
dHh0CmluZGV4IDM2MDg2MmZlYmVhNmNjNTQ4MTE5MjJjM2E3NGMyOWI5NmNjNDBlNzMuLmU0NzE2
YzQ5NTJiMWFiZmRkNDdiMDQ3YzVjYjEyNjMzZDViNDIxNTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1hbmltYXRpb24tZnJhbWUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1hbmltYXRp
b24tZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC03LDYgKzcsNyBAQCBSZXF1ZXN0QW5pbWF0aW9uRnJh
bWUgUHJvcGVydGllczoKICAgICAgICAgaWQgOiA8bnVtYmVyPgogICAgIH0KICAgICB0eXBlIDog
IlJlcXVlc3RBbmltYXRpb25GcmFtZSIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2Vk
SGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNv
dW50ZXJzIDogPG9iamVjdD4KQEAgLTIwLDYgKzIxLDcgQEAgRmlyZUFuaW1hdGlvbkZyYW1lIFBy
b3BlcnRpZXM6CiAgICAgY2hpbGRyZW4gOiA8b2JqZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVy
PgogICAgIHR5cGUgOiAiRmlyZUFuaW1hdGlvbkZyYW1lIgorICAgIGZyYW1lSWQgOiA8c3RyaW5n
PgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1i
ZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAtMzEsNiArMzMsNyBAQCBDYW5jZWxBbmlt
YXRpb25GcmFtZSBQcm9wZXJ0aWVzOgogICAgICAgICBpZCA6IDxudW1iZXI+CiAgICAgfQogICAg
IHR5cGUgOiAiQ2FuY2VsQW5pbWF0aW9uRnJhbWUiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAg
ICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4K
ICAgICBjb3VudGVycyA6IDxvYmplY3Q+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdGltZWxpbmUvdGltZWxpbmUtZG9tLWNvbnRlbnQtbG9hZGVkLWV2ZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1kb20tY29udGVudC1s
b2FkZWQtZXZlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDYzOGI3OGQ4MzVhZWJmZjNjZTdhOWFkNjJh
N2QzMDliYmE0YTRhZWEuLjJjMDJhMWI0NDc0Njg1NWRjYzU2ZDc3YTkxZTlkNzBlZjhkZDU1M2Ug
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1kb20t
Y29udGVudC1sb2FkZWQtZXZlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1kb20tY29udGVudC1sb2FkZWQtZXZlbnQtZXhwZWN0ZWQu
dHh0CkBAIC02LDYgKzYsNyBAQCBNYXJrRE9NQ29udGVudCBQcm9wZXJ0aWVzOgogICAgIGRhdGEg
OiB7CiAgICAgfQogICAgIHR5cGUgOiAiTWFya0RPTUNvbnRlbnQiCisgICAgZnJhbWVJZCA6IDxz
dHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDog
PG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNo
LWV4cGVjdGVkLnR4dAppbmRleCBiYTgyN2FmN2ZlMTIzYjE2NGQ3MmFkZDRmODFiNzk5MzM4MjQ1
ODQ1Li5iNzRmODNkODI2ZWNlMDk5N2JlM2EwZmI5NGQ3NGJiMjU3YWQzODRiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQKQEAgLTEwLDYgKzEwLDcgQEAgRXZlbnREaXNw
YXRjaCBQcm9wZXJ0aWVzOgogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1lIDog
PG51bWJlcj4KICAgICB0eXBlIDogIkV2ZW50RGlzcGF0Y2giCisgICAgZnJhbWVJZCA6IDxzdHJp
bmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51
bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtaW5qZWN0ZWQtc2NyaXB0LWV2YWwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWluamVjdGVkLXNj
cmlwdC1ldmFsLWV4cGVjdGVkLnR4dAppbmRleCAzZDdjNmU0MzA4YTE3YzQ1M2RjMmFjZGVmMTBi
OTE4NThmMGQ5MWU5Li42MTdjM2ZkZTY1MThjMDYxMmNhZGY2OGQ1NGQ5OTIwZWE0OGU1ZTk4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtaW5qZWN0
ZWQtc2NyaXB0LWV2YWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1pbmplY3RlZC1zY3JpcHQtZXZhbC1leHBlY3RlZC50eHQKQEAgLTEw
LDYgKzEwLDcgQEAgRnVuY3Rpb25DYWxsIFByb3BlcnRpZXM6CiAgICAgY2hpbGRyZW4gOiA8b2Jq
ZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiRnVuY3Rpb25DYWxsIgor
ICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAg
dG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAtMjQs
NiArMjUsNyBAQCBGdW5jdGlvbkNhbGwgUHJvcGVydGllczoKICAgICBjaGlsZHJlbiA6IDxvYmpl
Y3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJGdW5jdGlvbkNhbGwiCisg
ICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0
b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbGF5b3V0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sYXlvdXQt
ZXhwZWN0ZWQudHh0CmluZGV4IGZlN2RkZGFjOWM5NjU1ZTBiYzY0ZTZhNDQ3YzM5ZDg1NWVhY2U1
NmQuLmUxZGJhNmY4MDUzMjBmODg4NTBhZmRhOGVkNTAxNTIwYTFmZTNmMjcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sYXlvdXQt
ZXhwZWN0ZWQudHh0CkBAIC05LDYgKzksNyBAQCBMYXlvdXQgUHJvcGVydGllczoKICAgICBjaGls
ZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJMYXlv
dXQiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4K
ICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbG9hZC1l
dmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtbG9hZC1ldmVudC1leHBlY3RlZC50eHQKaW5kZXggNjNkNTJlYTNiNTk1NmU1MjZhNGIzMzAx
M2I3ODJjMzRhNzg4NDU4My4uMTk0OTQyODkxMzcwNTA5YTNmYzFkMzAzZDA0MWUwMGYyNzMxZmY4
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWxv
YWQtZXZlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtNyw2ICs3LDcgQEAgTWFya0xv
YWQgUHJvcGVydGllczoKICAgICBkYXRhIDogewogICAgIH0KICAgICB0eXBlIDogIk1hcmtMb2Fk
IgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAg
ICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmst
cmVzb3VyY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0CmluZGV4IGQ5ZTk2ZGExNTI5ZjU3
NWM2MGRiN2QzN2VkZTE5ZGQ4Mjk5OTk5YjcuLmQyY2RhNTA1ODc0N2I2ODdjMzNlMzY5NDA3ODBj
ZmYzNTg1NDNjNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQK
QEAgLTEyLDYgKzEyLDcgQEAgUmVzb3VyY2VTZW5kUmVxdWVzdCBQcm9wZXJ0aWVzOgogICAgICAg
ICByZXF1ZXN0TWV0aG9kIDogIkdFVCIKICAgICB9CiAgICAgdHlwZSA6ICJSZXNvdXJjZVNlbmRS
ZXF1ZXN0IgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1i
ZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0
PgpAQCAtMjgsNiArMjksNyBAQCBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZSBQcm9wZXJ0aWVzOgog
ICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBl
IDogIlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAg
IHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAg
ICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAtNDEsNiArNDMsNyBAQCBSZXNvdXJjZUZpbmlzaCBQ
cm9wZXJ0aWVzOgogICAgICAgICBkaWRGYWlsIDogZmFsc2UKICAgICB9CiAgICAgdHlwZSA6ICJS
ZXNvdXJjZUZpbmlzaCIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUg
OiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDog
PG9iamVjdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1l
bGluZS1wYWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0CmluZGV4IGY2Mzk1MzUwZGYzYWZiZmRhNGE1Mzg0
NTE2MTZkYmRlM2E0MjgzY2MuLjU2YWZkYTRjYmM3NzA5ZGM4NTBhNmY4NzU3NmZjN2I3ZWY0MzY2
M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1w
YWludC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dApAQCAtMTIsNiArMTIsNyBAQCBQYWludCBQcm9wZXJ0
aWVzOgogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAg
ICB0eXBlIDogIlBhaW50IgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6
ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMg
OiA8b2JqZWN0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0CmluZGV4IGQ4OGZiMGVjOTkx
NTI2MWVlYzllMmJlMWRmZmViNjA2MmY4ZGQzZGMuLmIzNmNkMDU2ZTJhODQyNjY2NjhlNmQwNjQw
YWUzNWMyNjAyNzM5ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKQEAgLTEyLDYg
KzEyLDcgQEAgUGFyc2VIVE1MIFByb3BlcnRpZXM6CiAgICAgY2hpbGRyZW4gOiA8b2JqZWN0Pgog
ICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiUGFyc2VIVE1MIgorICAgIGZyYW1l
SWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFw
U2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAtMjcsNiArMjgsNyBA
QCBQYXJzZUhUTUwgUHJvcGVydGllczoKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5k
VGltZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJQYXJzZUhUTUwiCisgICAgZnJhbWVJZCA6IDxz
dHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDog
PG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjYWxjdWxhdGUtc3R5bGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNhbGN1bGF0
ZS1zdHlsZXMtZXhwZWN0ZWQudHh0CmluZGV4IGQ1OWRmNGRmNmM1YjZhNWJmY2RiM2ZmNDljZTgw
MmYxM2IyM2M0ODUuLjA0ZTUzNmMxYjRkZDliZWYyMjM5NGVjOWVjNDE2NTRkMzhiOTVkNDEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNhbGN1
bGF0ZS1zdHlsZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS1yZWNhbGN1bGF0ZS1zdHlsZXMtZXhwZWN0ZWQudHh0CkBAIC05LDYgKzks
NyBAQCBSZWNhbGN1bGF0ZVN0eWxlcyBQcm9wZXJ0aWVzOgogICAgIGNoaWxkcmVuIDogPG9iamVj
dD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIlJlY2FsY3VsYXRlU3R5bGVz
IgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAg
ICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10
YWctMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dAppbmRleCBkZTg4NDRjM2ZmOGQwM2Q5MmU2MDlm
MzEyMTZmZmYwYjQ5MTIzYzgwLi5iZjE2NzRlNGQwMTcwZDM5YTNiYjFkZjgyZTRlNWU0OGZlOTZj
ODRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
c2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLWV4cGVjdGVkLnR4dApAQCAtMTYsNiArMTYsNyBA
QCBFdmFsdWF0ZVNjcmlwdCBQcm9wZXJ0aWVzOgogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAg
ICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIkV2YWx1YXRlU2NyaXB0IgorICAgIGZy
YW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxI
ZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0
LXRhZy0yLWV4cGVjdGVkLnR4dAppbmRleCAyYmI2MjI3OWI4ZTdmNDE5Yjg4ZjBlMTQxNDg2ZjMw
YmQ5NWIwN2YxLi41NjBkNjY1NmVmNzRmMzFiNmJhNDlmMGI3NTQ3ZWZiMDVmYmU0YWRjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRh
Zy0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtc2NyaXB0LXRhZy0yLWV4cGVjdGVkLnR4dApAQCAtMTEsNiArMTEsNyBAQCBFdmFsdWF0
ZVNjcmlwdCBQcm9wZXJ0aWVzOgogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1l
IDogPG51bWJlcj4KICAgICB0eXBlIDogIkV2YWx1YXRlU2NyaXB0IgorICAgIGZyYW1lSWQgOiA8
c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6
IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGVzdC5qcwppbmRleCBlYzc2Nzg5NjE0ZWJhOGZkYjdj
YmQ0ODQ0ZDFhYjNhNDZkOTJmZTRjLi5kMGQ5MmYyZWRkNTU0ZGJkNDk2NzFmZTYyMTBjODhkZmRi
Nzc1MjdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
dGVzdC5qcwpAQCAtMTgsNyArMTgsOCBAQCBJbnNwZWN0b3JUZXN0LnRpbWVsaW5lUHJvcGVydHlG
b3JtYXR0ZXJzID0gewogICAgIGNvdW50ZXJzOiAiZm9ybWF0QXNUeXBlTmFtZSIsCiAgICAgdGlt
ZXJJZDogImZvcm1hdEFzVHlwZU5hbWUiLAogICAgIHNjcmlwdExpbmU6ICJmb3JtYXRBc1R5cGVO
YW1lIiwKLSAgICBsaW5lTnVtYmVyOiAiZm9ybWF0QXNUeXBlTmFtZSIKKyAgICBsaW5lTnVtYmVy
OiAiZm9ybWF0QXNUeXBlTmFtZSIsCisgICAgZnJhbWVJZDogImZvcm1hdEFzVHlwZU5hbWUiCiB9
OwogCiBJbnNwZWN0b3JUZXN0LnN0YXJ0VGltZWxpbmUgPSBmdW5jdGlvbihjYWxsYmFjaykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10aW1lci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGlt
ZXItZXhwZWN0ZWQudHh0CmluZGV4IDBmYjk2OTQ0ZjNjYTk0MjIxNjI4YzZjN2VmYWRhNDE3Y2E0
NzAxM2YuLjBiZDE5MjYwYzNjNTAwYTk4YTFjYTdkNTQ4ZDViODNiOTdlNjQ1ZTUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10aW1lci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWVy
LWV4cGVjdGVkLnR4dApAQCAtOSw2ICs5LDcgQEAgVGltZXJJbnN0YWxsIFByb3BlcnRpZXM6CiAg
ICAgICAgIHNpbmdsZVNob3QgOiB0cnVlCiAgICAgfQogICAgIHR5cGUgOiAiVGltZXJJbnN0YWxs
IgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAg
ICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAt
MjIsNiArMjMsNyBAQCBUaW1lckluc3RhbGwgUHJvcGVydGllczoKICAgICAgICAgc2luZ2xlU2hv
dCA6IGZhbHNlCiAgICAgfQogICAgIHR5cGUgOiAiVGltZXJJbnN0YWxsIgorICAgIGZyYW1lSWQg
OiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6
ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAtMzUsNiArMzcsNyBAQCBU
aW1lckZpcmUgUHJvcGVydGllczoKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5kVGlt
ZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJUaW1lckZpcmUiCisgICAgZnJhbWVJZCA6IDxzdHJp
bmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51
bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CkBAIC00OCw2ICs1MSw3IEBAIFRpbWVyRmly
ZSBQcm9wZXJ0aWVzOgogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51
bWJlcj4KICAgICB0eXBlIDogIlRpbWVyRmlyZSIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAg
ICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgog
ICAgIGNvdW50ZXJzIDogPG9iamVjdD4KQEAgLTYxLDYgKzY1LDcgQEAgVGltZXJGaXJlIFByb3Bl
cnRpZXM6CiAgICAgY2hpbGRyZW4gOiA8b2JqZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVyPgog
ICAgIHR5cGUgOiAiVGltZXJGaXJlIgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRI
ZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291
bnRlcnMgOiA8b2JqZWN0PgpAQCAtNzIsNiArNzcsNyBAQCBUaW1lclJlbW92ZSBQcm9wZXJ0aWVz
OgogICAgICAgICB0aW1lcklkIDogPG51bWJlcj4KICAgICB9CiAgICAgdHlwZSA6ICJUaW1lclJl
bW92ZSIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVy
PgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4K
QEAgLTg2LDYgKzkyLDcgQEAgRnVuY3Rpb25DYWxsIFByb3BlcnRpZXM6CiAgICAgY2hpbGRyZW4g
OiA8b2JqZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiRnVuY3Rpb25D
YWxsIgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+
CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpA
QCAtMTAwLDYgKzEwNyw3IEBAIEZ1bmN0aW9uQ2FsbCBQcm9wZXJ0aWVzOgogICAgIGNoaWxkcmVu
IDogPG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIkZ1bmN0aW9u
Q2FsbCIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVy
PgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4K
QEAgLTExNCw2ICsxMjIsNyBAQCBGdW5jdGlvbkNhbGwgUHJvcGVydGllczoKICAgICBjaGlsZHJl
biA6IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJGdW5jdGlv
bkNhbGwiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJl
cj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+
CkBAIC0xMjgsNiArMTM3LDcgQEAgRnVuY3Rpb25DYWxsIFByb3BlcnRpZXM6CiAgICAgY2hpbGRy
ZW4gOiA8b2JqZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiRnVuY3Rp
b25DYWxsIgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1i
ZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0
PgpAQCAtMTQyLDYgKzE1Miw3IEBAIEV2YWx1YXRlU2NyaXB0IFByb3BlcnRpZXM6CiAgICAgY2hp
bGRyZW4gOiA8b2JqZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiRXZh
bHVhdGVTY3JpcHQiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDog
PG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxv
YmplY3Q+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0
b3IvdGltZWxpbmUvdGltZWxpbmUtYW5pbWF0aW9uLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1hbmlt
YXRpb24tZnJhbWUtZXhwZWN0ZWQudHh0CmluZGV4IGM2YWZmZjMwYmM4NzczMGQ5NWI4ZWU5OTFj
ZDFjNDllMzE2ZTM3NDYuLjE1ZDc4ZjZhMDA1ZTEyZDdjODMwOTQ2MTBkZjQ4ODk5NDg1YzFjNzcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS1hbmltYXRpb24tZnJhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1hbmltYXRp
b24tZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC04LDYgKzgsNyBAQCBSZXF1ZXN0QW5pbWF0aW9uRnJh
bWUgUHJvcGVydGllczoKICAgICAgICAgaWQgOiA8bnVtYmVyPgogICAgIH0KICAgICB0eXBlIDog
IlJlcXVlc3RBbmltYXRpb25GcmFtZSIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2Vk
SGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNv
dW50ZXJzIDogPG9iamVjdD4KQEAgLTIxLDYgKzIyLDcgQEAgRmlyZUFuaW1hdGlvbkZyYW1lIFBy
b3BlcnRpZXM6CiAgICAgY2hpbGRyZW4gOiA8b2JqZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVy
PgogICAgIHR5cGUgOiAiRmlyZUFuaW1hdGlvbkZyYW1lIgorICAgIGZyYW1lSWQgOiA8c3RyaW5n
PgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1i
ZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAtMzMsNiArMzUsNyBAQCBDYW5jZWxBbmlt
YXRpb25GcmFtZSBQcm9wZXJ0aWVzOgogICAgICAgICBpZCA6IDxudW1iZXI+CiAgICAgfQogICAg
IHR5cGUgOiAiQ2FuY2VsQW5pbWF0aW9uRnJhbWUiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAg
ICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4K
ICAgICBjb3VudGVycyA6IDxvYmplY3Q+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dAppbmRleCBiYTgyN2FmN2Zl
MTIzYjE2NGQ3MmFkZDRmODFiNzk5MzM4MjQ1ODQ1Li5iNzRmODNkODI2ZWNlMDk5N2JlM2EwZmI5
NGQ3NGJiMjU3YWQzODRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS1ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQKQEAgLTEwLDYgKzEwLDcgQEAgRXZl
bnREaXNwYXRjaCBQcm9wZXJ0aWVzOgogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRU
aW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIkV2ZW50RGlzcGF0Y2giCisgICAgZnJhbWVJZCA6
IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXpl
IDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbGF5b3V0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQudHh0CmluZGV4IGE3MWVhMWFmNjQ3NzE2
MjY4Yzg1YzhkYmU5M2ZjZDZjMjg5MjZlY2YuLmJmNTExNTgzOGYzZjQ3OTBiNGFjMTlmOTI0ZjVk
NzA4OTMxNjZhOGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2lu
c3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sYXlv
dXQtZXhwZWN0ZWQudHh0CkBAIC0xMCw2ICsxMCw3IEBAIExheW91dCBQcm9wZXJ0aWVzOgogICAg
IGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDog
IkxheW91dCIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVt
YmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVj
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3Jr
LXJlc291cmNlLWV4cGVjdGVkLnR4dAppbmRleCBjMTRlM2E0ZmI1ZDNjMGMzNDg0ODRlMDYyZTUy
MTgxOGE3OTMzZDZmLi4yMTg2Y2MxYTYxMWMzZTZmMmQzZGY5NTg0MWU3Y2Q1NWQyZTdkOWY4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmst
cmVzb3VyY2UtZXhwZWN0ZWQudHh0CkBAIC0xMyw2ICsxMyw3IEBAIFJlc291cmNlU2VuZFJlcXVl
c3QgUHJvcGVydGllczoKICAgICAgICAgcmVxdWVzdE1ldGhvZCA6ICJHRVQiCiAgICAgfQogICAg
IHR5cGUgOiAiUmVzb3VyY2VTZW5kUmVxdWVzdCIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAg
ICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgog
ICAgIGNvdW50ZXJzIDogPG9iamVjdD4KQEAgLTI5LDYgKzMwLDcgQEAgUmVzb3VyY2VSZWNlaXZl
UmVzcG9uc2UgUHJvcGVydGllczoKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5kVGlt
ZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJSZXNvdXJjZVJlY2VpdmVSZXNwb25zZSIKKyAgICBm
cmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFs
SGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4KQEAgLTQyLDYgKzQ0
LDcgQEAgUmVzb3VyY2VGaW5pc2ggUHJvcGVydGllczoKICAgICAgICAgZGlkRmFpbCA6IGZhbHNl
CiAgICAgfQogICAgIHR5cGUgOiAiUmVzb3VyY2VGaW5pc2giCisgICAgZnJhbWVJZCA6IDxzdHJp
bmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51
bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcGFpbnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dAppbmRleCAxMzYwNGM1OTc5Nzg0MmM3ZDNmMTFi
ODRjYjExMzk1MjAyN2I4ZDgzLi4xMmJlZGE4MjM4NTE0NWViOGM2M2FmODc0ZjBkM2FmZTQwMTQw
ZWYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3Iv
dGltZWxpbmUvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1wYWludC1leHBlY3Rl
ZC50eHQKQEAgLTEzLDYgKzEzLDcgQEAgUGFpbnQgUHJvcGVydGllczoKICAgICBjaGlsZHJlbiA6
IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJQYWludCIKKyAg
ICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRv
dGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90aW1lbGluZS90aW1l
bGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dApp
bmRleCA0Y2NkYTkwYjViNmJiYzVkN2E0NWNjNWNiODk5YTcwMTRmYmFkNDY5Li45MjI2MzU5ZDY2
ZjBjZGI0MjBiMjc1MjZmNzg4YTU4MGI5OTQxN2Y1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcGFyc2UtaHRtbC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9y
L3RpbWVsaW5lL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0xMyw2ICsxMyw3
IEBAIFBhcnNlSFRNTCBQcm9wZXJ0aWVzOgogICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBl
bmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIlBhcnNlSFRNTCIKKyAgICBmcmFtZUlkIDog
PHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUg
OiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4KQEAgLTI5LDYgKzMwLDcgQEAgUGFy
c2VIVE1MIFByb3BlcnRpZXM6CiAgICAgY2hpbGRyZW4gOiA8b2JqZWN0PgogICAgIGVuZFRpbWUg
OiA8bnVtYmVyPgogICAgIHR5cGUgOiAiUGFyc2VIVE1MIgorICAgIGZyYW1lSWQgOiA8c3RyaW5n
PgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1i
ZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWVyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS10aW1lci1leHBlY3RlZC50eHQKaW5kZXggZDY2MDk0MGI2OGI4NmViZGZkNTViMDdh
NGRjY2ZmOTYxYmY0ZjYxZS4uZTUzMzg4YTg5NzM0ZjBmMDg0MjRmMGNmNGNiOGU3OTFhZTJkMzVk
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLXRpbWVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZXItZXhwZWN0ZWQu
dHh0CkBAIC0xMCw2ICsxMCw3IEBAIFRpbWVySW5zdGFsbCBQcm9wZXJ0aWVzOgogICAgICAgICBz
aW5nbGVTaG90IDogdHJ1ZQogICAgIH0KICAgICB0eXBlIDogIlRpbWVySW5zdGFsbCIKKyAgICBm
cmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFs
SGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4KQEAgLTI0LDYgKzI1
LDcgQEAgVGltZXJJbnN0YWxsIFByb3BlcnRpZXM6CiAgICAgICAgIHNpbmdsZVNob3QgOiBmYWxz
ZQogICAgIH0KICAgICB0eXBlIDogIlRpbWVySW5zdGFsbCIKKyAgICBmcmFtZUlkIDogPHN0cmlu
Zz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVt
YmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4KQEAgLTM3LDYgKzM5LDcgQEAgVGltZXJGaXJl
IFByb3BlcnRpZXM6CiAgICAgY2hpbGRyZW4gOiA8b2JqZWN0PgogICAgIGVuZFRpbWUgOiA8bnVt
YmVyPgogICAgIHR5cGUgOiAiVGltZXJGaXJlIgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAg
IHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAg
ICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAtNTAsNiArNTMsNyBAQCBUaW1lckZpcmUgUHJvcGVy
dGllczoKICAgICBjaGlsZHJlbiA6IDxvYmplY3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+CiAg
ICAgdHlwZSA6ICJUaW1lckZpcmUiCisgICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhl
YXBTaXplIDogPG51bWJlcj4KICAgICB0b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3Vu
dGVycyA6IDxvYmplY3Q+CkBAIC02Myw2ICs2Nyw3IEBAIFRpbWVyRmlyZSBQcm9wZXJ0aWVzOgog
ICAgIGNoaWxkcmVuIDogPG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBl
IDogIlRpbWVyRmlyZSIKKyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUg
OiA8bnVtYmVyPgogICAgIHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDog
PG9iamVjdD4KQEAgLTc1LDYgKzgwLDcgQEAgVGltZXJSZW1vdmUgUHJvcGVydGllczoKICAgICAg
ICAgdGltZXJJZCA6IDxudW1iZXI+CiAgICAgfQogICAgIHR5cGUgOiAiVGltZXJSZW1vdmUiCisg
ICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0
b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CkBAIC04OSw2
ICs5NSw3IEBAIEZ1bmN0aW9uQ2FsbCBQcm9wZXJ0aWVzOgogICAgIGNoaWxkcmVuIDogPG9iamVj
dD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIkZ1bmN0aW9uQ2FsbCIKKyAg
ICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIHRv
dGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4KQEAgLTEwMyw2
ICsxMTAsNyBAQCBGdW5jdGlvbkNhbGwgUHJvcGVydGllczoKICAgICBjaGlsZHJlbiA6IDxvYmpl
Y3Q+CiAgICAgZW5kVGltZSA6IDxudW1iZXI+CiAgICAgdHlwZSA6ICJGdW5jdGlvbkNhbGwiCisg
ICAgZnJhbWVJZCA6IDxzdHJpbmc+CiAgICAgdXNlZEhlYXBTaXplIDogPG51bWJlcj4KICAgICB0
b3RhbEhlYXBTaXplIDogPG51bWJlcj4KICAgICBjb3VudGVycyA6IDxvYmplY3Q+CkBAIC0xMTcs
NiArMTI1LDcgQEAgRnVuY3Rpb25DYWxsIFByb3BlcnRpZXM6CiAgICAgY2hpbGRyZW4gOiA8b2Jq
ZWN0PgogICAgIGVuZFRpbWUgOiA8bnVtYmVyPgogICAgIHR5cGUgOiAiRnVuY3Rpb25DYWxsIgor
ICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAg
dG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0PgpAQCAtMTMx
LDYgKzE0MCw3IEBAIEZ1bmN0aW9uQ2FsbCBQcm9wZXJ0aWVzOgogICAgIGNoaWxkcmVuIDogPG9i
amVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIkZ1bmN0aW9uQ2FsbCIK
KyAgICBmcmFtZUlkIDogPHN0cmluZz4KICAgICB1c2VkSGVhcFNpemUgOiA8bnVtYmVyPgogICAg
IHRvdGFsSGVhcFNpemUgOiA8bnVtYmVyPgogICAgIGNvdW50ZXJzIDogPG9iamVjdD4KQEAgLTE0
NSw2ICsxNTUsNyBAQCBFdmFsdWF0ZVNjcmlwdCBQcm9wZXJ0aWVzOgogICAgIGNoaWxkcmVuIDog
PG9iamVjdD4KICAgICBlbmRUaW1lIDogPG51bWJlcj4KICAgICB0eXBlIDogIkV2YWx1YXRlU2Ny
aXB0IgorICAgIGZyYW1lSWQgOiA8c3RyaW5nPgogICAgIHVzZWRIZWFwU2l6ZSA6IDxudW1iZXI+
CiAgICAgdG90YWxIZWFwU2l6ZSA6IDxudW1iZXI+CiAgICAgY291bnRlcnMgOiA8b2JqZWN0Pgo=
</data>
<flag name="review"
          id="153647"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>