<?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>132574</bug_id>
          
          <creation_ts>2014-05-05 11:08:11 -0700</creation_ts>
          <short_desc>clean up ResourceLoadTiming</short_desc>
          <delta_ts>2014-05-12 14:39:54 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.9</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>danw</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>graouts</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1006671</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-05 11:08:11 -0700</bug_when>
    <thetext>ResourceLoadTiming has a bunch of values that seem to be in the Chromium WebKit api from https://bugs.webkit.org/show_bug.cgi?id=42091 but are not in the w3c spec at https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html and it uses int offsets from a double instead of storing all the times as doubles.  I store only what is needed in the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006677</commentid>
    <comment_count>1</comment_count>
      <attachid>230839</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-05 11:31:10 -0700</bug_when>
    <thetext>Created attachment 230839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007114</commentid>
    <comment_count>2</comment_count>
      <attachid>230943</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-06 15:47:39 -0700</bug_when>
    <thetext>Created attachment 230943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007130</commentid>
    <comment_count>3</comment_count>
      <attachid>230948</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-06 16:43:24 -0700</bug_when>
    <thetext>Created attachment 230948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007146</commentid>
    <comment_count>4</comment_count>
      <attachid>230955</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-06 17:17:17 -0700</bug_when>
    <thetext>Created attachment 230955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007152</commentid>
    <comment_count>5</comment_count>
      <attachid>230957</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-06 17:24:14 -0700</bug_when>
    <thetext>Created attachment 230957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007269</commentid>
    <comment_count>6</comment_count>
      <attachid>230957</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-05-07 03:08:47 -0700</bug_when>
    <thetext>Comment on attachment 230957
Patch

Nice!. The Soup part looks good to me. Somebody else with more expertise in the area should review the changes in the core specially the changes related to the removal of resourceTimeToDocumentMilliseconds()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007355</commentid>
    <comment_count>7</comment_count>
      <attachid>231004</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-07 10:02:50 -0700</bug_when>
    <thetext>Created attachment 231004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007436</commentid>
    <comment_count>8</comment_count>
      <attachid>231004</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-07 14:11:18 -0700</bug_when>
    <thetext>Comment on attachment 231004
Patch

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

Yes, the situation with monotonic times doesn&apos;t seem right. Discussing in person.

&gt; Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:220
&gt; +#if __has_include(&lt;CFNetwork/CFNSURLConnection.h&gt;)
&gt; +        ResourceResponse resourceResponse(r);

Open source builds should not magically have the feature broken. What we should do is re-declare _timingData as a category, and have the code under if ENABLE(RESOURCE_TIMING).

&gt; Source/WebKit2/Shared/WebCoreArgumentCoders.cpp:806
&gt; +    

Spurious whitespace!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007482</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-07 18:01:04 -0700</bug_when>
    <thetext>Also, it&apos;s not encoding the right ResourceLoadTiming.  I&apos;m not sure where it&apos;s coming from or where it&apos;s supposed to come from.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007671</commentid>
    <comment_count>10</comment_count>
      <attachid>231078</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-08 10:35:57 -0700</bug_when>
    <thetext>Created attachment 231078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007674</commentid>
    <comment_count>11</comment_count>
      <attachid>231079</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-08 10:47:36 -0700</bug_when>
    <thetext>Created attachment 231079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007695</commentid>
    <comment_count>12</comment_count>
      <attachid>231084</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-08 11:47:17 -0700</bug_when>
    <thetext>Created attachment 231084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007767</commentid>
    <comment_count>13</comment_count>
      <attachid>231084</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-08 14:11:09 -0700</bug_when>
    <thetext>Comment on attachment 231084
Patch

This still doesn&apos;t ensure that all times are monotonic and relative to root navigation start. Discussed in person how this can be achieved (essentially keep more of the existing code).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008016</commentid>
    <comment_count>14</comment_count>
      <attachid>231161</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 10:23:06 -0700</bug_when>
    <thetext>Created attachment 231161
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008021</commentid>
    <comment_count>15</comment_count>
      <attachid>231164</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 10:40:31 -0700</bug_when>
    <thetext>Created attachment 231164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008033</commentid>
    <comment_count>16</comment_count>
      <attachid>231167</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 11:08:20 -0700</bug_when>
    <thetext>Created attachment 231167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008043</commentid>
    <comment_count>17</comment_count>
      <attachid>231170</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 11:24:53 -0700</bug_when>
    <thetext>Created attachment 231170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008046</commentid>
    <comment_count>18</comment_count>
      <attachid>231171</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 11:41:05 -0700</bug_when>
    <thetext>Created attachment 231171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008077</commentid>
    <comment_count>19</comment_count>
      <attachid>231181</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 13:10:57 -0700</bug_when>
    <thetext>Created attachment 231181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008078</commentid>
    <comment_count>20</comment_count>
      <attachid>231182</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 13:16:17 -0700</bug_when>
    <thetext>Created attachment 231182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008079</commentid>
    <comment_count>21</comment_count>
      <attachid>231183</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 13:20:46 -0700</bug_when>
    <thetext>Created attachment 231183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008136</commentid>
    <comment_count>22</comment_count>
      <attachid>231195</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 16:37:42 -0700</bug_when>
    <thetext>Created attachment 231195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008296</commentid>
    <comment_count>23</comment_count>
      <attachid>231195</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-05-10 13:46:09 -0700</bug_when>
    <thetext>Comment on attachment 231195
Patch

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

&gt; Source/WebKit2/Shared/WebCoreArgumentCoders.cpp:702
&gt; +    ResourceLoadTiming* timing = resourceResponse.resourceLoadTiming();
&gt; +    bool hasResourceLoadTiming = timing;
&gt; +    encoder &lt;&lt; hasResourceLoadTiming;
&gt; +    if (hasResourceLoadTiming) {
&gt; +        encoder &lt;&lt; timing-&gt;domainLookupStart;
&gt; +        encoder &lt;&lt; timing-&gt;domainLookupEnd;
&gt; +        encoder &lt;&lt; timing-&gt;connectStart;
&gt; +        encoder &lt;&lt; timing-&gt;connectEnd;
&gt; +        encoder &lt;&lt; timing-&gt;requestStart;
&gt; +        encoder &lt;&lt; timing-&gt;responseStart;
&gt; +        encoder &lt;&lt; timing-&gt;secureConnectionStart;
&gt; +    }

This should probably be wrapped in an #if ENABLE(WEB_TIMING).

&gt; Source/WebKit2/Shared/WebCoreArgumentCoders.cpp:785
&gt; +    bool hasResourceLoadTiming;
&gt; +    if (!decoder.decode(hasResourceLoadTiming))
&gt; +        return false;
&gt; +    if (hasResourceLoadTiming) {
&gt; +        response.setResourceLoadTiming(ResourceLoadTiming::create());
&gt; +        ResourceLoadTiming* timing = response.resourceLoadTiming();
&gt; +        if (!decoder.decode(timing-&gt;domainLookupStart)
&gt; +            || !decoder.decode(timing-&gt;domainLookupEnd)
&gt; +            || !decoder.decode(timing-&gt;connectStart)
&gt; +            || !decoder.decode(timing-&gt;connectEnd)
&gt; +            || !decoder.decode(timing-&gt;requestStart)
&gt; +            || !decoder.decode(timing-&gt;responseStart)
&gt; +            || !decoder.decode(timing-&gt;secureConnectionStart))
&gt; +            return false;
&gt; +    }

This should probably be wrapped in an #if ENABLE(WEB_TIMING).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008613</commentid>
    <comment_count>24</comment_count>
      <attachid>231298</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-12 08:50:02 -0700</bug_when>
    <thetext>Created attachment 231298
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008662</commentid>
    <comment_count>25</comment_count>
      <attachid>231298</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-12 11:11:30 -0700</bug_when>
    <thetext>Comment on attachment 231298
Patch

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

&gt; Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:224
&gt; +#if ENABLE(WEB_TIMING)

This is all needed in WebCoreResourceHandleAsDelegate.mm, too. There is no reason to have it work incorrectly in WebKitLegacy.

&gt; Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:226
&gt; +        NSDictionary* timingData = [connection _timingData];
&gt; +        if (timingData) {

Style nit: star goes to the other side for Objective-C, and you could combine the definition with if:

    if (NSDictionary *timingData = [connection _timingData])
        ...

&gt; Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:228
&gt; +            ResourceLoadTiming* timing = resourceResponse.resourceLoadTiming();

It seems strange to see a pointer variable used without a null check, or any obvious reason why it can&apos;t be null. Can the function return a reference?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008663</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-12 11:12:03 -0700</bug_when>
    <thetext>(r=me is conditional on fixing WebKitLegacy)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008671</commentid>
    <comment_count>27</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-12 11:24:41 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; It seems strange to see a pointer variable used without a null check, or any obvious reason why it can&apos;t be null. Can the function return a reference?
In this case it was just created in the previous line.  I&apos;ll add an if(timing) just to be extra safe in case the creation failed for some reason or someone changes the behavior in the future.  It needs to be a pointer because not all ResourceResponse objects have a resourceLoadTiming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008719</commentid>
    <comment_count>28</comment_count>
      <attachid>231322</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-12 13:57:06 -0700</bug_when>
    <thetext>Created attachment 231322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008730</commentid>
    <comment_count>29</comment_count>
      <attachid>231322</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-12 14:21:04 -0700</bug_when>
    <thetext>Comment on attachment 231322
Patch

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

&gt; Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm:199
&gt; +        if (timing) {

You actually just create ResourceLoadTiming above, so the null check is misleading. The right way to do this is to use this idiom:

ResourceLoadTiming* resourceLoadTimingIfExists()
ResourceLoadTiming&amp; resourceLoadTiming()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008732</commentid>
    <comment_count>30</comment_count>
      <attachid>231322</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-05-12 14:25:44 -0700</bug_when>
    <thetext>Comment on attachment 231322
Patch

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

&gt; Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:225
&gt; +        if (NSDictionary *timingData = [connection _timingData]) {

All this code could be shared if it was in ResourceHandleMac.mm. You could call a function in ResourceHandle, which would then collect the data, and call the client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008739</commentid>
    <comment_count>31</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-12 14:39:00 -0700</bug_when>
    <thetext>I&apos;m going to put this in and fix the duplicate code and reference problems in another patch.

http://trac.webkit.org/changeset/168647</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008740</commentid>
    <comment_count>32</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-12 14:39:54 -0700</bug_when>
    <thetext>I&apos;m going to put this in and fix the duplicate code and reference problems in another patch.

http://trac.webkit.org/changeset/168647</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230839</attachid>
            <date>2014-05-05 11:31:10 -0700</date>
            <delta_ts>2014-05-06 15:47:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140505113056.patch</filename>
            <type>text/plain</type>
            <size>29648</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODMwMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcyIEBACisyMDE0LTA1LTA1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2xlYW5lZCB1
cCBSZXNvdXJjZUxvYWRUaW1pbmcgZm9yIHdlYiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJj
ZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAg
IChXZWJDb3JlOjpidWlsZE9iamVjdEZvckNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJv
bU1lbW9yeUNhY2hlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29u
OgorICAgICAgICBVcGRhdGVkIFJlc291cmNlTG9hZFRpbWluZyB2YWx1ZXMgYW5kIHJlbW92ZWQg
dW51c2VkIHBhcmFtZXRlcnMuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OmFkZFJlZGlyZWN0KToK
KyAgICAgICAgS2VlcCBhIHJlY29yZCBvZiBhIGNyb3NzIG9yaWdpbiByZWRpcmVjdCBldmVuIGlm
IHlvdSBhcmUgcmVkaXJlY3RlZCBiYWNrLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
VGltaW5nOjpzZXROYXZpZ2F0aW9uU3RhcnQpOiBEZWxldGVkIHVudXNlZCBmdW5jdGlvbi4KKyAg
ICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmg6CisgICAgICAgIFJlbW92ZWQgdW51
c2VkIHNldE5hdmlnYXRpb25TdGFydCBtZXRob2QgZGVjbGFyYXRpb24uCisgICAgICAgICogcGFn
ZS9QZXJmb3JtYW5jZS5pZGw6CisgICAgICAgIFVwZGF0ZWQgc3BlYyB1cmwuCisgICAgICAgICog
cGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5j
ZVRpbWluZzo6ZG9tYWluTG9va3VwU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5j
ZVRpbWluZzo6Y29ubmVjdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGlt
aW5nOjpjb25uZWN0RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpz
ZWN1cmVDb25uZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1p
bmc6OnJlcXVlc3RTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6
cmVzcG9uc2VTdGFydCk6CisgICAgICAgIFVzZSBuZXcgUmVzb3VyY2VMb2FkVGltaW5nIG1ldGhv
ZHMuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6cmVzb3VyY2VMb2FkVGlt
ZVJlbGF0aXZlVG9BYnNvbHV0ZSk6CisgICAgICAgIERlbGV0ZWQgbm93IHRoYXQgdGltZXMgYXJl
IHN0b3JlZCBhcyBkb3VibGVzIGFuZCB0aGVyZSBpcyBubyBuZWVkIHRvIGNhbGN1bGF0ZSBvZmZz
ZXRzLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaDoKKyAgICAgICAgUmVtb3Zl
ZCBub3cgdW51c2VkIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUgZGVjbGFyYXRp
b24uCisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGw6CisgICAgICAgIFVwZGF0
ZWQgc3BlYyB1cmwuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1p
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpSZXNvdXJjZUxv
YWRUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpkZWVwQ29w
eSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvciE9KToKKyAgICAg
ICAgTW92ZWQgZnJvbSBSZXNvdXJjZUxvYWRUaW1pbmcuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5n
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRvbWFpbkxvb2t1cFN0
YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRvbWFpbkxv
b2t1cEVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpjb25u
ZWN0U3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6Y29u
bmVjdEVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZWN1
cmVDb25uZWN0aW9uU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRp
bWluZzo6cmVxdWVzdFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6OnJlc3BvbnNlU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZFRpbWluZzo6c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlTG9hZFRpbWluZzo6c2V0RG9tYWluTG9va3VwRW5kVGltZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldENvbm5lY3RTdGFydFRpbWUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRDb25uZWN0RW5kVGltZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydFRp
bWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRSZXF1ZXN0U3Rh
cnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6c2V0UmVzcG9u
c2VTdGFydFRpbWUpOgorICAgICAgICBBZGRlZCBhY2Nlc3NvcnMgaW5zdGVhZCBvZiBoYXZpbmcg
cHVibGljIG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6
b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6Om9wZXJh
dG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpSZXNvdXJjZUxv
YWRUaW1pbmcpOgorICAgICAgICBNb3ZlZCBpbXBsZW1lbnRhdGlvbnMgdG8gUmVzb3VyY2VMb2Fk
VGltaW5nLmNwcC4KKwogMjAxNC0wNS0wNSAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5jb20+
CiAKICAgICAgICAgU2Vzc2lvbi1hd2FyZSBwbHVnaW4gYXV0b3N0YXJ0IGRhdGEKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAJKHJldmlzaW9uIDE2ODExNSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDIyICsxOTksMTYgQEAg
c3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZAogICAgICAgICBoZWFkZXJz
T2JqZWN0LT5zZXRTdHJpbmcoaGVhZGVyLmtleS5zdHJpbmcoKSwgaGVhZGVyLnZhbHVlKTsKICAg
ICByZXR1cm4gaGVhZGVyc09iamVjdDsKIH0KLQotc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGlt
aW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciogbG9h
ZGVyKQorICAgIAorc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0
d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291cmNl
TG9hZFRpbWluZyYgdGltaW5nKQogewogICAgIHJldHVybiBJbnNwZWN0b3I6OlR5cGVCdWlsZGVy
OjpOZXR3b3JrOjpSZXNvdXJjZVRpbWluZzo6Y3JlYXRlKCkKLSAgICAgICAgLnNldFJlcXVlc3RU
aW1lKGxvYWRlci0+dGltaW5nKCktPm1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKHRpbWlu
Zy5jb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZSgwKSkpCi0gICAgICAgIC5z
ZXRQcm94eVN0YXJ0KHRpbWluZy5wcm94eVN0YXJ0KQotICAgICAgICAuc2V0UHJveHlFbmQodGlt
aW5nLnByb3h5RW5kKQotICAgICAgICAuc2V0RG5zU3RhcnQodGltaW5nLmRuc1N0YXJ0KQotICAg
ICAgICAuc2V0RG5zRW5kKHRpbWluZy5kbnNFbmQpCi0gICAgICAgIC5zZXRDb25uZWN0U3RhcnQo
dGltaW5nLmNvbm5lY3RTdGFydCkKLSAgICAgICAgLnNldENvbm5lY3RFbmQodGltaW5nLmNvbm5l
Y3RFbmQpCi0gICAgICAgIC5zZXRTc2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0gICAgICAgIC5z
ZXRTc2xFbmQodGltaW5nLnNzbEVuZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0aW1pbmcuc2Vu
ZFN0YXJ0KQotICAgICAgICAuc2V0U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAgICAgICAgLnNl
dFJlY2VpdmVIZWFkZXJzRW5kKHRpbWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAgICAgICAgLnNl
dERvbWFpbkxvb2t1cFN0YXJ0VGltZSh0aW1pbmcuZG9tYWluTG9va3VwU3RhcnRUaW1lKCkpCisg
ICAgICAgIC5zZXREb21haW5Mb29rdXBFbmRUaW1lKHRpbWluZy5kb21haW5Mb29rdXBFbmRUaW1l
KCkpCisgICAgICAgIC5zZXRDb25uZWN0U3RhcnRUaW1lKHRpbWluZy5jb25uZWN0U3RhcnRUaW1l
KCkpCisgICAgICAgIC5zZXRDb25uZWN0RW5kVGltZSh0aW1pbmcuY29ubmVjdEVuZFRpbWUoKSkK
KyAgICAgICAgLnNldFJlcXVlc3RTdGFydFRpbWUodGltaW5nLnJlcXVlc3RTdGFydFRpbWUoKSkK
KyAgICAgICAgLnNldFJlc3BvbnNlU3RhcnRUaW1lKHRpbWluZy5yZXNwb25zZVN0YXJ0VGltZSgp
KQogICAgICAgICAucmVsZWFzZSgpOwogfQogCkBAIC0yMjksNyArMjIzLDcgQEAgc3RhdGljIFBh
c3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcgogICAgIHJldHVybiByZXF1ZXN0T2JqZWN0
OwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3Jr
OjpSZXNwb25zZT4gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IGJ1aWxkT2Jq
ZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
IHsKICAgICBpZiAocmVzcG9uc2UuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpA
QCAtMjQ4LDE5ICsyNDIsMTkgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVp
bGRlcgogCiAgICAgcmVzcG9uc2VPYmplY3QtPnNldEZyb21EaXNrQ2FjaGUocmVzcG9uc2Uud2Fz
Q2FjaGVkKCkpOwogICAgIGlmIChyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAg
ICAgcmVzcG9uc2VPYmplY3QtPnNldFRpbWluZyhidWlsZE9iamVjdEZvclRpbWluZygqcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCksIGxvYWRlcikpOworICAgICAgICByZXNwb25zZU9iamVj
dC0+c2V0VGltaW5nKGJ1aWxkT2JqZWN0Rm9yVGltaW5nKCpyZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKSkpOwogCiAgICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0OwogfQogCi1zdGF0aWMgUGFz
c1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4g
YnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3Vy
Y2UsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6
OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JDYWNo
ZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgUmVmUHRy
PEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlPiByZXNvdXJj
ZU9iamVjdCA9IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNl
OjpjcmVhdGUoKQogICAgICAgICAuc2V0VXJsKGNhY2hlZFJlc291cmNlLT51cmwoKSkKICAgICAg
ICAgLnNldFR5cGUoSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZVR5cGVKc29uKCpj
YWNoZWRSZXNvdXJjZSkpCiAgICAgICAgIC5zZXRCb2R5U2l6ZShjYWNoZWRSZXNvdXJjZS0+ZW5j
b2RlZFNpemUoKSk7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29y
azo6UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVz
cG9uc2UoY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCksIGxvYWRlcik7CisgICAgUmVmUHRyPElu
c3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNl
ID0gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNhY2hlZFJlc291cmNlLT5yZXNwb25z
ZSgpKTsKICAgICBpZiAocmVzb3VyY2VSZXNwb25zZSkKICAgICAgICAgcmVzb3VyY2VPYmplY3Qt
PnNldFJlc3BvbnNlKHJlc291cmNlUmVzcG9uc2UpOwogCkBAIC0zMjQsNyArMzE4LDcgQEAgdm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3aWxsU2VuZFJlcQogICAgIEluc3BlY3Rvcjo6VHlw
ZUJ1aWxkZXI6OlBhZ2U6OlJlc291cmNlVHlwZTo6RW51bSByZXNvdXJjZVR5cGUgPSBJbnNwZWN0
b3JQYWdlQWdlbnQ6OnJlc291cmNlVHlwZUpzb24odHlwZSk7CiAKICAgICBSZWZQdHI8SW5zcGVj
dG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6SW5pdGlhdG9yPiBpbml0aWF0b3JPYmplY3QgPSBi
dWlsZEluaXRpYXRvck9iamVjdChsb2FkZXItPmZyYW1lKCkgPyBsb2FkZXItPmZyYW1lKCktPmRv
Y3VtZW50KCkgOiBudWxscHRyKTsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVzdFdp
bGxCZVNlbnQocmVxdWVzdElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXItPmZyYW1lKCkp
LCBtX3BhZ2VBZ2VudC0+bG9hZGVySWQobG9hZGVyKSwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKSwg
YnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGN1cnJlbnRUaW1lKCksIGlu
aXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlZGlyZWN0UmVz
cG9uc2UsIGxvYWRlciksIHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNl
ID8gJnJlc291cmNlVHlwZSA6IG51bGxwdHIpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5y
ZXF1ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+
ZnJhbWUoKSksIG1fcGFnZUFnZW50LT5sb2FkZXJJZChsb2FkZXIpLCBsb2FkZXItPnVybCgpLnN0
cmluZygpLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgY3VycmVudFRp
bWUoKSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVk
aXJlY3RSZXNwb25zZSksIHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNl
ID8gJnJlc291cmNlVHlwZSA6IG51bGxwdHIpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6Om1hcmtSZXNvdXJjZUFzQ2FjaGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKQEAg
LTM0MSw3ICszMzUsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVS
CiAgICAgICAgIHJldHVybjsKIAogICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0Zh
Y3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBl
QnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVj
dEZvclJlc291cmNlUmVzcG9uc2UocmVzcG9uc2UsIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0g
YnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKTsKIAogICAgIGJvb2wgaXNO
b3RNb2RpZmllZCA9IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gMzA0OwogCkBAIC00NjAs
NyArNDU0LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2FkUmVzbwogCiAg
ICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkluaXRpYXRvcj4gaW5p
dGlhdG9yT2JqZWN0ID0gYnVpbGRJbml0aWF0b3JPYmplY3QobG9hZGVyLT5mcmFtZSgpID8gbG9h
ZGVyLT5mcmFtZSgpLT5kb2N1bWVudCgpIDogbnVsbHB0cik7CiAKLSAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlci0+cmVxdWVzdFNlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1ZXN0SWQsIGZyYW1lSWQs
IGxvYWRlcklkLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBjdXJyZW50VGltZSgpLCBpbml0aWF0
b3JPYmplY3QsIGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2UsIGxvYWRlcikp
OworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1ZXN0U2VydmVkRnJvbU1lbW9yeUNhY2hl
KHJlcXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQsIGxvYWRlci0+dXJsKCkuc3RyaW5nKCksIGN1
cnJlbnRUaW1lKCksIGluaXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJj
ZShyZXNvdXJjZSkpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEluaXRp
YWxTY3JpcHRDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBz
b3VyY2VTdHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmgJKHJldmlzaW9uIDE2ODExNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2
LDcgKzg2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgbWFya1Jlc291
cmNlQXNDYWNoZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZFJlY2Vp
dmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsYW9k
ZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBSZXNvdXJjZUxvYWRlciopOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2Fk
ZXIqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lk
IGRpZFJlY2VpdmVEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0
YSwgaW50IGRhdGFMZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBk
b3VibGUgZmluaXNoVGltZSk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCShy
ZXZpc2lvbiAxNjgxMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0
d29yay5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxOCArMzIsMTIgQEAKICAgICAgICAgICAg
ICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGltaW5nIGlu
Zm9ybWF0aW9uIGZvciB0aGUgcmVxdWVzdC4iLAogICAgICAgICAgICAgInByb3BlcnRpZXMiOiBb
Ci0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0VGltZSIsICJ0eXBlIjogIm51bWJl
ciIsICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyByZXF1ZXN0VGltZSBpcyBhIGJhc2VsaW5lIGlu
IHNlY29uZHMsIHdoaWxlIHRoZSBvdGhlciBudW1iZXJzIGFyZSB0aWNrcyBpbiBtaWxsaXNlY29u
ZHMgcmVsYXRpdmVseSB0byB0aGlzIHJlcXVlc3RUaW1lLiIgfSwKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInByb3h5U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAi
U3RhcnRlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
cHJveHlFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgcmVz
b2x2aW5nIHByb3h5LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRuc1N0YXJ0Iiwg
InR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgRE5TIGFkZHJlc3MgcmVz
b2x2ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkbnNFbmQiLCAidHlwZSI6ICJu
dW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0s
Ci0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0U3RhcnQiLCAidHlwZSI6ICJudW1i
ZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBjb25uZWN0aW5nIHRvIHRoZSByZW1vdGUgaG9z
dC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0RW5kIiwgInR5cGUiOiAi
bnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUgcmVtb3RlIGhvc3QuIiB9
LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsU3RhcnQiLCAidHlwZSI6ICJudW1iZXIi
LCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInNzbEVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6
ICJGaW5pc2hlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNlbmRTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHNl
bmRpbmcgcmVxdWVzdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzZW5kRW5kIiwg
InR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHNlbmRpbmcgcmVxdWVz
dC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZWNlaXZlSGVhZGVyc0VuZCIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCByZWNlaXZpbmcgcmVzcG9u
c2UgaGVhZGVycy4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cFN0
YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIEROUyBh
ZGRyZXNzIHJlc29sdmUiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb21haW5Mb29r
dXBFbmRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIERO
UyBhZGRyZXNzIHJlc29sdmUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29ubmVj
dFN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNv
bm5lY3RpbmcgdG8gdGhlIHJlbW90ZSBob3N0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImNvbm5lY3RFbmRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNv
bm5lY3RlZCB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAicmVxdWVzdFN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJT
dGFydGVkIHNlbmRpbmcgcmVxdWVzdC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJy
ZXNwb25zZVN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFy
dGVkIHJlY2VpdmluZyByZXNwb25zZSBoZWFkZXJzLiIgfQogICAgICAgICAgICAgXQogICAgICAg
ICB9LAogICAgICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
VGltaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkVGltaW5nLmNwcAkocmV2aXNpb24gMTY4MTE1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZFRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDEyICs3Niw2IEBA
IHZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjptYXJrTmF2aWdhdGlvblMKICAgICBtX3JlZmVyZW5j
ZVdhbGxUaW1lID0gY3VycmVudFRpbWUoKTsKIH0KIAotdm9pZCBEb2N1bWVudExvYWRUaW1pbmc6
OnNldE5hdmlnYXRpb25TdGFydChkb3VibGUgbmF2aWdhdGlvblN0YXJ0KQotewotICAgIEFTU0VS
VChtX3JlZmVyZW5jZU1vbm90b25pY1RpbWUgJiYgbV9yZWZlcmVuY2VXYWxsVGltZSk7Ci0gICAg
bV9uYXZpZ2F0aW9uU3RhcnQgPSBuYXZpZ2F0aW9uU3RhcnQ7Ci19Ci0KIHZvaWQgRG9jdW1lbnRM
b2FkVGltaW5nOjphZGRSZWRpcmVjdChjb25zdCBVUkwmIHJlZGlyZWN0aW5nVXJsLCBjb25zdCBV
UkwmIHJlZGlyZWN0ZWRVcmwpCiB7CiAgICAgbV9yZWRpcmVjdENvdW50Kys7CkBAIC05MCw3ICs4
NCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjphZGRSZWRpcmVjdChjb24KICAgICBtX3Jl
ZGlyZWN0RW5kID0gbV9mZXRjaFN0YXJ0ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7
CiAgICAgLy8gQ2hlY2sgaWYgdGhlIHJlZGlyZWN0ZWQgdXJsIGlzIGFsbG93ZWQgdG8gYWNjZXNz
IHRoZSByZWRpcmVjdGluZyB1cmwncyB0aW1pbmcgaW5mb3JtYXRpb24uCiAgICAgUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiByZWRpcmVjdGVkU2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKHJlZGlyZWN0ZWRVcmwpOwotICAgIG1faGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdCA9ICFy
ZWRpcmVjdGVkU2VjdXJpdHlPcmlnaW4tPmNhblJlcXVlc3QocmVkaXJlY3RpbmdVcmwpOworICAg
IG1faGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdCA9IG1faGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdCB8fCAh
cmVkaXJlY3RlZFNlY3VyaXR5T3JpZ2luLT5jYW5SZXF1ZXN0KHJlZGlyZWN0aW5nVXJsKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZFRpbWluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRUaW1pbmcuaAkocmV2aXNpb24gMTY4MTE1KQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw2
IEBAIHB1YmxpYzoKICAgICBkb3VibGUgbW9ub3RvbmljVGltZVRvUHNldWRvV2FsbFRpbWUoZG91
YmxlKSBjb25zdDsKIAogICAgIHZvaWQgbWFya05hdmlnYXRpb25TdGFydCgpOwotICAgIHZvaWQg
c2V0TmF2aWdhdGlvblN0YXJ0KGRvdWJsZSk7CiAgICAgdm9pZCBhZGRSZWRpcmVjdChjb25zdCBV
UkwmIHJlZGlyZWN0aW5nVXJsLCBjb25zdCBVUkwmIHJlZGlyZWN0ZWRVcmwpOwogCiAgICAgdm9p
ZCBtYXJrVW5sb2FkRXZlbnRTdGFydCgpIHsgbV91bmxvYWRFdmVudFN0YXJ0ID0gbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2Uu
aWRsCShyZXZpc2lvbiAxNjgxMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCi0vLyBTZWU6IGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBpL1dlYlRpbWluZy8KKy8v
IFNlZTogaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy93ZWJwZXJmL3Jhdy1maWxlL3RpcC9zcGVjcy9O
YXZpZ2F0aW9uVGltaW5nL092ZXJ2aWV3Lmh0bWwKIFsKICAgICBDb25kaXRpb25hbD1XRUJfVElN
SU5HLAogICAgIEV2ZW50VGFyZ2V0LApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODExNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsMTEgKzEzMCwxMSBA
QCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBUaGlz
IHdpbGwgYmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAgLy8g
UmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIERO
Uywgd2UgImJhY2tmaWxsIiB3aXRoIGZldGNoU3RhcnQuCi0gICAgaW50IGRuc1N0YXJ0ID0gdGlt
aW5nLT5kbnNTdGFydDsKKyAgICBkb3VibGUgZG5zU3RhcnQgPSB0aW1pbmctPmRvbWFpbkxvb2t1
cFN0YXJ0VGltZSgpOwogICAgIGlmIChkbnNTdGFydCA8IDApCiAgICAgICAgIHJldHVybiBmZXRj
aFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0
ZShkbnNTdGFydCk7CisgICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29u
ZHMoZG5zU3RhcnQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6
OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xNDUsMTEgKzE0NSwxMSBAQCB1bnNpZ25lZCBs
b25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBUaGlzIHdpbGwgYmUgLTEg
d2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAgLy8gUmF0aGVyIHRoYW4g
ZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIEROUywgd2UgImJhY2tm
aWxsIiB3aXRoIGRvbWFpbkxvb2t1cFN0YXJ0LgotICAgIGludCBkbnNFbmQgPSB0aW1pbmctPmRu
c0VuZDsKKyAgICBkb3VibGUgZG5zRW5kID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCk7
CiAgICAgaWYgKGRuc0VuZCA8IDApCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBTdGFydCgp
OwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoZG5zRW5k
KTsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkbnNFbmQp
OwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RTdGFy
dCgpIGNvbnN0CkBAIC0xNjQsMTYgKzE2NCwxNiBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9y
bWFuY2VUaW1pbmc6OmNvCiAKICAgICAvLyBjb25uZWN0U3RhcnQgd2lsbCBiZSAtMSB3aGVuIGEg
bmV0d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgogICAgIC8vIFJhdGhlciB0aGFuIGV4cG9zaW5n
IGEgc3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBuZXcgY29ubmVjdGlvbiwgd2UgImJh
Y2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1cEVuZC4KLSAgICBpbnQgY29ubmVjdFN0YXJ0ID0gdGlt
aW5nLT5jb25uZWN0U3RhcnQ7CisgICAgZG91YmxlIGNvbm5lY3RTdGFydCA9IHRpbWluZy0+Y29u
bmVjdFN0YXJ0VGltZSgpOwogICAgIGlmIChjb25uZWN0U3RhcnQgPCAwIHx8IGxvYWRlci0+cmVz
cG9uc2UoKS5jb25uZWN0aW9uUmV1c2VkKCkpCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBF
bmQoKTsKIAogICAgIC8vIFJlc291cmNlTG9hZFRpbWluZydzIGNvbm5lY3QgcGhhc2UgaW5jbHVk
ZXMgRE5TLCBob3dldmVyIE5hdmlnYXRpb24gVGltaW5nJ3MKICAgICAvLyBjb25uZWN0IHBoYXNl
IHNob3VsZCBub3QuIFNvIGlmIHRoZXJlIGlzIEROUyB0aW1lLCB0cmltIGl0IGZyb20gdGhlIHN0
YXJ0LgotICAgIGlmICh0aW1pbmctPmRuc0VuZCA+PSAwICYmIHRpbWluZy0+ZG5zRW5kID4gY29u
bmVjdFN0YXJ0KQotICAgICAgICBjb25uZWN0U3RhcnQgPSB0aW1pbmctPmRuc0VuZDsKKyAgICBp
ZiAodGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCkgPj0gMCAmJiB0aW1pbmctPmRvbWFpbkxv
b2t1cEVuZFRpbWUoKSA+IGNvbm5lY3RTdGFydCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0gdGlt
aW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGlt
ZVJlbGF0aXZlVG9BYnNvbHV0ZShjb25uZWN0U3RhcnQpOworICAgIHJldHVybiBtb25vdG9uaWNU
aW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGNvbm5lY3RTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxv
bmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6Y29ubmVjdEVuZCgpIGNvbnN0CkBAIC0xODgsMTEg
KzE4OCwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvCiAKICAg
ICAvLyBjb25uZWN0RW5kIHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVxdWVzdCBpcyBub3Qg
bWFkZS4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBp
bmRpY2F0ZXMgbm8gbmV3IGNvbm5lY3Rpb24sIHdlICJiYWNrZmlsbCIgd2l0aCBjb25uZWN0U3Rh
cnQuCi0gICAgaW50IGNvbm5lY3RFbmQgPSB0aW1pbmctPmNvbm5lY3RFbmQ7CisgICAgZG91Ymxl
IGNvbm5lY3RFbmQgPSB0aW1pbmctPmNvbm5lY3RFbmRUaW1lKCk7CiAgICAgaWYgKGNvbm5lY3RF
bmQgPCAwIHx8IGxvYWRlci0+cmVzcG9uc2UoKS5jb25uZWN0aW9uUmV1c2VkKCkpCiAgICAgICAg
IHJldHVybiBjb25uZWN0U3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVs
YXRpdmVUb0Fic29sdXRlKGNvbm5lY3RFbmQpOworICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9J
bnRlZ2VyTWlsbGlzZWNvbmRzKGNvbm5lY3RFbmQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcg
UGVyZm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNvbnN0CkBAIC0yMDUs
MTEgKzIwNSwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnNlCiAg
ICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaW50IHNzbFN0YXJ0ID0g
dGltaW5nLT5zc2xTdGFydDsKKyAgICBkb3VibGUgc3NsU3RhcnQgPSB0aW1pbmctPnNlY3VyZUNv
bm5lY3Rpb25TdGFydFRpbWUoKTsKICAgICBpZiAoc3NsU3RhcnQgPCAwKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHNz
bFN0YXJ0KTsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhz
c2xTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVx
dWVzdFN0YXJ0KCkgY29uc3QKQEAgLTIxOCw4ICsyMTgsOCBAQCB1bnNpZ25lZCBsb25nIGxvbmcg
UGVyZm9ybWFuY2VUaW1pbmc6OnJlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiBj
b25uZWN0RW5kKCk7CiAKLSAgICBBU1NFUlQodGltaW5nLT5zZW5kU3RhcnQgPj0gMCk7Ci0gICAg
cmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5zZW5kU3Rh
cnQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlcXVlc3RTdGFydFRpbWUoKSA+PSAwKTsKKyAgICBy
ZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlcXVlc3RT
dGFydFRpbWUoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6
cmVzcG9uc2VTdGFydCgpIGNvbnN0CkBAIC0yMzQsOCArMjM0LDggQEAgdW5zaWduZWQgbG9uZyBs
b25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZQogICAgIC8vIHNpemVkIGNvb2tpZXMsIHRoZSBIVFRQ
IGhlYWRlcnMgZml0IGludG8gYSBzaW5nbGUgcGFja2V0IHNvIHRoaXMgdGltZQogICAgIC8vIGlz
IGJhc2ljYWxseSBlcXVpdmFsZW50LiBCdXQgZm9yIHNvbWUgcmVzcG9uc2VzLCBwYXJ0aWN1bGFy
bHkgdGhvc2Ugd2l0aAogICAgIC8vIGhlYWRlcnMgbGFyZ2VyIHRoYW4gYSBzaW5nbGUgcGFja2V0
LCB0aGlzIHRpbWUgd2lsbCBiZSB0b28gbGF0ZS4KLSAgICBBU1NFUlQodGltaW5nLT5yZWNlaXZl
SGVhZGVyc0VuZCA+PSAwKTsKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9B
YnNvbHV0ZSh0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kKTsKKyAgICBBU1NFUlQodGltaW5nLT5y
ZXNwb25zZVN0YXJ0VGltZSgpID49IDApOworICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9JbnRl
Z2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+cmVzcG9uc2VTdGFydFRpbWUoKSk7CiB9CiAKIHVuc2ln
bmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VFbmQoKSBjb25zdApAQCAt
MzQ4LDE0ICszNDgsNiBAQCBSZXNvdXJjZUxvYWRUaW1pbmcqIFBlcmZvcm1hbmNlVGltaW5nOjpy
CiAgICAgcmV0dXJuIGxvYWRlci0+cmVzcG9uc2UoKS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKIH0K
IAotdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1l
UmVsYXRpdmVUb0Fic29sdXRlKGludCByZWxhdGl2ZU1pbGxpc2Vjb25kcykgY29uc3QKLXsKLSAg
ICBBU1NFUlQocmVsYXRpdmVNaWxsaXNlY29uZHMgPj0gMCk7Ci0gICAgUmVzb3VyY2VMb2FkVGlt
aW5nKiByZXNvdXJjZVRpbWluZyA9IHJlc291cmNlTG9hZFRpbWluZygpOwotICAgIEFTU0VSVChy
ZXNvdXJjZVRpbWluZyk7Ci0gICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNl
Y29uZHMocmVzb3VyY2VUaW1pbmctPmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNU
aW1lKHJlbGF0aXZlTWlsbGlzZWNvbmRzKSk7Ci19Ci0KIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJm
b3JtYW5jZVRpbWluZzo6bW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUg
bW9ub3RvbmljU2Vjb25kcykgY29uc3QKIHsKICAgICBBU1NFUlQobW9ub3RvbmljU2Vjb25kcyA+
PSAwKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmgJKHJldmlz
aW9uIDE2ODExNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaAko
d29ya2luZyBjb3B5KQpAQCAtNzgsNyArNzgsNiBAQCBwcml2YXRlOgogICAgIERvY3VtZW50TG9h
ZGVyKiBkb2N1bWVudExvYWRlcigpIGNvbnN0OwogICAgIERvY3VtZW50TG9hZFRpbWluZyogZG9j
dW1lbnRMb2FkVGltaW5nKCkgY29uc3Q7CiAgICAgUmVzb3VyY2VMb2FkVGltaW5nKiByZXNvdXJj
ZUxvYWRUaW1pbmcoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgcmVzb3VyY2VMb2Fk
VGltZVJlbGF0aXZlVG9BYnNvbHV0ZShpbnQpIGNvbnN0OwogICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJsZSkgY29uc3Q7CiB9Owog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAkocmV2aXNp
b24gMTY4MTE1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
Ly8gU2VlOiBodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisvLyBTZWU6
IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3MvTmF2aWdh
dGlvblRpbWluZy9PdmVydmlldy5odG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywK
IF0gaW50ZXJmYWNlIFBlcmZvcm1hbmNlVGltaW5nIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAJKHJldmlz
aW9uIDE2ODExNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VM
b2FkVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsMTAgKzI4LDQ1IEBACiAjaW5jbHVkZSAiUmVz
b3VyY2VMb2FkVGltaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZG91YmxlIFJlc291
cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoaW50
IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdAorICAgIAorUmVzb3VyY2VMb2FkVGltaW5nOjpSZXNv
dXJjZUxvYWRUaW1pbmcoKQorICAgIDogbV9kb21haW5Mb29rdXBTdGFydFRpbWUoLTEuMCkKKyAg
ICAsIG1fZG9tYWluTG9va3VwRW5kVGltZSgtMS4wKQorICAgICwgbV9jb25uZWN0U3RhcnRUaW1l
KC0xLjApCisgICAgLCBtX2Nvbm5lY3RFbmRUaW1lKC0xLjApCisgICAgLCBtX3NlY3VyZUNvbm5l
Y3Rpb25TdGFydFRpbWUoMC4wKQorICAgICwgbV9yZXF1ZXN0U3RhcnRUaW1lKDAuMCkKKyAgICAs
IG1fcmVzcG9uc2VTdGFydFRpbWUoMC4wKQogewotICAgIHJldHVybiByZXF1ZXN0VGltZSArIGRl
bHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wOwogfQotCisgICAgCitQYXNzUmVmUHRyPFJlc291cmNl
TG9hZFRpbWluZz4gUmVzb3VyY2VMb2FkVGltaW5nOjpkZWVwQ29weSgpCit7CisgICAgUmVmUHRy
PFJlc291cmNlTG9hZFRpbWluZz4gdGltaW5nID0gYWRvcHRSZWYobmV3IFJlc291cmNlTG9hZFRp
bWluZyk7CisgICAgdGltaW5nLT5zZXREb21haW5Mb29rdXBTdGFydFRpbWUobV9kb21haW5Mb29r
dXBTdGFydFRpbWUpOworICAgIHRpbWluZy0+c2V0RG9tYWluTG9va3VwRW5kVGltZShtX2RvbWFp
bkxvb2t1cEVuZFRpbWUpOworICAgIHRpbWluZy0+c2V0Q29ubmVjdFN0YXJ0VGltZShtX2Nvbm5l
Y3RTdGFydFRpbWUpOworICAgIHRpbWluZy0+c2V0Q29ubmVjdEVuZFRpbWUobV9jb25uZWN0RW5k
VGltZSk7CisgICAgdGltaW5nLT5zZXRTZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKG1fc2VjdXJl
Q29ubmVjdGlvblN0YXJ0VGltZSk7CisgICAgdGltaW5nLT5zZXRSZXF1ZXN0U3RhcnRUaW1lKG1f
cmVxdWVzdFN0YXJ0VGltZSk7CisgICAgdGltaW5nLT5zZXRSZXNwb25zZVN0YXJ0VGltZShtX3Jl
c3BvbnNlU3RhcnRUaW1lKTsKKyAgICByZXR1cm4gdGltaW5nLnJlbGVhc2UoKTsKK30KKyAgICAK
K2Jvb2wgUmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlTG9hZFRp
bWluZyYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZG9tYWluTG9va3VwU3RhcnRUaW1l
ID09IG90aGVyLmRvbWFpbkxvb2t1cFN0YXJ0VGltZSgpCisgICAgICAgICYmIG1fZG9tYWluTG9v
a3VwRW5kVGltZSA9PSBvdGhlci5kb21haW5Mb29rdXBFbmRUaW1lKCkKKyAgICAgICAgJiYgbV9j
b25uZWN0U3RhcnRUaW1lID09IG90aGVyLmNvbm5lY3RTdGFydFRpbWUoKQorICAgICAgICAmJiBt
X2Nvbm5lY3RFbmRUaW1lID09IG90aGVyLmNvbm5lY3RFbmRUaW1lKCkKKyAgICAgICAgJiYgbV9z
ZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lID09IG90aGVyLnNlY3VyZUNvbm5lY3Rpb25TdGFydFRp
bWUoKQorICAgICAgICAmJiBtX3JlcXVlc3RTdGFydFRpbWUgPT0gb3RoZXIucmVxdWVzdFN0YXJ0
VGltZSgpCisgICAgICAgICYmIG1fcmVzcG9uc2VTdGFydFRpbWUgPT0gb3RoZXIucmVzcG9uc2VT
dGFydFRpbWUoKTsKK30KKyAgICAKK2Jvb2wgUmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvciE9
KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuICEo
KnRoaXMgPT0gb3RoZXIpOworfQorICAgIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCShyZXZpc2lvbiAxNjgx
MTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWlu
Zy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNiw5NiArMjcsNDYgQEAKICNpZm5kZWYgUmVzb3VyY2VMb2FkVGlt
aW5nX2gKICNkZWZpbmUgUmVzb3VyY2VMb2FkVGltaW5nX2gKIAotI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1lbnRMb2FkVGltaW5n
OwotCiBjbGFzcyBSZXNvdXJjZUxvYWRUaW1pbmcgOiBwdWJsaWMgUmVmQ291bnRlZDxSZXNvdXJj
ZUxvYWRUaW1pbmc+IHsKKyAgICAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNv
dXJjZUxvYWRUaW1pbmc+IGNyZWF0ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFJlc291cmNlTG9hZFRpbWluZyk7Ci0gICAgfQotCi0gICAgUGFzc1JlZlB0cjxSZXNvdXJj
ZUxvYWRUaW1pbmc+IGRlZXBDb3B5KCkKLSAgICB7Ci0gICAgICAgIFJlZlB0cjxSZXNvdXJjZUxv
YWRUaW1pbmc+IHRpbWluZyA9IGNyZWF0ZSgpOwotICAgICAgICB0aW1pbmctPnJlcXVlc3RUaW1l
ID0gcmVxdWVzdFRpbWU7Ci0gICAgICAgIHRpbWluZy0+cHJveHlTdGFydCA9IHByb3h5U3RhcnQ7
Ci0gICAgICAgIHRpbWluZy0+cHJveHlFbmQgPSBwcm94eUVuZDsKLSAgICAgICAgdGltaW5nLT5k
bnNTdGFydCA9IGRuc1N0YXJ0OwotICAgICAgICB0aW1pbmctPmRuc0VuZCA9IGRuc0VuZDsKLSAg
ICAgICAgdGltaW5nLT5jb25uZWN0U3RhcnQgPSBjb25uZWN0U3RhcnQ7Ci0gICAgICAgIHRpbWlu
Zy0+Y29ubmVjdEVuZCA9IGNvbm5lY3RFbmQ7Ci0gICAgICAgIHRpbWluZy0+c2VuZFN0YXJ0ID0g
c2VuZFN0YXJ0OwotICAgICAgICB0aW1pbmctPnNlbmRFbmQgPSBzZW5kRW5kOwotICAgICAgICB0
aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kID0gcmVjZWl2ZUhlYWRlcnNFbmQ7Ci0gICAgICAgIHRp
bWluZy0+c3NsU3RhcnQgPSBzc2xTdGFydDsKLSAgICAgICAgdGltaW5nLT5zc2xFbmQgPSBzc2xF
bmQ7Ci0gICAgICAgIHJldHVybiB0aW1pbmcucmVsZWFzZSgpOwotICAgIH0KLQotICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVyKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIHJlcXVlc3RUaW1lID09IG90aGVyLnJlcXVlc3RUaW1lCi0gICAgICAg
ICAgICAmJiBwcm94eVN0YXJ0ID09IG90aGVyLnByb3h5U3RhcnQKLSAgICAgICAgICAgICYmIHBy
b3h5RW5kID09IG90aGVyLnByb3h5RW5kCi0gICAgICAgICAgICAmJiBkbnNTdGFydCA9PSBvdGhl
ci5kbnNTdGFydAotICAgICAgICAgICAgJiYgZG5zRW5kID09IG90aGVyLmRuc0VuZAotICAgICAg
ICAgICAgJiYgY29ubmVjdFN0YXJ0ID09IG90aGVyLmNvbm5lY3RTdGFydAotICAgICAgICAgICAg
JiYgY29ubmVjdEVuZCA9PSBvdGhlci5jb25uZWN0RW5kCi0gICAgICAgICAgICAmJiBzZW5kU3Rh
cnQgPT0gb3RoZXIuc2VuZFN0YXJ0Ci0gICAgICAgICAgICAmJiBzZW5kRW5kID09IG90aGVyLnNl
bmRFbmQKLSAgICAgICAgICAgICYmIHJlY2VpdmVIZWFkZXJzRW5kID09IG90aGVyLnJlY2VpdmVI
ZWFkZXJzRW5kCi0gICAgICAgICAgICAmJiBzc2xTdGFydCA9PSBvdGhlci5zc2xTdGFydAotICAg
ICAgICAgICAgJiYgc3NsRW5kID09IG90aGVyLnNzbEVuZDsKLSAgICB9Ci0KLSAgICBib29sIG9w
ZXJhdG9yIT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKLSAgICB7Ci0g
ICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKLSAgICB9Ci0KLSAgICAvLyBXZSB3YW50
IHRvIHByZXNlbnQgYSB1bmlmaWVkIHRpbWVsaW5lIHRvIEphdmFzY3JpcHQuIFVzaW5nIHdhbGx0
aW1lIGlzIHByb2JsZW1hdGljLCBiZWNhdXNlIHRoZSBjbG9jayBtYXkgc2tldyB3aGlsZSByZXNv
dXJjZXMKLSAgICAvLyBsb2FkLiBUbyBwcmV2ZW50IHRoYXQgc2tldywgd2UgcmVjb3JkIGEgc2lu
Z2xlIHJlZmVyZW5jZSB3YWxsdGltZSB3aGVuIHJvb3QgZG9jdW1lbnQgbmF2aWdhdGlvbiBiZWdp
bnMuIEFsbCBvdGhlciB0aW1lcyBhcmUKLSAgICAvLyByZWNvcmRlZCB1c2luZyBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKS4gV2hlbiBhIHRpbWUgbmVlZHMgdG8gYmUgcHJlc2VudGVkIHRv
IEphdmFzY3JpcHQsIHdlIGJ1aWxkIGEgcHNldWRvLXdhbGx0aW1lCi0gICAgLy8gdXNpbmcgdGhl
IGZvbGxvd2luZyBlcXVhdGlvbjoKLSAgICAvLyAgIHBzZXVkbyB0aW1lID0gZG9jdW1lbnQgd2Fs
bCByZWZlcmVuY2UgKyAocmVzb3VyY2UgcmVxdWVzdCB0aW1lIC0gZG9jdW1lbnQgbW9ub3Rvbmlj
IHJlZmVyZW5jZSkgKyBkZWx0YU1pbGxpc2Vjb25kcyAvIDEwMDAuMC4KLSAgICBkb3VibGUgY29u
dmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoaW50IGRlbHRhTWlsbGlzZWNvbmRz
KSBjb25zdDsKLQotICAgIGRvdWJsZSByZXF1ZXN0VGltZTsgLy8gbW9ub3RvbmljYWxseUluY3Jl
YXNpbmdUaW1lKCkgd2hlbiB0aGUgcG9ydCBzdGFydGVkIGhhbmRsaW5nIHRoaXMgcmVxdWVzdC4K
LSAgICBpbnQgcHJveHlTdGFydDsgLy8gVGhlIHJlc3Qgb2YgdGhlc2UgYXJlIG1pbGxpc2Vjb25k
IGRlbHRhcywgdXNpbmcgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIGZyb20gcmVxdWVz
dFRpbWUuCi0gICAgaW50IHByb3h5RW5kOwotICAgIGludCBkbnNTdGFydDsKLSAgICBpbnQgZG5z
RW5kOwotICAgIGludCBjb25uZWN0U3RhcnQ7Ci0gICAgaW50IGNvbm5lY3RFbmQ7Ci0gICAgaW50
IHNlbmRTdGFydDsKLSAgICBpbnQgc2VuZEVuZDsKLSAgICBpbnQgcmVjZWl2ZUhlYWRlcnNFbmQ7
Ci0gICAgaW50IHNzbFN0YXJ0OwotICAgIGludCBzc2xFbmQ7Ci0KKyAgICAKKyAgICBSZXNvdXJj
ZUxvYWRUaW1pbmcoKTsKKyAgICBQYXNzUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gZGVlcENv
cHkoKTsKKyAgICAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5n
JikgY29uc3Q7CisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYp
IGNvbnN0OworICAgIAorICAgIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydFRpbWUoKSBjb25zdCB7
IHJldHVybiBtX2RvbWFpbkxvb2t1cFN0YXJ0VGltZTsgfQorICAgIGRvdWJsZSBkb21haW5Mb29r
dXBFbmRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9kb21haW5Mb29rdXBFbmRUaW1lOyB9CisgICAg
ZG91YmxlIGNvbm5lY3RTdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3RTdGFydFRp
bWU7IH0KKyAgICBkb3VibGUgY29ubmVjdEVuZFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5l
Y3RFbmRUaW1lOyB9CisgICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKSBjb25z
dCB7IHJldHVybiBtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWU7IH0KKyAgICBkb3VibGUgcmVx
dWVzdFN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdFN0YXJ0VGltZTsgfQorICAg
IGRvdWJsZSByZXNwb25zZVN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VTdGFy
dFRpbWU7IH0KKyAgICAKKyAgICB2b2lkIHNldERvbWFpbkxvb2t1cFN0YXJ0VGltZShkb3VibGUg
ZG9tYWluTG9va3VwU3RhcnRUaW1lKSB7IG1fZG9tYWluTG9va3VwU3RhcnRUaW1lID0gZG9tYWlu
TG9va3VwU3RhcnRUaW1lOyB9CisgICAgdm9pZCBzZXREb21haW5Mb29rdXBFbmRUaW1lKGRvdWJs
ZSBkb21haW5Mb29rdXBFbmRUaW1lKSB7IG1fZG9tYWluTG9va3VwRW5kVGltZSA9IGRvbWFpbkxv
b2t1cEVuZFRpbWU7IH0KKyAgICB2b2lkIHNldENvbm5lY3RTdGFydFRpbWUoZG91YmxlIGNvbm5l
Y3RTdGFydFRpbWUpIHsgbV9jb25uZWN0U3RhcnRUaW1lID0gY29ubmVjdFN0YXJ0VGltZTsgfQor
ICAgIHZvaWQgc2V0Q29ubmVjdEVuZFRpbWUoZG91YmxlIGNvbm5lY3RFbmRUaW1lKSB7IG1fY29u
bmVjdEVuZFRpbWUgPSBjb25uZWN0RW5kVGltZTsgfQorICAgIHZvaWQgc2V0U2VjdXJlQ29ubmVj
dGlvblN0YXJ0VGltZShkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSkgeyBtX3NlY3Vy
ZUNvbm5lY3Rpb25TdGFydFRpbWUgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lOyB9CisgICAg
dm9pZCBzZXRSZXF1ZXN0U3RhcnRUaW1lKGRvdWJsZSByZXF1ZXN0U3RhcnRUaW1lKSB7IG1fcmVx
dWVzdFN0YXJ0VGltZSA9IHJlcXVlc3RTdGFydFRpbWU7IH0KKyAgICB2b2lkIHNldFJlc3BvbnNl
U3RhcnRUaW1lKGRvdWJsZSByZXNwb25zZVN0YXJ0VGltZSkgeyBtX3Jlc3BvbnNlU3RhcnRUaW1l
ID0gcmVzcG9uc2VTdGFydFRpbWU7IH0KKyAgICAKIHByaXZhdGU6Ci0gICAgUmVzb3VyY2VMb2Fk
VGltaW5nKCkKLSAgICAgICAgOiByZXF1ZXN0VGltZSgwKQotICAgICAgICAsIHByb3h5U3RhcnQo
LTEpCi0gICAgICAgICwgcHJveHlFbmQoLTEpCi0gICAgICAgICwgZG5zU3RhcnQoLTEpCi0gICAg
ICAgICwgZG5zRW5kKC0xKQotICAgICAgICAsIGNvbm5lY3RTdGFydCgtMSkKLSAgICAgICAgLCBj
b25uZWN0RW5kKC0xKQotICAgICAgICAsIHNlbmRTdGFydCgwKQotICAgICAgICAsIHNlbmRFbmQo
MCkKLSAgICAgICAgLCByZWNlaXZlSGVhZGVyc0VuZCgwKQotICAgICAgICAsIHNzbFN0YXJ0KC0x
KQotICAgICAgICAsIHNzbEVuZCgtMSkKLSAgICB7Ci0gICAgfQorICAgIAorICAgIGRvdWJsZSBt
X2RvbWFpbkxvb2t1cFN0YXJ0VGltZTsKKyAgICBkb3VibGUgbV9kb21haW5Mb29rdXBFbmRUaW1l
OworICAgIGRvdWJsZSBtX2Nvbm5lY3RTdGFydFRpbWU7CisgICAgZG91YmxlIG1fY29ubmVjdEVu
ZFRpbWU7CisgICAgZG91YmxlIG1fc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZTsKKyAgICBkb3Vi
bGUgbV9yZXF1ZXN0U3RhcnRUaW1lOworICAgIGRvdWJsZSBtX3Jlc3BvbnNlU3RhcnRUaW1lOwog
fTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230943</attachid>
            <date>2014-05-06 15:47:39 -0700</date>
            <delta_ts>2014-05-06 16:43:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140506154717.patch</filename>
            <type>text/plain</type>
            <size>42201</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM4NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg5IEBACisyMDE0LTA1LTA2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
b24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgIEFkZGVkIGxpbmtlciBzeW1ib2wuCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YnVpbGRPYmplY3RGb3JUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRP
YmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0
Rm9yQ2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VB
Z2VudDo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291
cmNlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JSZXNvdXJjZUFnZW50OjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL3Byb3RvY29sL05ldHdvcmsuanNvbjoKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZUxvYWRU
aW1pbmcgdmFsdWVzIGFuZCByZW1vdmVkIHVudXNlZCBwYXJhbWV0ZXJzLgorICAgICAgICAqIGxv
YWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkVGltaW5nOjphZGRSZWRpcmVjdCk6CisgICAgICAgIEtlZXAgYSByZWNvcmQgb2YgYSBjcm9z
cyBvcmlnaW4gcmVkaXJlY3QgZXZlbiBpZiB5b3UgYXJlIHJlZGlyZWN0ZWQgYmFjay4KKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZFRpbWluZzo6c2V0TmF2aWdhdGlvblN0YXJ0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmg6CisgICAgICAgIFJl
bW92ZWQgdW51c2VkIHNldE5hdmlnYXRpb25TdGFydCBtZXRob2QgZGVjbGFyYXRpb24uCisgICAg
ICAgICogcGFnZS9QZXJmb3JtYW5jZS5pZGw6CisgICAgICAgIFVwZGF0ZWQgc3BlYyB1cmwuCisg
ICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlU3RhcnQpOiBEZWxldGVk
LgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oOgorICAgICAgICAq
IHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VUaW1pbmc6OmNvbm5lY3RTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRp
bWluZzo6Y29ubmVjdEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6
c2VjdXJlQ29ubmVjdGlvblN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGlt
aW5nOjpyZXF1ZXN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6
OnJlc3BvbnNlU3RhcnQpOgorICAgICAgICBVc2UgbmV3IFJlc291cmNlTG9hZFRpbWluZyBtZXRo
b2RzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnJlc291cmNlTG9hZFRp
bWVUb0ludGVnZXJNaWxsaXNlY29uZHMpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VU
aW1pbmc6OnJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUpOgorICAgICAgICBSZXBs
YWNlZCByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlIHdpdGggcmVzb3VyY2VMb2Fk
VGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcworICAgICAgICBiZWNhdXNlIG9mIG5ldyBzdG9yYWdl
IGZvcm1hdCBpbiBSZXNvdXJjZUxvYWRUaW1pbmcuCisgICAgICAgICogcGFnZS9QZXJmb3JtYW5j
ZVRpbWluZy5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsOgorICAgICAg
ICBVcGRhdGVkIHNwZWMgdXJsLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNl
cnMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OlJlc291cmNlTG9hZFRpbWlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6Om9wZXJhdG9yIT0pOgorICAgICAgICBNb3Zl
ZCBmcm9tIFJlc291cmNlTG9hZFRpbWluZy5oLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkVGltaW5nOjpjb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6ZG9tYWluTG9va3VwU3RhcnRUaW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6ZG9tYWluTG9va3VwRW5kVGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbm5lY3RTdGFydFRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpjb25uZWN0RW5kVGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFy
dFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpyZXF1ZXN0U3Rh
cnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6cmVzcG9uc2VT
dGFydFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXREb21h
aW5Mb29rdXBTdGFydFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpzZXREb21haW5Mb29rdXBFbmRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZFRpbWluZzo6c2V0Q29ubmVjdFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRUaW1pbmc6OnNldENvbm5lY3RFbmRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6c2V0U2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldFJlcXVlc3RTdGFydFRpbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRSZXNwb25zZVN0YXJ0VGltZSk6Cisg
ICAgICAgIEFkZGVkIGFjY2Vzc29ycyBpbnN0ZWFkIG9mIGhhdmluZyBwdWJsaWMgbWVtYmVyIHZh
cmlhYmxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6ZGVlcENvcHkp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvcj09KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6b3BlcmF0b3IhPSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OlJlc291cmNlTG9hZFRpbWluZyk6CisgICAg
ICAgIE1vdmVkIGltcGxlbWVudGF0aW9ucyB0byBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwLgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OlJlc291cmNlUmVzcG9uc2VCYXNlKToK
KyAgICAgICAgSW5pdGlhbGl6ZSBtX3Jlc291cmNlTG9hZFRpbWluZyB3aGljaCBpcyB1c2VkIG5v
dy4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24p
OgorICAgICAgICBDYWxsIF9zZXRDb2xsZWN0c1RpbWluZ0RhdGEgdG8gY29sbGVjdCB0aW1pbmcg
ZGF0YSBmb3Igd2ViIHRpbWluZy4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgICgt
W1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9u
OmRpZFJlY2VpdmVSZXNwb25zZTpdKToKKyAgICAgICAgUHV0IHRpbWluZyBkYXRhIGludG8gUmVz
b3VyY2VMb2FkVGltaW5nIGRhdGEgc3RydWN0dXJlLgorCiAyMDE0LTA1LTA2ICBBbmRyZWFzIEts
aW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbWlzc2luZyBsaW5lIGZyb20g
cjE2ODM4NC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNjgzNjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTc1NSw2ICsx
NzU1LDcgQEAgX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNWh0dAogX19aTks3
V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNmh0dHBIZWFkZXJGaWVsZHNFdgogX19aTks3
V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxNnRleHRFbmNvZGluZ05hbWVFdgogX19aTks3
V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxN3N1Z2dlc3RlZEZpbGVuYW1lRXYKK19fWk5L
N1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMThyZXNvdXJjZUxvYWRUaW1pbmdFdgogX19a
Tks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMWV4cGVjdGVkQ29udGVudExlbmd0aEV2
CiBfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTN1cmxFdgogX19aTks3V2ViQ29y
ZTIwUmVzb3VyY2VSZXNwb25zZUJhc2U2aXNIVFRQRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAJKHJldmlzaW9uIDE2
ODM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDIxICsyMDAsMTUgQEAgc3RhdGljIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZAogICAgIHJldHVybiBoZWFkZXJzT2JqZWN0OwogfQog
Ci1zdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNv
dXJjZVRpbWluZz4gYnVpbGRPYmplY3RGb3JUaW1pbmcoY29uc3QgUmVzb3VyY2VMb2FkVGltaW5n
JiB0aW1pbmcsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNw
ZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNvdXJjZVRpbWluZz4gYnVpbGRPYmplY3RG
b3JUaW1pbmcoY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiB0aW1pbmcpCiB7CiAgICAgcmV0dXJu
IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5nOjpjcmVhdGUo
KQotICAgICAgICAuc2V0UmVxdWVzdFRpbWUobG9hZGVyLT50aW1pbmcoKS0+bW9ub3RvbmljVGlt
ZVRvUHNldWRvV2FsbFRpbWUodGltaW5nLmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9u
aWNUaW1lKDApKSkKLSAgICAgICAgLnNldFByb3h5U3RhcnQodGltaW5nLnByb3h5U3RhcnQpCi0g
ICAgICAgIC5zZXRQcm94eUVuZCh0aW1pbmcucHJveHlFbmQpCi0gICAgICAgIC5zZXREbnNTdGFy
dCh0aW1pbmcuZG5zU3RhcnQpCi0gICAgICAgIC5zZXREbnNFbmQodGltaW5nLmRuc0VuZCkKLSAg
ICAgICAgLnNldENvbm5lY3RTdGFydCh0aW1pbmcuY29ubmVjdFN0YXJ0KQotICAgICAgICAuc2V0
Q29ubmVjdEVuZCh0aW1pbmcuY29ubmVjdEVuZCkKLSAgICAgICAgLnNldFNzbFN0YXJ0KHRpbWlu
Zy5zc2xTdGFydCkKLSAgICAgICAgLnNldFNzbEVuZCh0aW1pbmcuc3NsRW5kKQotICAgICAgICAu
c2V0U2VuZFN0YXJ0KHRpbWluZy5zZW5kU3RhcnQpCi0gICAgICAgIC5zZXRTZW5kRW5kKHRpbWlu
Zy5zZW5kRW5kKQotICAgICAgICAuc2V0UmVjZWl2ZUhlYWRlcnNFbmQodGltaW5nLnJlY2VpdmVI
ZWFkZXJzRW5kKQorICAgICAgICAuc2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKHRpbWluZy5kb21h
aW5Mb29rdXBTdGFydFRpbWUoKSkKKyAgICAgICAgLnNldERvbWFpbkxvb2t1cEVuZFRpbWUodGlt
aW5nLmRvbWFpbkxvb2t1cEVuZFRpbWUoKSkKKyAgICAgICAgLnNldENvbm5lY3RTdGFydFRpbWUo
dGltaW5nLmNvbm5lY3RTdGFydFRpbWUoKSkKKyAgICAgICAgLnNldENvbm5lY3RFbmRUaW1lKHRp
bWluZy5jb25uZWN0RW5kVGltZSgpKQorICAgICAgICAuc2V0UmVxdWVzdFN0YXJ0VGltZSh0aW1p
bmcucmVxdWVzdFN0YXJ0VGltZSgpKQorICAgICAgICAuc2V0UmVzcG9uc2VTdGFydFRpbWUodGlt
aW5nLnJlc3BvbnNlU3RhcnRUaW1lKCkpCiAgICAgICAgIC5yZWxlYXNlKCk7CiB9CiAKQEAgLTIy
OSw3ICsyMjMsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyCiAg
ICAgcmV0dXJuIHJlcXVlc3RPYmplY3Q7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rv
cjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiBidWlsZE9iamVjdEZvclJlc291cmNl
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIERvY3VtZW50TG9hZGVy
KiBsb2FkZXIpCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3
b3JrOjpSZXNwb25zZT4gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGlmIChyZXNwb25zZS5pc051bGwoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0yNDgsMTkgKzI0MiwxOSBAQCBzdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyCiAKICAgICByZXNwb25zZU9iamVjdC0+c2V0RnJv
bURpc2tDYWNoZShyZXNwb25zZS53YXNDYWNoZWQoKSk7CiAgICAgaWYgKHJlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpKQotICAgICAgICByZXNwb25zZU9iamVjdC0+c2V0VGltaW5nKGJ1aWxk
T2JqZWN0Rm9yVGltaW5nKCpyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSwgbG9hZGVyKSk7
CisgICAgICAgIHJlc3BvbnNlT2JqZWN0LT5zZXRUaW1pbmcoYnVpbGRPYmplY3RGb3JUaW1pbmco
KnJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKSk7CiAKICAgICByZXR1cm4gcmVzcG9uc2VP
YmplY3Q7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5l
dHdvcms6OkNhY2hlZFJlc291cmNlPiBidWlsZE9iamVjdEZvckNhY2hlZFJlc291cmNlKENhY2hl
ZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKK3N0YXRp
YyBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291
cmNlPiBidWlsZE9iamVjdEZvckNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKiBjYWNoZWRS
ZXNvdXJjZSkKIHsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6
Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlT2JqZWN0ID0gSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6
TmV0d29yazo6Q2FjaGVkUmVzb3VyY2U6OmNyZWF0ZSgpCiAgICAgICAgIC5zZXRVcmwoY2FjaGVk
UmVzb3VyY2UtPnVybCgpKQogICAgICAgICAuc2V0VHlwZShJbnNwZWN0b3JQYWdlQWdlbnQ6OmNh
Y2hlZFJlc291cmNlVHlwZUpzb24oKmNhY2hlZFJlc291cmNlKSkKICAgICAgICAgLnNldEJvZHlT
aXplKGNhY2hlZFJlc291cmNlLT5lbmNvZGVkU2l6ZSgpKTsKIAotICAgIFJlZlB0cjxJbnNwZWN0
b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNwb25zZT4gcmVzb3VyY2VSZXNwb25zZSA9IGJ1
aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShjYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2UoKSwg
bG9hZGVyKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVz
cG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2Uo
Y2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkpOwogICAgIGlmIChyZXNvdXJjZVJlc3BvbnNlKQog
ICAgICAgICByZXNvdXJjZU9iamVjdC0+c2V0UmVzcG9uc2UocmVzb3VyY2VSZXNwb25zZSk7CiAK
QEAgLTMyNCw3ICszMTgsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxTZW5k
UmVxCiAgICAgSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6UGFnZTo6UmVzb3VyY2VUeXBlOjpFbnVt
IHJlc291cmNlVHlwZSA9IEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VUeXBlSnNvbih0eXBl
KTsKIAogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpJbml0aWF0
b3I+IGluaXRpYXRvck9iamVjdCA9IGJ1aWxkSW5pdGlhdG9yT2JqZWN0KGxvYWRlci0+ZnJhbWUo
KSA/IGxvYWRlci0+ZnJhbWUoKS0+ZG9jdW1lbnQoKSA6IG51bGxwdHIpOwotICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyLT5yZXF1ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50LT5m
cmFtZUlkKGxvYWRlci0+ZnJhbWUoKSksIG1fcGFnZUFnZW50LT5sb2FkZXJJZChsb2FkZXIpLCBs
b2FkZXItPnVybCgpLnN0cmluZygpLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVxdWVzdChyZXF1
ZXN0KSwgY3VycmVudFRpbWUoKSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9iamVjdEZvclJlc291
cmNlUmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSwgbG9hZGVyKSwgdHlwZSAhPSBJbnNwZWN0b3JQ
YWdlQWdlbnQ6Ok90aGVyUmVzb3VyY2UgPyAmcmVzb3VyY2VUeXBlIDogbnVsbHB0cik7CisgICAg
bV9mcm9udGVuZERpc3BhdGNoZXItPnJlcXVlc3RXaWxsQmVTZW50KHJlcXVlc3RJZCwgbV9wYWdl
QWdlbnQtPmZyYW1lSWQobG9hZGVyLT5mcmFtZSgpKSwgbV9wYWdlQWdlbnQtPmxvYWRlcklkKGxv
YWRlciksIGxvYWRlci0+dXJsKCkuc3RyaW5nKCksIGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXF1
ZXN0KHJlcXVlc3QpLCBjdXJyZW50VGltZSgpLCBpbml0aWF0b3JPYmplY3QsIGJ1aWxkT2JqZWN0
Rm9yUmVzb3VyY2VSZXNwb25zZShyZWRpcmVjdFJlc3BvbnNlKSwgdHlwZSAhPSBJbnNwZWN0b3JQ
YWdlQWdlbnQ6Ok90aGVyUmVzb3VyY2UgPyAmcmVzb3VyY2VUeXBlIDogbnVsbHB0cik7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6bWFya1Jlc291cmNlQXNDYWNoZWQodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyKQpAQCAtMzQxLDcgKzMzNSw3IEBAIHZvaWQgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVIKICAgICAgICAgcmV0dXJuOwogCiAgICAgU3RyaW5nIHJl
cXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpOwotICAg
IFJlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNwb25zZT4gcmVzb3Vy
Y2VSZXNwb25zZSA9IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShyZXNwb25zZSwgbG9h
ZGVyKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9u
c2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVz
cG9uc2UpOwogCiAgICAgYm9vbCBpc05vdE1vZGlmaWVkID0gcmVzcG9uc2UuaHR0cFN0YXR1c0Nv
ZGUoKSA9PSAzMDQ7CiAKQEAgLTQ2MCw3ICs0NTQsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmRpZExvYWRSZXNvCiAKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6
TmV0d29yazo6SW5pdGlhdG9yPiBpbml0aWF0b3JPYmplY3QgPSBidWlsZEluaXRpYXRvck9iamVj
dChsb2FkZXItPmZyYW1lKCkgPyBsb2FkZXItPmZyYW1lKCktPmRvY3VtZW50KCkgOiBudWxscHRy
KTsKIAotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1ZXN0U2VydmVkRnJvbU1lbW9yeUNh
Y2hlKHJlcXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQsIGxvYWRlci0+dXJsKCkuc3RyaW5nKCks
IGN1cnJlbnRUaW1lKCksIGluaXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNv
dXJjZShyZXNvdXJjZSwgbG9hZGVyKSk7CisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnJlcXVl
c3RTZXJ2ZWRGcm9tTWVtb3J5Q2FjaGUocmVxdWVzdElkLCBmcmFtZUlkLCBsb2FkZXJJZCwgbG9h
ZGVyLT51cmwoKS5zdHJpbmcoKSwgY3VycmVudFRpbWUoKSwgaW5pdGlhdG9yT2JqZWN0LCBidWls
ZE9iamVjdEZvckNhY2hlZFJlc291cmNlKHJlc291cmNlKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6c2V0SW5pdGlhbFNjcmlwdENvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZykKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAkocmV2aXNpb24gMTY4
MzY4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHdp
bGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSk7CiAgICAgdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZCh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgRG9jdW1lbnRMb2FkZXIqIGxhb2RlciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFJlc291
cmNlTG9hZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBSZXNv
dXJjZUxvYWRlciopOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCwgaW50IGVuY29kZWREYXRh
TGVuZ3RoKTsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBEb2N1bWVudExvYWRlciosIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2b2lkIGRpZEZh
aWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25z
dCBSZXNvdXJjZUVycm9yJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9j
b2wvTmV0d29yay5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9w
cm90b2NvbC9OZXR3b3JrLmpzb24JKHJldmlzaW9uIDE2ODM2OCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTMyLDE4
ICszMiwxMiBAQAogICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJUaW1pbmcgaW5mb3JtYXRpb24gZm9yIHRoZSByZXF1ZXN0LiIsCiAgICAg
ICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVl
c3RUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRpbWluZydzIHJlcXVl
c3RUaW1lIGlzIGEgYmFzZWxpbmUgaW4gc2Vjb25kcywgd2hpbGUgdGhlIG90aGVyIG51bWJlcnMg
YXJlIHRpY2tzIGluIG1pbGxpc2Vjb25kcyByZWxhdGl2ZWx5IHRvIHRoaXMgcmVxdWVzdFRpbWUu
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJveHlTdGFydCIsICJ0eXBlIjogIm51
bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlc29sdmluZyBwcm94eS4iIH0sCi0gICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJwcm94eUVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNj
cmlwdGlvbiI6ICJGaW5pc2hlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiZG5zU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAi
U3RhcnRlZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImRuc0VuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBE
TlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5l
Y3RTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5l
Y3RpbmcgdG8gdGhlIHJlbW90ZSBob3N0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNvbm5lY3RFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29ubmVjdGVk
IHRvIHRoZSByZW1vdGUgaG9zdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzc2xT
dGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIFNTTCBoYW5k
c2hha2UuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsRW5kIiwgInR5cGUiOiAi
bnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIFNTTCBoYW5kc2hha2UuIiB9LAotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VuZFN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRl
c2NyaXB0aW9uIjogIlN0YXJ0ZWQgc2VuZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInNlbmRFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAi
RmluaXNoZWQgc2VuZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InJlY2VpdmVIZWFkZXJzRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZp
bmlzaGVkIHJlY2VpdmluZyByZXNwb25zZSBoZWFkZXJzLiIgfQorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZG9tYWluTG9va3VwU3RhcnRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2Ny
aXB0aW9uIjogIlN0YXJ0ZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZSIgfSwKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cEVuZFRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVz
Y3JpcHRpb24iOiAiRmluaXNoZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJjb25uZWN0U3RhcnRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRl
c2NyaXB0aW9uIjogIlN0YXJ0ZWQgY29ubmVjdGluZyB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29ubmVjdEVuZFRpbWUiLCAidHlwZSI6ICJudW1i
ZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29ubmVjdGVkIHRvIHRoZSByZW1vdGUgaG9zdC4iIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0U3RhcnRUaW1lIiwgInR5cGUiOiAibnVt
YmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgc2VuZGluZyByZXF1ZXN0LiIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInJlc3BvbnNlU3RhcnRUaW1lIiwgInR5cGUiOiAibnVtYmVy
IiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgcmVjZWl2aW5nIHJlc3BvbnNlIGhlYWRlcnMuIiB9
CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCShyZXZpc2lvbiAxNjgzNjgpCisr
KyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzYsMTIgKzc2LDYgQEAgdm9pZCBEb2N1bWVudExvYWRUaW1pbmc6Om1hcmtOYXZp
Z2F0aW9uUwogICAgIG1fcmVmZXJlbmNlV2FsbFRpbWUgPSBjdXJyZW50VGltZSgpOwogfQogCi12
b2lkIERvY3VtZW50TG9hZFRpbWluZzo6c2V0TmF2aWdhdGlvblN0YXJ0KGRvdWJsZSBuYXZpZ2F0
aW9uU3RhcnQpCi17Ci0gICAgQVNTRVJUKG1fcmVmZXJlbmNlTW9ub3RvbmljVGltZSAmJiBtX3Jl
ZmVyZW5jZVdhbGxUaW1lKTsKLSAgICBtX25hdmlnYXRpb25TdGFydCA9IG5hdmlnYXRpb25TdGFy
dDsKLX0KLQogdm9pZCBEb2N1bWVudExvYWRUaW1pbmc6OmFkZFJlZGlyZWN0KGNvbnN0IFVSTCYg
cmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVkaXJlY3RlZFVybCkKIHsKICAgICBtX3JlZGly
ZWN0Q291bnQrKzsKQEAgLTkwLDcgKzg0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRUaW1pbmc6OmFk
ZFJlZGlyZWN0KGNvbgogICAgIG1fcmVkaXJlY3RFbmQgPSBtX2ZldGNoU3RhcnQgPSBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKICAgICAvLyBDaGVjayBpZiB0aGUgcmVkaXJlY3RlZCB1
cmwgaXMgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHJlZGlyZWN0aW5nIHVybCdzIHRpbWluZyBpbmZv
cm1hdGlvbi4KICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHJlZGlyZWN0ZWRTZWN1cml0eU9y
aWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUocmVkaXJlY3RlZFVybCk7Ci0gICAgbV9oYXND
cm9zc09yaWdpblJlZGlyZWN0ID0gIXJlZGlyZWN0ZWRTZWN1cml0eU9yaWdpbi0+Y2FuUmVxdWVz
dChyZWRpcmVjdGluZ1VybCk7CisgICAgbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0ID0gbV9oYXND
cm9zc09yaWdpblJlZGlyZWN0IHx8ICFyZWRpcmVjdGVkU2VjdXJpdHlPcmlnaW4tPmNhblJlcXVl
c3QocmVkaXJlY3RpbmdVcmwpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCShyZXZpc2lvbiAxNjgz
NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBtb25vdG9uaWNU
aW1lVG9Qc2V1ZG9XYWxsVGltZShkb3VibGUpIGNvbnN0OwogCiAgICAgdm9pZCBtYXJrTmF2aWdh
dGlvblN0YXJ0KCk7Ci0gICAgdm9pZCBzZXROYXZpZ2F0aW9uU3RhcnQoZG91YmxlKTsKICAgICB2
b2lkIGFkZFJlZGlyZWN0KGNvbnN0IFVSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVk
aXJlY3RlZFVybCk7CiAKICAgICB2b2lkIG1hcmtVbmxvYWRFdmVudFN0YXJ0KCkgeyBtX3VubG9h
ZEV2ZW50U3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwJKHJldmlzaW9uIDE2ODM2OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3
IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAw
Ni93ZWJhcGkvV2ViVGltaW5nLworLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3JnL2hnL3dlYnBl
cmYvcmF3LWZpbGUvdGlwL3NwZWNzL05hdmlnYXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRtbAogWwog
ICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiAgICAgRXZlbnRUYXJnZXQsCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHJl
dmlzaW9uIDE2ODM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4OCwxNyArMTg4LDYgQEAgZG91YmxlIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlcXVlcwogICAgIHJldHVybiByZXNvdXJjZVRpbWVU
b0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5zZW5kU3RhcnQpOwogfQogCi1kb3VibGUg
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0Ci17Ci0gICAg
aWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCi0gICAgICAgIHJldHVybiAwLjA7Ci0KLSAgICBp
ZiAoIW1fdGltaW5nKQotICAgICAgICByZXR1cm4gcmVxdWVzdFN0YXJ0KCk7Ci0gICAgLy8gRklY
TUU6IFRoaXMgbnVtYmVyIGlzbid0IGV4YWN0bHkgY29ycmVjdC4gU2VlIHRoZSBub3RlcyBpbiBQ
ZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpLgotICAgIHJldHVybiByZXNvdXJjZVRp
bWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCk7Ci19
Ci0KIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX2ZpbmlzaFRpbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAkocmV2aXNpb24gMTY4MzY4KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTY1LDcgKzY1LDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBjb25uZWN0RW5kKCkgY29u
c3Q7CiAgICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNvbnN0OwogICAgIGRvdWJs
ZSByZXF1ZXN0U3RhcnQoKSBjb25zdDsKLSAgICBkb3VibGUgcmVzcG9uc2VTdGFydCgpIGNvbnN0
OwogICAgIGRvdWJsZSByZXNwb25zZUVuZCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIGlz
UmVzb3VyY2UoKSB7IHJldHVybiB0cnVlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4MzY4KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMCwxMSArMTMw
LDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG8KIAogICAgIC8v
IFRoaXMgd2lsbCBiZSAtMSB3aGVuIGEgRE5TIHJlcXVlc3QgaXMgbm90IHBlcmZvcm1lZC4KICAg
ICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRpY2F0ZXMg
bm8gRE5TLCB3ZSAiYmFja2ZpbGwiIHdpdGggZmV0Y2hTdGFydC4KLSAgICBpbnQgZG5zU3RhcnQg
PSB0aW1pbmctPmRuc1N0YXJ0OworICAgIGRvdWJsZSBkbnNTdGFydCA9IHRpbWluZy0+ZG9tYWlu
TG9va3VwU3RhcnRUaW1lKCk7CiAgICAgaWYgKGRuc1N0YXJ0IDwgMCkKICAgICAgICAgcmV0dXJu
IGZldGNoU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fi
c29sdXRlKGRuc1N0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1p
bGxpc2Vjb25kcyhkbnNTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5j
ZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKCkgY29uc3QKQEAgLTE0NSwxMSArMTQ1LDExIEBAIHVu
c2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG8KIAogICAgIC8vIFRoaXMgd2ls
bCBiZSAtMSB3aGVuIGEgRE5TIHJlcXVlc3QgaXMgbm90IHBlcmZvcm1lZC4KICAgICAvLyBSYXRo
ZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8gRE5TLCB3
ZSAiYmFja2ZpbGwiIHdpdGggZG9tYWluTG9va3VwU3RhcnQuCi0gICAgaW50IGRuc0VuZCA9IHRp
bWluZy0+ZG5zRW5kOworICAgIGRvdWJsZSBkbnNFbmQgPSB0aW1pbmctPmRvbWFpbkxvb2t1cEVu
ZFRpbWUoKTsKICAgICBpZiAoZG5zRW5kIDwgMCkKICAgICAgICAgcmV0dXJuIGRvbWFpbkxvb2t1
cFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0
ZShkbnNFbmQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNv
bmRzKGRuc0VuZCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6
Y29ubmVjdFN0YXJ0KCkgY29uc3QKQEAgLTE2NCwxNiArMTY0LDE2IEBAIHVuc2lnbmVkIGxvbmcg
bG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6Y28KIAogICAgIC8vIGNvbm5lY3RTdGFydCB3aWxsIGJl
IC0xIHdoZW4gYSBuZXR3b3JrIHJlcXVlc3QgaXMgbm90IG1hZGUuCiAgICAgLy8gUmF0aGVyIHRo
YW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIG5ldyBjb25uZWN0
aW9uLCB3ZSAiYmFja2ZpbGwiIHdpdGggZG9tYWluTG9va3VwRW5kLgotICAgIGludCBjb25uZWN0
U3RhcnQgPSB0aW1pbmctPmNvbm5lY3RTdGFydDsKKyAgICBkb3VibGUgY29ubmVjdFN0YXJ0ID0g
dGltaW5nLT5jb25uZWN0U3RhcnRUaW1lKCk7CiAgICAgaWYgKGNvbm5lY3RTdGFydCA8IDAgfHwg
bG9hZGVyLT5yZXNwb25zZSgpLmNvbm5lY3Rpb25SZXVzZWQoKSkKICAgICAgICAgcmV0dXJuIGRv
bWFpbkxvb2t1cEVuZCgpOwogCiAgICAgLy8gUmVzb3VyY2VMb2FkVGltaW5nJ3MgY29ubmVjdCBw
aGFzZSBpbmNsdWRlcyBETlMsIGhvd2V2ZXIgTmF2aWdhdGlvbiBUaW1pbmcncwogICAgIC8vIGNv
bm5lY3QgcGhhc2Ugc2hvdWxkIG5vdC4gU28gaWYgdGhlcmUgaXMgRE5TIHRpbWUsIHRyaW0gaXQg
ZnJvbSB0aGUgc3RhcnQuCi0gICAgaWYgKHRpbWluZy0+ZG5zRW5kID49IDAgJiYgdGltaW5nLT5k
bnNFbmQgPiBjb25uZWN0U3RhcnQpCi0gICAgICAgIGNvbm5lY3RTdGFydCA9IHRpbWluZy0+ZG5z
RW5kOworICAgIGlmICh0aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA+PSAwICYmIHRpbWlu
Zy0+ZG9tYWluTG9va3VwRW5kVGltZSgpID4gY29ubmVjdFN0YXJ0KQorICAgICAgICBjb25uZWN0
U3RhcnQgPSB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKTsKIAotICAgIHJldHVybiByZXNv
dXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGNvbm5lY3RTdGFydCk7CisgICAgcmV0dXJu
IHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoY29ubmVjdFN0YXJ0KTsKIH0K
IAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0RW5kKCkgY29u
c3QKQEAgLTE4OCwxMSArMTg4LDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6Y28KIAogICAgIC8vIGNvbm5lY3RFbmQgd2lsbCBiZSAtMSB3aGVuIGEgbmV0d29yayBy
ZXF1ZXN0IGlzIG5vdCBtYWRlLgogICAgIC8vIFJhdGhlciB0aGFuIGV4cG9zaW5nIGEgc3BlY2lh
bCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBuZXcgY29ubmVjdGlvbiwgd2UgImJhY2tmaWxsIiB3
aXRoIGNvbm5lY3RTdGFydC4KLSAgICBpbnQgY29ubmVjdEVuZCA9IHRpbWluZy0+Y29ubmVjdEVu
ZDsKKyAgICBkb3VibGUgY29ubmVjdEVuZCA9IHRpbWluZy0+Y29ubmVjdEVuZFRpbWUoKTsKICAg
ICBpZiAoY29ubmVjdEVuZCA8IDAgfHwgbG9hZGVyLT5yZXNwb25zZSgpLmNvbm5lY3Rpb25SZXVz
ZWQoKSkKICAgICAgICAgcmV0dXJuIGNvbm5lY3RTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291
cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoY29ubmVjdEVuZCk7CisgICAgcmV0dXJuIHJl
c291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoY29ubmVjdEVuZCk7CiB9CiAKIHVu
c2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6c2VjdXJlQ29ubmVjdGlvblN0YXJ0
KCkgY29uc3QKQEAgLTIwNSwxMSArMjA1LDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6c2UKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICBpbnQgc3NsU3RhcnQgPSB0aW1pbmctPnNzbFN0YXJ0OworICAgIGRvdWJsZSBzc2xTdGFydCA9
IHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSgpOwogICAgIGlmIChzc2xTdGFydCA8
IDApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxh
dGl2ZVRvQWJzb2x1dGUoc3NsU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lVG9J
bnRlZ2VyTWlsbGlzZWNvbmRzKHNzbFN0YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBl
cmZvcm1hbmNlVGltaW5nOjpyZXF1ZXN0U3RhcnQoKSBjb25zdApAQCAtMjE4LDggKzIxOCw4IEBA
IHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAoIXRpbWlu
ZykKICAgICAgICAgcmV0dXJuIGNvbm5lY3RFbmQoKTsKIAotICAgIEFTU0VSVCh0aW1pbmctPnNl
bmRTdGFydCA+PSAwKTsKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNv
bHV0ZSh0aW1pbmctPnNlbmRTdGFydCk7CisgICAgQVNTRVJUKHRpbWluZy0+cmVxdWVzdFN0YXJ0
VGltZSgpID49IDApOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlz
ZWNvbmRzKHRpbWluZy0+cmVxdWVzdFN0YXJ0VGltZSgpKTsKIH0KIAogdW5zaWduZWQgbG9uZyBs
b25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKQEAgLTIyOCwxNCAr
MjI4LDggQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZQogICAgIGlm
ICghdGltaW5nKQogICAgICAgICByZXR1cm4gcmVxdWVzdFN0YXJ0KCk7CiAKLSAgICAvLyBGSVhN
RTogUmVzcG9uc2Ugc3RhcnQgbmVlZHMgdG8gYmUgdGhlIHRpbWUgb2YgdGhlIGZpcnN0IHJlY2Vp
dmVkIGJ5dGUuCi0gICAgLy8gSG93ZXZlciwgdGhlIFJlc291cmNlTG9hZFRpbWluZyBBUEkgY3Vy
cmVudGx5IG9ubHkgc3VwcG9ydHMgdGhlIHRpbWUKLSAgICAvLyB0aGUgbGFzdCBoZWFkZXIgYnl0
ZSB3YXMgcmVjZWl2ZWQuIEZvciBtYW55IHJlc3BvbnNlcyB3aXRoIHJlYXNvbmFibGUKLSAgICAv
LyBzaXplZCBjb29raWVzLCB0aGUgSFRUUCBoZWFkZXJzIGZpdCBpbnRvIGEgc2luZ2xlIHBhY2tl
dCBzbyB0aGlzIHRpbWUKLSAgICAvLyBpcyBiYXNpY2FsbHkgZXF1aXZhbGVudC4gQnV0IGZvciBz
b21lIHJlc3BvbnNlcywgcGFydGljdWxhcmx5IHRob3NlIHdpdGgKLSAgICAvLyBoZWFkZXJzIGxh
cmdlciB0aGFuIGEgc2luZ2xlIHBhY2tldCwgdGhpcyB0aW1lIHdpbGwgYmUgdG9vIGxhdGUuCi0g
ICAgQVNTRVJUKHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQgPj0gMCk7Ci0gICAgcmV0dXJuIHJl
c291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5yZWNlaXZlSGVhZGVyc0Vu
ZCk7CisgICAgQVNTRVJUKHRpbWluZy0+cmVzcG9uc2VTdGFydFRpbWUoKSA+PSAwKTsKKyAgICBy
ZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlc3Bv
bnNlU3RhcnRUaW1lKCkpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1p
bmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKQEAgLTM0OCwxNCArMzQyLDYgQEAgUmVzb3VyY2VMb2Fk
VGltaW5nKiBQZXJmb3JtYW5jZVRpbWluZzo6cgogICAgIHJldHVybiBsb2FkZXItPnJlc3BvbnNl
KCkucmVzb3VyY2VMb2FkVGltaW5nKCk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShpbnQgcmVsYXRp
dmVNaWxsaXNlY29uZHMpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKHJlbGF0aXZlTWlsbGlzZWNvbmRz
ID49IDApOwotICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVzb3VyY2VUaW1pbmcgPSByZXNvdXJj
ZUxvYWRUaW1pbmcoKTsKLSAgICBBU1NFUlQocmVzb3VyY2VUaW1pbmcpOwotICAgIHJldHVybiBt
b25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHJlc291cmNlVGltaW5nLT5jb252ZXJ0
UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZShyZWxhdGl2ZU1pbGxpc2Vjb25kcykpOwot
fQotCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om1vbm90b25pY1RpbWVU
b0ludGVnZXJNaWxsaXNlY29uZHMoZG91YmxlIG1vbm90b25pY1NlY29uZHMpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKG1vbm90b25pY1NlY29uZHMgPj0gMCk7CkBAIC0zNjMsNiArMzQ5LDE2IEBAIHVu
c2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bW8KICAgICBBU1NFUlQodGltaW5n
KTsKICAgICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+bW9ub3RvbmljVGlt
ZVRvUHNldWRvV2FsbFRpbWUobW9ub3RvbmljU2Vjb25kcykpOwogfQorICAgIAordW5zaWduZWQg
bG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWls
bGlzZWNvbmRzKGRvdWJsZSBzZWNvbmRzKQoreworI2lmIFVTRShDRikKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPigoc2Vjb25kcyArIGtDRkFic29sdXRlVGltZUlu
dGVydmFsU2luY2UxOTcwKSAqIDEwMDApOworI2Vsc2UKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dW5zaWduZWQgbG9uZyBsb25nPihzZWNvbmRzICogMTAwMCk7CisjZW5kaWYKK30KKyAgICAKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVRpbWluZy5oCShyZXZpc2lvbiAxNjgzNjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDggKzc4LDggQEAgcHJpdmF0
ZToKICAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIoKSBjb25zdDsKICAgICBEb2N1
bWVudExvYWRUaW1pbmcqIGRvY3VtZW50TG9hZFRpbWluZygpIGNvbnN0OwogICAgIFJlc291cmNl
TG9hZFRpbWluZyogcmVzb3VyY2VMb2FkVGltaW5nKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgbG9u
ZyBsb25nIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoaW50KSBjb25zdDsKICAg
ICB1bnNpZ25lZCBsb25nIGxvbmcgbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhk
b3VibGUpIGNvbnN0OworICAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcmVzb3VyY2VMb2Fk
VGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUpOwogfTsKIAogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwJKHJldmlzaW9uIDE2ODM2OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw3ICsyOCw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS8vIFNlZTogaHR0cDov
L2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViVGltaW5nLworLy8gU2VlOiBodHRwczovL2R2Y3Mu
dzMub3JnL2hnL3dlYnBlcmYvcmF3LWZpbGUvdGlwL3NwZWNzL05hdmlnYXRpb25UaW1pbmcvT3Zl
cnZpZXcuaHRtbAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiBdIGludGVyZmFjZSBQ
ZXJmb3JtYW5jZVRpbWluZyB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9IVFRQUGFyc2Vycy5oCShyZXZpc2lvbiAxNjgzNjgpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3
LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xh
c3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7Ci0KIGVudW0gQ29udGVudERpc3Bvc2l0aW9uVHlwZSB7
CiAgICAgQ29udGVudERpc3Bvc2l0aW9uTm9uZSwKICAgICBDb250ZW50RGlzcG9zaXRpb25Jbmxp
bmUsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRp
bWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUxvYWRUaW1pbmcuY3BwCShyZXZpc2lvbiAxNjgzNjgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3
LDEwICsyOCw0NSBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWRvdWJsZSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZlcnRSZXNvdXJj
ZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3QKKyAg
ICAKK1Jlc291cmNlTG9hZFRpbWluZzo6UmVzb3VyY2VMb2FkVGltaW5nKCkKKyAgICA6IG1fZG9t
YWluTG9va3VwU3RhcnRUaW1lKC0xLjApCisgICAgLCBtX2RvbWFpbkxvb2t1cEVuZFRpbWUoLTEu
MCkKKyAgICAsIG1fY29ubmVjdFN0YXJ0VGltZSgtMS4wKQorICAgICwgbV9jb25uZWN0RW5kVGlt
ZSgtMS4wKQorICAgICwgbV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKDAuMCkKKyAgICAsIG1f
cmVxdWVzdFN0YXJ0VGltZSgwLjApCisgICAgLCBtX3Jlc3BvbnNlU3RhcnRUaW1lKDAuMCkKIHsK
LSAgICByZXR1cm4gcmVxdWVzdFRpbWUgKyBkZWx0YU1pbGxpc2Vjb25kcyAvIDEwMDAuMDsKIH0K
LQorICAgIAorUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IFJlc291cmNlTG9hZFRpbWlu
Zzo6ZGVlcENvcHkoKQoreworICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IHRpbWluZyA9
IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUxvYWRUaW1pbmcpOworICAgIHRpbWluZy0+c2V0RG9tYWlu
TG9va3VwU3RhcnRUaW1lKG1fZG9tYWluTG9va3VwU3RhcnRUaW1lKTsKKyAgICB0aW1pbmctPnNl
dERvbWFpbkxvb2t1cEVuZFRpbWUobV9kb21haW5Mb29rdXBFbmRUaW1lKTsKKyAgICB0aW1pbmct
PnNldENvbm5lY3RTdGFydFRpbWUobV9jb25uZWN0U3RhcnRUaW1lKTsKKyAgICB0aW1pbmctPnNl
dENvbm5lY3RFbmRUaW1lKG1fY29ubmVjdEVuZFRpbWUpOworICAgIHRpbWluZy0+c2V0U2VjdXJl
Q29ubmVjdGlvblN0YXJ0VGltZShtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUpOworICAgIHRp
bWluZy0+c2V0UmVxdWVzdFN0YXJ0VGltZShtX3JlcXVlc3RTdGFydFRpbWUpOworICAgIHRpbWlu
Zy0+c2V0UmVzcG9uc2VTdGFydFRpbWUobV9yZXNwb25zZVN0YXJ0VGltZSk7CisgICAgcmV0dXJu
IHRpbWluZy5yZWxlYXNlKCk7Cit9CisgICAgCitib29sIFJlc291cmNlTG9hZFRpbWluZzo6b3Bl
cmF0b3I9PShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVyKSBjb25zdAoreworICAgIHJl
dHVybiBtX2RvbWFpbkxvb2t1cFN0YXJ0VGltZSA9PSBvdGhlci5kb21haW5Mb29rdXBTdGFydFRp
bWUoKQorICAgICAgICAmJiBtX2RvbWFpbkxvb2t1cEVuZFRpbWUgPT0gb3RoZXIuZG9tYWluTG9v
a3VwRW5kVGltZSgpCisgICAgICAgICYmIG1fY29ubmVjdFN0YXJ0VGltZSA9PSBvdGhlci5jb25u
ZWN0U3RhcnRUaW1lKCkKKyAgICAgICAgJiYgbV9jb25uZWN0RW5kVGltZSA9PSBvdGhlci5jb25u
ZWN0RW5kVGltZSgpCisgICAgICAgICYmIG1fc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSA9PSBv
dGhlci5zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKCkKKyAgICAgICAgJiYgbV9yZXF1ZXN0U3Rh
cnRUaW1lID09IG90aGVyLnJlcXVlc3RTdGFydFRpbWUoKQorICAgICAgICAmJiBtX3Jlc3BvbnNl
U3RhcnRUaW1lID09IG90aGVyLnJlc3BvbnNlU3RhcnRUaW1lKCk7Cit9CisgICAgCitib29sIFJl
c291cmNlTG9hZFRpbWluZzo6b3BlcmF0b3IhPShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIG90
aGVyKSBjb25zdAoreworICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKK30KKyAgICAKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5n
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUxvYWRUaW1pbmcuaAkocmV2aXNpb24gMTY4MzY4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsOTYgKzI3LDQ3
IEBACiAjaWZuZGVmIFJlc291cmNlTG9hZFRpbWluZ19oCiAjZGVmaW5lIFJlc291cmNlTG9hZFRp
bWluZ19oCiAKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIERvY3VtZW50TG9hZFRpbWluZzsKLQogY2xhc3MgUmVzb3VyY2VMb2FkVGltaW5n
IDogcHVibGljIFJlZkNvdW50ZWQ8UmVzb3VyY2VMb2FkVGltaW5nPiB7CisgICAgCiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBjcmVhdGUoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZXNvdXJjZUxvYWRUaW1pbmcpOwotICAg
IH0KLQotICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBkZWVwQ29weSgpCi0gICAg
ewotICAgICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiB0aW1pbmcgPSBjcmVhdGUoKTsK
LSAgICAgICAgdGltaW5nLT5yZXF1ZXN0VGltZSA9IHJlcXVlc3RUaW1lOwotICAgICAgICB0aW1p
bmctPnByb3h5U3RhcnQgPSBwcm94eVN0YXJ0OwotICAgICAgICB0aW1pbmctPnByb3h5RW5kID0g
cHJveHlFbmQ7Ci0gICAgICAgIHRpbWluZy0+ZG5zU3RhcnQgPSBkbnNTdGFydDsKLSAgICAgICAg
dGltaW5nLT5kbnNFbmQgPSBkbnNFbmQ7Ci0gICAgICAgIHRpbWluZy0+Y29ubmVjdFN0YXJ0ID0g
Y29ubmVjdFN0YXJ0OwotICAgICAgICB0aW1pbmctPmNvbm5lY3RFbmQgPSBjb25uZWN0RW5kOwot
ICAgICAgICB0aW1pbmctPnNlbmRTdGFydCA9IHNlbmRTdGFydDsKLSAgICAgICAgdGltaW5nLT5z
ZW5kRW5kID0gc2VuZEVuZDsKLSAgICAgICAgdGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCA9IHJl
Y2VpdmVIZWFkZXJzRW5kOwotICAgICAgICB0aW1pbmctPnNzbFN0YXJ0ID0gc3NsU3RhcnQ7Ci0g
ICAgICAgIHRpbWluZy0+c3NsRW5kID0gc3NsRW5kOwotICAgICAgICByZXR1cm4gdGltaW5nLnJl
bGVhc2UoKTsKLSAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VMb2Fk
VGltaW5nJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiByZXF1ZXN0VGltZSA9
PSBvdGhlci5yZXF1ZXN0VGltZQotICAgICAgICAgICAgJiYgcHJveHlTdGFydCA9PSBvdGhlci5w
cm94eVN0YXJ0Ci0gICAgICAgICAgICAmJiBwcm94eUVuZCA9PSBvdGhlci5wcm94eUVuZAotICAg
ICAgICAgICAgJiYgZG5zU3RhcnQgPT0gb3RoZXIuZG5zU3RhcnQKLSAgICAgICAgICAgICYmIGRu
c0VuZCA9PSBvdGhlci5kbnNFbmQKLSAgICAgICAgICAgICYmIGNvbm5lY3RTdGFydCA9PSBvdGhl
ci5jb25uZWN0U3RhcnQKLSAgICAgICAgICAgICYmIGNvbm5lY3RFbmQgPT0gb3RoZXIuY29ubmVj
dEVuZAotICAgICAgICAgICAgJiYgc2VuZFN0YXJ0ID09IG90aGVyLnNlbmRTdGFydAotICAgICAg
ICAgICAgJiYgc2VuZEVuZCA9PSBvdGhlci5zZW5kRW5kCi0gICAgICAgICAgICAmJiByZWNlaXZl
SGVhZGVyc0VuZCA9PSBvdGhlci5yZWNlaXZlSGVhZGVyc0VuZAotICAgICAgICAgICAgJiYgc3Ns
U3RhcnQgPT0gb3RoZXIuc3NsU3RhcnQKLSAgICAgICAgICAgICYmIHNzbEVuZCA9PSBvdGhlci5z
c2xFbmQ7Ci0gICAgfQotCi0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlTG9hZFRp
bWluZyYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhl
cik7Ci0gICAgfQotCi0gICAgLy8gV2Ugd2FudCB0byBwcmVzZW50IGEgdW5pZmllZCB0aW1lbGlu
ZSB0byBKYXZhc2NyaXB0LiBVc2luZyB3YWxsdGltZSBpcyBwcm9ibGVtYXRpYywgYmVjYXVzZSB0
aGUgY2xvY2sgbWF5IHNrZXcgd2hpbGUgcmVzb3VyY2VzCi0gICAgLy8gbG9hZC4gVG8gcHJldmVu
dCB0aGF0IHNrZXcsIHdlIHJlY29yZCBhIHNpbmdsZSByZWZlcmVuY2Ugd2FsbHRpbWUgd2hlbiBy
b290IGRvY3VtZW50IG5hdmlnYXRpb24gYmVnaW5zLiBBbGwgb3RoZXIgdGltZXMgYXJlCi0gICAg
Ly8gcmVjb3JkZWQgdXNpbmcgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkuIFdoZW4gYSB0
aW1lIG5lZWRzIHRvIGJlIHByZXNlbnRlZCB0byBKYXZhc2NyaXB0LCB3ZSBidWlsZCBhIHBzZXVk
by13YWxsdGltZQotICAgIC8vIHVzaW5nIHRoZSBmb2xsb3dpbmcgZXF1YXRpb246Ci0gICAgLy8g
ICBwc2V1ZG8gdGltZSA9IGRvY3VtZW50IHdhbGwgcmVmZXJlbmNlICsgKHJlc291cmNlIHJlcXVl
c3QgdGltZSAtIGRvY3VtZW50IG1vbm90b25pYyByZWZlcmVuY2UpICsgZGVsdGFNaWxsaXNlY29u
ZHMgLyAxMDAwLjAuCi0gICAgZG91YmxlIGNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9u
aWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7Ci0KLSAgICBkb3VibGUgcmVxdWVz
dFRpbWU7IC8vIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIHdoZW4gdGhlIHBvcnQgc3Rh
cnRlZCBoYW5kbGluZyB0aGlzIHJlcXVlc3QuCi0gICAgaW50IHByb3h5U3RhcnQ7IC8vIFRoZSBy
ZXN0IG9mIHRoZXNlIGFyZSBtaWxsaXNlY29uZCBkZWx0YXMsIHVzaW5nIG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpLCBmcm9tIHJlcXVlc3RUaW1lLgotICAgIGludCBwcm94eUVuZDsKLSAg
ICBpbnQgZG5zU3RhcnQ7Ci0gICAgaW50IGRuc0VuZDsKLSAgICBpbnQgY29ubmVjdFN0YXJ0Owot
ICAgIGludCBjb25uZWN0RW5kOwotICAgIGludCBzZW5kU3RhcnQ7Ci0gICAgaW50IHNlbmRFbmQ7
Ci0gICAgaW50IHJlY2VpdmVIZWFkZXJzRW5kOwotICAgIGludCBzc2xTdGFydDsKLSAgICBpbnQg
c3NsRW5kOwotCisgICAgCisgICAgUmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgUmVzb3VyY2VMb2FkVGltaW5nKTsgfQorICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkVGlt
aW5nPiBkZWVwQ29weSgpOworICAgIAorICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJj
ZUxvYWRUaW1pbmcmKSBjb25zdDsKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgUmVzb3VyY2VM
b2FkVGltaW5nJikgY29uc3Q7CisgICAgCisgICAgZG91YmxlIGRvbWFpbkxvb2t1cFN0YXJ0VGlt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tYWluTG9va3VwU3RhcnRUaW1lOyB9CisgICAgZG91Ymxl
IGRvbWFpbkxvb2t1cEVuZFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2RvbWFpbkxvb2t1cEVuZFRp
bWU7IH0KKyAgICBkb3VibGUgY29ubmVjdFN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29u
bmVjdFN0YXJ0VGltZTsgfQorICAgIGRvdWJsZSBjb25uZWN0RW5kVGltZSgpIGNvbnN0IHsgcmV0
dXJuIG1fY29ubmVjdEVuZFRpbWU7IH0KKyAgICBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0
VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZTsgfQorICAg
IGRvdWJsZSByZXF1ZXN0U3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0U3RhcnRU
aW1lOyB9CisgICAgZG91YmxlIHJlc3BvbnNlU3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9y
ZXNwb25zZVN0YXJ0VGltZTsgfQorICAgIAorICAgIHZvaWQgc2V0RG9tYWluTG9va3VwU3RhcnRU
aW1lKGRvdWJsZSBkb21haW5Mb29rdXBTdGFydFRpbWUpIHsgbV9kb21haW5Mb29rdXBTdGFydFRp
bWUgPSBkb21haW5Mb29rdXBTdGFydFRpbWU7IH0KKyAgICB2b2lkIHNldERvbWFpbkxvb2t1cEVu
ZFRpbWUoZG91YmxlIGRvbWFpbkxvb2t1cEVuZFRpbWUpIHsgbV9kb21haW5Mb29rdXBFbmRUaW1l
ID0gZG9tYWluTG9va3VwRW5kVGltZTsgfQorICAgIHZvaWQgc2V0Q29ubmVjdFN0YXJ0VGltZShk
b3VibGUgY29ubmVjdFN0YXJ0VGltZSkgeyBtX2Nvbm5lY3RTdGFydFRpbWUgPSBjb25uZWN0U3Rh
cnRUaW1lOyB9CisgICAgdm9pZCBzZXRDb25uZWN0RW5kVGltZShkb3VibGUgY29ubmVjdEVuZFRp
bWUpIHsgbV9jb25uZWN0RW5kVGltZSA9IGNvbm5lY3RFbmRUaW1lOyB9CisgICAgdm9pZCBzZXRT
ZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKGRvdWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1l
KSB7IG1fc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSA9IHNlY3VyZUNvbm5lY3Rpb25TdGFydFRp
bWU7IH0KKyAgICB2b2lkIHNldFJlcXVlc3RTdGFydFRpbWUoZG91YmxlIHJlcXVlc3RTdGFydFRp
bWUpIHsgbV9yZXF1ZXN0U3RhcnRUaW1lID0gcmVxdWVzdFN0YXJ0VGltZTsgfQorICAgIHZvaWQg
c2V0UmVzcG9uc2VTdGFydFRpbWUoZG91YmxlIHJlc3BvbnNlU3RhcnRUaW1lKSB7IG1fcmVzcG9u
c2VTdGFydFRpbWUgPSByZXNwb25zZVN0YXJ0VGltZTsgfQorICAgIAogcHJpdmF0ZToKLSAgICBS
ZXNvdXJjZUxvYWRUaW1pbmcoKQotICAgICAgICA6IHJlcXVlc3RUaW1lKDApCi0gICAgICAgICwg
cHJveHlTdGFydCgtMSkKLSAgICAgICAgLCBwcm94eUVuZCgtMSkKLSAgICAgICAgLCBkbnNTdGFy
dCgtMSkKLSAgICAgICAgLCBkbnNFbmQoLTEpCi0gICAgICAgICwgY29ubmVjdFN0YXJ0KC0xKQot
ICAgICAgICAsIGNvbm5lY3RFbmQoLTEpCi0gICAgICAgICwgc2VuZFN0YXJ0KDApCi0gICAgICAg
ICwgc2VuZEVuZCgwKQotICAgICAgICAsIHJlY2VpdmVIZWFkZXJzRW5kKDApCi0gICAgICAgICwg
c3NsU3RhcnQoLTEpCi0gICAgICAgICwgc3NsRW5kKC0xKQotICAgIHsKLSAgICB9CisgICAgCisg
ICAgZG91YmxlIG1fZG9tYWluTG9va3VwU3RhcnRUaW1lOworICAgIGRvdWJsZSBtX2RvbWFpbkxv
b2t1cEVuZFRpbWU7CisgICAgZG91YmxlIG1fY29ubmVjdFN0YXJ0VGltZTsKKyAgICBkb3VibGUg
bV9jb25uZWN0RW5kVGltZTsKKyAgICBkb3VibGUgbV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1l
OworICAgIGRvdWJsZSBtX3JlcXVlc3RTdGFydFRpbWU7CisgICAgZG91YmxlIG1fcmVzcG9uc2VT
dGFydFRpbWU7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAkocmV2aXNpb24gMTY4MzY4
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFz
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAgaW5saW5lIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIFJlc291cmNlUgogCiBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6UmVzb3VyY2VS
ZXNwb25zZUJhc2UoKSAgCiAgICAgOiBtX2V4cGVjdGVkQ29udGVudExlbmd0aCgwKQorICAgICwg
bV9yZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSkKICAgICAs
IG1faHR0cFN0YXR1c0NvZGUoMCkKICAgICAsIG1fY29ubmVjdGlvbklEKDApCiAgICAgLCBtX2Nh
Y2hlQ29udHJvbE1heEFnZSgwKQpAQCAtNzEsNiArNzIsNyBAQCBSZXNvdXJjZVJlc3BvbnNlQmFz
ZTo6UmVzb3VyY2VSZXNwb25zZUJhCiAgICAgLCBtX2V4cGVjdGVkQ29udGVudExlbmd0aChleHBl
Y3RlZExlbmd0aCkKICAgICAsIG1fdGV4dEVuY29kaW5nTmFtZSh0ZXh0RW5jb2RpbmdOYW1lKQog
ICAgICwgbV9zdWdnZXN0ZWRGaWxlbmFtZShmaWxlbmFtZSkKKyAgICAsIG1fcmVzb3VyY2VMb2Fk
VGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpCiAgICAgLCBtX2h0dHBTdGF0dXND
b2RlKDApCiAgICAgLCBtX2Nvbm5lY3Rpb25JRCgwKQogICAgICwgbV9jYWNoZUNvbnRyb2xNYXhB
Z2UoMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCShyZXZpc2lvbiAxNjgzNjgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNTYsNiArNTYsMTAgQEAKICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgog
I2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8Rm91bmRh
dGlvbi9OU1VSTENvbm5lY3Rpb25Qcml2YXRlLmg+KQorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VS
TENvbm5lY3Rpb25Qcml2YXRlLmg+CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPUykKICNpbXBv
cnQgPENGTmV0d29yay9DRlVSTFJlcXVlc3QuaD4KIApAQCAtMjAwLDYgKzIwNCw5IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGkKICAgICBjb25zdCBib29sIHVzZXND
YWNoZSA9IHRydWU7CiAjZW5kaWYKICAgICBkLT5tX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKFtbTlNV
UkxDb25uZWN0aW9uIGFsbG9jXSBfaW5pdFdpdGhSZXF1ZXN0Om5zUmVxdWVzdCBkZWxlZ2F0ZTpk
ZWxlZ2F0ZSB1c2VzQ2FjaGU6dXNlc0NhY2hlIG1heENvbnRlbnRMZW5ndGg6MCBzdGFydEltbWVk
aWF0ZWx5Ok5PIGNvbm5lY3Rpb25Qcm9wZXJ0aWVzOnByb3BlcnR5RGljdGlvbmFyeV0pOworI2lm
IEVOQUJMRShXRUJfVElNSU5HKSAmJiBfX2hhc19pbmNsdWRlKDxGb3VuZGF0aW9uL05TVVJMQ29u
bmVjdGlvblByaXZhdGUuaD4pCisgICAgW05TVVJMQ29ubmVjdGlvbiBfc2V0Q29sbGVjdHNUaW1p
bmdEYXRhOllFU107CisjZW5kaWYKIH0KIAogYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0
aW9uUXVldWVEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMTY4MzY4KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0ICJT
aGFyZWRCdWZmZXIuaCIKICNpbXBvcnQgIldlYkNvcmVVUkxSZXNwb25zZS5oIgogI2ltcG9ydCA8
d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPENGTmV0d29yay9DRk5TVVJMQ29ubmVjdGlvbi5o
PgogCiBAaW50ZXJmYWNlIE5TVVJMUmVxdWVzdCAoRGV0YWlscykKIC0gKGlkKV9wcm9wZXJ0eUZv
cktleTooTlNTdHJpbmcgKilrZXk7CkBAIC0xOTMsNyArMTk0LDYgQEAgLSAoQk9PTCljb25uZWN0
aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5l
Y3Rpb24gKiljb25uZWN0aW9uIGRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXIK
IHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBVTlVTRURfUEFSQU0oY29ubmVj
dGlvbik7CiAKICAgICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0aW9u
OiVwIGRpZFJlY2VpdmVSZXNwb25zZTolcCAoSFRUUCBzdGF0dXMgJWQsIHJlcG9ydGVkIE1JTUVU
eXBlICclcycpIiwgbV9oYW5kbGUsIGNvbm5lY3Rpb24sIHIsIFtyIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3Ioc3RhdHVzQ29kZSldID8gWyhpZClyIHN0YXR1c0NvZGVdIDogMCwgW1tyIE1J
TUVUeXBlXSBVVEY4U3RyaW5nXSk7CiAKQEAgLTIxMiw3ICsyMTIsMjkgQEAgLSAodm9pZCljb25u
ZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogCiAgICAgICAgIGlmIChbbV9oYW5kbGUtPmZp
cnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSBfcHJvcGVydHlG
b3JLZXk6QCJGb3JjZUhUTUxNSU1FVHlwZSJdKQogICAgICAgICAgICAgW3IgX3NldE1JTUVUeXBl
OkAidGV4dC9odG1sIl07Ci0KKyAgICAgICAgCisgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVz
b3VyY2VSZXNwb25zZShyKTsKKyAgICAgICAgCisgICAgICAgIE5TRGljdGlvbmFyeSogdGltaW5n
RGF0YSA9IFtjb25uZWN0aW9uIF90aW1pbmdEYXRhXTsKKyAgICAgICAgUmVzb3VyY2VMb2FkVGlt
aW5nKiB0aW1pbmcgPSByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpOworICAg
ICAgICBBU1NFUlQodGltaW5nKTsKKyAgICAgICAgdGltaW5nLT5zZXREb21haW5Mb29rdXBFbmRU
aW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1
cEVuZCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAgIHRpbWluZy0+c2V0RG9tYWluTG9va3VwU3Rh
cnRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxv
b2t1cFN0YXJ0Il0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgdGltaW5nLT5zZXRDb25uZWN0U3Rh
cnRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YUNvbm5lY3RT
dGFydCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAgIHRpbWluZy0+c2V0Q29ubmVjdEVuZFRpbWUo
W1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhQ29ubmVjdEVuZCJdIGRv
dWJsZVZhbHVlXSk7CisgICAgICAgIHRpbWluZy0+c2V0U2VjdXJlQ29ubmVjdGlvblN0YXJ0VGlt
ZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFTZWN1cmVDb25uZWN0
aW9uU3RhcnQiXSBkb3VibGVWYWx1ZV0pOworICAgICAgICB0aW1pbmctPnNldFJlcXVlc3RTdGFy
dFRpbWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVxdWVzdFN0
YXJ0Il0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgdGltaW5nLT5zZXRSZXNwb25zZVN0YXJ0VGlt
ZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFSZXNwb25zZVN0YXJ0
Il0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgLy8gVE9ETzogdGltaW5nRGF0YSBoYXMgbW9yZSBp
bmZvcm1hdGlvbiB0aGF0IHdlIHNob3VsZCBzdG9yZSBhbmQgdXNlIHdpdGggdGhlc2Uga2V5czoK
KyAgICAgICAgLy8gX2tDRk5UaW1pbmdEYXRhQ29ubmVjdGlvblJldXNlZAorICAgICAgICAvLyBf
a0NGTlRpbWluZ0RhdGFUaW1pbmdEYXRhSW5pdAorICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFS
ZWRpcmVjdFN0YXJ0CisgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0YVJlZGlyZWN0RW5kCisgICAg
ICAgIC8vIF9rQ0ZOVGltaW5nRGF0YUZldGNoU3RhcnQKKyAgICAgICAgLy8gX2tDRk5UaW1pbmdE
YXRhUmVzcG9uc2VFbmQKKyAgICAgICAgLy8gX2tDRk5UaW1pbmdEYXRhUmVkaXJlY3RDb3VudFcz
QworICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFSZWRpcmVjdENvdW50CisgICAgICAgIAogICAg
ICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKG1faGFuZGxl
LCByKTsKICAgICB9KTsKIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTY4Mzg2KQorKysgU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTQtMDUtMDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBQcm9ncmVzcyBvbiB3ZWIgdGltaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZW5jb2Rl
KToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGVjb2Rl
KToKKyAgICAgICAgVHJhbnNmZXIgd2ViIHRpbWluZyBkYXRhLgorCiAyMDE0LTA1LTA2ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3Zl
ZCB1bm5lY2Vzc2FyeSBub3RJbXBsZW1lbnRlZC5oIGluY2x1ZGVzLgpJbmRleDogU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAJKHJldmlzaW9uIDE2
ODM2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02ODgsOCArNjg4LDIxIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxS
ZXNvdXJjZVJlc3BvbnNlPjo6ZW4KICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlc3BvbnNl
Lmh0dHBTdGF0dXNUZXh0KCk7CiAgICAgICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXNwb25zZS5z
dWdnZXN0ZWRGaWxlbmFtZSgpOwogICAgIH0KKyAgICAKKyAgICBSZXNvdXJjZUxvYWRUaW1pbmcq
IHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgYm9v
bCBoYXNSZXNvdXJjZUxvYWRUaW1pbmcgPSB0aW1pbmc7CisgICAgZW5jb2RlciA8PCBoYXNSZXNv
dXJjZUxvYWRUaW1pbmc7CisgICAgaWYgKGhhc1Jlc291cmNlTG9hZFRpbWluZykgeworICAgICAg
ICBlbmNvZGVyIDw8IHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnRUaW1lKCk7CisgICAgICAgIGVu
Y29kZXIgPDwgdGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCk7CisgICAgICAgIGVuY29kZXIg
PDwgdGltaW5nLT5jb25uZWN0U3RhcnRUaW1lKCk7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5n
LT5jb25uZWN0RW5kVGltZSgpOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+c2VjdXJlQ29u
bmVjdGlvblN0YXJ0VGltZSgpOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+cmVxdWVzdFN0
YXJ0VGltZSgpOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+cmVzcG9uc2VTdGFydFRpbWUo
KTsKKyAgICB9CiB9Ci0KKyAgICAKIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNl
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VSZXNwb25zZSYgcmVz
b3VyY2VSZXNwb25zZSkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTc1NSwxMiArNzY4LDQy
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGUKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzcG9uc2Uuc2V0U3VnZ2VzdGVkRmlsZW5hbWUoc3Vn
Z2VzdGVkRmlsZW5hbWUpOwogICAgIH0KLQorICAgIAorICAgIGJvb2wgaGFzUmVzb3VyY2VMb2Fk
VGltaW5nOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChoYXNSZXNvdXJjZUxvYWRUaW1pbmcpIHsK
KyAgICAgICAgZG91YmxlIGRvbWFpbkxvb2t1cFN0YXJ0VGltZTsKKyAgICAgICAgZG91YmxlIGRv
bWFpbkxvb2t1cEVuZFRpbWU7CisgICAgICAgIGRvdWJsZSBjb25uZWN0U3RhcnRUaW1lOworICAg
ICAgICBkb3VibGUgY29ubmVjdEVuZFRpbWU7CisgICAgICAgIGRvdWJsZSBzZWN1cmVDb25uZWN0
aW9uU3RhcnRUaW1lOworICAgICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0VGltZTsKKyAgICAgICAg
ZG91YmxlIHJlc3BvbnNlU3RhcnRUaW1lOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRv
bWFpbkxvb2t1cFN0YXJ0VGltZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShkb21h
aW5Mb29rdXBFbmRUaW1lKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGNvbm5lY3RT
dGFydFRpbWUpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoY29ubmVjdEVuZFRpbWUp
CisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGlt
ZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0U3RhcnRUaW1lKQorICAg
ICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlc3BvbnNlU3RhcnRUaW1lKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUmVzb3VyY2VMb2FkVGltaW5nKiB0aW1pbmcgPSBy
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICAgICAgQVNTRVJUKHRpbWluZyk7Cisg
ICAgICAgIHRpbWluZy0+c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKGRvbWFpbkxvb2t1cFN0YXJ0
VGltZSk7CisgICAgICAgIHRpbWluZy0+c2V0RG9tYWluTG9va3VwRW5kVGltZShkb21haW5Mb29r
dXBFbmRUaW1lKTsKKyAgICAgICAgdGltaW5nLT5zZXRDb25uZWN0U3RhcnRUaW1lKGNvbm5lY3RT
dGFydFRpbWUpOworICAgICAgICB0aW1pbmctPnNldENvbm5lY3RFbmRUaW1lKGNvbm5lY3RFbmRU
aW1lKTsKKyAgICAgICAgdGltaW5nLT5zZXRTZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKHNlY3Vy
ZUNvbm5lY3Rpb25TdGFydFRpbWUpOworICAgICAgICB0aW1pbmctPnNldFJlcXVlc3RTdGFydFRp
bWUocmVxdWVzdFN0YXJ0VGltZSk7CisgICAgICAgIHRpbWluZy0+c2V0UmVzcG9uc2VTdGFydFRp
bWUocmVzcG9uc2VTdGFydFRpbWUpOworICAgIH0KKyAgICAKICAgICByZXNvdXJjZVJlc3BvbnNl
ID0gcmVzcG9uc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLQorICAgIAogdm9pZCBBcmd1bWVu
dENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogewogICAgIGlmIChrU2hvdWxkU2Vy
aWFsaXplV2ViQ29yZURhdGEpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230948</attachid>
            <date>2014-05-06 16:43:24 -0700</date>
            <delta_ts>2014-05-06 17:17:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140506164301.patch</filename>
            <type>text/plain</type>
            <size>54744</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExMyBAQAorMjAxNC0wNS0wNiAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFByb2dyZXNz
IG9uIHdlYiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBBZGRlZCBsaW5rZXIgc3ltYm9sLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
T2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVj
dEZvckNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNl
QWdlbnQ6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb246CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2Fk
VGltaW5nIHZhbHVlcyBhbmQgcmVtb3ZlZCB1bnVzZWQgcGFyYW1ldGVycy4KKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QpOgorICAgICAgICBLZWVwIGEgcmVjb3JkIG9mIGEgY3Jv
c3Mgb3JpZ2luIHJlZGlyZWN0IGV2ZW4gaWYgeW91IGFyZSByZWRpcmVjdGVkIGJhY2suCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6IERl
bGV0ZWQuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICBS
ZW1vdmVkIHVudXNlZCBzZXROYXZpZ2F0aW9uU3RhcnQgbWV0aG9kIGRlY2xhcmF0aW9uLgorICAg
ICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgdXJsLgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1
cEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25u
ZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6
Y29ubmVjdEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
OjpzZWN1cmVDb25uZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlRW5kKToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgdmFsdWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6cmVzcG9uc2VTdGFydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDoK
KyAgICAgICAgUmVtb3ZlZCByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzIGRlY2xh
cmF0aW9uLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDoK
KyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RFbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXNlIG5ldyBSZXNvdXJjZUxvYWRU
aW1pbmcgbWV0aG9kcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpyZXNv
dXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBl
cmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKToKKyAg
ICAgICAgUmVwbGFjZWQgcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZSB3aXRoIHJl
c291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMKKyAgICAgICAgYmVjYXVzZSBvZiBu
ZXcgc3RvcmFnZSBmb3JtYXQgaW4gUmVzb3VyY2VMb2FkVGltaW5nLgorICAgICAgICAqIHBhZ2Uv
UGVyZm9ybWFuY2VUaW1pbmcuaDoKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlk
bDoKKyAgICAgICAgVXBkYXRlZCBzcGVjIHVybC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRU
aW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpSZXNvdXJj
ZUxvYWRUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpkZWVw
Q29weSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6Om9wZXJhdG9yPT0p
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvciE9KToKKyAg
ICAgICAgTW92ZWQgZnJvbSBSZXNvdXJjZUxvYWRUaW1pbmcuaC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1Rp
bWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGlt
aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRvbWFpbkxvb2t1cEVu
ZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpjb25uZWN0U3Rh
cnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6Y29ubmVjdEVu
ZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZWN1cmVDb25u
ZWN0aW9uU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6
cmVxdWVzdFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6
OnJlc3BvbnNlU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWlu
Zzo6c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZFRpbWluZzo6c2V0RG9tYWluTG9va3VwRW5kVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRUaW1pbmc6OnNldENvbm5lY3RTdGFydFRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRDb25uZWN0RW5kVGltZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRSZXF1ZXN0U3RhcnRUaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6c2V0UmVzcG9uc2VTdGFy
dFRpbWUpOgorICAgICAgICBBZGRlZCBhY2Nlc3NvcnMgaW5zdGVhZCBvZiBoYXZpbmcgcHVibGlj
IG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6
OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6b3BlcmF0
b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6Om9wZXJhdG9yIT0p
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpSZXNvdXJjZUxvYWRUaW1p
bmcpOgorICAgICAgICBNb3ZlZCBpbXBsZW1lbnRhdGlvbnMgdG8gUmVzb3VyY2VMb2FkVGltaW5n
LmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2VCYXNlOjpSZXNvdXJjZVJlc3Bv
bnNlQmFzZSk6CisgICAgICAgIEluaXRpYWxpemUgbV9yZXNvdXJjZUxvYWRUaW1pbmcgd2hpY2gg
aXMgdXNlZCBub3cuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxD
b25uZWN0aW9uKToKKyAgICAgICAgQ2FsbCBfc2V0Q29sbGVjdHNUaW1pbmdEYXRhIHRvIGNvbGxl
Y3QgdGltaW5nIGRhdGEgZm9yIHdlYiB0aW1pbmcuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgor
ICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUg
Y29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6CisgICAgICAgIFB1dCB0aW1pbmcgZGF0
YSBpbnRvIFJlc291cmNlTG9hZFRpbWluZyBkYXRhIHN0cnVjdHVyZS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdvdEhlYWRlcnNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpyZXN0YXJ0ZWRDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkU3RhcnRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdvcmtFdmVudENhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZVNvdXBNZXNzYWdlRm9ySGFuZGxlQW5kUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6Om1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ondyb3RlQm9keUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgVXNlIG5ldyBSZXNvdXJj
ZUxvYWRUaW1pbmcgbWV0aG9kcy4KKwogMjAxNC0wNS0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbmltYXRlIEFWUGxheWVyTGF5ZXIgaW50byBh
bmQgb3V0IG9mIGZ1bGwgc2NyZWVuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24g
MTY4MzY4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTE3NTUsNiArMTc1NSw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MTVodHQKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTZodHRwSGVhZGVyRmll
bGRzRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTZ0ZXh0RW5jb2RpbmdO
YW1lRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzdWdnZXN0ZWRGaWxl
bmFtZUV2CitfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE4cmVzb3VyY2VMb2Fk
VGltaW5nRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMjFleHBlY3RlZENv
bnRlbnRMZW5ndGhFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UzdXJsRXYK
IF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNmlzSFRUUEV2CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3Bw
CShyZXZpc2lvbiAxNjgzNjgpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMCwyMSArMjAwLDE2IEBAIHN0
YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKICAgICByZXR1cm4gaGVhZGVy
c09iamVjdDsKIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6
TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291
cmNlTG9hZFRpbWluZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBh
c3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+
IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nKQog
ewogICAgIHJldHVybiBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNvdXJjZVRp
bWluZzo6Y3JlYXRlKCkKLSAgICAgICAgLnNldFJlcXVlc3RUaW1lKGxvYWRlci0+dGltaW5nKCkt
Pm1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKHRpbWluZy5jb252ZXJ0UmVzb3VyY2VMb2Fk
VGltZVRvTW9ub3RvbmljVGltZSgwKSkpCi0gICAgICAgIC5zZXRQcm94eVN0YXJ0KHRpbWluZy5w
cm94eVN0YXJ0KQotICAgICAgICAuc2V0UHJveHlFbmQodGltaW5nLnByb3h5RW5kKQotICAgICAg
ICAuc2V0RG5zU3RhcnQodGltaW5nLmRuc1N0YXJ0KQotICAgICAgICAuc2V0RG5zRW5kKHRpbWlu
Zy5kbnNFbmQpCi0gICAgICAgIC5zZXRDb25uZWN0U3RhcnQodGltaW5nLmNvbm5lY3RTdGFydCkK
LSAgICAgICAgLnNldENvbm5lY3RFbmQodGltaW5nLmNvbm5lY3RFbmQpCi0gICAgICAgIC5zZXRT
c2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0gICAgICAgIC5zZXRTc2xFbmQodGltaW5nLnNzbEVu
ZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0aW1pbmcuc2VuZFN0YXJ0KQotICAgICAgICAuc2V0
U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAgICAgICAgLnNldFJlY2VpdmVIZWFkZXJzRW5kKHRp
bWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAgICAgICAgLnNldERvbWFpbkxvb2t1cFN0YXJ0VGlt
ZSh0aW1pbmcuZG9tYWluTG9va3VwU3RhcnRUaW1lKCkpCisgICAgICAgIC5zZXREb21haW5Mb29r
dXBFbmRUaW1lKHRpbWluZy5kb21haW5Mb29rdXBFbmRUaW1lKCkpCisgICAgICAgIC5zZXRDb25u
ZWN0U3RhcnRUaW1lKHRpbWluZy5jb25uZWN0U3RhcnRUaW1lKCkpCisgICAgICAgIC5zZXRDb25u
ZWN0RW5kVGltZSh0aW1pbmcuY29ubmVjdEVuZFRpbWUoKSkKKyAgICAgICAgLnNldFNlY3VyZUNv
bm5lY3Rpb25TdGFydFRpbWUodGltaW5nLnNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKSkKKyAg
ICAgICAgLnNldFJlcXVlc3RTdGFydFRpbWUodGltaW5nLnJlcXVlc3RTdGFydFRpbWUoKSkKKyAg
ICAgICAgLnNldFJlc3BvbnNlU3RhcnRUaW1lKHRpbWluZy5yZXNwb25zZVN0YXJ0VGltZSgpKQog
ICAgICAgICAucmVsZWFzZSgpOwogfQogCkBAIC0yMjksNyArMjI0LDcgQEAgc3RhdGljIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcgogICAgIHJldHVybiByZXF1ZXN0T2JqZWN0Owog
fQogCi1zdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpS
ZXNwb25zZT4gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IGJ1aWxkT2JqZWN0
Rm9yUmVzb3VyY2VSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsK
ICAgICBpZiAocmVzcG9uc2UuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAt
MjQ4LDE5ICsyNDMsMTkgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRl
cgogCiAgICAgcmVzcG9uc2VPYmplY3QtPnNldEZyb21EaXNrQ2FjaGUocmVzcG9uc2Uud2FzQ2Fj
aGVkKCkpOwogICAgIGlmIChyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAg
cmVzcG9uc2VPYmplY3QtPnNldFRpbWluZyhidWlsZE9iamVjdEZvclRpbWluZygqcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCksIGxvYWRlcikpOworICAgICAgICByZXNwb25zZU9iamVjdC0+
c2V0VGltaW5nKGJ1aWxkT2JqZWN0Rm9yVGltaW5nKCpyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKSkpOwogCiAgICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0OwogfQogCi1zdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVp
bGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2Us
IERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5
cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JDYWNoZWRS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgUmVmUHRyPElu
c3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlPiByZXNvdXJjZU9i
amVjdCA9IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlOjpj
cmVhdGUoKQogICAgICAgICAuc2V0VXJsKGNhY2hlZFJlc291cmNlLT51cmwoKSkKICAgICAgICAg
LnNldFR5cGUoSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZVR5cGVKc29uKCpjYWNo
ZWRSZXNvdXJjZSkpCiAgICAgICAgIC5zZXRCb2R5U2l6ZShjYWNoZWRSZXNvdXJjZS0+ZW5jb2Rl
ZFNpemUoKSk7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6
UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9u
c2UoY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCksIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0g
YnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgp
KTsKICAgICBpZiAocmVzb3VyY2VSZXNwb25zZSkKICAgICAgICAgcmVzb3VyY2VPYmplY3QtPnNl
dFJlc3BvbnNlKHJlc291cmNlUmVzcG9uc2UpOwogCkBAIC0zMjQsNyArMzE5LDcgQEAgdm9pZCBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3aWxsU2VuZFJlcQogICAgIEluc3BlY3Rvcjo6VHlwZUJ1
aWxkZXI6OlBhZ2U6OlJlc291cmNlVHlwZTo6RW51bSByZXNvdXJjZVR5cGUgPSBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OnJlc291cmNlVHlwZUpzb24odHlwZSk7CiAKICAgICBSZWZQdHI8SW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6TmV0d29yazo6SW5pdGlhdG9yPiBpbml0aWF0b3JPYmplY3QgPSBidWls
ZEluaXRpYXRvck9iamVjdChsb2FkZXItPmZyYW1lKCkgPyBsb2FkZXItPmZyYW1lKCktPmRvY3Vt
ZW50KCkgOiBudWxscHRyKTsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVzdFdpbGxC
ZVNlbnQocmVxdWVzdElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXItPmZyYW1lKCkpLCBt
X3BhZ2VBZ2VudC0+bG9hZGVySWQobG9hZGVyKSwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKSwgYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGN1cnJlbnRUaW1lKCksIGluaXRp
YXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9u
c2UsIGxvYWRlciksIHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8g
JnJlc291cmNlVHlwZSA6IG51bGxwdHIpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1
ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+ZnJh
bWUoKSksIG1fcGFnZUFnZW50LT5sb2FkZXJJZChsb2FkZXIpLCBsb2FkZXItPnVybCgpLnN0cmlu
ZygpLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgY3VycmVudFRpbWUo
KSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVkaXJl
Y3RSZXNwb25zZSksIHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8g
JnJlc291cmNlVHlwZSA6IG51bGxwdHIpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdl
bnQ6Om1hcmtSZXNvdXJjZUFzQ2FjaGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKQEAgLTM0
MSw3ICszMzYsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rv
cnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZv
clJlc291cmNlUmVzcG9uc2UocmVzcG9uc2UsIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3BlY3Rv
cjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0gYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKTsKIAogICAgIGJvb2wgaXNOb3RN
b2RpZmllZCA9IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gMzA0OwogCkBAIC00NjAsNyAr
NDU1LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2FkUmVzbwogCiAgICAg
UmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkluaXRpYXRvcj4gaW5pdGlh
dG9yT2JqZWN0ID0gYnVpbGRJbml0aWF0b3JPYmplY3QobG9hZGVyLT5mcmFtZSgpID8gbG9hZGVy
LT5mcmFtZSgpLT5kb2N1bWVudCgpIDogbnVsbHB0cik7CiAKLSAgICBtX2Zyb250ZW5kRGlzcGF0
Y2hlci0+cmVxdWVzdFNlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1ZXN0SWQsIGZyYW1lSWQsIGxv
YWRlcklkLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBjdXJyZW50VGltZSgpLCBpbml0aWF0b3JP
YmplY3QsIGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2UsIGxvYWRlcikpOwor
ICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1ZXN0U2VydmVkRnJvbU1lbW9yeUNhY2hlKHJl
cXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQsIGxvYWRlci0+dXJsKCkuc3RyaW5nKCksIGN1cnJl
bnRUaW1lKCksIGluaXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShy
ZXNvdXJjZSkpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEluaXRpYWxT
Y3JpcHRDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VTdHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmgJKHJldmlzaW9uIDE2ODM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcg
Kzg2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgbWFya1Jlc291cmNl
QXNDYWNoZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsYW9kZXIs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBSZXNvdXJjZUxvYWRlciopOworICAgIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwg
aW50IGRhdGFMZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBkb3Vi
bGUgZmluaXNoVGltZSk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCShyZXZp
c2lvbiAxNjgzNjgpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29y
ay5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxOCArMzIsMTMgQEAKICAgICAgICAgICAgICJ0
eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGltaW5nIGluZm9y
bWF0aW9uIGZvciB0aGUgcmVxdWVzdC4iLAogICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0VGltZSIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyByZXF1ZXN0VGltZSBpcyBhIGJhc2VsaW5lIGluIHNl
Y29uZHMsIHdoaWxlIHRoZSBvdGhlciBudW1iZXJzIGFyZSB0aWNrcyBpbiBtaWxsaXNlY29uZHMg
cmVsYXRpdmVseSB0byB0aGlzIHJlcXVlc3RUaW1lLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInByb3h5U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3Rh
cnRlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJv
eHlFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgcmVzb2x2
aW5nIHByb3h5LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRuc1N0YXJ0IiwgInR5
cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgRE5TIGFkZHJlc3MgcmVzb2x2
ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkbnNFbmQiLCAidHlwZSI6ICJudW1i
ZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0sCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0U3RhcnQiLCAidHlwZSI6ICJudW1iZXIi
LCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBjb25uZWN0aW5nIHRvIHRoZSByZW1vdGUgaG9zdC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0RW5kIiwgInR5cGUiOiAibnVt
YmVyIiwgImRlc2NyaXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAi
ZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInNzbEVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJG
aW5pc2hlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNl
bmRTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHNlbmRp
bmcgcmVxdWVzdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzZW5kRW5kIiwgInR5
cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHNlbmRpbmcgcmVxdWVzdC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZWNlaXZlSGVhZGVyc0VuZCIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCByZWNlaXZpbmcgcmVzcG9uc2Ug
aGVhZGVycy4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cFN0YXJ0
VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIEROUyBhZGRy
ZXNzIHJlc29sdmUiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb21haW5Mb29rdXBF
bmRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIEROUyBh
ZGRyZXNzIHJlc29sdmUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29ubmVjdFN0
YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5l
Y3RpbmcgdG8gdGhlIHJlbW90ZSBob3N0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNvbm5lY3RFbmRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNvbm5l
Y3RlZCB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
c2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAicmVxdWVzdFN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJT
dGFydGVkIHNlbmRpbmcgcmVxdWVzdC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJy
ZXNwb25zZVN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFy
dGVkIHJlY2VpdmluZyByZXNwb25zZS4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAg
ICAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWlu
Zy5jcHAJKHJldmlzaW9uIDE2ODM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NiwxMiArNzYsNiBAQCB2b2lkIERv
Y3VtZW50TG9hZFRpbWluZzo6bWFya05hdmlnYXRpb25TCiAgICAgbV9yZWZlcmVuY2VXYWxsVGlt
ZSA9IGN1cnJlbnRUaW1lKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjpzZXROYXZp
Z2F0aW9uU3RhcnQoZG91YmxlIG5hdmlnYXRpb25TdGFydCkKLXsKLSAgICBBU1NFUlQobV9yZWZl
cmVuY2VNb25vdG9uaWNUaW1lICYmIG1fcmVmZXJlbmNlV2FsbFRpbWUpOwotICAgIG1fbmF2aWdh
dGlvblN0YXJ0ID0gbmF2aWdhdGlvblN0YXJ0OwotfQotCiB2b2lkIERvY3VtZW50TG9hZFRpbWlu
Zzo6YWRkUmVkaXJlY3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1VybCwgY29uc3QgVVJMJiByZWRp
cmVjdGVkVXJsKQogewogICAgIG1fcmVkaXJlY3RDb3VudCsrOwpAQCAtOTAsNyArODQsNyBAQCB2
b2lkIERvY3VtZW50TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QoY29uCiAgICAgbV9yZWRpcmVjdEVu
ZCA9IG1fZmV0Y2hTdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogICAgIC8v
IENoZWNrIGlmIHRoZSByZWRpcmVjdGVkIHVybCBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgcmVk
aXJlY3RpbmcgdXJsJ3MgdGltaW5nIGluZm9ybWF0aW9uLgogICAgIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4gcmVkaXJlY3RlZFNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShy
ZWRpcmVjdGVkVXJsKTsKLSAgICBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgPSAhcmVkaXJlY3Rl
ZFNlY3VyaXR5T3JpZ2luLT5jYW5SZXF1ZXN0KHJlZGlyZWN0aW5nVXJsKTsKKyAgICBtX2hhc0Ny
b3NzT3JpZ2luUmVkaXJlY3QgPSBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgfHwgIXJlZGlyZWN0
ZWRTZWN1cml0eU9yaWdpbi0+Y2FuUmVxdWVzdChyZWRpcmVjdGluZ1VybCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkVGltaW5nLmgJKHJldmlzaW9uIDE2ODM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRUaW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBwdWJs
aWM6CiAgICAgZG91YmxlIG1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKGRvdWJsZSkgY29u
c3Q7CiAKICAgICB2b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKLSAgICB2b2lkIHNldE5hdmln
YXRpb25TdGFydChkb3VibGUpOwogICAgIHZvaWQgYWRkUmVkaXJlY3QoY29uc3QgVVJMJiByZWRp
cmVjdGluZ1VybCwgY29uc3QgVVJMJiByZWRpcmVjdGVkVXJsKTsKIAogICAgIHZvaWQgbWFya1Vu
bG9hZEV2ZW50U3RhcnQoKSB7IG1fdW5sb2FkRXZlbnRTdGFydCA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAkocmV2
aXNpb24gMTY4MzY4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8g
U2VlOiBodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisvLyBTZWU6IGh0
dHBzOi8vZHZjcy53My5vcmcvaGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3MvTmF2aWdhdGlv
blRpbWluZy9PdmVydmlldy5odG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAg
ICBFdmVudFRhcmdldCwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4MzY4KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEyLDcgKzExMiw3IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZWRpcmUK
IGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KCkgY29uc3QKIHsK
ICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgZGlmZmVyZW50IGRlcGVuZGluZyBvbiByZWRp
cmVjdHMuCi0gICAgcmV0dXJuIChzdGFydFRpbWUoKSk7CisgICAgcmV0dXJuIHN0YXJ0VGltZSgp
OwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluTG9va3VwU3Rh
cnQoKSBjb25zdApAQCAtMTIwLDEwICsxMjAsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmc6OmRvbWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAgICAg
ICByZXR1cm4gMC4wOwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zU3RhcnQg
PCAwKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0VGlt
ZSgpIDwgMCkKICAgICAgICAgcmV0dXJuIGZldGNoU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNv
dXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNTdGFydCk7CisgICAg
cmV0dXJuIG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xMzEs
MTAgKzEzMSwxMCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluCiAg
ICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAg
ICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kbnNFbmQgPCAwKQorICAgIGlmICghbV90aW1p
bmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA8IDApCiAgICAgICAgIHJldHVy
biBkb21haW5Mb29rdXBTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1l
bnRNaWxsaXNlY29uZHMobV90aW1pbmctPmRuc0VuZCk7CisgICAgcmV0dXJuIG1fdGltaW5nLT5k
b21haW5Mb29rdXBFbmRUaW1lKCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nOjpjb25uZWN0U3RhcnQoKSBjb25zdApAQCAtMTQzLDE1ICsxNDMsMTUgQEAgZG91YmxlIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNvbm5lYwogICAgICAgICByZXR1cm4gMC4wOwogCiAg
ICAgLy8gY29ubmVjdFN0YXJ0IHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVxdWVzdCBpcyBu
b3QgbWFkZS4KLSAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5jb25uZWN0U3RhcnQgPCAw
IHx8IG1fZGlkUmV1c2VDb25uZWN0aW9uKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmct
PmNvbm5lY3RTdGFydFRpbWUoKSA8IDAgfHwgbV9kaWRSZXVzZUNvbm5lY3Rpb24pCiAgICAgICAg
IHJldHVybiBkb21haW5Mb29rdXBFbmQoKTsKIAogICAgIC8vIGNvbm5lY3RTdGFydCBpbmNsdWRl
cyBhbnkgRE5TIHRpbWUsIHNvIHdlIG1heSBuZWVkIHRvIHRyaW0gdGhhdCBvZmYuCi0gICAgaW50
IGNvbm5lY3RTdGFydCA9IG1fdGltaW5nLT5jb25uZWN0U3RhcnQ7CisgICAgZG91YmxlIGNvbm5l
Y3RTdGFydCA9IG1fdGltaW5nLT5jb25uZWN0U3RhcnRUaW1lKCk7CiAgICAgaWYgKG1fdGltaW5n
LT5kbnNFbmQgPj0gMCkKLSAgICAgICAgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmRuc0VuZDsK
KyAgICAgICAgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKTsK
IAotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKGNvbm5lY3RT
dGFydCk7CisgICAgcmV0dXJuIGNvbm5lY3RTdGFydDsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmc6OmNvbm5lY3RFbmQoKSBjb25zdApAQCAtMTYwLDEwICsxNjAsMTAgQEAg
ZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNvbm5lYwogICAgICAgICByZXR1cm4g
MC4wOwogCiAgICAgLy8gY29ubmVjdFN0YXJ0IHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVx
dWVzdCBpcyBub3QgbWFkZS4KLSAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5jb25uZWN0
RW5kIDwgMCB8fCBtX2RpZFJldXNlQ29ubmVjdGlvbikKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1f
dGltaW5nLT5jb25uZWN0RW5kVGltZSgpIDwgMCB8fCBtX2RpZFJldXNlQ29ubmVjdGlvbikKICAg
ICAgICAgcmV0dXJuIGNvbm5lY3RTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRv
RG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPmNvbm5lY3RFbmQpOworICAgIHJldHVybiBt
X3RpbWluZy0+Y29ubmVjdEVuZFRpbWUoKTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNvbnN0CkBAIC0xNzEsMTAgKzE3MSwx
MCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6c2VjdXJlCiAgICAgaWYgKCFt
X3Nob3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1f
dGltaW5nIHx8IG1fdGltaW5nLT5zc2xTdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5v
dCBuZWdvdGlhdGVkLgorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNlY3VyZUNvbm5l
Y3Rpb25TdGFydFRpbWUoKSA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBuZWdvdGlhdGVk
LgogICAgICAgICByZXR1cm4gMC4wOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1l
bnRNaWxsaXNlY29uZHMobV90aW1pbmctPnNzbFN0YXJ0KTsKKyAgICByZXR1cm4gbV90aW1pbmct
PnNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CkBAIC0xODUsMTggKzE4NSw3IEBAIGRv
dWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXF1ZXMKICAgICBpZiAoIW1fdGltaW5n
KQogICAgICAgICByZXR1cm4gY29ubmVjdEVuZCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGlt
ZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPnNlbmRTdGFydCk7Ci19Ci0KLWRvdWJs
ZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKLXsKLSAg
ICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKLSAgICAgICAgcmV0dXJuIDAuMDsKLQotICAg
IGlmICghbV90aW1pbmcpCi0gICAgICAgIHJldHVybiByZXF1ZXN0U3RhcnQoKTsKLSAgICAvLyBG
SVhNRTogVGhpcyBudW1iZXIgaXNuJ3QgZXhhY3RseSBjb3JyZWN0LiBTZWUgdGhlIG5vdGVzIGlu
IFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkuCi0gICAgcmV0dXJuIHJlc291cmNl
VGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kKTsK
KyAgICByZXR1cm4gbV90aW1pbmctPnJlcXVlc3RTdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKQEAgLTIwNCwxNCAr
MTkzLDcgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbgogICAgIGlm
ICghbV9maW5pc2hUaW1lKQogICAgICAgICByZXR1cm4gcmVzcG9uc2VTdGFydCgpOwogCi0gICAg
cmV0dXJuIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0Rv
Y3VtZW50LmdldCgpLCBtX2ZpbmlzaFRpbWUpOwotfQotCi1kb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6cmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhpbnQgZGVsdGFN
aWxsaXNlY29uZHMpIGNvbnN0Ci17Ci0gICAgaWYgKCFkZWx0YU1pbGxpc2Vjb25kcykKLSAgICAg
ICAgcmV0dXJuIDAuMDsKLSAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNl
Y29uZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCksIG1fdGltaW5nLT5yZXF1ZXN0VGltZSkg
KyBkZWx0YU1pbGxpc2Vjb25kczsKKyAgICByZXR1cm4gbV9maW5pc2hUaW1lOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcuaAkocmV2aXNpb24gMTY4MzY4KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1
LDcgKzY1LDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBjb25uZWN0RW5kKCkgY29uc3Q7CiAgICAg
ZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNvbnN0OwogICAgIGRvdWJsZSByZXF1ZXN0
U3RhcnQoKSBjb25zdDsKLSAgICBkb3VibGUgcmVzcG9uc2VTdGFydCgpIGNvbnN0OwogICAgIGRv
dWJsZSByZXNwb25zZUVuZCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIGlzUmVzb3VyY2Uo
KSB7IHJldHVybiB0cnVlOyB9CkBAIC03NCw4ICs3Myw2IEBAIHByaXZhdGU6CiAgICAgUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZyhjb25zdCBBdG9taWNTdHJpbmcmIGluaXRhdG9yVHlwZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGRvdWJsZSBpbml0
aWF0aW9uVGltZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50Kik7CiAgICAgflBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcoKTsKIAotICAgIGRvdWJsZSByZXNvdXJjZVRpbWVUb0RvY3VtZW50
TWlsbGlzZWNvbmRzKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7Ci0KICAgICBBdG9taWNT
dHJpbmcgbV9pbml0aWF0b3JUeXBlOwogICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IG1f
dGltaW5nOwogICAgIGRvdWJsZSBtX2ZpbmlzaFRpbWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4MzY4KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMCwx
MSArMTMwLDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG8KIAog
ICAgIC8vIFRoaXMgd2lsbCBiZSAtMSB3aGVuIGEgRE5TIHJlcXVlc3QgaXMgbm90IHBlcmZvcm1l
ZC4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRp
Y2F0ZXMgbm8gRE5TLCB3ZSAiYmFja2ZpbGwiIHdpdGggZmV0Y2hTdGFydC4KLSAgICBpbnQgZG5z
U3RhcnQgPSB0aW1pbmctPmRuc1N0YXJ0OworICAgIGRvdWJsZSBkbnNTdGFydCA9IHRpbWluZy0+
ZG9tYWluTG9va3VwU3RhcnRUaW1lKCk7CiAgICAgaWYgKGRuc1N0YXJ0IDwgMCkKICAgICAgICAg
cmV0dXJuIGZldGNoU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRp
dmVUb0Fic29sdXRlKGRuc1N0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50
ZWdlck1pbGxpc2Vjb25kcyhkbnNTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJm
b3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKCkgY29uc3QKQEAgLTE0NSwxMSArMTQ1LDEx
IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG8KIAogICAgIC8vIFRo
aXMgd2lsbCBiZSAtMSB3aGVuIGEgRE5TIHJlcXVlc3QgaXMgbm90IHBlcmZvcm1lZC4KICAgICAv
LyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8g
RE5TLCB3ZSAiYmFja2ZpbGwiIHdpdGggZG9tYWluTG9va3VwU3RhcnQuCi0gICAgaW50IGRuc0Vu
ZCA9IHRpbWluZy0+ZG5zRW5kOworICAgIGRvdWJsZSBkbnNFbmQgPSB0aW1pbmctPmRvbWFpbkxv
b2t1cEVuZFRpbWUoKTsKICAgICBpZiAoZG5zRW5kIDwgMCkKICAgICAgICAgcmV0dXJuIGRvbWFp
bkxvb2t1cFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9B
YnNvbHV0ZShkbnNFbmQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWls
bGlzZWNvbmRzKGRuc0VuZCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6Y29ubmVjdFN0YXJ0KCkgY29uc3QKQEAgLTE2NCwxNiArMTY0LDE2IEBAIHVuc2lnbmVk
IGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6Y28KIAogICAgIC8vIGNvbm5lY3RTdGFydCB3
aWxsIGJlIC0xIHdoZW4gYSBuZXR3b3JrIHJlcXVlc3QgaXMgbm90IG1hZGUuCiAgICAgLy8gUmF0
aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIG5ldyBj
b25uZWN0aW9uLCB3ZSAiYmFja2ZpbGwiIHdpdGggZG9tYWluTG9va3VwRW5kLgotICAgIGludCBj
b25uZWN0U3RhcnQgPSB0aW1pbmctPmNvbm5lY3RTdGFydDsKKyAgICBkb3VibGUgY29ubmVjdFN0
YXJ0ID0gdGltaW5nLT5jb25uZWN0U3RhcnRUaW1lKCk7CiAgICAgaWYgKGNvbm5lY3RTdGFydCA8
IDAgfHwgbG9hZGVyLT5yZXNwb25zZSgpLmNvbm5lY3Rpb25SZXVzZWQoKSkKICAgICAgICAgcmV0
dXJuIGRvbWFpbkxvb2t1cEVuZCgpOwogCiAgICAgLy8gUmVzb3VyY2VMb2FkVGltaW5nJ3MgY29u
bmVjdCBwaGFzZSBpbmNsdWRlcyBETlMsIGhvd2V2ZXIgTmF2aWdhdGlvbiBUaW1pbmcncwogICAg
IC8vIGNvbm5lY3QgcGhhc2Ugc2hvdWxkIG5vdC4gU28gaWYgdGhlcmUgaXMgRE5TIHRpbWUsIHRy
aW0gaXQgZnJvbSB0aGUgc3RhcnQuCi0gICAgaWYgKHRpbWluZy0+ZG5zRW5kID49IDAgJiYgdGlt
aW5nLT5kbnNFbmQgPiBjb25uZWN0U3RhcnQpCi0gICAgICAgIGNvbm5lY3RTdGFydCA9IHRpbWlu
Zy0+ZG5zRW5kOworICAgIGlmICh0aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA+PSAwICYm
IHRpbWluZy0+ZG9tYWluTG9va3VwRW5kVGltZSgpID4gY29ubmVjdFN0YXJ0KQorICAgICAgICBj
b25uZWN0U3RhcnQgPSB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKTsKIAotICAgIHJldHVy
biByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGNvbm5lY3RTdGFydCk7CisgICAg
cmV0dXJuIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoY29ubmVjdFN0YXJ0
KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0RW5k
KCkgY29uc3QKQEAgLTE4OCwxMSArMTg4LDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6Y28KIAogICAgIC8vIGNvbm5lY3RFbmQgd2lsbCBiZSAtMSB3aGVuIGEgbmV0
d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgogICAgIC8vIFJhdGhlciB0aGFuIGV4cG9zaW5nIGEg
c3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBuZXcgY29ubmVjdGlvbiwgd2UgImJhY2tm
aWxsIiB3aXRoIGNvbm5lY3RTdGFydC4KLSAgICBpbnQgY29ubmVjdEVuZCA9IHRpbWluZy0+Y29u
bmVjdEVuZDsKKyAgICBkb3VibGUgY29ubmVjdEVuZCA9IHRpbWluZy0+Y29ubmVjdEVuZFRpbWUo
KTsKICAgICBpZiAoY29ubmVjdEVuZCA8IDAgfHwgbG9hZGVyLT5yZXNwb25zZSgpLmNvbm5lY3Rp
b25SZXVzZWQoKSkKICAgICAgICAgcmV0dXJuIGNvbm5lY3RTdGFydCgpOwogCi0gICAgcmV0dXJu
IHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoY29ubmVjdEVuZCk7CisgICAgcmV0
dXJuIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoY29ubmVjdEVuZCk7CiB9
CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6c2VjdXJlQ29ubmVjdGlv
blN0YXJ0KCkgY29uc3QKQEAgLTIwNSwxMSArMjA1LDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQ
ZXJmb3JtYW5jZVRpbWluZzo6c2UKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBpbnQgc3NsU3RhcnQgPSB0aW1pbmctPnNzbFN0YXJ0OworICAgIGRvdWJsZSBzc2xT
dGFydCA9IHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSgpOwogICAgIGlmIChzc2xT
dGFydCA8IDApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRp
bWVSZWxhdGl2ZVRvQWJzb2x1dGUoc3NsU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRU
aW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHNzbFN0YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBs
b25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXF1ZXN0U3RhcnQoKSBjb25zdApAQCAtMjE4LDggKzIx
OCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAo
IXRpbWluZykKICAgICAgICAgcmV0dXJuIGNvbm5lY3RFbmQoKTsKIAotICAgIEFTU0VSVCh0aW1p
bmctPnNlbmRTdGFydCA+PSAwKTsKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZl
VG9BYnNvbHV0ZSh0aW1pbmctPnNlbmRTdGFydCk7CisgICAgQVNTRVJUKHRpbWluZy0+cmVxdWVz
dFN0YXJ0VGltZSgpID49IDApOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2Vy
TWlsbGlzZWNvbmRzKHRpbWluZy0+cmVxdWVzdFN0YXJ0VGltZSgpKTsKIH0KIAogdW5zaWduZWQg
bG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKQEAgLTIy
OCwxNCArMjI4LDggQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZQog
ICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gcmVxdWVzdFN0YXJ0KCk7CiAKLSAgICAv
LyBGSVhNRTogUmVzcG9uc2Ugc3RhcnQgbmVlZHMgdG8gYmUgdGhlIHRpbWUgb2YgdGhlIGZpcnN0
IHJlY2VpdmVkIGJ5dGUuCi0gICAgLy8gSG93ZXZlciwgdGhlIFJlc291cmNlTG9hZFRpbWluZyBB
UEkgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgdGhlIHRpbWUKLSAgICAvLyB0aGUgbGFzdCBoZWFk
ZXIgYnl0ZSB3YXMgcmVjZWl2ZWQuIEZvciBtYW55IHJlc3BvbnNlcyB3aXRoIHJlYXNvbmFibGUK
LSAgICAvLyBzaXplZCBjb29raWVzLCB0aGUgSFRUUCBoZWFkZXJzIGZpdCBpbnRvIGEgc2luZ2xl
IHBhY2tldCBzbyB0aGlzIHRpbWUKLSAgICAvLyBpcyBiYXNpY2FsbHkgZXF1aXZhbGVudC4gQnV0
IGZvciBzb21lIHJlc3BvbnNlcywgcGFydGljdWxhcmx5IHRob3NlIHdpdGgKLSAgICAvLyBoZWFk
ZXJzIGxhcmdlciB0aGFuIGEgc2luZ2xlIHBhY2tldCwgdGhpcyB0aW1lIHdpbGwgYmUgdG9vIGxh
dGUuCi0gICAgQVNTRVJUKHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQgPj0gMCk7Ci0gICAgcmV0
dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5yZWNlaXZlSGVh
ZGVyc0VuZCk7CisgICAgQVNTRVJUKHRpbWluZy0+cmVzcG9uc2VTdGFydFRpbWUoKSA+PSAwKTsK
KyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmct
PnJlc3BvbnNlU3RhcnRUaW1lKCkpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFu
Y2VUaW1pbmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKQEAgLTM0OCwxNCArMzQyLDYgQEAgUmVzb3Vy
Y2VMb2FkVGltaW5nKiBQZXJmb3JtYW5jZVRpbWluZzo6cgogICAgIHJldHVybiBsb2FkZXItPnJl
c3BvbnNlKCkucmVzb3VyY2VMb2FkVGltaW5nKCk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgbG9uZyBQ
ZXJmb3JtYW5jZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShpbnQg
cmVsYXRpdmVNaWxsaXNlY29uZHMpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKHJlbGF0aXZlTWlsbGlz
ZWNvbmRzID49IDApOwotICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVzb3VyY2VUaW1pbmcgPSBy
ZXNvdXJjZUxvYWRUaW1pbmcoKTsKLSAgICBBU1NFUlQocmVzb3VyY2VUaW1pbmcpOwotICAgIHJl
dHVybiBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHJlc291cmNlVGltaW5nLT5j
b252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZShyZWxhdGl2ZU1pbGxpc2Vjb25k
cykpOwotfQotCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om1vbm90b25p
Y1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoZG91YmxlIG1vbm90b25pY1NlY29uZHMpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKG1vbm90b25pY1NlY29uZHMgPj0gMCk7CkBAIC0zNjMsNiArMzQ5LDE4
IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bW8KICAgICBBU1NFUlQo
dGltaW5nKTsKICAgICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+bW9ub3Rv
bmljVGltZVRvUHNldWRvV2FsbFRpbWUobW9ub3RvbmljU2Vjb25kcykpOwogfQorICAgIAordW5z
aWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lVG9JbnRl
Z2VyTWlsbGlzZWNvbmRzKGRvdWJsZSBzZWNvbmRzKQoreworICAgIGlmIChzZWNvbmRzIDw9IDAu
MCkKKyAgICAgICAgcmV0dXJuIDA7CisjaWYgVVNFKENGKQorICAgIHJldHVybiBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBsb25nIGxvbmc+KChzZWNvbmRzICsga0NGQWJzb2x1dGVUaW1lSW50ZXJ2YWxT
aW5jZTE5NzApICogMTAwMCk7CisjZWxzZQorICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBsb25nIGxvbmc+KHNlY29uZHMgKiAxMDAwKTsKKyNlbmRpZgorfQorICAgIAogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VU
aW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGlt
aW5nLmgJKHJldmlzaW9uIDE2ODM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VUaW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsOCArNzgsOCBAQCBwcml2YXRlOgogICAg
IERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcigpIGNvbnN0OwogICAgIERvY3VtZW50TG9h
ZFRpbWluZyogZG9jdW1lbnRMb2FkVGltaW5nKCkgY29uc3Q7CiAgICAgUmVzb3VyY2VMb2FkVGlt
aW5nKiByZXNvdXJjZUxvYWRUaW1pbmcoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBsb25nIGxvbmcg
cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShpbnQpIGNvbnN0OwogICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJsZSkg
Y29uc3Q7CisgICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyByZXNvdXJjZUxvYWRUaW1lVG9J
bnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJsZSk7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAkocmV2aXNpb24gMTY4MzY4KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDcgKzI4LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8gU2VlOiBodHRwOi8vZGV2Lncz
Lm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisvLyBTZWU6IGh0dHBzOi8vZHZjcy53My5vcmcv
aGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3MvTmF2aWdhdGlvblRpbWluZy9PdmVydmlldy5o
dG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKIF0gaW50ZXJmYWNlIFBlcmZvcm1h
bmNlVGltaW5nIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBh
cnNlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmgJKHJldmlzaW9uIDE2ODM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvSFRUUFBhcnNlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsOSArMzcsNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEhUVFBIZWFkZXJNYXA7Ci1jbGFzcyBSZXNv
dXJjZVJlc3BvbnNlQmFzZTsKLQogZW51bSBDb250ZW50RGlzcG9zaXRpb25UeXBlIHsKICAgICBD
b250ZW50RGlzcG9zaXRpb25Ob25lLAogICAgIENvbnRlbnREaXNwb3NpdGlvbklubGluZSwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
TG9hZFRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlLCBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUsIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsMTAgKzI4
LDQ1IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkVGltaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotZG91YmxlIFJlc291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9hZFRp
bWVUb01vbm90b25pY1RpbWUoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdAorICAgIAorUmVz
b3VyY2VMb2FkVGltaW5nOjpSZXNvdXJjZUxvYWRUaW1pbmcoKQorICAgIDogbV9kb21haW5Mb29r
dXBTdGFydFRpbWUoLTEuMCkKKyAgICAsIG1fZG9tYWluTG9va3VwRW5kVGltZSgtMS4wKQorICAg
ICwgbV9jb25uZWN0U3RhcnRUaW1lKC0xLjApCisgICAgLCBtX2Nvbm5lY3RFbmRUaW1lKC0xLjAp
CisgICAgLCBtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoMC4wKQorICAgICwgbV9yZXF1ZXN0
U3RhcnRUaW1lKDAuMCkKKyAgICAsIG1fcmVzcG9uc2VTdGFydFRpbWUoMC4wKQogewotICAgIHJl
dHVybiByZXF1ZXN0VGltZSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wOwogfQotCisgICAg
CitQYXNzUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gUmVzb3VyY2VMb2FkVGltaW5nOjpkZWVw
Q29weSgpCit7CisgICAgUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gdGltaW5nID0gYWRvcHRS
ZWYobmV3IFJlc291cmNlTG9hZFRpbWluZyk7CisgICAgdGltaW5nLT5zZXREb21haW5Mb29rdXBT
dGFydFRpbWUobV9kb21haW5Mb29rdXBTdGFydFRpbWUpOworICAgIHRpbWluZy0+c2V0RG9tYWlu
TG9va3VwRW5kVGltZShtX2RvbWFpbkxvb2t1cEVuZFRpbWUpOworICAgIHRpbWluZy0+c2V0Q29u
bmVjdFN0YXJ0VGltZShtX2Nvbm5lY3RTdGFydFRpbWUpOworICAgIHRpbWluZy0+c2V0Q29ubmVj
dEVuZFRpbWUobV9jb25uZWN0RW5kVGltZSk7CisgICAgdGltaW5nLT5zZXRTZWN1cmVDb25uZWN0
aW9uU3RhcnRUaW1lKG1fc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSk7CisgICAgdGltaW5nLT5z
ZXRSZXF1ZXN0U3RhcnRUaW1lKG1fcmVxdWVzdFN0YXJ0VGltZSk7CisgICAgdGltaW5nLT5zZXRS
ZXNwb25zZVN0YXJ0VGltZShtX3Jlc3BvbnNlU3RhcnRUaW1lKTsKKyAgICByZXR1cm4gdGltaW5n
LnJlbGVhc2UoKTsKK30KKyAgICAKK2Jvb2wgUmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvcj09
KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZG9tYWluTG9va3VwU3RhcnRUaW1lID09IG90aGVyLmRvbWFpbkxvb2t1cFN0YXJ0VGltZSgpCisg
ICAgICAgICYmIG1fZG9tYWluTG9va3VwRW5kVGltZSA9PSBvdGhlci5kb21haW5Mb29rdXBFbmRU
aW1lKCkKKyAgICAgICAgJiYgbV9jb25uZWN0U3RhcnRUaW1lID09IG90aGVyLmNvbm5lY3RTdGFy
dFRpbWUoKQorICAgICAgICAmJiBtX2Nvbm5lY3RFbmRUaW1lID09IG90aGVyLmNvbm5lY3RFbmRU
aW1lKCkKKyAgICAgICAgJiYgbV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lID09IG90aGVyLnNl
Y3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKQorICAgICAgICAmJiBtX3JlcXVlc3RTdGFydFRpbWUg
PT0gb3RoZXIucmVxdWVzdFN0YXJ0VGltZSgpCisgICAgICAgICYmIG1fcmVzcG9uc2VTdGFydFRp
bWUgPT0gb3RoZXIucmVzcG9uc2VTdGFydFRpbWUoKTsKK30KKyAgICAKK2Jvb2wgUmVzb3VyY2VM
b2FkVGltaW5nOjpvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNv
bnN0Cit7CisgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworfQorICAgIAogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRp
bWluZy5oCShyZXZpc2lvbiAxNjgzNjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw5NiArMjcsNDcgQEAKICNp
Zm5kZWYgUmVzb3VyY2VMb2FkVGltaW5nX2gKICNkZWZpbmUgUmVzb3VyY2VMb2FkVGltaW5nX2gK
IAotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgRG9jdW1lbnRMb2FkVGltaW5nOwotCiBjbGFzcyBSZXNvdXJjZUxvYWRUaW1pbmcgOiBwdWJs
aWMgUmVmQ291bnRlZDxSZXNvdXJjZUxvYWRUaW1pbmc+IHsKKyAgICAKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IGNyZWF0ZSgpCi0gICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNlTG9hZFRpbWluZyk7Ci0gICAgfQotCi0g
ICAgUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IGRlZXBDb3B5KCkKLSAgICB7Ci0gICAg
ICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IHRpbWluZyA9IGNyZWF0ZSgpOwotICAgICAg
ICB0aW1pbmctPnJlcXVlc3RUaW1lID0gcmVxdWVzdFRpbWU7Ci0gICAgICAgIHRpbWluZy0+cHJv
eHlTdGFydCA9IHByb3h5U3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+cHJveHlFbmQgPSBwcm94eUVu
ZDsKLSAgICAgICAgdGltaW5nLT5kbnNTdGFydCA9IGRuc1N0YXJ0OwotICAgICAgICB0aW1pbmct
PmRuc0VuZCA9IGRuc0VuZDsKLSAgICAgICAgdGltaW5nLT5jb25uZWN0U3RhcnQgPSBjb25uZWN0
U3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+Y29ubmVjdEVuZCA9IGNvbm5lY3RFbmQ7Ci0gICAgICAg
IHRpbWluZy0+c2VuZFN0YXJ0ID0gc2VuZFN0YXJ0OwotICAgICAgICB0aW1pbmctPnNlbmRFbmQg
PSBzZW5kRW5kOwotICAgICAgICB0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kID0gcmVjZWl2ZUhl
YWRlcnNFbmQ7Ci0gICAgICAgIHRpbWluZy0+c3NsU3RhcnQgPSBzc2xTdGFydDsKLSAgICAgICAg
dGltaW5nLT5zc2xFbmQgPSBzc2xFbmQ7Ci0gICAgICAgIHJldHVybiB0aW1pbmcucmVsZWFzZSgp
OwotICAgIH0KLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcm
IG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHJlcXVlc3RUaW1lID09IG90aGVy
LnJlcXVlc3RUaW1lCi0gICAgICAgICAgICAmJiBwcm94eVN0YXJ0ID09IG90aGVyLnByb3h5U3Rh
cnQKLSAgICAgICAgICAgICYmIHByb3h5RW5kID09IG90aGVyLnByb3h5RW5kCi0gICAgICAgICAg
ICAmJiBkbnNTdGFydCA9PSBvdGhlci5kbnNTdGFydAotICAgICAgICAgICAgJiYgZG5zRW5kID09
IG90aGVyLmRuc0VuZAotICAgICAgICAgICAgJiYgY29ubmVjdFN0YXJ0ID09IG90aGVyLmNvbm5l
Y3RTdGFydAotICAgICAgICAgICAgJiYgY29ubmVjdEVuZCA9PSBvdGhlci5jb25uZWN0RW5kCi0g
ICAgICAgICAgICAmJiBzZW5kU3RhcnQgPT0gb3RoZXIuc2VuZFN0YXJ0Ci0gICAgICAgICAgICAm
JiBzZW5kRW5kID09IG90aGVyLnNlbmRFbmQKLSAgICAgICAgICAgICYmIHJlY2VpdmVIZWFkZXJz
RW5kID09IG90aGVyLnJlY2VpdmVIZWFkZXJzRW5kCi0gICAgICAgICAgICAmJiBzc2xTdGFydCA9
PSBvdGhlci5zc2xTdGFydAotICAgICAgICAgICAgJiYgc3NsRW5kID09IG90aGVyLnNzbEVuZDsK
LSAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBv
dGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKLSAg
ICB9Ci0KLSAgICAvLyBXZSB3YW50IHRvIHByZXNlbnQgYSB1bmlmaWVkIHRpbWVsaW5lIHRvIEph
dmFzY3JpcHQuIFVzaW5nIHdhbGx0aW1lIGlzIHByb2JsZW1hdGljLCBiZWNhdXNlIHRoZSBjbG9j
ayBtYXkgc2tldyB3aGlsZSByZXNvdXJjZXMKLSAgICAvLyBsb2FkLiBUbyBwcmV2ZW50IHRoYXQg
c2tldywgd2UgcmVjb3JkIGEgc2luZ2xlIHJlZmVyZW5jZSB3YWxsdGltZSB3aGVuIHJvb3QgZG9j
dW1lbnQgbmF2aWdhdGlvbiBiZWdpbnMuIEFsbCBvdGhlciB0aW1lcyBhcmUKLSAgICAvLyByZWNv
cmRlZCB1c2luZyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKS4gV2hlbiBhIHRpbWUgbmVl
ZHMgdG8gYmUgcHJlc2VudGVkIHRvIEphdmFzY3JpcHQsIHdlIGJ1aWxkIGEgcHNldWRvLXdhbGx0
aW1lCi0gICAgLy8gdXNpbmcgdGhlIGZvbGxvd2luZyBlcXVhdGlvbjoKLSAgICAvLyAgIHBzZXVk
byB0aW1lID0gZG9jdW1lbnQgd2FsbCByZWZlcmVuY2UgKyAocmVzb3VyY2UgcmVxdWVzdCB0aW1l
IC0gZG9jdW1lbnQgbW9ub3RvbmljIHJlZmVyZW5jZSkgKyBkZWx0YU1pbGxpc2Vjb25kcyAvIDEw
MDAuMC4KLSAgICBkb3VibGUgY29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUo
aW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdDsKLQotICAgIGRvdWJsZSByZXF1ZXN0VGltZTsg
Ly8gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgd2hlbiB0aGUgcG9ydCBzdGFydGVkIGhh
bmRsaW5nIHRoaXMgcmVxdWVzdC4KLSAgICBpbnQgcHJveHlTdGFydDsgLy8gVGhlIHJlc3Qgb2Yg
dGhlc2UgYXJlIG1pbGxpc2Vjb25kIGRlbHRhcywgdXNpbmcgbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCksIGZyb20gcmVxdWVzdFRpbWUuCi0gICAgaW50IHByb3h5RW5kOwotICAgIGludCBk
bnNTdGFydDsKLSAgICBpbnQgZG5zRW5kOwotICAgIGludCBjb25uZWN0U3RhcnQ7Ci0gICAgaW50
IGNvbm5lY3RFbmQ7Ci0gICAgaW50IHNlbmRTdGFydDsKLSAgICBpbnQgc2VuZEVuZDsKLSAgICBp
bnQgcmVjZWl2ZUhlYWRlcnNFbmQ7Ci0gICAgaW50IHNzbFN0YXJ0OwotICAgIGludCBzc2xFbmQ7
Ci0KKyAgICAKKyAgICBSZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxSZXNvdXJjZUxvYWRUaW1pbmc+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZXNv
dXJjZUxvYWRUaW1pbmcpOyB9CisgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IGRl
ZXBDb3B5KCk7CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlTG9hZFRp
bWluZyYpIGNvbnN0OworICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZXNvdXJjZUxvYWRUaW1p
bmcmKSBjb25zdDsKKyAgICAKKyAgICBkb3VibGUgZG9tYWluTG9va3VwU3RhcnRUaW1lKCkgY29u
c3QgeyByZXR1cm4gbV9kb21haW5Mb29rdXBTdGFydFRpbWU7IH0KKyAgICBkb3VibGUgZG9tYWlu
TG9va3VwRW5kVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tYWluTG9va3VwRW5kVGltZTsgfQor
ICAgIGRvdWJsZSBjb25uZWN0U3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0U3Rh
cnRUaW1lOyB9CisgICAgZG91YmxlIGNvbm5lY3RFbmRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9j
b25uZWN0RW5kVGltZTsgfQorICAgIGRvdWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lOyB9CisgICAgZG91Ymxl
IHJlcXVlc3RTdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RTdGFydFRpbWU7IH0K
KyAgICBkb3VibGUgcmVzcG9uc2VTdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNl
U3RhcnRUaW1lOyB9CisgICAgCisgICAgdm9pZCBzZXREb21haW5Mb29rdXBTdGFydFRpbWUoZG91
YmxlIGRvbWFpbkxvb2t1cFN0YXJ0VGltZSkgeyBtX2RvbWFpbkxvb2t1cFN0YXJ0VGltZSA9IGRv
bWFpbkxvb2t1cFN0YXJ0VGltZTsgfQorICAgIHZvaWQgc2V0RG9tYWluTG9va3VwRW5kVGltZShk
b3VibGUgZG9tYWluTG9va3VwRW5kVGltZSkgeyBtX2RvbWFpbkxvb2t1cEVuZFRpbWUgPSBkb21h
aW5Mb29rdXBFbmRUaW1lOyB9CisgICAgdm9pZCBzZXRDb25uZWN0U3RhcnRUaW1lKGRvdWJsZSBj
b25uZWN0U3RhcnRUaW1lKSB7IG1fY29ubmVjdFN0YXJ0VGltZSA9IGNvbm5lY3RTdGFydFRpbWU7
IH0KKyAgICB2b2lkIHNldENvbm5lY3RFbmRUaW1lKGRvdWJsZSBjb25uZWN0RW5kVGltZSkgeyBt
X2Nvbm5lY3RFbmRUaW1lID0gY29ubmVjdEVuZFRpbWU7IH0KKyAgICB2b2lkIHNldFNlY3VyZUNv
bm5lY3Rpb25TdGFydFRpbWUoZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUpIHsgbV9z
ZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lID0gc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZTsgfQor
ICAgIHZvaWQgc2V0UmVxdWVzdFN0YXJ0VGltZShkb3VibGUgcmVxdWVzdFN0YXJ0VGltZSkgeyBt
X3JlcXVlc3RTdGFydFRpbWUgPSByZXF1ZXN0U3RhcnRUaW1lOyB9CisgICAgdm9pZCBzZXRSZXNw
b25zZVN0YXJ0VGltZShkb3VibGUgcmVzcG9uc2VTdGFydFRpbWUpIHsgbV9yZXNwb25zZVN0YXJ0
VGltZSA9IHJlc3BvbnNlU3RhcnRUaW1lOyB9CisgICAgCiBwcml2YXRlOgotICAgIFJlc291cmNl
TG9hZFRpbWluZygpCi0gICAgICAgIDogcmVxdWVzdFRpbWUoMCkKLSAgICAgICAgLCBwcm94eVN0
YXJ0KC0xKQotICAgICAgICAsIHByb3h5RW5kKC0xKQotICAgICAgICAsIGRuc1N0YXJ0KC0xKQot
ICAgICAgICAsIGRuc0VuZCgtMSkKLSAgICAgICAgLCBjb25uZWN0U3RhcnQoLTEpCi0gICAgICAg
ICwgY29ubmVjdEVuZCgtMSkKLSAgICAgICAgLCBzZW5kU3RhcnQoMCkKLSAgICAgICAgLCBzZW5k
RW5kKDApCi0gICAgICAgICwgcmVjZWl2ZUhlYWRlcnNFbmQoMCkKLSAgICAgICAgLCBzc2xTdGFy
dCgtMSkKLSAgICAgICAgLCBzc2xFbmQoLTEpCi0gICAgewotICAgIH0KKyAgICAKKyAgICBkb3Vi
bGUgbV9kb21haW5Mb29rdXBTdGFydFRpbWU7CisgICAgZG91YmxlIG1fZG9tYWluTG9va3VwRW5k
VGltZTsKKyAgICBkb3VibGUgbV9jb25uZWN0U3RhcnRUaW1lOworICAgIGRvdWJsZSBtX2Nvbm5l
Y3RFbmRUaW1lOworICAgIGRvdWJsZSBtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWU7CisgICAg
ZG91YmxlIG1fcmVxdWVzdFN0YXJ0VGltZTsKKyAgICBkb3VibGUgbV9yZXNwb25zZVN0YXJ0VGlt
ZTsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCShyZXZpc2lvbiAxNjgzNjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQCBpbmxpbmUgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgUmVzb3VyY2VSCiAKIFJlc291cmNlUmVzcG9uc2VCYXNlOjpSZXNvdXJjZVJlc3BvbnNl
QmFzZSgpICAKICAgICA6IG1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoKDApCisgICAgLCBtX3Jlc291
cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKQogICAgICwgbV9odHRw
U3RhdHVzQ29kZSgwKQogICAgICwgbV9jb25uZWN0aW9uSUQoMCkKICAgICAsIG1fY2FjaGVDb250
cm9sTWF4QWdlKDApCkBAIC03MSw2ICs3Miw3IEBAIFJlc291cmNlUmVzcG9uc2VCYXNlOjpSZXNv
dXJjZVJlc3BvbnNlQmEKICAgICAsIG1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoKGV4cGVjdGVkTGVu
Z3RoKQogICAgICwgbV90ZXh0RW5jb2RpbmdOYW1lKHRleHRFbmNvZGluZ05hbWUpCiAgICAgLCBt
X3N1Z2dlc3RlZEZpbGVuYW1lKGZpbGVuYW1lKQorICAgICwgbV9yZXNvdXJjZUxvYWRUaW1pbmco
UmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSkKICAgICAsIG1faHR0cFN0YXR1c0NvZGUoMCkK
ICAgICAsIG1fY29ubmVjdGlvbklEKDApCiAgICAgLCBtX2NhY2hlQ29udHJvbE1heEFnZSgwKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDE2ODM2OCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC01Niw2ICs1NiwxMCBAQAogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxGb3VuZGF0aW9uL05T
VVJMQ29ubmVjdGlvblByaXZhdGUuaD4pCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMQ29ubmVj
dGlvblByaXZhdGUuaD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCA8Q0ZO
ZXR3b3JrL0NGVVJMUmVxdWVzdC5oPgogCkBAIC0yMDAsNiArMjA0LDkgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aQogICAgIGNvbnN0IGJvb2wgdXNlc0NhY2hlID0g
dHJ1ZTsKICNlbmRpZgogICAgIGQtPm1fY29ubmVjdGlvbiA9IGFkb3B0TlMoW1tOU1VSTENvbm5l
Y3Rpb24gYWxsb2NdIF9pbml0V2l0aFJlcXVlc3Q6bnNSZXF1ZXN0IGRlbGVnYXRlOmRlbGVnYXRl
IHVzZXNDYWNoZTp1c2VzQ2FjaGUgbWF4Q29udGVudExlbmd0aDowIHN0YXJ0SW1tZWRpYXRlbHk6
Tk8gY29ubmVjdGlvblByb3BlcnRpZXM6cHJvcGVydHlEaWN0aW9uYXJ5XSk7CisjaWYgRU5BQkxF
KFdFQl9USU1JTkcpICYmIF9faGFzX2luY2x1ZGUoPEZvdW5kYXRpb24vTlNVUkxDb25uZWN0aW9u
UHJpdmF0ZS5oPikKKyAgICBbTlNVUkxDb25uZWN0aW9uIF9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6
WUVTXTsKKyNlbmRpZgogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVB
c09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlLm1tCShyZXZpc2lvbiAxNjgzNjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdh
dGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKICNpbXBvcnQgIlNoYXJlZEJ1
ZmZlci5oIgogI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNlLmgiCiAjaW1wb3J0IDx3dGYvTWFp
blRocmVhZC5oPgorI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9uLmg+CiAKIEBp
bnRlcmZhY2UgTlNVUkxSZXF1ZXN0IChEZXRhaWxzKQogLSAoaWQpX3Byb3BlcnR5Rm9yS2V5OihO
U1N0cmluZyAqKWtleTsKQEAgLTE5Myw3ICsxOTQsNiBAQCAtIChCT09MKWNvbm5lY3Rpb246KE5T
VVJMQ29ubmVjdGlvbiAqKWNvCiAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAq
KWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcgogewogICAg
IEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsK
IAogICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIGRlbGVnYXRlIGNvbm5lY3Rpb246JXAgZGlk
UmVjZWl2ZVJlc3BvbnNlOiVwIChIVFRQIHN0YXR1cyAlZCwgcmVwb3J0ZWQgTUlNRVR5cGUgJyVz
JykiLCBtX2hhbmRsZSwgY29ubmVjdGlvbiwgciwgW3IgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihzdGF0dXNDb2RlKV0gPyBbKGlkKXIgc3RhdHVzQ29kZV0gOiAwLCBbW3IgTUlNRVR5cGVd
IFVURjhTdHJpbmddKTsKIApAQCAtMjEyLDcgKzIxMiwyOSBAQCAtICh2b2lkKWNvbm5lY3Rpb246
KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAKICAgICAgICAgaWYgKFttX2hhbmRsZS0+Zmlyc3RSZXF1
ZXN0KCkubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpIF9wcm9wZXJ0eUZvcktleTpA
IkZvcmNlSFRNTE1JTUVUeXBlIl0pCiAgICAgICAgICAgICBbciBfc2V0TUlNRVR5cGU6QCJ0ZXh0
L2h0bWwiXTsKLQorICAgICAgICAKKyAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJl
c3BvbnNlKHIpOworICAgICAgICAKKyAgICAgICAgTlNEaWN0aW9uYXJ5KiB0aW1pbmdEYXRhID0g
W2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFdOworICAgICAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRp
bWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgICAgIEFT
U0VSVCh0aW1pbmcpOworICAgICAgICB0aW1pbmctPnNldERvbWFpbkxvb2t1cEVuZFRpbWUoW1t0
aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhRG9tYWluTG9va3VwRW5kIl0g
ZG91YmxlVmFsdWVdKTsKKyAgICAgICAgdGltaW5nLT5zZXREb21haW5Mb29rdXBTdGFydFRpbWUo
W1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhRG9tYWluTG9va3VwU3Rh
cnQiXSBkb3VibGVWYWx1ZV0pOworICAgICAgICB0aW1pbmctPnNldENvbm5lY3RTdGFydFRpbWUo
W1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhQ29ubmVjdFN0YXJ0Il0g
ZG91YmxlVmFsdWVdKTsKKyAgICAgICAgdGltaW5nLT5zZXRDb25uZWN0RW5kVGltZShbW3RpbWlu
Z0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25uZWN0RW5kIl0gZG91YmxlVmFs
dWVdKTsKKyAgICAgICAgdGltaW5nLT5zZXRTZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKFtbdGlt
aW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVNlY3VyZUNvbm5lY3Rpb25TdGFy
dCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAgIHRpbWluZy0+c2V0UmVxdWVzdFN0YXJ0VGltZShb
W3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFSZXF1ZXN0U3RhcnQiXSBk
b3VibGVWYWx1ZV0pOworICAgICAgICB0aW1pbmctPnNldFJlc3BvbnNlU3RhcnRUaW1lKFtbdGlt
aW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVJlc3BvbnNlU3RhcnQiXSBkb3Vi
bGVWYWx1ZV0pOworICAgICAgICAvLyBUT0RPOiB0aW1pbmdEYXRhIGhhcyBtb3JlIGluZm9ybWF0
aW9uIHRoYXQgd2Ugc2hvdWxkIHN0b3JlIGFuZCB1c2Ugd2l0aCB0aGVzZSBrZXlzOgorICAgICAg
ICAvLyBfa0NGTlRpbWluZ0RhdGFDb25uZWN0aW9uUmV1c2VkCisgICAgICAgIC8vIF9rQ0ZOVGlt
aW5nRGF0YVRpbWluZ0RhdGFJbml0CisgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0YVJlZGlyZWN0
U3RhcnQKKyAgICAgICAgLy8gX2tDRk5UaW1pbmdEYXRhUmVkaXJlY3RFbmQKKyAgICAgICAgLy8g
X2tDRk5UaW1pbmdEYXRhRmV0Y2hTdGFydAorICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFSZXNw
b25zZUVuZAorICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFSZWRpcmVjdENvdW50VzNDCisgICAg
ICAgIC8vIF9rQ0ZOVGltaW5nRGF0YVJlZGlyZWN0Q291bnQKKyAgICAgICAgCiAgICAgICAgIG1f
aGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMobV9oYW5kbGUsIHIpOwog
ICAgIH0pOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkocmV2aXNpb24gMTY4MzY4KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291
cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw5ICsyMzUsNiBAQCBzdGF0aWMgdm9pZCBjbGVh
bnVwU291cFJlcXVlc3RPcGVyYXRpb24oCiBzdGF0aWMgdm9pZCBzZW5kUmVxdWVzdENhbGxiYWNr
KEdPYmplY3QqLCBHQXN5bmNSZXN1bHQqLCBncG9pbnRlcik7CiBzdGF0aWMgdm9pZCByZWFkQ2Fs
bGJhY2soR09iamVjdCosIEdBc3luY1Jlc3VsdCosIGdwb2ludGVyKTsKIHN0YXRpYyBnYm9vbGVh
biByZXF1ZXN0VGltZW91dENhbGxiYWNrKHZvaWQqKTsKLSNpZiBFTkFCTEUoV0VCX1RJTUlORykK
LXN0YXRpYyBpbnQgIG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGRvdWJsZSByZXF1ZXN0VGltZSk7
Ci0jZW5kaWYKIHN0YXRpYyB2b2lkIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UoUmVz
b3VyY2VIYW5kbGUqKTsKIAogc3RhdGljIGJvb2wgZ0lnbm9yZVNTTEVycm9ycyA9IGZhbHNlOwpA
QCAtMzE3LDExICszMTQsNiBAQCBzdGF0aWMgdm9pZCBnb3RIZWFkZXJzQ2FsbGJhY2soU291cE1l
c3NhCiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5h
bCgpOwogCi0jaWYgRU5BQkxFKFdFQl9USU1JTkcpCi0gICAgaWYgKGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCkpCi0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGlt
aW5nKCktPnJlY2VpdmVIZWFkZXJzRW5kID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUpOwotI2VuZGlmCi0KICNp
ZiBQTEFURk9STShHVEspCiAgICAgLy8gV2UgYXJlIGEgYml0IG1vcmUgY29uc2VydmF0aXZlIHdp
dGggdGhlIHBlcnNpc3RlbnQgY3JlZGVudGlhbCBzdG9yYWdlIHRoYW4gdGhlIHNlc3Npb24gc3Rv
cmUsCiAgICAgLy8gc2luY2Ugd2UgYXJlIHdhaXRpbmcgdW50aWwgd2Uga25vdyB0aGF0IHRoaXMg
YXV0aGVudGljYXRpb24gc3VjY2VlZGVkIGJlZm9yZSBhY3R1YWxseSBzdG9yaW5nLgpAQCAtMzkx
LDcgKzM4Myw3IEBAIHN0YXRpYyB2b2lkIHJlc3RhcnRlZENhbGxiYWNrKFNvdXBNZXNzYWcKICAg
ICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogICAg
IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UgPSBkLT5tX3Jlc3BvbnNlOwogICAg
IHJlZGlyZWN0UmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWlu
Zzo6Y3JlYXRlKCkpOwotICAgIHJlZGlyZWN0UmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkt
PnJlcXVlc3RUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisgICAgcmVkaXJl
Y3RSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2V0UmVxdWVzdFN0YXJ0VGltZShtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiB9CiAjZW5kaWYKIApAQCAtODQwLDQwICs4MzIs
MTMgQEAgc3RhdGljIGJvb2wgYWRkRm9ybUVsZW1lbnRzVG9Tb3VwTWVzc2FnZQogfQogCiAjaWYg
RU5BQkxFKFdFQl9USU1JTkcpCi1zdGF0aWMgaW50IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGRv
dWJsZSByZXF1ZXN0VGltZSkKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PigobW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSByZXF1ZXN0VGltZSkgKiAxMDAwLjApOwotfQotCi1z
dGF0aWMgdm9pZCB3cm90ZUJvZHlDYWxsYmFjayhTb3VwTWVzc2FnZSosIGdwb2ludGVyIGRhdGEp
Ci17Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNv
dXJjZUhhbmRsZSo+KGRhdGEpOwotICAgIGlmICghaGFuZGxlKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwot
ICAgIGlmICghZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VuZEVuZCA9
IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCktPnJlcXVlc3RUaW1lKTsKLX0KLQogdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkU3RhcnRSZXF1
ZXN0KCkKIHsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gZ2V0SW50ZXJuYWwoKTsK
ICAgICBpZiAoIWQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNlbmRTdGFy
dCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGlt
aW5nKCktPnJlcXVlc3RUaW1lKTsKLSAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKS0+c3NsU3RhcnQgIT0gLTEpIHsKLSAgICAgICAgLy8gV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1JlcXVlc3RUaW1pbmdWaWV3LmpzIGFzc3VtZXMKLSAgICAgICAgLy8gdGhhdCBT
U0wgdGltZSBpcyBpbmNsdWRlZCBpbiBjb25uZWN0aW9uIHRpbWUgc28gbXVzdAotICAgICAgICAv
LyBzdWJzdHJhY3QgaGVyZSB0aGUgU1NMIGRlbHRhIHRoYXQgd2lsbCBiZSBhZGRlZCBsYXRlciAo
c2VlCi0gICAgICAgIC8vIFdlYkluc3BlY3Rvci5SZXF1ZXN0VGltaW5nVmlldy5jcmVhdGVUaW1p
bmdUYWJsZSBpbiB0aGUKLSAgICAgICAgLy8gZmlsZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzKS4K
LSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VuZFN0YXJ0IC09
Ci0gICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xFbmQg
LSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xTdGFydDsKLSAgICB9Cisg
ICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2V0UmVxdWVzdFN0YXJ0VGlt
ZShkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0U3RhcnRUaW1lKCkp
OwogfQogCiBzdGF0aWMgdm9pZCBuZXR3b3JrRXZlbnRDYWxsYmFjayhTb3VwTWVzc2FnZSosIEdT
b2NrZXRDbGllbnRFdmVudCBldmVudCwgR0lPU3RyZWFtKiwgZ3BvaW50ZXIgZGF0YSkKQEAgLTg4
Niw0MyArODUxLDMxIEBAIHN0YXRpYyB2b2lkIG5ldHdvcmtFdmVudENhbGxiYWNrKFNvdXBNZXMK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRs
ZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpbnQgZGVsdGFUaW1lID0gbWlsaXNlY29uZHNTaW5jZVJl
cXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUpOwog
ICAgIHN3aXRjaCAoZXZlbnQpIHsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9SRVNPTFZJTkc6
Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc1N0YXJ0ID0g
ZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5z
ZXREb21haW5Mb29rdXBTdGFydFRpbWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9SRVNPTFZFRDoKLSAgICAg
ICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zRW5kID0gZGVsdGFUaW1l
OworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZXREb21haW5M
b29rdXBFbmRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfQ09OTkVDVElORzoKLSAgICAgICAgZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+Y29ubmVjdFN0YXJ0ID0gZGVsdGFUaW1lOwot
ICAgICAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3RhcnQg
IT0gLTEpCi0gICAgICAgICAgICAvLyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVxdWVz
dFRpbWluZ1ZpZXcuanMgYXNzdW1lcwotICAgICAgICAgICAgLy8gdGhhdCBETlMgdGltZSBpcyBp
bmNsdWRlZCBpbiBjb25uZWN0aW9uIHRpbWUgc28gbXVzdAotICAgICAgICAgICAgLy8gc3Vic3Ry
YWN0IGhlcmUgdGhlIEROUyBkZWx0YSB0aGF0IHdpbGwgYmUgYWRkZWQgbGF0ZXIgKHNlZQotICAg
ICAgICAgICAgLy8gV2ViSW5zcGVjdG9yLlJlcXVlc3RUaW1pbmdWaWV3LmNyZWF0ZVRpbWluZ1Rh
YmxlIGluIHRoZQotICAgICAgICAgICAgLy8gZmlsZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzKS4K
LSAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RT
dGFydCAtPQotICAgICAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCktPmRuc0VuZCAtIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc1N0YXJ0
OworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZXRDb25uZWN0
U3RhcnRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfQ09OTkVDVEVEOgogICAgICAgICAvLyBXZWIgVGlt
aW5nIGNvbnNpZGVycyB0aGF0IGNvbm5lY3Rpb24gdGltZSBpbnZvbHZlcyBkbnMsIHByb3h5ICYg
VExTIG5lZ290aWF0aW9uLi4uCiAgICAgICAgIC8vIHNvIHdlIGJldHRlciBwaWNrIEdfU09DS0VU
X0NMSUVOVF9DT01QTEVURSBmb3IgY29ubmVjdEVuZAogICAgICAgICBicmVhazsKICAgICBjYXNl
IEdfU09DS0VUX0NMSUVOVF9QUk9YWV9ORUdPVElBVElORzoKLSAgICAgICAgZC0+bV9yZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cHJveHlTdGFydCA9IGRlbHRhVGltZTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUFJPWFlfTkVHT1RJQVRFRDoKLSAgICAg
ICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cHJveHlFbmQgPSBkZWx0YVRp
bWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1RMU19IQU5EU0hB
S0lORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3Rh
cnQgPSBkZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCktPnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdU
aW1lKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9UTFNfSEFO
RFNIQUtFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3Ns
RW5kID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVO
VF9DT01QTEVURToKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
Y29ubmVjdEVuZCA9IGRlbHRhVGltZTsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxv
YWRUaW1pbmcoKS0+c2V0Q29ubmVjdEVuZFRpbWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTk4MSw3ICs5MzQsNiBAQCBzdGF0aWMgYm9vbCBjcmVhdGVTb3VwTWVzc2Fn
ZUZvckhhbmRsZUFuCiAgICAgZC0+bV9yZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVz
b3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7CiAgICAgZ19zaWduYWxfY29ubmVjdChkLT5tX3Nv
dXBNZXNzYWdlLmdldCgpLCAibmV0d29yay1ldmVudCIsIEdfQ0FMTEJBQ0sobmV0d29ya0V2ZW50
Q2FsbGJhY2spLCBoYW5kbGUpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2Fn
ZS5nZXQoKSwgInJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVzdGFydGVkQ2FsbGJhY2spLCBoYW5k
bGUpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgIndyb3Rl
LWJvZHkiLCBHX0NBTExCQUNLKHdyb3RlQm9keUNhbGxiYWNrKSwgaGFuZGxlKTsKICNlbmRpZgog
CiAjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDQzLCAxKQpAQCAtMTA1NSw3ICsxMDA3LDcgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdSZXF1ZXN0KAogewogI2lmIEVOQUJMRShX
RUJfVElNSU5HKQogICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQot
ICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpLT5zZXRSZXF1ZXN0U3RhcnRUaW1lKG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpKTsKICNlbmRpZgogCiAgICAgaWYgKGQtPm1fZmlyc3RSZXF1ZXN0LnRpbWVv
dXRJbnRlcnZhbCgpID4gMCkgewpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTY4Mzg2KQorKysg
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTQtMDUtMDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
KworICAgICAgICBQcm9ncmVzcyBvbiB3ZWIgdGltaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZW5j
b2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGVj
b2RlKToKKyAgICAgICAgVHJhbnNmZXIgd2ViIHRpbWluZyBkYXRhLgorCiAyMDE0LTA1LTA2ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVt
b3ZlZCB1bm5lY2Vzc2FyeSBub3RJbXBsZW1lbnRlZC5oIGluY2x1ZGVzLgpJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAJKHJldmlzaW9u
IDE2ODM2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02ODgsOCArNjg4LDIxIEBAIHZvaWQgQXJndW1lbnRDb2Rl
cjxSZXNvdXJjZVJlc3BvbnNlPjo6ZW4KICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlc3Bv
bnNlLmh0dHBTdGF0dXNUZXh0KCk7CiAgICAgICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXNwb25z
ZS5zdWdnZXN0ZWRGaWxlbmFtZSgpOwogICAgIH0KKyAgICAKKyAgICBSZXNvdXJjZUxvYWRUaW1p
bmcqIHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAg
Ym9vbCBoYXNSZXNvdXJjZUxvYWRUaW1pbmcgPSB0aW1pbmc7CisgICAgZW5jb2RlciA8PCBoYXNS
ZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgaWYgKGhhc1Jlc291cmNlTG9hZFRpbWluZykgeworICAg
ICAgICBlbmNvZGVyIDw8IHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnRUaW1lKCk7CisgICAgICAg
IGVuY29kZXIgPDwgdGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCk7CisgICAgICAgIGVuY29k
ZXIgPDwgdGltaW5nLT5jb25uZWN0U3RhcnRUaW1lKCk7CisgICAgICAgIGVuY29kZXIgPDwgdGlt
aW5nLT5jb25uZWN0RW5kVGltZSgpOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+c2VjdXJl
Q29ubmVjdGlvblN0YXJ0VGltZSgpOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+cmVxdWVz
dFN0YXJ0VGltZSgpOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+cmVzcG9uc2VTdGFydFRp
bWUoKTsKKyAgICB9CiB9Ci0KKyAgICAKIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3Bv
bnNlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VSZXNwb25zZSYg
cmVzb3VyY2VSZXNwb25zZSkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTc1NSwxMiArNzY4
LDQyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGUKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzcG9uc2Uuc2V0U3VnZ2VzdGVkRmlsZW5hbWUo
c3VnZ2VzdGVkRmlsZW5hbWUpOwogICAgIH0KLQorICAgIAorICAgIGJvb2wgaGFzUmVzb3VyY2VM
b2FkVGltaW5nOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzUmVzb3VyY2VMb2FkVGltaW5n
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChoYXNSZXNvdXJjZUxvYWRUaW1pbmcp
IHsKKyAgICAgICAgZG91YmxlIGRvbWFpbkxvb2t1cFN0YXJ0VGltZTsKKyAgICAgICAgZG91Ymxl
IGRvbWFpbkxvb2t1cEVuZFRpbWU7CisgICAgICAgIGRvdWJsZSBjb25uZWN0U3RhcnRUaW1lOwor
ICAgICAgICBkb3VibGUgY29ubmVjdEVuZFRpbWU7CisgICAgICAgIGRvdWJsZSBzZWN1cmVDb25u
ZWN0aW9uU3RhcnRUaW1lOworICAgICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0VGltZTsKKyAgICAg
ICAgZG91YmxlIHJlc3BvbnNlU3RhcnRUaW1lOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGRvbWFpbkxvb2t1cFN0YXJ0VGltZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShk
b21haW5Mb29rdXBFbmRUaW1lKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGNvbm5l
Y3RTdGFydFRpbWUpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoY29ubmVjdEVuZFRp
bWUpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoc2VjdXJlQ29ubmVjdGlvblN0YXJ0
VGltZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0U3RhcnRUaW1lKQor
ICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlc3BvbnNlU3RhcnRUaW1lKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUmVzb3VyY2VMb2FkVGltaW5nKiB0aW1pbmcg
PSByZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICAgICAgQVNTRVJUKHRpbWluZyk7
CisgICAgICAgIHRpbWluZy0+c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKGRvbWFpbkxvb2t1cFN0
YXJ0VGltZSk7CisgICAgICAgIHRpbWluZy0+c2V0RG9tYWluTG9va3VwRW5kVGltZShkb21haW5M
b29rdXBFbmRUaW1lKTsKKyAgICAgICAgdGltaW5nLT5zZXRDb25uZWN0U3RhcnRUaW1lKGNvbm5l
Y3RTdGFydFRpbWUpOworICAgICAgICB0aW1pbmctPnNldENvbm5lY3RFbmRUaW1lKGNvbm5lY3RF
bmRUaW1lKTsKKyAgICAgICAgdGltaW5nLT5zZXRTZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKHNl
Y3VyZUNvbm5lY3Rpb25TdGFydFRpbWUpOworICAgICAgICB0aW1pbmctPnNldFJlcXVlc3RTdGFy
dFRpbWUocmVxdWVzdFN0YXJ0VGltZSk7CisgICAgICAgIHRpbWluZy0+c2V0UmVzcG9uc2VTdGFy
dFRpbWUocmVzcG9uc2VTdGFydFRpbWUpOworICAgIH0KKyAgICAKICAgICByZXNvdXJjZVJlc3Bv
bnNlID0gcmVzcG9uc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLQorICAgIAogdm9pZCBBcmd1
bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogewogICAgIGlmIChrU2hvdWxk
U2VyaWFsaXplV2ViQ29yZURhdGEpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230955</attachid>
            <date>2014-05-06 17:17:17 -0700</date>
            <delta_ts>2014-05-06 17:24:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140506171654.patch</filename>
            <type>text/plain</type>
            <size>54893</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExMyBAQAorMjAxNC0wNS0wNiAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFByb2dyZXNz
IG9uIHdlYiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBBZGRlZCBsaW5rZXIgc3ltYm9sLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
T2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVj
dEZvckNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNl
QWdlbnQ6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb246CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2Fk
VGltaW5nIHZhbHVlcyBhbmQgcmVtb3ZlZCB1bnVzZWQgcGFyYW1ldGVycy4KKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QpOgorICAgICAgICBLZWVwIGEgcmVjb3JkIG9mIGEgY3Jv
c3Mgb3JpZ2luIHJlZGlyZWN0IGV2ZW4gaWYgeW91IGFyZSByZWRpcmVjdGVkIGJhY2suCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6IERl
bGV0ZWQuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICBS
ZW1vdmVkIHVudXNlZCBzZXROYXZpZ2F0aW9uU3RhcnQgbWV0aG9kIGRlY2xhcmF0aW9uLgorICAg
ICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgdXJsLgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1
cEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25u
ZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6
Y29ubmVjdEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
OjpzZWN1cmVDb25uZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlRW5kKToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgdmFsdWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6cmVzcG9uc2VTdGFydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDoK
KyAgICAgICAgUmVtb3ZlZCByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzIGRlY2xh
cmF0aW9uLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDoK
KyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RFbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXNlIG5ldyBSZXNvdXJjZUxvYWRU
aW1pbmcgbWV0aG9kcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpyZXNv
dXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBl
cmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKToKKyAg
ICAgICAgUmVwbGFjZWQgcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZSB3aXRoIHJl
c291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMKKyAgICAgICAgYmVjYXVzZSBvZiBu
ZXcgc3RvcmFnZSBmb3JtYXQgaW4gUmVzb3VyY2VMb2FkVGltaW5nLgorICAgICAgICAqIHBhZ2Uv
UGVyZm9ybWFuY2VUaW1pbmcuaDoKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlk
bDoKKyAgICAgICAgVXBkYXRlZCBzcGVjIHVybC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRU
aW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpSZXNvdXJj
ZUxvYWRUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpkZWVw
Q29weSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6Om9wZXJhdG9yPT0p
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvciE9KToKKyAg
ICAgICAgTW92ZWQgZnJvbSBSZXNvdXJjZUxvYWRUaW1pbmcuaC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1Rp
bWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGlt
aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRvbWFpbkxvb2t1cEVu
ZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpjb25uZWN0U3Rh
cnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6Y29ubmVjdEVu
ZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZWN1cmVDb25u
ZWN0aW9uU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6
cmVxdWVzdFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6
OnJlc3BvbnNlU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWlu
Zzo6c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZFRpbWluZzo6c2V0RG9tYWluTG9va3VwRW5kVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRUaW1pbmc6OnNldENvbm5lY3RTdGFydFRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRDb25uZWN0RW5kVGltZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRSZXF1ZXN0U3RhcnRUaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6c2V0UmVzcG9uc2VTdGFy
dFRpbWUpOgorICAgICAgICBBZGRlZCBhY2Nlc3NvcnMgaW5zdGVhZCBvZiBoYXZpbmcgcHVibGlj
IG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6
OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6b3BlcmF0
b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6Om9wZXJhdG9yIT0p
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpSZXNvdXJjZUxvYWRUaW1p
bmcpOgorICAgICAgICBNb3ZlZCBpbXBsZW1lbnRhdGlvbnMgdG8gUmVzb3VyY2VMb2FkVGltaW5n
LmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2VCYXNlOjpSZXNvdXJjZVJlc3Bv
bnNlQmFzZSk6CisgICAgICAgIEluaXRpYWxpemUgbV9yZXNvdXJjZUxvYWRUaW1pbmcgd2hpY2gg
aXMgdXNlZCBub3cuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxD
b25uZWN0aW9uKToKKyAgICAgICAgQ2FsbCBfc2V0Q29sbGVjdHNUaW1pbmdEYXRhIHRvIGNvbGxl
Y3QgdGltaW5nIGRhdGEgZm9yIHdlYiB0aW1pbmcuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgor
ICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUg
Y29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6CisgICAgICAgIFB1dCB0aW1pbmcgZGF0
YSBpbnRvIFJlc291cmNlTG9hZFRpbWluZyBkYXRhIHN0cnVjdHVyZS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdvdEhlYWRlcnNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpyZXN0YXJ0ZWRDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkU3RhcnRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdvcmtFdmVudENhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZVNvdXBNZXNzYWdlRm9ySGFuZGxlQW5kUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6Om1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ondyb3RlQm9keUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgVXNlIG5ldyBSZXNvdXJj
ZUxvYWRUaW1pbmcgbWV0aG9kcy4KKwogMjAxNC0wNS0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbmltYXRlIEFWUGxheWVyTGF5ZXIgaW50byBh
bmQgb3V0IG9mIGZ1bGwgc2NyZWVuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24g
MTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTE3NTUsNiArMTc1NSw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MTVodHQKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTZodHRwSGVhZGVyRmll
bGRzRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTZ0ZXh0RW5jb2RpbmdO
YW1lRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzdWdnZXN0ZWRGaWxl
bmFtZUV2CitfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE4cmVzb3VyY2VMb2Fk
VGltaW5nRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMjFleHBlY3RlZENv
bnRlbnRMZW5ndGhFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UzdXJsRXYK
IF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNmlzSFRUUEV2CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3Bw
CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMCwyMSArMjAwLDE2IEBAIHN0
YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKICAgICByZXR1cm4gaGVhZGVy
c09iamVjdDsKIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6
TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291
cmNlTG9hZFRpbWluZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBh
c3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+
IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nKQog
ewogICAgIHJldHVybiBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNvdXJjZVRp
bWluZzo6Y3JlYXRlKCkKLSAgICAgICAgLnNldFJlcXVlc3RUaW1lKGxvYWRlci0+dGltaW5nKCkt
Pm1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKHRpbWluZy5jb252ZXJ0UmVzb3VyY2VMb2Fk
VGltZVRvTW9ub3RvbmljVGltZSgwKSkpCi0gICAgICAgIC5zZXRQcm94eVN0YXJ0KHRpbWluZy5w
cm94eVN0YXJ0KQotICAgICAgICAuc2V0UHJveHlFbmQodGltaW5nLnByb3h5RW5kKQotICAgICAg
ICAuc2V0RG5zU3RhcnQodGltaW5nLmRuc1N0YXJ0KQotICAgICAgICAuc2V0RG5zRW5kKHRpbWlu
Zy5kbnNFbmQpCi0gICAgICAgIC5zZXRDb25uZWN0U3RhcnQodGltaW5nLmNvbm5lY3RTdGFydCkK
LSAgICAgICAgLnNldENvbm5lY3RFbmQodGltaW5nLmNvbm5lY3RFbmQpCi0gICAgICAgIC5zZXRT
c2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0gICAgICAgIC5zZXRTc2xFbmQodGltaW5nLnNzbEVu
ZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0aW1pbmcuc2VuZFN0YXJ0KQotICAgICAgICAuc2V0
U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAgICAgICAgLnNldFJlY2VpdmVIZWFkZXJzRW5kKHRp
bWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAgICAgICAgLnNldERvbWFpbkxvb2t1cFN0YXJ0VGlt
ZSh0aW1pbmcuZG9tYWluTG9va3VwU3RhcnRUaW1lKCkpCisgICAgICAgIC5zZXREb21haW5Mb29r
dXBFbmRUaW1lKHRpbWluZy5kb21haW5Mb29rdXBFbmRUaW1lKCkpCisgICAgICAgIC5zZXRDb25u
ZWN0U3RhcnRUaW1lKHRpbWluZy5jb25uZWN0U3RhcnRUaW1lKCkpCisgICAgICAgIC5zZXRDb25u
ZWN0RW5kVGltZSh0aW1pbmcuY29ubmVjdEVuZFRpbWUoKSkKKyAgICAgICAgLnNldFNlY3VyZUNv
bm5lY3Rpb25TdGFydFRpbWUodGltaW5nLnNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKSkKKyAg
ICAgICAgLnNldFJlcXVlc3RTdGFydFRpbWUodGltaW5nLnJlcXVlc3RTdGFydFRpbWUoKSkKKyAg
ICAgICAgLnNldFJlc3BvbnNlU3RhcnRUaW1lKHRpbWluZy5yZXNwb25zZVN0YXJ0VGltZSgpKQog
ICAgICAgICAucmVsZWFzZSgpOwogfQogCkBAIC0yMjksNyArMjI0LDcgQEAgc3RhdGljIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcgogICAgIHJldHVybiByZXF1ZXN0T2JqZWN0Owog
fQogCi1zdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpS
ZXNwb25zZT4gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IGJ1aWxkT2JqZWN0
Rm9yUmVzb3VyY2VSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsK
ICAgICBpZiAocmVzcG9uc2UuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAt
MjQ4LDE5ICsyNDMsMTkgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRl
cgogCiAgICAgcmVzcG9uc2VPYmplY3QtPnNldEZyb21EaXNrQ2FjaGUocmVzcG9uc2Uud2FzQ2Fj
aGVkKCkpOwogICAgIGlmIChyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAg
cmVzcG9uc2VPYmplY3QtPnNldFRpbWluZyhidWlsZE9iamVjdEZvclRpbWluZygqcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCksIGxvYWRlcikpOworICAgICAgICByZXNwb25zZU9iamVjdC0+
c2V0VGltaW5nKGJ1aWxkT2JqZWN0Rm9yVGltaW5nKCpyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKSkpOwogCiAgICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0OwogfQogCi1zdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVp
bGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2Us
IERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5
cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JDYWNoZWRS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgUmVmUHRyPElu
c3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlPiByZXNvdXJjZU9i
amVjdCA9IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlOjpj
cmVhdGUoKQogICAgICAgICAuc2V0VXJsKGNhY2hlZFJlc291cmNlLT51cmwoKSkKICAgICAgICAg
LnNldFR5cGUoSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZVR5cGVKc29uKCpjYWNo
ZWRSZXNvdXJjZSkpCiAgICAgICAgIC5zZXRCb2R5U2l6ZShjYWNoZWRSZXNvdXJjZS0+ZW5jb2Rl
ZFNpemUoKSk7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6
UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9u
c2UoY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCksIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0g
YnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgp
KTsKICAgICBpZiAocmVzb3VyY2VSZXNwb25zZSkKICAgICAgICAgcmVzb3VyY2VPYmplY3QtPnNl
dFJlc3BvbnNlKHJlc291cmNlUmVzcG9uc2UpOwogCkBAIC0zMjQsNyArMzE5LDcgQEAgdm9pZCBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3aWxsU2VuZFJlcQogICAgIEluc3BlY3Rvcjo6VHlwZUJ1
aWxkZXI6OlBhZ2U6OlJlc291cmNlVHlwZTo6RW51bSByZXNvdXJjZVR5cGUgPSBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OnJlc291cmNlVHlwZUpzb24odHlwZSk7CiAKICAgICBSZWZQdHI8SW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6TmV0d29yazo6SW5pdGlhdG9yPiBpbml0aWF0b3JPYmplY3QgPSBidWls
ZEluaXRpYXRvck9iamVjdChsb2FkZXItPmZyYW1lKCkgPyBsb2FkZXItPmZyYW1lKCktPmRvY3Vt
ZW50KCkgOiBudWxscHRyKTsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVzdFdpbGxC
ZVNlbnQocmVxdWVzdElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXItPmZyYW1lKCkpLCBt
X3BhZ2VBZ2VudC0+bG9hZGVySWQobG9hZGVyKSwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKSwgYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGN1cnJlbnRUaW1lKCksIGluaXRp
YXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9u
c2UsIGxvYWRlciksIHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8g
JnJlc291cmNlVHlwZSA6IG51bGxwdHIpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1
ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+ZnJh
bWUoKSksIG1fcGFnZUFnZW50LT5sb2FkZXJJZChsb2FkZXIpLCBsb2FkZXItPnVybCgpLnN0cmlu
ZygpLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgY3VycmVudFRpbWUo
KSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVkaXJl
Y3RSZXNwb25zZSksIHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8g
JnJlc291cmNlVHlwZSA6IG51bGxwdHIpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdl
bnQ6Om1hcmtSZXNvdXJjZUFzQ2FjaGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKQEAgLTM0
MSw3ICszMzYsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rv
cnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZv
clJlc291cmNlUmVzcG9uc2UocmVzcG9uc2UsIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3BlY3Rv
cjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0gYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKTsKIAogICAgIGJvb2wgaXNOb3RN
b2RpZmllZCA9IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gMzA0OwogCkBAIC00NjAsNyAr
NDU1LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2FkUmVzbwogCiAgICAg
UmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkluaXRpYXRvcj4gaW5pdGlh
dG9yT2JqZWN0ID0gYnVpbGRJbml0aWF0b3JPYmplY3QobG9hZGVyLT5mcmFtZSgpID8gbG9hZGVy
LT5mcmFtZSgpLT5kb2N1bWVudCgpIDogbnVsbHB0cik7CiAKLSAgICBtX2Zyb250ZW5kRGlzcGF0
Y2hlci0+cmVxdWVzdFNlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1ZXN0SWQsIGZyYW1lSWQsIGxv
YWRlcklkLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBjdXJyZW50VGltZSgpLCBpbml0aWF0b3JP
YmplY3QsIGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2UsIGxvYWRlcikpOwor
ICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1ZXN0U2VydmVkRnJvbU1lbW9yeUNhY2hlKHJl
cXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQsIGxvYWRlci0+dXJsKCkuc3RyaW5nKCksIGN1cnJl
bnRUaW1lKCksIGluaXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShy
ZXNvdXJjZSkpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEluaXRpYWxT
Y3JpcHRDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VTdHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcg
Kzg2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgbWFya1Jlc291cmNl
QXNDYWNoZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsYW9kZXIs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBSZXNvdXJjZUxvYWRlciopOworICAgIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwg
aW50IGRhdGFMZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBkb3Vi
bGUgZmluaXNoVGltZSk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCShyZXZp
c2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29y
ay5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxOCArMzIsMTMgQEAKICAgICAgICAgICAgICJ0
eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGltaW5nIGluZm9y
bWF0aW9uIGZvciB0aGUgcmVxdWVzdC4iLAogICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0VGltZSIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyByZXF1ZXN0VGltZSBpcyBhIGJhc2VsaW5lIGluIHNl
Y29uZHMsIHdoaWxlIHRoZSBvdGhlciBudW1iZXJzIGFyZSB0aWNrcyBpbiBtaWxsaXNlY29uZHMg
cmVsYXRpdmVseSB0byB0aGlzIHJlcXVlc3RUaW1lLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInByb3h5U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3Rh
cnRlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJv
eHlFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgcmVzb2x2
aW5nIHByb3h5LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRuc1N0YXJ0IiwgInR5
cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgRE5TIGFkZHJlc3MgcmVzb2x2
ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkbnNFbmQiLCAidHlwZSI6ICJudW1i
ZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0sCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0U3RhcnQiLCAidHlwZSI6ICJudW1iZXIi
LCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBjb25uZWN0aW5nIHRvIHRoZSByZW1vdGUgaG9zdC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0RW5kIiwgInR5cGUiOiAibnVt
YmVyIiwgImRlc2NyaXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAi
ZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInNzbEVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJG
aW5pc2hlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNl
bmRTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHNlbmRp
bmcgcmVxdWVzdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzZW5kRW5kIiwgInR5
cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHNlbmRpbmcgcmVxdWVzdC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZWNlaXZlSGVhZGVyc0VuZCIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCByZWNlaXZpbmcgcmVzcG9uc2Ug
aGVhZGVycy4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cFN0YXJ0
VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIEROUyBhZGRy
ZXNzIHJlc29sdmUiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb21haW5Mb29rdXBF
bmRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIEROUyBh
ZGRyZXNzIHJlc29sdmUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29ubmVjdFN0
YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5l
Y3RpbmcgdG8gdGhlIHJlbW90ZSBob3N0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNvbm5lY3RFbmRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNvbm5l
Y3RlZCB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
c2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAicmVxdWVzdFN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJT
dGFydGVkIHNlbmRpbmcgcmVxdWVzdC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJy
ZXNwb25zZVN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFy
dGVkIHJlY2VpdmluZyByZXNwb25zZS4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAg
ICAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWlu
Zy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NiwxMiArNzYsNiBAQCB2b2lkIERv
Y3VtZW50TG9hZFRpbWluZzo6bWFya05hdmlnYXRpb25TCiAgICAgbV9yZWZlcmVuY2VXYWxsVGlt
ZSA9IGN1cnJlbnRUaW1lKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjpzZXROYXZp
Z2F0aW9uU3RhcnQoZG91YmxlIG5hdmlnYXRpb25TdGFydCkKLXsKLSAgICBBU1NFUlQobV9yZWZl
cmVuY2VNb25vdG9uaWNUaW1lICYmIG1fcmVmZXJlbmNlV2FsbFRpbWUpOwotICAgIG1fbmF2aWdh
dGlvblN0YXJ0ID0gbmF2aWdhdGlvblN0YXJ0OwotfQotCiB2b2lkIERvY3VtZW50TG9hZFRpbWlu
Zzo6YWRkUmVkaXJlY3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1VybCwgY29uc3QgVVJMJiByZWRp
cmVjdGVkVXJsKQogewogICAgIG1fcmVkaXJlY3RDb3VudCsrOwpAQCAtOTAsNyArODQsNyBAQCB2
b2lkIERvY3VtZW50TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QoY29uCiAgICAgbV9yZWRpcmVjdEVu
ZCA9IG1fZmV0Y2hTdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogICAgIC8v
IENoZWNrIGlmIHRoZSByZWRpcmVjdGVkIHVybCBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgcmVk
aXJlY3RpbmcgdXJsJ3MgdGltaW5nIGluZm9ybWF0aW9uLgogICAgIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4gcmVkaXJlY3RlZFNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShy
ZWRpcmVjdGVkVXJsKTsKLSAgICBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgPSAhcmVkaXJlY3Rl
ZFNlY3VyaXR5T3JpZ2luLT5jYW5SZXF1ZXN0KHJlZGlyZWN0aW5nVXJsKTsKKyAgICBtX2hhc0Ny
b3NzT3JpZ2luUmVkaXJlY3QgPSBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgfHwgIXJlZGlyZWN0
ZWRTZWN1cml0eU9yaWdpbi0+Y2FuUmVxdWVzdChyZWRpcmVjdGluZ1VybCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkVGltaW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRUaW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBwdWJs
aWM6CiAgICAgZG91YmxlIG1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKGRvdWJsZSkgY29u
c3Q7CiAKICAgICB2b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKLSAgICB2b2lkIHNldE5hdmln
YXRpb25TdGFydChkb3VibGUpOwogICAgIHZvaWQgYWRkUmVkaXJlY3QoY29uc3QgVVJMJiByZWRp
cmVjdGluZ1VybCwgY29uc3QgVVJMJiByZWRpcmVjdGVkVXJsKTsKIAogICAgIHZvaWQgbWFya1Vu
bG9hZEV2ZW50U3RhcnQoKSB7IG1fdW5sb2FkRXZlbnRTdGFydCA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAkocmV2
aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8g
U2VlOiBodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisvLyBTZWU6IGh0
dHBzOi8vZHZjcy53My5vcmcvaGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3MvTmF2aWdhdGlv
blRpbWluZy9PdmVydmlldy5odG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAg
ICBFdmVudFRhcmdldCwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEyLDcgKzExMiw3IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZWRpcmUK
IGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KCkgY29uc3QKIHsK
ICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgZGlmZmVyZW50IGRlcGVuZGluZyBvbiByZWRp
cmVjdHMuCi0gICAgcmV0dXJuIChzdGFydFRpbWUoKSk7CisgICAgcmV0dXJuIHN0YXJ0VGltZSgp
OwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluTG9va3VwU3Rh
cnQoKSBjb25zdApAQCAtMTIwLDEwICsxMjAsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmc6OmRvbWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAgICAg
ICByZXR1cm4gMC4wOwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zU3RhcnQg
PCAwKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0VGlt
ZSgpIDwgMCkKICAgICAgICAgcmV0dXJuIGZldGNoU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNv
dXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNTdGFydCk7CisgICAg
cmV0dXJuIG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xMzEs
MTAgKzEzMSwxMCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluCiAg
ICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAg
ICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kbnNFbmQgPCAwKQorICAgIGlmICghbV90aW1p
bmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA8IDApCiAgICAgICAgIHJldHVy
biBkb21haW5Mb29rdXBTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1l
bnRNaWxsaXNlY29uZHMobV90aW1pbmctPmRuc0VuZCk7CisgICAgcmV0dXJuIG1fdGltaW5nLT5k
b21haW5Mb29rdXBFbmRUaW1lKCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nOjpjb25uZWN0U3RhcnQoKSBjb25zdApAQCAtMTQzLDE1ICsxNDMsMTUgQEAgZG91YmxlIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNvbm5lYwogICAgICAgICByZXR1cm4gMC4wOwogCiAg
ICAgLy8gY29ubmVjdFN0YXJ0IHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVxdWVzdCBpcyBu
b3QgbWFkZS4KLSAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5jb25uZWN0U3RhcnQgPCAw
IHx8IG1fZGlkUmV1c2VDb25uZWN0aW9uKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmct
PmNvbm5lY3RTdGFydFRpbWUoKSA8IDAgfHwgbV9kaWRSZXVzZUNvbm5lY3Rpb24pCiAgICAgICAg
IHJldHVybiBkb21haW5Mb29rdXBFbmQoKTsKIAogICAgIC8vIGNvbm5lY3RTdGFydCBpbmNsdWRl
cyBhbnkgRE5TIHRpbWUsIHNvIHdlIG1heSBuZWVkIHRvIHRyaW0gdGhhdCBvZmYuCi0gICAgaW50
IGNvbm5lY3RTdGFydCA9IG1fdGltaW5nLT5jb25uZWN0U3RhcnQ7CisgICAgZG91YmxlIGNvbm5l
Y3RTdGFydCA9IG1fdGltaW5nLT5jb25uZWN0U3RhcnRUaW1lKCk7CiAgICAgaWYgKG1fdGltaW5n
LT5kbnNFbmQgPj0gMCkKLSAgICAgICAgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmRuc0VuZDsK
KyAgICAgICAgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKTsK
IAotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKGNvbm5lY3RT
dGFydCk7CisgICAgcmV0dXJuIGNvbm5lY3RTdGFydDsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmc6OmNvbm5lY3RFbmQoKSBjb25zdApAQCAtMTYwLDEwICsxNjAsMTAgQEAg
ZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNvbm5lYwogICAgICAgICByZXR1cm4g
MC4wOwogCiAgICAgLy8gY29ubmVjdFN0YXJ0IHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVx
dWVzdCBpcyBub3QgbWFkZS4KLSAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5jb25uZWN0
RW5kIDwgMCB8fCBtX2RpZFJldXNlQ29ubmVjdGlvbikKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1f
dGltaW5nLT5jb25uZWN0RW5kVGltZSgpIDwgMCB8fCBtX2RpZFJldXNlQ29ubmVjdGlvbikKICAg
ICAgICAgcmV0dXJuIGNvbm5lY3RTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRv
RG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPmNvbm5lY3RFbmQpOworICAgIHJldHVybiBt
X3RpbWluZy0+Y29ubmVjdEVuZFRpbWUoKTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNvbnN0CkBAIC0xNzEsMTAgKzE3MSwx
MCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6c2VjdXJlCiAgICAgaWYgKCFt
X3Nob3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1f
dGltaW5nIHx8IG1fdGltaW5nLT5zc2xTdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5v
dCBuZWdvdGlhdGVkLgorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNlY3VyZUNvbm5l
Y3Rpb25TdGFydFRpbWUoKSA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBuZWdvdGlhdGVk
LgogICAgICAgICByZXR1cm4gMC4wOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1l
bnRNaWxsaXNlY29uZHMobV90aW1pbmctPnNzbFN0YXJ0KTsKKyAgICByZXR1cm4gbV90aW1pbmct
PnNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CkBAIC0xODUsMTggKzE4NSw3IEBAIGRv
dWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXF1ZXMKICAgICBpZiAoIW1fdGltaW5n
KQogICAgICAgICByZXR1cm4gY29ubmVjdEVuZCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGlt
ZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPnNlbmRTdGFydCk7Ci19Ci0KLWRvdWJs
ZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKLXsKLSAg
ICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKLSAgICAgICAgcmV0dXJuIDAuMDsKLQotICAg
IGlmICghbV90aW1pbmcpCi0gICAgICAgIHJldHVybiByZXF1ZXN0U3RhcnQoKTsKLSAgICAvLyBG
SVhNRTogVGhpcyBudW1iZXIgaXNuJ3QgZXhhY3RseSBjb3JyZWN0LiBTZWUgdGhlIG5vdGVzIGlu
IFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkuCi0gICAgcmV0dXJuIHJlc291cmNl
VGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kKTsK
KyAgICByZXR1cm4gbV90aW1pbmctPnJlcXVlc3RTdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKQEAgLTIwNCwxNCAr
MTkzLDcgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbgogICAgIGlm
ICghbV9maW5pc2hUaW1lKQogICAgICAgICByZXR1cm4gcmVzcG9uc2VTdGFydCgpOwogCi0gICAg
cmV0dXJuIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0Rv
Y3VtZW50LmdldCgpLCBtX2ZpbmlzaFRpbWUpOwotfQotCi1kb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6cmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhpbnQgZGVsdGFN
aWxsaXNlY29uZHMpIGNvbnN0Ci17Ci0gICAgaWYgKCFkZWx0YU1pbGxpc2Vjb25kcykKLSAgICAg
ICAgcmV0dXJuIDAuMDsKLSAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNl
Y29uZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCksIG1fdGltaW5nLT5yZXF1ZXN0VGltZSkg
KyBkZWx0YU1pbGxpc2Vjb25kczsKKyAgICByZXR1cm4gbV9maW5pc2hUaW1lOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcuaAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1
LDcgKzY1LDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBjb25uZWN0RW5kKCkgY29uc3Q7CiAgICAg
ZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNvbnN0OwogICAgIGRvdWJsZSByZXF1ZXN0
U3RhcnQoKSBjb25zdDsKLSAgICBkb3VibGUgcmVzcG9uc2VTdGFydCgpIGNvbnN0OwogICAgIGRv
dWJsZSByZXNwb25zZUVuZCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIGlzUmVzb3VyY2Uo
KSB7IHJldHVybiB0cnVlOyB9CkBAIC03NCw4ICs3Myw2IEBAIHByaXZhdGU6CiAgICAgUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZyhjb25zdCBBdG9taWNTdHJpbmcmIGluaXRhdG9yVHlwZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGRvdWJsZSBpbml0
aWF0aW9uVGltZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50Kik7CiAgICAgflBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcoKTsKIAotICAgIGRvdWJsZSByZXNvdXJjZVRpbWVUb0RvY3VtZW50
TWlsbGlzZWNvbmRzKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7Ci0KICAgICBBdG9taWNT
dHJpbmcgbV9pbml0aWF0b3JUeXBlOwogICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IG1f
dGltaW5nOwogICAgIGRvdWJsZSBtX2ZpbmlzaFRpbWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMCwx
MSArMTMwLDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG8KIAog
ICAgIC8vIFRoaXMgd2lsbCBiZSAtMSB3aGVuIGEgRE5TIHJlcXVlc3QgaXMgbm90IHBlcmZvcm1l
ZC4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRp
Y2F0ZXMgbm8gRE5TLCB3ZSAiYmFja2ZpbGwiIHdpdGggZmV0Y2hTdGFydC4KLSAgICBpbnQgZG5z
U3RhcnQgPSB0aW1pbmctPmRuc1N0YXJ0OworICAgIGRvdWJsZSBkbnNTdGFydCA9IHRpbWluZy0+
ZG9tYWluTG9va3VwU3RhcnRUaW1lKCk7CiAgICAgaWYgKGRuc1N0YXJ0IDwgMCkKICAgICAgICAg
cmV0dXJuIGZldGNoU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRp
dmVUb0Fic29sdXRlKGRuc1N0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50
ZWdlck1pbGxpc2Vjb25kcyhkbnNTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJm
b3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKCkgY29uc3QKQEAgLTE0NSwxMSArMTQ1LDEx
IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG8KIAogICAgIC8vIFRo
aXMgd2lsbCBiZSAtMSB3aGVuIGEgRE5TIHJlcXVlc3QgaXMgbm90IHBlcmZvcm1lZC4KICAgICAv
LyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8g
RE5TLCB3ZSAiYmFja2ZpbGwiIHdpdGggZG9tYWluTG9va3VwU3RhcnQuCi0gICAgaW50IGRuc0Vu
ZCA9IHRpbWluZy0+ZG5zRW5kOworICAgIGRvdWJsZSBkbnNFbmQgPSB0aW1pbmctPmRvbWFpbkxv
b2t1cEVuZFRpbWUoKTsKICAgICBpZiAoZG5zRW5kIDwgMCkKICAgICAgICAgcmV0dXJuIGRvbWFp
bkxvb2t1cFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9B
YnNvbHV0ZShkbnNFbmQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWls
bGlzZWNvbmRzKGRuc0VuZCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6Y29ubmVjdFN0YXJ0KCkgY29uc3QKQEAgLTE2NCwxNiArMTY0LDE2IEBAIHVuc2lnbmVk
IGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6Y28KIAogICAgIC8vIGNvbm5lY3RTdGFydCB3
aWxsIGJlIC0xIHdoZW4gYSBuZXR3b3JrIHJlcXVlc3QgaXMgbm90IG1hZGUuCiAgICAgLy8gUmF0
aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIG5ldyBj
b25uZWN0aW9uLCB3ZSAiYmFja2ZpbGwiIHdpdGggZG9tYWluTG9va3VwRW5kLgotICAgIGludCBj
b25uZWN0U3RhcnQgPSB0aW1pbmctPmNvbm5lY3RTdGFydDsKKyAgICBkb3VibGUgY29ubmVjdFN0
YXJ0ID0gdGltaW5nLT5jb25uZWN0U3RhcnRUaW1lKCk7CiAgICAgaWYgKGNvbm5lY3RTdGFydCA8
IDAgfHwgbG9hZGVyLT5yZXNwb25zZSgpLmNvbm5lY3Rpb25SZXVzZWQoKSkKICAgICAgICAgcmV0
dXJuIGRvbWFpbkxvb2t1cEVuZCgpOwogCiAgICAgLy8gUmVzb3VyY2VMb2FkVGltaW5nJ3MgY29u
bmVjdCBwaGFzZSBpbmNsdWRlcyBETlMsIGhvd2V2ZXIgTmF2aWdhdGlvbiBUaW1pbmcncwogICAg
IC8vIGNvbm5lY3QgcGhhc2Ugc2hvdWxkIG5vdC4gU28gaWYgdGhlcmUgaXMgRE5TIHRpbWUsIHRy
aW0gaXQgZnJvbSB0aGUgc3RhcnQuCi0gICAgaWYgKHRpbWluZy0+ZG5zRW5kID49IDAgJiYgdGlt
aW5nLT5kbnNFbmQgPiBjb25uZWN0U3RhcnQpCi0gICAgICAgIGNvbm5lY3RTdGFydCA9IHRpbWlu
Zy0+ZG5zRW5kOworICAgIGlmICh0aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA+PSAwICYm
IHRpbWluZy0+ZG9tYWluTG9va3VwRW5kVGltZSgpID4gY29ubmVjdFN0YXJ0KQorICAgICAgICBj
b25uZWN0U3RhcnQgPSB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKTsKIAotICAgIHJldHVy
biByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGNvbm5lY3RTdGFydCk7CisgICAg
cmV0dXJuIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoY29ubmVjdFN0YXJ0
KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0RW5k
KCkgY29uc3QKQEAgLTE4OCwxMSArMTg4LDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6Y28KIAogICAgIC8vIGNvbm5lY3RFbmQgd2lsbCBiZSAtMSB3aGVuIGEgbmV0
d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgogICAgIC8vIFJhdGhlciB0aGFuIGV4cG9zaW5nIGEg
c3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBuZXcgY29ubmVjdGlvbiwgd2UgImJhY2tm
aWxsIiB3aXRoIGNvbm5lY3RTdGFydC4KLSAgICBpbnQgY29ubmVjdEVuZCA9IHRpbWluZy0+Y29u
bmVjdEVuZDsKKyAgICBkb3VibGUgY29ubmVjdEVuZCA9IHRpbWluZy0+Y29ubmVjdEVuZFRpbWUo
KTsKICAgICBpZiAoY29ubmVjdEVuZCA8IDAgfHwgbG9hZGVyLT5yZXNwb25zZSgpLmNvbm5lY3Rp
b25SZXVzZWQoKSkKICAgICAgICAgcmV0dXJuIGNvbm5lY3RTdGFydCgpOwogCi0gICAgcmV0dXJu
IHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoY29ubmVjdEVuZCk7CisgICAgcmV0
dXJuIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoY29ubmVjdEVuZCk7CiB9
CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6c2VjdXJlQ29ubmVjdGlv
blN0YXJ0KCkgY29uc3QKQEAgLTIwNSwxMSArMjA1LDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQ
ZXJmb3JtYW5jZVRpbWluZzo6c2UKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBpbnQgc3NsU3RhcnQgPSB0aW1pbmctPnNzbFN0YXJ0OworICAgIGRvdWJsZSBzc2xT
dGFydCA9IHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSgpOwogICAgIGlmIChzc2xT
dGFydCA8IDApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRp
bWVSZWxhdGl2ZVRvQWJzb2x1dGUoc3NsU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRU
aW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHNzbFN0YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBs
b25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXF1ZXN0U3RhcnQoKSBjb25zdApAQCAtMjE4LDggKzIx
OCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAo
IXRpbWluZykKICAgICAgICAgcmV0dXJuIGNvbm5lY3RFbmQoKTsKIAotICAgIEFTU0VSVCh0aW1p
bmctPnNlbmRTdGFydCA+PSAwKTsKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZl
VG9BYnNvbHV0ZSh0aW1pbmctPnNlbmRTdGFydCk7CisgICAgQVNTRVJUKHRpbWluZy0+cmVxdWVz
dFN0YXJ0VGltZSgpID49IDApOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2Vy
TWlsbGlzZWNvbmRzKHRpbWluZy0+cmVxdWVzdFN0YXJ0VGltZSgpKTsKIH0KIAogdW5zaWduZWQg
bG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKQEAgLTIy
OCwxNCArMjI4LDggQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZQog
ICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gcmVxdWVzdFN0YXJ0KCk7CiAKLSAgICAv
LyBGSVhNRTogUmVzcG9uc2Ugc3RhcnQgbmVlZHMgdG8gYmUgdGhlIHRpbWUgb2YgdGhlIGZpcnN0
IHJlY2VpdmVkIGJ5dGUuCi0gICAgLy8gSG93ZXZlciwgdGhlIFJlc291cmNlTG9hZFRpbWluZyBB
UEkgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgdGhlIHRpbWUKLSAgICAvLyB0aGUgbGFzdCBoZWFk
ZXIgYnl0ZSB3YXMgcmVjZWl2ZWQuIEZvciBtYW55IHJlc3BvbnNlcyB3aXRoIHJlYXNvbmFibGUK
LSAgICAvLyBzaXplZCBjb29raWVzLCB0aGUgSFRUUCBoZWFkZXJzIGZpdCBpbnRvIGEgc2luZ2xl
IHBhY2tldCBzbyB0aGlzIHRpbWUKLSAgICAvLyBpcyBiYXNpY2FsbHkgZXF1aXZhbGVudC4gQnV0
IGZvciBzb21lIHJlc3BvbnNlcywgcGFydGljdWxhcmx5IHRob3NlIHdpdGgKLSAgICAvLyBoZWFk
ZXJzIGxhcmdlciB0aGFuIGEgc2luZ2xlIHBhY2tldCwgdGhpcyB0aW1lIHdpbGwgYmUgdG9vIGxh
dGUuCi0gICAgQVNTRVJUKHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQgPj0gMCk7Ci0gICAgcmV0
dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5yZWNlaXZlSGVh
ZGVyc0VuZCk7CisgICAgQVNTRVJUKHRpbWluZy0+cmVzcG9uc2VTdGFydFRpbWUoKSA+PSAwKTsK
KyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmct
PnJlc3BvbnNlU3RhcnRUaW1lKCkpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFu
Y2VUaW1pbmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKQEAgLTM0OCwxNCArMzQyLDYgQEAgUmVzb3Vy
Y2VMb2FkVGltaW5nKiBQZXJmb3JtYW5jZVRpbWluZzo6cgogICAgIHJldHVybiBsb2FkZXItPnJl
c3BvbnNlKCkucmVzb3VyY2VMb2FkVGltaW5nKCk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgbG9uZyBQ
ZXJmb3JtYW5jZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShpbnQg
cmVsYXRpdmVNaWxsaXNlY29uZHMpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKHJlbGF0aXZlTWlsbGlz
ZWNvbmRzID49IDApOwotICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVzb3VyY2VUaW1pbmcgPSBy
ZXNvdXJjZUxvYWRUaW1pbmcoKTsKLSAgICBBU1NFUlQocmVzb3VyY2VUaW1pbmcpOwotICAgIHJl
dHVybiBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHJlc291cmNlVGltaW5nLT5j
b252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZShyZWxhdGl2ZU1pbGxpc2Vjb25k
cykpOwotfQotCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om1vbm90b25p
Y1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoZG91YmxlIG1vbm90b25pY1NlY29uZHMpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKG1vbm90b25pY1NlY29uZHMgPj0gMCk7CkBAIC0zNjMsNiArMzQ5LDE4
IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bW8KICAgICBBU1NFUlQo
dGltaW5nKTsKICAgICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+bW9ub3Rv
bmljVGltZVRvUHNldWRvV2FsbFRpbWUobW9ub3RvbmljU2Vjb25kcykpOwogfQorICAgIAordW5z
aWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lVG9JbnRl
Z2VyTWlsbGlzZWNvbmRzKGRvdWJsZSBzZWNvbmRzKQoreworICAgIGlmIChzZWNvbmRzIDw9IDAu
MCkKKyAgICAgICAgcmV0dXJuIDA7CisjaWYgVVNFKENGKQorICAgIHJldHVybiBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBsb25nIGxvbmc+KChzZWNvbmRzICsga0NGQWJzb2x1dGVUaW1lSW50ZXJ2YWxT
aW5jZTE5NzApICogMTAwMCk7CisjZWxzZQorICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBsb25nIGxvbmc+KHNlY29uZHMgKiAxMDAwKTsKKyNlbmRpZgorfQorICAgIAogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VU
aW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGlt
aW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VUaW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsOCArNzgsOCBAQCBwcml2YXRlOgogICAg
IERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcigpIGNvbnN0OwogICAgIERvY3VtZW50TG9h
ZFRpbWluZyogZG9jdW1lbnRMb2FkVGltaW5nKCkgY29uc3Q7CiAgICAgUmVzb3VyY2VMb2FkVGlt
aW5nKiByZXNvdXJjZUxvYWRUaW1pbmcoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBsb25nIGxvbmcg
cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShpbnQpIGNvbnN0OwogICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJsZSkg
Y29uc3Q7CisgICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyByZXNvdXJjZUxvYWRUaW1lVG9J
bnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJsZSk7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDcgKzI4LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8gU2VlOiBodHRwOi8vZGV2Lncz
Lm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisvLyBTZWU6IGh0dHBzOi8vZHZjcy53My5vcmcv
aGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3MvTmF2aWdhdGlvblRpbWluZy9PdmVydmlldy5o
dG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKIF0gaW50ZXJmYWNlIFBlcmZvcm1h
bmNlVGltaW5nIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBh
cnNlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvSFRUUFBhcnNlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsOSArMzcsNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEhUVFBIZWFkZXJNYXA7Ci1jbGFzcyBSZXNv
dXJjZVJlc3BvbnNlQmFzZTsKLQogZW51bSBDb250ZW50RGlzcG9zaXRpb25UeXBlIHsKICAgICBD
b250ZW50RGlzcG9zaXRpb25Ob25lLAogICAgIENvbnRlbnREaXNwb3NpdGlvbklubGluZSwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
TG9hZFRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlLCBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUsIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsMTAgKzI4
LDQ1IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkVGltaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotZG91YmxlIFJlc291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9hZFRp
bWVUb01vbm90b25pY1RpbWUoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdAorICAgIAorUmVz
b3VyY2VMb2FkVGltaW5nOjpSZXNvdXJjZUxvYWRUaW1pbmcoKQorICAgIDogbV9kb21haW5Mb29r
dXBTdGFydFRpbWUoLTEuMCkKKyAgICAsIG1fZG9tYWluTG9va3VwRW5kVGltZSgtMS4wKQorICAg
ICwgbV9jb25uZWN0U3RhcnRUaW1lKC0xLjApCisgICAgLCBtX2Nvbm5lY3RFbmRUaW1lKC0xLjAp
CisgICAgLCBtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoMC4wKQorICAgICwgbV9yZXF1ZXN0
U3RhcnRUaW1lKDAuMCkKKyAgICAsIG1fcmVzcG9uc2VTdGFydFRpbWUoMC4wKQogewotICAgIHJl
dHVybiByZXF1ZXN0VGltZSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wOwogfQotCisgICAg
CitQYXNzUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gUmVzb3VyY2VMb2FkVGltaW5nOjpkZWVw
Q29weSgpCit7CisgICAgUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gdGltaW5nID0gYWRvcHRS
ZWYobmV3IFJlc291cmNlTG9hZFRpbWluZyk7CisgICAgdGltaW5nLT5zZXREb21haW5Mb29rdXBT
dGFydFRpbWUobV9kb21haW5Mb29rdXBTdGFydFRpbWUpOworICAgIHRpbWluZy0+c2V0RG9tYWlu
TG9va3VwRW5kVGltZShtX2RvbWFpbkxvb2t1cEVuZFRpbWUpOworICAgIHRpbWluZy0+c2V0Q29u
bmVjdFN0YXJ0VGltZShtX2Nvbm5lY3RTdGFydFRpbWUpOworICAgIHRpbWluZy0+c2V0Q29ubmVj
dEVuZFRpbWUobV9jb25uZWN0RW5kVGltZSk7CisgICAgdGltaW5nLT5zZXRTZWN1cmVDb25uZWN0
aW9uU3RhcnRUaW1lKG1fc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSk7CisgICAgdGltaW5nLT5z
ZXRSZXF1ZXN0U3RhcnRUaW1lKG1fcmVxdWVzdFN0YXJ0VGltZSk7CisgICAgdGltaW5nLT5zZXRS
ZXNwb25zZVN0YXJ0VGltZShtX3Jlc3BvbnNlU3RhcnRUaW1lKTsKKyAgICByZXR1cm4gdGltaW5n
LnJlbGVhc2UoKTsKK30KKyAgICAKK2Jvb2wgUmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvcj09
KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZG9tYWluTG9va3VwU3RhcnRUaW1lID09IG90aGVyLmRvbWFpbkxvb2t1cFN0YXJ0VGltZSgpCisg
ICAgICAgICYmIG1fZG9tYWluTG9va3VwRW5kVGltZSA9PSBvdGhlci5kb21haW5Mb29rdXBFbmRU
aW1lKCkKKyAgICAgICAgJiYgbV9jb25uZWN0U3RhcnRUaW1lID09IG90aGVyLmNvbm5lY3RTdGFy
dFRpbWUoKQorICAgICAgICAmJiBtX2Nvbm5lY3RFbmRUaW1lID09IG90aGVyLmNvbm5lY3RFbmRU
aW1lKCkKKyAgICAgICAgJiYgbV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lID09IG90aGVyLnNl
Y3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKQorICAgICAgICAmJiBtX3JlcXVlc3RTdGFydFRpbWUg
PT0gb3RoZXIucmVxdWVzdFN0YXJ0VGltZSgpCisgICAgICAgICYmIG1fcmVzcG9uc2VTdGFydFRp
bWUgPT0gb3RoZXIucmVzcG9uc2VTdGFydFRpbWUoKTsKK30KKyAgICAKK2Jvb2wgUmVzb3VyY2VM
b2FkVGltaW5nOjpvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNv
bnN0Cit7CisgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworfQorICAgIAogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRp
bWluZy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw5NiArMjcsNDcgQEAKICNp
Zm5kZWYgUmVzb3VyY2VMb2FkVGltaW5nX2gKICNkZWZpbmUgUmVzb3VyY2VMb2FkVGltaW5nX2gK
IAotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgRG9jdW1lbnRMb2FkVGltaW5nOwotCiBjbGFzcyBSZXNvdXJjZUxvYWRUaW1pbmcgOiBwdWJs
aWMgUmVmQ291bnRlZDxSZXNvdXJjZUxvYWRUaW1pbmc+IHsKKyAgICAKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IGNyZWF0ZSgpCi0gICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNlTG9hZFRpbWluZyk7Ci0gICAgfQotCi0g
ICAgUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IGRlZXBDb3B5KCkKLSAgICB7Ci0gICAg
ICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IHRpbWluZyA9IGNyZWF0ZSgpOwotICAgICAg
ICB0aW1pbmctPnJlcXVlc3RUaW1lID0gcmVxdWVzdFRpbWU7Ci0gICAgICAgIHRpbWluZy0+cHJv
eHlTdGFydCA9IHByb3h5U3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+cHJveHlFbmQgPSBwcm94eUVu
ZDsKLSAgICAgICAgdGltaW5nLT5kbnNTdGFydCA9IGRuc1N0YXJ0OwotICAgICAgICB0aW1pbmct
PmRuc0VuZCA9IGRuc0VuZDsKLSAgICAgICAgdGltaW5nLT5jb25uZWN0U3RhcnQgPSBjb25uZWN0
U3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+Y29ubmVjdEVuZCA9IGNvbm5lY3RFbmQ7Ci0gICAgICAg
IHRpbWluZy0+c2VuZFN0YXJ0ID0gc2VuZFN0YXJ0OwotICAgICAgICB0aW1pbmctPnNlbmRFbmQg
PSBzZW5kRW5kOwotICAgICAgICB0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kID0gcmVjZWl2ZUhl
YWRlcnNFbmQ7Ci0gICAgICAgIHRpbWluZy0+c3NsU3RhcnQgPSBzc2xTdGFydDsKLSAgICAgICAg
dGltaW5nLT5zc2xFbmQgPSBzc2xFbmQ7Ci0gICAgICAgIHJldHVybiB0aW1pbmcucmVsZWFzZSgp
OwotICAgIH0KLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcm
IG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHJlcXVlc3RUaW1lID09IG90aGVy
LnJlcXVlc3RUaW1lCi0gICAgICAgICAgICAmJiBwcm94eVN0YXJ0ID09IG90aGVyLnByb3h5U3Rh
cnQKLSAgICAgICAgICAgICYmIHByb3h5RW5kID09IG90aGVyLnByb3h5RW5kCi0gICAgICAgICAg
ICAmJiBkbnNTdGFydCA9PSBvdGhlci5kbnNTdGFydAotICAgICAgICAgICAgJiYgZG5zRW5kID09
IG90aGVyLmRuc0VuZAotICAgICAgICAgICAgJiYgY29ubmVjdFN0YXJ0ID09IG90aGVyLmNvbm5l
Y3RTdGFydAotICAgICAgICAgICAgJiYgY29ubmVjdEVuZCA9PSBvdGhlci5jb25uZWN0RW5kCi0g
ICAgICAgICAgICAmJiBzZW5kU3RhcnQgPT0gb3RoZXIuc2VuZFN0YXJ0Ci0gICAgICAgICAgICAm
JiBzZW5kRW5kID09IG90aGVyLnNlbmRFbmQKLSAgICAgICAgICAgICYmIHJlY2VpdmVIZWFkZXJz
RW5kID09IG90aGVyLnJlY2VpdmVIZWFkZXJzRW5kCi0gICAgICAgICAgICAmJiBzc2xTdGFydCA9
PSBvdGhlci5zc2xTdGFydAotICAgICAgICAgICAgJiYgc3NsRW5kID09IG90aGVyLnNzbEVuZDsK
LSAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBv
dGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKLSAg
ICB9Ci0KLSAgICAvLyBXZSB3YW50IHRvIHByZXNlbnQgYSB1bmlmaWVkIHRpbWVsaW5lIHRvIEph
dmFzY3JpcHQuIFVzaW5nIHdhbGx0aW1lIGlzIHByb2JsZW1hdGljLCBiZWNhdXNlIHRoZSBjbG9j
ayBtYXkgc2tldyB3aGlsZSByZXNvdXJjZXMKLSAgICAvLyBsb2FkLiBUbyBwcmV2ZW50IHRoYXQg
c2tldywgd2UgcmVjb3JkIGEgc2luZ2xlIHJlZmVyZW5jZSB3YWxsdGltZSB3aGVuIHJvb3QgZG9j
dW1lbnQgbmF2aWdhdGlvbiBiZWdpbnMuIEFsbCBvdGhlciB0aW1lcyBhcmUKLSAgICAvLyByZWNv
cmRlZCB1c2luZyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKS4gV2hlbiBhIHRpbWUgbmVl
ZHMgdG8gYmUgcHJlc2VudGVkIHRvIEphdmFzY3JpcHQsIHdlIGJ1aWxkIGEgcHNldWRvLXdhbGx0
aW1lCi0gICAgLy8gdXNpbmcgdGhlIGZvbGxvd2luZyBlcXVhdGlvbjoKLSAgICAvLyAgIHBzZXVk
byB0aW1lID0gZG9jdW1lbnQgd2FsbCByZWZlcmVuY2UgKyAocmVzb3VyY2UgcmVxdWVzdCB0aW1l
IC0gZG9jdW1lbnQgbW9ub3RvbmljIHJlZmVyZW5jZSkgKyBkZWx0YU1pbGxpc2Vjb25kcyAvIDEw
MDAuMC4KLSAgICBkb3VibGUgY29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUo
aW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdDsKLQotICAgIGRvdWJsZSByZXF1ZXN0VGltZTsg
Ly8gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgd2hlbiB0aGUgcG9ydCBzdGFydGVkIGhh
bmRsaW5nIHRoaXMgcmVxdWVzdC4KLSAgICBpbnQgcHJveHlTdGFydDsgLy8gVGhlIHJlc3Qgb2Yg
dGhlc2UgYXJlIG1pbGxpc2Vjb25kIGRlbHRhcywgdXNpbmcgbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCksIGZyb20gcmVxdWVzdFRpbWUuCi0gICAgaW50IHByb3h5RW5kOwotICAgIGludCBk
bnNTdGFydDsKLSAgICBpbnQgZG5zRW5kOwotICAgIGludCBjb25uZWN0U3RhcnQ7Ci0gICAgaW50
IGNvbm5lY3RFbmQ7Ci0gICAgaW50IHNlbmRTdGFydDsKLSAgICBpbnQgc2VuZEVuZDsKLSAgICBp
bnQgcmVjZWl2ZUhlYWRlcnNFbmQ7Ci0gICAgaW50IHNzbFN0YXJ0OwotICAgIGludCBzc2xFbmQ7
Ci0KKyAgICAKKyAgICBSZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxSZXNvdXJjZUxvYWRUaW1pbmc+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZXNv
dXJjZUxvYWRUaW1pbmcpOyB9CisgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IGRl
ZXBDb3B5KCk7CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlTG9hZFRp
bWluZyYpIGNvbnN0OworICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZXNvdXJjZUxvYWRUaW1p
bmcmKSBjb25zdDsKKyAgICAKKyAgICBkb3VibGUgZG9tYWluTG9va3VwU3RhcnRUaW1lKCkgY29u
c3QgeyByZXR1cm4gbV9kb21haW5Mb29rdXBTdGFydFRpbWU7IH0KKyAgICBkb3VibGUgZG9tYWlu
TG9va3VwRW5kVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tYWluTG9va3VwRW5kVGltZTsgfQor
ICAgIGRvdWJsZSBjb25uZWN0U3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0U3Rh
cnRUaW1lOyB9CisgICAgZG91YmxlIGNvbm5lY3RFbmRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9j
b25uZWN0RW5kVGltZTsgfQorICAgIGRvdWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lOyB9CisgICAgZG91Ymxl
IHJlcXVlc3RTdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RTdGFydFRpbWU7IH0K
KyAgICBkb3VibGUgcmVzcG9uc2VTdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNl
U3RhcnRUaW1lOyB9CisgICAgCisgICAgdm9pZCBzZXREb21haW5Mb29rdXBTdGFydFRpbWUoZG91
YmxlIGRvbWFpbkxvb2t1cFN0YXJ0VGltZSkgeyBtX2RvbWFpbkxvb2t1cFN0YXJ0VGltZSA9IGRv
bWFpbkxvb2t1cFN0YXJ0VGltZTsgfQorICAgIHZvaWQgc2V0RG9tYWluTG9va3VwRW5kVGltZShk
b3VibGUgZG9tYWluTG9va3VwRW5kVGltZSkgeyBtX2RvbWFpbkxvb2t1cEVuZFRpbWUgPSBkb21h
aW5Mb29rdXBFbmRUaW1lOyB9CisgICAgdm9pZCBzZXRDb25uZWN0U3RhcnRUaW1lKGRvdWJsZSBj
b25uZWN0U3RhcnRUaW1lKSB7IG1fY29ubmVjdFN0YXJ0VGltZSA9IGNvbm5lY3RTdGFydFRpbWU7
IH0KKyAgICB2b2lkIHNldENvbm5lY3RFbmRUaW1lKGRvdWJsZSBjb25uZWN0RW5kVGltZSkgeyBt
X2Nvbm5lY3RFbmRUaW1lID0gY29ubmVjdEVuZFRpbWU7IH0KKyAgICB2b2lkIHNldFNlY3VyZUNv
bm5lY3Rpb25TdGFydFRpbWUoZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUpIHsgbV9z
ZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lID0gc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZTsgfQor
ICAgIHZvaWQgc2V0UmVxdWVzdFN0YXJ0VGltZShkb3VibGUgcmVxdWVzdFN0YXJ0VGltZSkgeyBt
X3JlcXVlc3RTdGFydFRpbWUgPSByZXF1ZXN0U3RhcnRUaW1lOyB9CisgICAgdm9pZCBzZXRSZXNw
b25zZVN0YXJ0VGltZShkb3VibGUgcmVzcG9uc2VTdGFydFRpbWUpIHsgbV9yZXNwb25zZVN0YXJ0
VGltZSA9IHJlc3BvbnNlU3RhcnRUaW1lOyB9CisgICAgCiBwcml2YXRlOgotICAgIFJlc291cmNl
TG9hZFRpbWluZygpCi0gICAgICAgIDogcmVxdWVzdFRpbWUoMCkKLSAgICAgICAgLCBwcm94eVN0
YXJ0KC0xKQotICAgICAgICAsIHByb3h5RW5kKC0xKQotICAgICAgICAsIGRuc1N0YXJ0KC0xKQot
ICAgICAgICAsIGRuc0VuZCgtMSkKLSAgICAgICAgLCBjb25uZWN0U3RhcnQoLTEpCi0gICAgICAg
ICwgY29ubmVjdEVuZCgtMSkKLSAgICAgICAgLCBzZW5kU3RhcnQoMCkKLSAgICAgICAgLCBzZW5k
RW5kKDApCi0gICAgICAgICwgcmVjZWl2ZUhlYWRlcnNFbmQoMCkKLSAgICAgICAgLCBzc2xTdGFy
dCgtMSkKLSAgICAgICAgLCBzc2xFbmQoLTEpCi0gICAgewotICAgIH0KKyAgICAKKyAgICBkb3Vi
bGUgbV9kb21haW5Mb29rdXBTdGFydFRpbWU7CisgICAgZG91YmxlIG1fZG9tYWluTG9va3VwRW5k
VGltZTsKKyAgICBkb3VibGUgbV9jb25uZWN0U3RhcnRUaW1lOworICAgIGRvdWJsZSBtX2Nvbm5l
Y3RFbmRUaW1lOworICAgIGRvdWJsZSBtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWU7CisgICAg
ZG91YmxlIG1fcmVxdWVzdFN0YXJ0VGltZTsKKyAgICBkb3VibGUgbV9yZXNwb25zZVN0YXJ0VGlt
ZTsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQCBpbmxpbmUgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgUmVzb3VyY2VSCiAKIFJlc291cmNlUmVzcG9uc2VCYXNlOjpSZXNvdXJjZVJlc3BvbnNl
QmFzZSgpICAKICAgICA6IG1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoKDApCisgICAgLCBtX3Jlc291
cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKQogICAgICwgbV9odHRw
U3RhdHVzQ29kZSgwKQogICAgICwgbV9jb25uZWN0aW9uSUQoMCkKICAgICAsIG1fY2FjaGVDb250
cm9sTWF4QWdlKDApCkBAIC03MSw2ICs3Miw3IEBAIFJlc291cmNlUmVzcG9uc2VCYXNlOjpSZXNv
dXJjZVJlc3BvbnNlQmEKICAgICAsIG1fZXhwZWN0ZWRDb250ZW50TGVuZ3RoKGV4cGVjdGVkTGVu
Z3RoKQogICAgICwgbV90ZXh0RW5jb2RpbmdOYW1lKHRleHRFbmNvZGluZ05hbWUpCiAgICAgLCBt
X3N1Z2dlc3RlZEZpbGVuYW1lKGZpbGVuYW1lKQorICAgICwgbV9yZXNvdXJjZUxvYWRUaW1pbmco
UmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSkKICAgICAsIG1faHR0cFN0YXR1c0NvZGUoMCkK
ICAgICAsIG1fY29ubmVjdGlvbklEKDApCiAgICAgLCBtX2NhY2hlQ29udHJvbE1heEFnZSgwKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC01Niw2ICs1NiwxMCBAQAogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxGb3VuZGF0aW9uL05T
VVJMQ29ubmVjdGlvblByaXZhdGUuaD4pCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMQ29ubmVj
dGlvblByaXZhdGUuaD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCA8Q0ZO
ZXR3b3JrL0NGVVJMUmVxdWVzdC5oPgogCkBAIC0yMDAsNiArMjA0LDkgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aQogICAgIGNvbnN0IGJvb2wgdXNlc0NhY2hlID0g
dHJ1ZTsKICNlbmRpZgogICAgIGQtPm1fY29ubmVjdGlvbiA9IGFkb3B0TlMoW1tOU1VSTENvbm5l
Y3Rpb24gYWxsb2NdIF9pbml0V2l0aFJlcXVlc3Q6bnNSZXF1ZXN0IGRlbGVnYXRlOmRlbGVnYXRl
IHVzZXNDYWNoZTp1c2VzQ2FjaGUgbWF4Q29udGVudExlbmd0aDowIHN0YXJ0SW1tZWRpYXRlbHk6
Tk8gY29ubmVjdGlvblByb3BlcnRpZXM6cHJvcGVydHlEaWN0aW9uYXJ5XSk7CisjaWYgRU5BQkxF
KFdFQl9USU1JTkcpICYmIF9faGFzX2luY2x1ZGUoPEZvdW5kYXRpb24vTlNVUkxDb25uZWN0aW9u
UHJpdmF0ZS5oPikKKyAgICBbTlNVUkxDb25uZWN0aW9uIF9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6
WUVTXTsKKyNlbmRpZgogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVB
c09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlLm1tCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdh
dGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDEwIEBACiAjaW1wb3J0ICJXZWJDb3Jl
VVJMUmVzcG9uc2UuaCIKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAKKyNpZiBfX2hhc19p
bmNsdWRlKDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4pCisjaW1wb3J0IDxDRk5ldHdv
cmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4KKyNlbmRpZgorCiBAaW50ZXJmYWNlIE5TVVJMUmVxdWVz
dCAoRGV0YWlscykKIC0gKGlkKV9wcm9wZXJ0eUZvcktleTooTlNTdHJpbmcgKilrZXk7CiBAZW5k
CkBAIC0xOTMsNyArMTk3LDYgQEAgLSAoQk9PTCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24g
KiljbwogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRp
ZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXIKIHsKICAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKLSAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAKICAgICBMT0coTmV0
d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0aW9uOiVwIGRpZFJlY2VpdmVSZXNwb25z
ZTolcCAoSFRUUCBzdGF0dXMgJWQsIHJlcG9ydGVkIE1JTUVUeXBlICclcycpIiwgbV9oYW5kbGUs
IGNvbm5lY3Rpb24sIHIsIFtyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc3RhdHVzQ29k
ZSldID8gWyhpZClyIHN0YXR1c0NvZGVdIDogMCwgW1tyIE1JTUVUeXBlXSBVVEY4U3RyaW5nXSk7
CiAKQEAgLTIxMiw3ICsyMTUsMzIgQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rp
b24gKiljbwogCiAgICAgICAgIGlmIChbbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLm5zVVJMUmVx
dWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSBfcHJvcGVydHlGb3JLZXk6QCJGb3JjZUhUTUxNSU1F
VHlwZSJdKQogICAgICAgICAgICAgW3IgX3NldE1JTUVUeXBlOkAidGV4dC9odG1sIl07Ci0KKyAg
ICAgICAgCisjaWYgX19oYXNfaW5jbHVkZSg8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9uLmg+
KQorICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2Uocik7CisgICAgICAg
IAorICAgICAgICBOU0RpY3Rpb25hcnkqIHRpbWluZ0RhdGEgPSBbY29ubmVjdGlvbiBfdGltaW5n
RGF0YV07CisgICAgICAgIFJlc291cmNlTG9hZFRpbWluZyogdGltaW5nID0gcmVzb3VyY2VSZXNw
b25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICAgICAgQVNTRVJUKHRpbWluZyk7CisgICAg
ICAgIHRpbWluZy0+c2V0RG9tYWluTG9va3VwRW5kVGltZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JL
ZXk6QCJfa0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBFbmQiXSBkb3VibGVWYWx1ZV0pOworICAg
ICAgICB0aW1pbmctPnNldERvbWFpbkxvb2t1cFN0YXJ0VGltZShbW3RpbWluZ0RhdGEgdmFsdWVG
b3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBTdGFydCJdIGRvdWJsZVZhbHVlXSk7
CisgICAgICAgIHRpbWluZy0+c2V0Q29ubmVjdFN0YXJ0VGltZShbW3RpbWluZ0RhdGEgdmFsdWVG
b3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25uZWN0U3RhcnQiXSBkb3VibGVWYWx1ZV0pOworICAg
ICAgICB0aW1pbmctPnNldENvbm5lY3RFbmRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpA
Il9rQ0ZOVGltaW5nRGF0YUNvbm5lY3RFbmQiXSBkb3VibGVWYWx1ZV0pOworICAgICAgICB0aW1p
bmctPnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5
OkAiX2tDRk5UaW1pbmdEYXRhU2VjdXJlQ29ubmVjdGlvblN0YXJ0Il0gZG91YmxlVmFsdWVdKTsK
KyAgICAgICAgdGltaW5nLT5zZXRSZXF1ZXN0U3RhcnRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZv
cktleTpAIl9rQ0ZOVGltaW5nRGF0YVJlcXVlc3RTdGFydCJdIGRvdWJsZVZhbHVlXSk7CisgICAg
ICAgIHRpbWluZy0+c2V0UmVzcG9uc2VTdGFydFRpbWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5
OkAiX2tDRk5UaW1pbmdEYXRhUmVzcG9uc2VTdGFydCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAg
IC8vIFRPRE86IHRpbWluZ0RhdGEgaGFzIG1vcmUgaW5mb3JtYXRpb24gdGhhdCB3ZSBzaG91bGQg
c3RvcmUgYW5kIHVzZSB3aXRoIHRoZXNlIGtleXM6CisgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0
YUNvbm5lY3Rpb25SZXVzZWQKKyAgICAgICAgLy8gX2tDRk5UaW1pbmdEYXRhVGltaW5nRGF0YUlu
aXQKKyAgICAgICAgLy8gX2tDRk5UaW1pbmdEYXRhUmVkaXJlY3RTdGFydAorICAgICAgICAvLyBf
a0NGTlRpbWluZ0RhdGFSZWRpcmVjdEVuZAorICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFGZXRj
aFN0YXJ0CisgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0YVJlc3BvbnNlRW5kCisgICAgICAgIC8v
IF9rQ0ZOVGltaW5nRGF0YVJlZGlyZWN0Q291bnRXM0MKKyAgICAgICAgLy8gX2tDRk5UaW1pbmdE
YXRhUmVkaXJlY3RDb3VudAorI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24p
OworI2VuZGlmCiAgICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNl
QXN5bmMobV9oYW5kbGUsIHIpOwogICAgIH0pOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNCw5ICsyMzQs
NiBAQCBzdGF0aWMgdm9pZCBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24oCiBzdGF0aWMgdm9p
ZCBzZW5kUmVxdWVzdENhbGxiYWNrKEdPYmplY3QqLCBHQXN5bmNSZXN1bHQqLCBncG9pbnRlcik7
CiBzdGF0aWMgdm9pZCByZWFkQ2FsbGJhY2soR09iamVjdCosIEdBc3luY1Jlc3VsdCosIGdwb2lu
dGVyKTsKIHN0YXRpYyBnYm9vbGVhbiByZXF1ZXN0VGltZW91dENhbGxiYWNrKHZvaWQqKTsKLSNp
ZiBFTkFCTEUoV0VCX1RJTUlORykKLXN0YXRpYyBpbnQgIG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0
KGRvdWJsZSByZXF1ZXN0VGltZSk7Ci0jZW5kaWYKIHN0YXRpYyB2b2lkIGNvbnRpbnVlQWZ0ZXJE
aWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqKTsKIAogc3RhdGljIGJvb2wgZ0lnbm9y
ZVNTTEVycm9ycyA9IGZhbHNlOwpAQCAtMzE2LDExICszMTMsNiBAQCBzdGF0aWMgdm9pZCBnb3RI
ZWFkZXJzQ2FsbGJhY2soU291cE1lc3NhCiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBk
ID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogCi0jaWYgRU5BQkxFKFdFQl9USU1JTkcpCi0gICAg
aWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCi0gICAgICAgIGQtPm1fcmVz
cG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlY2VpdmVIZWFkZXJzRW5kID0gbWlsaXNlY29u
ZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVz
dFRpbWUpOwotI2VuZGlmCi0KICNpZiBQTEFURk9STShHVEspCiAgICAgLy8gV2UgYXJlIGEgYml0
IG1vcmUgY29uc2VydmF0aXZlIHdpdGggdGhlIHBlcnNpc3RlbnQgY3JlZGVudGlhbCBzdG9yYWdl
IHRoYW4gdGhlIHNlc3Npb24gc3RvcmUsCiAgICAgLy8gc2luY2Ugd2UgYXJlIHdhaXRpbmcgdW50
aWwgd2Uga25vdyB0aGF0IHRoaXMgYXV0aGVudGljYXRpb24gc3VjY2VlZGVkIGJlZm9yZSBhY3R1
YWxseSBzdG9yaW5nLgpAQCAtMzkwLDcgKzM4Miw3IEBAIHN0YXRpYyB2b2lkIHJlc3RhcnRlZENh
bGxiYWNrKFNvdXBNZXNzYWcKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxl
LT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2Ug
PSBkLT5tX3Jlc3BvbnNlOwogICAgIHJlZGlyZWN0UmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2FkVGlt
aW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpOwotICAgIHJlZGlyZWN0UmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCk7CisgICAgcmVkaXJlY3RSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2V0
UmVxdWVzdFN0YXJ0VGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiB9CiAjZW5k
aWYKIApAQCAtODM5LDQwICs4MzEsMTMgQEAgc3RhdGljIGJvb2wgYWRkRm9ybUVsZW1lbnRzVG9T
b3VwTWVzc2FnZQogfQogCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCi1zdGF0aWMgaW50IG1pbGlz
ZWNvbmRzU2luY2VSZXF1ZXN0KGRvdWJsZSByZXF1ZXN0VGltZSkKLXsKLSAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8aW50PigobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSByZXF1ZXN0VGlt
ZSkgKiAxMDAwLjApOwotfQotCi1zdGF0aWMgdm9pZCB3cm90ZUJvZHlDYWxsYmFjayhTb3VwTWVz
c2FnZSosIGdwb2ludGVyIGRhdGEpCi17Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5k
bGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwotICAgIGlmICghaGFuZGxl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFu
ZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIGlmICghZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxv
YWRUaW1pbmcoKS0+c2VuZEVuZCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKLX0KLQogdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6ZGlkU3RhcnRSZXF1ZXN0KCkKIHsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFs
KiBkID0gZ2V0SW50ZXJuYWwoKTsKICAgICBpZiAoIWQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2Fk
VGltaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCktPnNlbmRTdGFydCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVz
cG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKLSAgICBpZiAoZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQgIT0gLTEpIHsKLSAgICAgICAg
Ly8gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlcXVlc3RUaW1pbmdWaWV3LmpzIGFzc3Vt
ZXMKLSAgICAgICAgLy8gdGhhdCBTU0wgdGltZSBpcyBpbmNsdWRlZCBpbiBjb25uZWN0aW9uIHRp
bWUgc28gbXVzdAotICAgICAgICAvLyBzdWJzdHJhY3QgaGVyZSB0aGUgU1NMIGRlbHRhIHRoYXQg
d2lsbCBiZSBhZGRlZCBsYXRlciAoc2VlCi0gICAgICAgIC8vIFdlYkluc3BlY3Rvci5SZXF1ZXN0
VGltaW5nVmlldy5jcmVhdGVUaW1pbmdUYWJsZSBpbiB0aGUKLSAgICAgICAgLy8gZmlsZSBhYm92
ZSBmb3IgbW9yZSBkZXRhaWxzKS4KLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKS0+c2VuZFN0YXJ0IC09Ci0gICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5zc2xFbmQgLSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygp
LT5zc2xTdGFydDsKLSAgICB9CisgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+c2V0UmVxdWVzdFN0YXJ0VGltZShkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygp
LT5yZXF1ZXN0U3RhcnRUaW1lKCkpOwogfQogCiBzdGF0aWMgdm9pZCBuZXR3b3JrRXZlbnRDYWxs
YmFjayhTb3VwTWVzc2FnZSosIEdTb2NrZXRDbGllbnRFdmVudCBldmVudCwgR0lPU3RyZWFtKiwg
Z3BvaW50ZXIgZGF0YSkKQEAgLTg4NSw0MyArODUwLDMxIEBAIHN0YXRpYyB2b2lkIG5ldHdvcmtF
dmVudENhbGxiYWNrKFNvdXBNZXMKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpbnQgZGVsdGFUaW1l
ID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS0+cmVxdWVzdFRpbWUpOwogICAgIHN3aXRjaCAoZXZlbnQpIHsKICAgICBjYXNlIEdfU09D
S0VUX0NMSUVOVF9SRVNPTFZJTkc6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2Fk
VGltaW5nKCktPmRuc1N0YXJ0ID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpLT5zZXREb21haW5Mb29rdXBTdGFydFRpbWUobW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NM
SUVOVF9SRVNPTFZFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+ZG5zRW5kID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9h
ZFRpbWluZygpLT5zZXREb21haW5Mb29rdXBFbmRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfQ09OTkVD
VElORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+Y29ubmVj
dFN0YXJ0ID0gZGVsdGFUaW1lOwotICAgICAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxv
YWRUaW1pbmcoKS0+ZG5zU3RhcnQgIT0gLTEpCi0gICAgICAgICAgICAvLyBXZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVxdWVzdFRpbWluZ1ZpZXcuanMgYXNzdW1lcwotICAgICAgICAgICAg
Ly8gdGhhdCBETlMgdGltZSBpcyBpbmNsdWRlZCBpbiBjb25uZWN0aW9uIHRpbWUgc28gbXVzdAot
ICAgICAgICAgICAgLy8gc3Vic3RyYWN0IGhlcmUgdGhlIEROUyBkZWx0YSB0aGF0IHdpbGwgYmUg
YWRkZWQgbGF0ZXIgKHNlZQotICAgICAgICAgICAgLy8gV2ViSW5zcGVjdG9yLlJlcXVlc3RUaW1p
bmdWaWV3LmNyZWF0ZVRpbWluZ1RhYmxlIGluIHRoZQotICAgICAgICAgICAgLy8gZmlsZSBhYm92
ZSBmb3IgbW9yZSBkZXRhaWxzKS4KLSAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCktPmNvbm5lY3RTdGFydCAtPQotICAgICAgICAgICAgICAgIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc0VuZCAtIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCktPmRuc1N0YXJ0OworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9h
ZFRpbWluZygpLT5zZXRDb25uZWN0U3RhcnRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfQ09OTkVDVEVE
OgogICAgICAgICAvLyBXZWIgVGltaW5nIGNvbnNpZGVycyB0aGF0IGNvbm5lY3Rpb24gdGltZSBp
bnZvbHZlcyBkbnMsIHByb3h5ICYgVExTIG5lZ290aWF0aW9uLi4uCiAgICAgICAgIC8vIHNvIHdl
IGJldHRlciBwaWNrIEdfU09DS0VUX0NMSUVOVF9DT01QTEVURSBmb3IgY29ubmVjdEVuZAogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9QUk9YWV9ORUdPVElBVElORzoK
LSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cHJveHlTdGFydCA9
IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUFJP
WFlfTkVHT1RJQVRFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+cHJveHlFbmQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NL
RVRfQ0xJRU5UX1RMU19IQU5EU0hBS0lORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJj
ZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQgPSBkZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUobW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdf
U09DS0VUX0NMSUVOVF9UTFNfSEFORFNIQUtFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKS0+c3NsRW5kID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEdfU09DS0VUX0NMSUVOVF9DT01QTEVURToKLSAgICAgICAgZC0+bV9yZXNwb25zZS5y
ZXNvdXJjZUxvYWRUaW1pbmcoKS0+Y29ubmVjdEVuZCA9IGRlbHRhVGltZTsKKyAgICAgICAgZC0+
bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2V0Q29ubmVjdEVuZFRpbWUobW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTk4MCw3ICs5MzMsNiBAQCBzdGF0aWMg
Ym9vbCBjcmVhdGVTb3VwTWVzc2FnZUZvckhhbmRsZUFuCiAgICAgZC0+bV9yZXNwb25zZS5zZXRS
ZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7CiAgICAgZ19z
aWduYWxfY29ubmVjdChkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCAibmV0d29yay1ldmVudCIsIEdf
Q0FMTEJBQ0sobmV0d29ya0V2ZW50Q2FsbGJhY2spLCBoYW5kbGUpOwogICAgIGdfc2lnbmFsX2Nv
bm5lY3QoZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgInJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVz
dGFydGVkQ2FsbGJhY2spLCBoYW5kbGUpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9zb3Vw
TWVzc2FnZS5nZXQoKSwgIndyb3RlLWJvZHkiLCBHX0NBTExCQUNLKHdyb3RlQm9keUNhbGxiYWNr
KSwgaGFuZGxlKTsKICNlbmRpZgogCiAjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDQzLCAxKQpA
QCAtMTA1NCw3ICsxMDA2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdSZXF1
ZXN0KAogewogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpKQotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAg
ICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZXRSZXF1ZXN0U3RhcnRU
aW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKICNlbmRpZgogCiAgICAgaWYgKGQt
Pm1fZmlyc3RSZXF1ZXN0LnRpbWVvdXRJbnRlcnZhbCgpID4gMCkgewpJbmRleDogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDUtMDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hy
aXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcm9ncmVzcyBvbiB3ZWIgdGltaW5nLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNTc0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxS
ZXNvdXJjZVJlc3BvbnNlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxS
ZXNvdXJjZVJlc3BvbnNlPjo6ZGVjb2RlKToKKyAgICAgICAgVHJhbnNmZXIgd2ViIHRpbWluZyBk
YXRhLgorCiAyMDE0LTA1LTA2ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdW1dLMl0gQWRkIHRhcCBoaWdobGlnaHQgb24gdGhlIHNpbXBsZSBV
SVRhcEdlc3R1cmVSZWNvZ25pemVyCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTY4OCw4ICs2ODgsMjEgQEAgdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+Ojpl
bgogICAgICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVzcG9uc2UuaHR0cFN0YXR1c1RleHQoKTsK
ICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlc3BvbnNlLnN1Z2dlc3RlZEZpbGVuYW1lKCk7
CiAgICAgfQorICAgIAorICAgIFJlc291cmNlTG9hZFRpbWluZyogdGltaW5nID0gcmVzb3VyY2VS
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICBib29sIGhhc1Jlc291cmNlTG9hZFRp
bWluZyA9IHRpbWluZzsKKyAgICBlbmNvZGVyIDw8IGhhc1Jlc291cmNlTG9hZFRpbWluZzsKKyAg
ICBpZiAoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSB7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5n
LT5kb21haW5Mb29rdXBTdGFydFRpbWUoKTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPmRv
bWFpbkxvb2t1cEVuZFRpbWUoKTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPmNvbm5lY3RT
dGFydFRpbWUoKTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPmNvbm5lY3RFbmRUaW1lKCk7
CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKCk7
CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5yZXF1ZXN0U3RhcnRUaW1lKCk7CisgICAgICAg
IGVuY29kZXIgPDwgdGltaW5nLT5yZXNwb25zZVN0YXJ0VGltZSgpOworICAgIH0KIH0KLQorICAg
IAogYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNlKQogewog
I2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNzU1LDEyICs3NjgsNDIgQEAgYm9vbCBBcmd1bWVudENv
ZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICByZXNwb25zZS5zZXRTdWdnZXN0ZWRGaWxlbmFtZShzdWdnZXN0ZWRGaWxlbmFtZSk7CiAg
ICAgfQotCisgICAgCisgICAgYm9vbCBoYXNSZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShoYXNSZXNvdXJjZUxvYWRUaW1pbmcpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKGhhc1Jlc291cmNlTG9hZFRpbWluZykgeworICAgICAgICBkb3VibGUgZG9t
YWluTG9va3VwU3RhcnRUaW1lOworICAgICAgICBkb3VibGUgZG9tYWluTG9va3VwRW5kVGltZTsK
KyAgICAgICAgZG91YmxlIGNvbm5lY3RTdGFydFRpbWU7CisgICAgICAgIGRvdWJsZSBjb25uZWN0
RW5kVGltZTsKKyAgICAgICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWU7CisgICAg
ICAgIGRvdWJsZSByZXF1ZXN0U3RhcnRUaW1lOworICAgICAgICBkb3VibGUgcmVzcG9uc2VTdGFy
dFRpbWU7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZG9tYWluTG9va3VwU3RhcnRUaW1l
KQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGRvbWFpbkxvb2t1cEVuZFRpbWUpCisg
ICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoY29ubmVjdFN0YXJ0VGltZSkKKyAgICAgICAg
ICAgIHx8ICFkZWNvZGVyLmRlY29kZShjb25uZWN0RW5kVGltZSkKKyAgICAgICAgICAgIHx8ICFk
ZWNvZGVyLmRlY29kZShzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKQorICAgICAgICAgICAgfHwg
IWRlY29kZXIuZGVjb2RlKHJlcXVlc3RTdGFydFRpbWUpCisgICAgICAgICAgICB8fCAhZGVjb2Rl
ci5kZWNvZGUocmVzcG9uc2VTdGFydFRpbWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc3BvbnNlLnJlc291cmNlTG9h
ZFRpbWluZygpOworICAgICAgICBBU1NFUlQodGltaW5nKTsKKyAgICAgICAgdGltaW5nLT5zZXRE
b21haW5Mb29rdXBTdGFydFRpbWUoZG9tYWluTG9va3VwU3RhcnRUaW1lKTsKKyAgICAgICAgdGlt
aW5nLT5zZXREb21haW5Mb29rdXBFbmRUaW1lKGRvbWFpbkxvb2t1cEVuZFRpbWUpOworICAgICAg
ICB0aW1pbmctPnNldENvbm5lY3RTdGFydFRpbWUoY29ubmVjdFN0YXJ0VGltZSk7CisgICAgICAg
IHRpbWluZy0+c2V0Q29ubmVjdEVuZFRpbWUoY29ubmVjdEVuZFRpbWUpOworICAgICAgICB0aW1p
bmctPnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGlt
ZSk7CisgICAgICAgIHRpbWluZy0+c2V0UmVxdWVzdFN0YXJ0VGltZShyZXF1ZXN0U3RhcnRUaW1l
KTsKKyAgICAgICAgdGltaW5nLT5zZXRSZXNwb25zZVN0YXJ0VGltZShyZXNwb25zZVN0YXJ0VGlt
ZSk7CisgICAgfQorICAgIAogICAgIHJlc291cmNlUmVzcG9uc2UgPSByZXNwb25zZTsKIAogICAg
IHJldHVybiB0cnVlOwogfQotCisgICAgCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJv
cj46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlRXJyb3Im
IHJlc291cmNlRXJyb3IpCiB7CiAgICAgaWYgKGtTaG91bGRTZXJpYWxpemVXZWJDb3JlRGF0YSkg
ewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230957</attachid>
            <date>2014-05-06 17:24:14 -0700</date>
            <delta_ts>2014-05-07 10:02:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140506172352.patch</filename>
            <type>text/plain</type>
            <size>54882</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExMyBAQAorMjAxNC0wNS0wNiAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFByb2dyZXNz
IG9uIHdlYiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBBZGRlZCBsaW5rZXIgc3ltYm9sLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
T2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVj
dEZvckNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNl
QWdlbnQ6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb246CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2Fk
VGltaW5nIHZhbHVlcyBhbmQgcmVtb3ZlZCB1bnVzZWQgcGFyYW1ldGVycy4KKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QpOgorICAgICAgICBLZWVwIGEgcmVjb3JkIG9mIGEgY3Jv
c3Mgb3JpZ2luIHJlZGlyZWN0IGV2ZW4gaWYgeW91IGFyZSByZWRpcmVjdGVkIGJhY2suCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6IERl
bGV0ZWQuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICBS
ZW1vdmVkIHVudXNlZCBzZXROYXZpZ2F0aW9uU3RhcnQgbWV0aG9kIGRlY2xhcmF0aW9uLgorICAg
ICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgdXJsLgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1
cEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25u
ZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6
Y29ubmVjdEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
OjpzZWN1cmVDb25uZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlRW5kKToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgdmFsdWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6cmVzcG9uc2VTdGFydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDoK
KyAgICAgICAgUmVtb3ZlZCByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzIGRlY2xh
cmF0aW9uLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDoK
KyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RFbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXNlIG5ldyBSZXNvdXJjZUxvYWRU
aW1pbmcgbWV0aG9kcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpyZXNv
dXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBl
cmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKToKKyAg
ICAgICAgUmVwbGFjZWQgcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZSB3aXRoIHJl
c291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMKKyAgICAgICAgYmVjYXVzZSBvZiBu
ZXcgc3RvcmFnZSBmb3JtYXQgaW4gUmVzb3VyY2VMb2FkVGltaW5nLgorICAgICAgICAqIHBhZ2Uv
UGVyZm9ybWFuY2VUaW1pbmcuaDoKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlk
bDoKKyAgICAgICAgVXBkYXRlZCBzcGVjIHVybC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRU
aW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpSZXNvdXJj
ZUxvYWRUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpkZWVw
Q29weSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6Om9wZXJhdG9yPT0p
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvciE9KToKKyAg
ICAgICAgTW92ZWQgZnJvbSBSZXNvdXJjZUxvYWRUaW1pbmcuaC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1Rp
bWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGlt
aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRvbWFpbkxvb2t1cEVu
ZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpjb25uZWN0U3Rh
cnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6Y29ubmVjdEVu
ZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZWN1cmVDb25u
ZWN0aW9uU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6
cmVxdWVzdFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6
OnJlc3BvbnNlU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWlu
Zzo6c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZFRpbWluZzo6c2V0RG9tYWluTG9va3VwRW5kVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRUaW1pbmc6OnNldENvbm5lY3RTdGFydFRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRDb25uZWN0RW5kVGltZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRSZXF1ZXN0U3RhcnRUaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6c2V0UmVzcG9uc2VTdGFy
dFRpbWUpOgorICAgICAgICBBZGRlZCBhY2Nlc3NvcnMgaW5zdGVhZCBvZiBoYXZpbmcgcHVibGlj
IG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6
OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6b3BlcmF0
b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6Om9wZXJhdG9yIT0p
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpSZXNvdXJjZUxvYWRUaW1p
bmcpOgorICAgICAgICBNb3ZlZCBpbXBsZW1lbnRhdGlvbnMgdG8gUmVzb3VyY2VMb2FkVGltaW5n
LmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2VCYXNlOjpSZXNvdXJjZVJlc3Bv
bnNlQmFzZSk6CisgICAgICAgIEluaXRpYWxpemUgbV9yZXNvdXJjZUxvYWRUaW1pbmcgd2hpY2gg
aXMgdXNlZCBub3cuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxD
b25uZWN0aW9uKToKKyAgICAgICAgQ2FsbCBfc2V0Q29sbGVjdHNUaW1pbmdEYXRhIHRvIGNvbGxl
Y3QgdGltaW5nIGRhdGEgZm9yIHdlYiB0aW1pbmcuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgor
ICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUg
Y29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6CisgICAgICAgIFB1dCB0aW1pbmcgZGF0
YSBpbnRvIFJlc291cmNlTG9hZFRpbWluZyBkYXRhIHN0cnVjdHVyZS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdvdEhlYWRlcnNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpyZXN0YXJ0ZWRDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkU3RhcnRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdvcmtFdmVudENhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZVNvdXBNZXNzYWdlRm9ySGFuZGxlQW5kUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6Om1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ondyb3RlQm9keUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgVXNlIG5ldyBSZXNvdXJj
ZUxvYWRUaW1pbmcgbWV0aG9kcy4KKwogMjAxNC0wNS0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbmltYXRlIEFWUGxheWVyTGF5ZXIgaW50byBh
bmQgb3V0IG9mIGZ1bGwgc2NyZWVuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24g
MTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTE3NTUsNiArMTc1NSw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MTVodHQKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTZodHRwSGVhZGVyRmll
bGRzRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTZ0ZXh0RW5jb2RpbmdO
YW1lRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzdWdnZXN0ZWRGaWxl
bmFtZUV2CitfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE4cmVzb3VyY2VMb2Fk
VGltaW5nRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMjFleHBlY3RlZENv
bnRlbnRMZW5ndGhFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UzdXJsRXYK
IF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNmlzSFRUUEV2CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3Bw
CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMCwyMSArMjAwLDE2IEBAIHN0
YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKICAgICByZXR1cm4gaGVhZGVy
c09iamVjdDsKIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6
TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291
cmNlTG9hZFRpbWluZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBh
c3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+
IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nKQog
ewogICAgIHJldHVybiBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNvdXJjZVRp
bWluZzo6Y3JlYXRlKCkKLSAgICAgICAgLnNldFJlcXVlc3RUaW1lKGxvYWRlci0+dGltaW5nKCkt
Pm1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKHRpbWluZy5jb252ZXJ0UmVzb3VyY2VMb2Fk
VGltZVRvTW9ub3RvbmljVGltZSgwKSkpCi0gICAgICAgIC5zZXRQcm94eVN0YXJ0KHRpbWluZy5w
cm94eVN0YXJ0KQotICAgICAgICAuc2V0UHJveHlFbmQodGltaW5nLnByb3h5RW5kKQotICAgICAg
ICAuc2V0RG5zU3RhcnQodGltaW5nLmRuc1N0YXJ0KQotICAgICAgICAuc2V0RG5zRW5kKHRpbWlu
Zy5kbnNFbmQpCi0gICAgICAgIC5zZXRDb25uZWN0U3RhcnQodGltaW5nLmNvbm5lY3RTdGFydCkK
LSAgICAgICAgLnNldENvbm5lY3RFbmQodGltaW5nLmNvbm5lY3RFbmQpCi0gICAgICAgIC5zZXRT
c2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0gICAgICAgIC5zZXRTc2xFbmQodGltaW5nLnNzbEVu
ZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0aW1pbmcuc2VuZFN0YXJ0KQotICAgICAgICAuc2V0
U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAgICAgICAgLnNldFJlY2VpdmVIZWFkZXJzRW5kKHRp
bWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAgICAgICAgLnNldERvbWFpbkxvb2t1cFN0YXJ0VGlt
ZSh0aW1pbmcuZG9tYWluTG9va3VwU3RhcnRUaW1lKCkpCisgICAgICAgIC5zZXREb21haW5Mb29r
dXBFbmRUaW1lKHRpbWluZy5kb21haW5Mb29rdXBFbmRUaW1lKCkpCisgICAgICAgIC5zZXRDb25u
ZWN0U3RhcnRUaW1lKHRpbWluZy5jb25uZWN0U3RhcnRUaW1lKCkpCisgICAgICAgIC5zZXRDb25u
ZWN0RW5kVGltZSh0aW1pbmcuY29ubmVjdEVuZFRpbWUoKSkKKyAgICAgICAgLnNldFNlY3VyZUNv
bm5lY3Rpb25TdGFydFRpbWUodGltaW5nLnNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKSkKKyAg
ICAgICAgLnNldFJlcXVlc3RTdGFydFRpbWUodGltaW5nLnJlcXVlc3RTdGFydFRpbWUoKSkKKyAg
ICAgICAgLnNldFJlc3BvbnNlU3RhcnRUaW1lKHRpbWluZy5yZXNwb25zZVN0YXJ0VGltZSgpKQog
ICAgICAgICAucmVsZWFzZSgpOwogfQogCkBAIC0yMjksNyArMjI0LDcgQEAgc3RhdGljIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcgogICAgIHJldHVybiByZXF1ZXN0T2JqZWN0Owog
fQogCi1zdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpS
ZXNwb25zZT4gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IGJ1aWxkT2JqZWN0
Rm9yUmVzb3VyY2VSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsK
ICAgICBpZiAocmVzcG9uc2UuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAt
MjQ4LDE5ICsyNDMsMTkgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRl
cgogCiAgICAgcmVzcG9uc2VPYmplY3QtPnNldEZyb21EaXNrQ2FjaGUocmVzcG9uc2Uud2FzQ2Fj
aGVkKCkpOwogICAgIGlmIChyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAg
cmVzcG9uc2VPYmplY3QtPnNldFRpbWluZyhidWlsZE9iamVjdEZvclRpbWluZygqcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCksIGxvYWRlcikpOworICAgICAgICByZXNwb25zZU9iamVjdC0+
c2V0VGltaW5nKGJ1aWxkT2JqZWN0Rm9yVGltaW5nKCpyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKSkpOwogCiAgICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0OwogfQogCi1zdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVp
bGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2Us
IERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5
cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JDYWNoZWRS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgUmVmUHRyPElu
c3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlPiByZXNvdXJjZU9i
amVjdCA9IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlOjpj
cmVhdGUoKQogICAgICAgICAuc2V0VXJsKGNhY2hlZFJlc291cmNlLT51cmwoKSkKICAgICAgICAg
LnNldFR5cGUoSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZVR5cGVKc29uKCpjYWNo
ZWRSZXNvdXJjZSkpCiAgICAgICAgIC5zZXRCb2R5U2l6ZShjYWNoZWRSZXNvdXJjZS0+ZW5jb2Rl
ZFNpemUoKSk7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6
UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9u
c2UoY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCksIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0g
YnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgp
KTsKICAgICBpZiAocmVzb3VyY2VSZXNwb25zZSkKICAgICAgICAgcmVzb3VyY2VPYmplY3QtPnNl
dFJlc3BvbnNlKHJlc291cmNlUmVzcG9uc2UpOwogCkBAIC0zMjQsNyArMzE5LDcgQEAgdm9pZCBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3aWxsU2VuZFJlcQogICAgIEluc3BlY3Rvcjo6VHlwZUJ1
aWxkZXI6OlBhZ2U6OlJlc291cmNlVHlwZTo6RW51bSByZXNvdXJjZVR5cGUgPSBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OnJlc291cmNlVHlwZUpzb24odHlwZSk7CiAKICAgICBSZWZQdHI8SW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6TmV0d29yazo6SW5pdGlhdG9yPiBpbml0aWF0b3JPYmplY3QgPSBidWls
ZEluaXRpYXRvck9iamVjdChsb2FkZXItPmZyYW1lKCkgPyBsb2FkZXItPmZyYW1lKCktPmRvY3Vt
ZW50KCkgOiBudWxscHRyKTsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVzdFdpbGxC
ZVNlbnQocmVxdWVzdElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXItPmZyYW1lKCkpLCBt
X3BhZ2VBZ2VudC0+bG9hZGVySWQobG9hZGVyKSwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKSwgYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGN1cnJlbnRUaW1lKCksIGluaXRp
YXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9u
c2UsIGxvYWRlciksIHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8g
JnJlc291cmNlVHlwZSA6IG51bGxwdHIpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1
ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+ZnJh
bWUoKSksIG1fcGFnZUFnZW50LT5sb2FkZXJJZChsb2FkZXIpLCBsb2FkZXItPnVybCgpLnN0cmlu
ZygpLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgY3VycmVudFRpbWUo
KSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVkaXJl
Y3RSZXNwb25zZSksIHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8g
JnJlc291cmNlVHlwZSA6IG51bGxwdHIpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdl
bnQ6Om1hcmtSZXNvdXJjZUFzQ2FjaGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKQEAgLTM0
MSw3ICszMzYsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rv
cnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZv
clJlc291cmNlUmVzcG9uc2UocmVzcG9uc2UsIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3BlY3Rv
cjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0gYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKTsKIAogICAgIGJvb2wgaXNOb3RN
b2RpZmllZCA9IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gMzA0OwogCkBAIC00NjAsNyAr
NDU1LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2FkUmVzbwogCiAgICAg
UmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkluaXRpYXRvcj4gaW5pdGlh
dG9yT2JqZWN0ID0gYnVpbGRJbml0aWF0b3JPYmplY3QobG9hZGVyLT5mcmFtZSgpID8gbG9hZGVy
LT5mcmFtZSgpLT5kb2N1bWVudCgpIDogbnVsbHB0cik7CiAKLSAgICBtX2Zyb250ZW5kRGlzcGF0
Y2hlci0+cmVxdWVzdFNlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1ZXN0SWQsIGZyYW1lSWQsIGxv
YWRlcklkLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBjdXJyZW50VGltZSgpLCBpbml0aWF0b3JP
YmplY3QsIGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2UsIGxvYWRlcikpOwor
ICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1ZXN0U2VydmVkRnJvbU1lbW9yeUNhY2hlKHJl
cXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQsIGxvYWRlci0+dXJsKCkuc3RyaW5nKCksIGN1cnJl
bnRUaW1lKCksIGluaXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShy
ZXNvdXJjZSkpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEluaXRpYWxT
Y3JpcHRDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VTdHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcg
Kzg2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgbWFya1Jlc291cmNl
QXNDYWNoZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsYW9kZXIs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBSZXNvdXJjZUxvYWRlciopOworICAgIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwg
aW50IGRhdGFMZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBkb3Vi
bGUgZmluaXNoVGltZSk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCShyZXZp
c2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29y
ay5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxOCArMzIsMTMgQEAKICAgICAgICAgICAgICJ0
eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGltaW5nIGluZm9y
bWF0aW9uIGZvciB0aGUgcmVxdWVzdC4iLAogICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0VGltZSIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyByZXF1ZXN0VGltZSBpcyBhIGJhc2VsaW5lIGluIHNl
Y29uZHMsIHdoaWxlIHRoZSBvdGhlciBudW1iZXJzIGFyZSB0aWNrcyBpbiBtaWxsaXNlY29uZHMg
cmVsYXRpdmVseSB0byB0aGlzIHJlcXVlc3RUaW1lLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInByb3h5U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3Rh
cnRlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJv
eHlFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgcmVzb2x2
aW5nIHByb3h5LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRuc1N0YXJ0IiwgInR5
cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgRE5TIGFkZHJlc3MgcmVzb2x2
ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkbnNFbmQiLCAidHlwZSI6ICJudW1i
ZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0sCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0U3RhcnQiLCAidHlwZSI6ICJudW1iZXIi
LCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBjb25uZWN0aW5nIHRvIHRoZSByZW1vdGUgaG9zdC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0RW5kIiwgInR5cGUiOiAibnVt
YmVyIiwgImRlc2NyaXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAi
ZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInNzbEVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJG
aW5pc2hlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNl
bmRTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHNlbmRp
bmcgcmVxdWVzdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzZW5kRW5kIiwgInR5
cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHNlbmRpbmcgcmVxdWVzdC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZWNlaXZlSGVhZGVyc0VuZCIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCByZWNlaXZpbmcgcmVzcG9uc2Ug
aGVhZGVycy4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cFN0YXJ0
VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIEROUyBhZGRy
ZXNzIHJlc29sdmUiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb21haW5Mb29rdXBF
bmRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIEROUyBh
ZGRyZXNzIHJlc29sdmUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29ubmVjdFN0
YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5l
Y3RpbmcgdG8gdGhlIHJlbW90ZSBob3N0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNvbm5lY3RFbmRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNvbm5l
Y3RlZCB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
c2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAicmVxdWVzdFN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJT
dGFydGVkIHNlbmRpbmcgcmVxdWVzdC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJy
ZXNwb25zZVN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFy
dGVkIHJlY2VpdmluZyByZXNwb25zZS4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAg
ICAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWlu
Zy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NiwxMiArNzYsNiBAQCB2b2lkIERv
Y3VtZW50TG9hZFRpbWluZzo6bWFya05hdmlnYXRpb25TCiAgICAgbV9yZWZlcmVuY2VXYWxsVGlt
ZSA9IGN1cnJlbnRUaW1lKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjpzZXROYXZp
Z2F0aW9uU3RhcnQoZG91YmxlIG5hdmlnYXRpb25TdGFydCkKLXsKLSAgICBBU1NFUlQobV9yZWZl
cmVuY2VNb25vdG9uaWNUaW1lICYmIG1fcmVmZXJlbmNlV2FsbFRpbWUpOwotICAgIG1fbmF2aWdh
dGlvblN0YXJ0ID0gbmF2aWdhdGlvblN0YXJ0OwotfQotCiB2b2lkIERvY3VtZW50TG9hZFRpbWlu
Zzo6YWRkUmVkaXJlY3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1VybCwgY29uc3QgVVJMJiByZWRp
cmVjdGVkVXJsKQogewogICAgIG1fcmVkaXJlY3RDb3VudCsrOwpAQCAtOTAsNyArODQsNyBAQCB2
b2lkIERvY3VtZW50TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QoY29uCiAgICAgbV9yZWRpcmVjdEVu
ZCA9IG1fZmV0Y2hTdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogICAgIC8v
IENoZWNrIGlmIHRoZSByZWRpcmVjdGVkIHVybCBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgcmVk
aXJlY3RpbmcgdXJsJ3MgdGltaW5nIGluZm9ybWF0aW9uLgogICAgIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4gcmVkaXJlY3RlZFNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShy
ZWRpcmVjdGVkVXJsKTsKLSAgICBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgPSAhcmVkaXJlY3Rl
ZFNlY3VyaXR5T3JpZ2luLT5jYW5SZXF1ZXN0KHJlZGlyZWN0aW5nVXJsKTsKKyAgICBtX2hhc0Ny
b3NzT3JpZ2luUmVkaXJlY3QgPSBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgfHwgIXJlZGlyZWN0
ZWRTZWN1cml0eU9yaWdpbi0+Y2FuUmVxdWVzdChyZWRpcmVjdGluZ1VybCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkVGltaW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRUaW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBwdWJs
aWM6CiAgICAgZG91YmxlIG1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKGRvdWJsZSkgY29u
c3Q7CiAKICAgICB2b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKLSAgICB2b2lkIHNldE5hdmln
YXRpb25TdGFydChkb3VibGUpOwogICAgIHZvaWQgYWRkUmVkaXJlY3QoY29uc3QgVVJMJiByZWRp
cmVjdGluZ1VybCwgY29uc3QgVVJMJiByZWRpcmVjdGVkVXJsKTsKIAogICAgIHZvaWQgbWFya1Vu
bG9hZEV2ZW50U3RhcnQoKSB7IG1fdW5sb2FkRXZlbnRTdGFydCA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAkocmV2
aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8g
U2VlOiBodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisvLyBTZWU6IGh0
dHBzOi8vZHZjcy53My5vcmcvaGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3MvTmF2aWdhdGlv
blRpbWluZy9PdmVydmlldy5odG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAg
ICBFdmVudFRhcmdldCwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEyLDcgKzExMiw3IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZWRpcmUK
IGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KCkgY29uc3QKIHsK
ICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgZGlmZmVyZW50IGRlcGVuZGluZyBvbiByZWRp
cmVjdHMuCi0gICAgcmV0dXJuIChzdGFydFRpbWUoKSk7CisgICAgcmV0dXJuIHN0YXJ0VGltZSgp
OwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluTG9va3VwU3Rh
cnQoKSBjb25zdApAQCAtMTIwLDEwICsxMjAsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmc6OmRvbWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAgICAg
ICByZXR1cm4gMC4wOwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zU3RhcnQg
PCAwKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0VGlt
ZSgpIDwgMCkKICAgICAgICAgcmV0dXJuIGZldGNoU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNv
dXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNTdGFydCk7CisgICAg
cmV0dXJuIG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xMzEs
MTAgKzEzMSwxMCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluCiAg
ICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAg
ICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kbnNFbmQgPCAwKQorICAgIGlmICghbV90aW1p
bmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA8IDApCiAgICAgICAgIHJldHVy
biBkb21haW5Mb29rdXBTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1l
bnRNaWxsaXNlY29uZHMobV90aW1pbmctPmRuc0VuZCk7CisgICAgcmV0dXJuIG1fdGltaW5nLT5k
b21haW5Mb29rdXBFbmRUaW1lKCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nOjpjb25uZWN0U3RhcnQoKSBjb25zdApAQCAtMTQzLDE1ICsxNDMsMTUgQEAgZG91YmxlIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNvbm5lYwogICAgICAgICByZXR1cm4gMC4wOwogCiAg
ICAgLy8gY29ubmVjdFN0YXJ0IHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVxdWVzdCBpcyBu
b3QgbWFkZS4KLSAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5jb25uZWN0U3RhcnQgPCAw
IHx8IG1fZGlkUmV1c2VDb25uZWN0aW9uKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmct
PmNvbm5lY3RTdGFydFRpbWUoKSA8IDAgfHwgbV9kaWRSZXVzZUNvbm5lY3Rpb24pCiAgICAgICAg
IHJldHVybiBkb21haW5Mb29rdXBFbmQoKTsKIAogICAgIC8vIGNvbm5lY3RTdGFydCBpbmNsdWRl
cyBhbnkgRE5TIHRpbWUsIHNvIHdlIG1heSBuZWVkIHRvIHRyaW0gdGhhdCBvZmYuCi0gICAgaW50
IGNvbm5lY3RTdGFydCA9IG1fdGltaW5nLT5jb25uZWN0U3RhcnQ7Ci0gICAgaWYgKG1fdGltaW5n
LT5kbnNFbmQgPj0gMCkKLSAgICAgICAgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmRuc0VuZDsK
KyAgICBkb3VibGUgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmNvbm5lY3RTdGFydFRpbWUoKTsK
KyAgICBpZiAobV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA+PSAwKQorICAgICAgICBj
b25uZWN0U3RhcnQgPSBtX3RpbWluZy0+ZG9tYWluTG9va3VwRW5kVGltZSgpOwogCi0gICAgcmV0
dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoY29ubmVjdFN0YXJ0KTsKKyAg
ICByZXR1cm4gY29ubmVjdFN0YXJ0OwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZzo6Y29ubmVjdEVuZCgpIGNvbnN0CkBAIC0xNjAsMTAgKzE2MCwxMCBAQCBkb3VibGUgUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjCiAgICAgICAgIHJldHVybiAwLjA7CiAKICAg
ICAvLyBjb25uZWN0U3RhcnQgd2lsbCBiZSAtMSB3aGVuIGEgbmV0d29yayByZXF1ZXN0IGlzIG5v
dCBtYWRlLgotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmNvbm5lY3RFbmQgPCAwIHx8
IG1fZGlkUmV1c2VDb25uZWN0aW9uKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmNv
bm5lY3RFbmRUaW1lKCkgPCAwIHx8IG1fZGlkUmV1c2VDb25uZWN0aW9uKQogICAgICAgICByZXR1
cm4gY29ubmVjdFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1p
bGxpc2Vjb25kcyhtX3RpbWluZy0+Y29ubmVjdEVuZCk7CisgICAgcmV0dXJuIG1fdGltaW5nLT5j
b25uZWN0RW5kVGltZSgpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6
c2VjdXJlQ29ubmVjdGlvblN0YXJ0KCkgY29uc3QKQEAgLTE3MSwxMCArMTcxLDEwIEBAIGRvdWJs
ZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpzZWN1cmUKICAgICBpZiAoIW1fc2hvdWxkUmVw
b3J0RGV0YWlscykKICAgICAgICAgcmV0dXJuIDAuMDsKIAotICAgIGlmICghbV90aW1pbmcgfHwg
bV90aW1pbmctPnNzbFN0YXJ0IDwgMCkgLy8gU2VjdXJlIGNvbm5lY3Rpb24gbm90IG5lZ290aWF0
ZWQuCisgICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0
VGltZSgpIDwgMCkgLy8gU2VjdXJlIGNvbm5lY3Rpb24gbm90IG5lZ290aWF0ZWQuCiAgICAgICAg
IHJldHVybiAwLjA7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vj
b25kcyhtX3RpbWluZy0+c3NsU3RhcnQpOworICAgIHJldHVybiBtX3RpbWluZy0+c2VjdXJlQ29u
bmVjdGlvblN0YXJ0VGltZSgpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zzo6cmVxdWVzdFN0YXJ0KCkgY29uc3QKQEAgLTE4NSwzMyArMTg1LDEyIEBAIGRvdWJsZSBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXF1ZXMKICAgICBpZiAoIW1fdGltaW5nKQogICAgICAg
ICByZXR1cm4gY29ubmVjdEVuZCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1l
bnRNaWxsaXNlY29uZHMobV90aW1pbmctPnNlbmRTdGFydCk7Ci19Ci0KLWRvdWJsZSBQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKLXsKLSAgICBpZiAoIW1f
c2hvdWxkUmVwb3J0RGV0YWlscykKLSAgICAgICAgcmV0dXJuIDAuMDsKLQotICAgIGlmICghbV90
aW1pbmcpCi0gICAgICAgIHJldHVybiByZXF1ZXN0U3RhcnQoKTsKLSAgICAvLyBGSVhNRTogVGhp
cyBudW1iZXIgaXNuJ3QgZXhhY3RseSBjb3JyZWN0LiBTZWUgdGhlIG5vdGVzIGluIFBlcmZvcm1h
bmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkuCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9j
dW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kKTsKKyAgICByZXR1
cm4gbV90aW1pbmctPnJlcXVlc3RTdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fZmluaXNo
VGltZSkKLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlU3RhcnQoKTsKLQotICAgIHJldHVybiBtb25v
dG9uaWNUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3JlcXVlc3RpbmdEb2N1bWVudC5nZXQo
KSwgbV9maW5pc2hUaW1lKTsKLX0KLQotZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6
OnJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoaW50IGRlbHRhTWlsbGlzZWNvbmRz
KSBjb25zdAotewotICAgIGlmICghZGVsdGFNaWxsaXNlY29uZHMpCi0gICAgICAgIHJldHVybiAw
LjA7Ci0gICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVx
dWVzdGluZ0RvY3VtZW50LmdldCgpLCBtX3RpbWluZy0+cmVxdWVzdFRpbWUpICsgZGVsdGFNaWxs
aXNlY29uZHM7CisgICAgcmV0dXJuIG1fZmluaXNoVGltZTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw2IEBA
IHB1YmxpYzoKICAgICBkb3VibGUgY29ubmVjdEVuZCgpIGNvbnN0OwogICAgIGRvdWJsZSBzZWN1
cmVDb25uZWN0aW9uU3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0KCkgY29u
c3Q7Ci0gICAgZG91YmxlIHJlc3BvbnNlU3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVzcG9u
c2VFbmQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Jlc291cmNlKCkgeyByZXR1cm4g
dHJ1ZTsgfQpAQCAtNzQsOCArNzMsNiBAQCBwcml2YXRlOgogICAgIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmcoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0YXRvclR5cGUsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBkb3VibGUgaW5pdGlhdGlvblRpbWUs
IGRvdWJsZSBmaW5pc2hUaW1lLCBEb2N1bWVudCopOwogICAgIH5QZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nKCk7CiAKLSAgICBkb3VibGUgcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25k
cyhpbnQgZGVsdGFNaWxsaXNlY29uZHMpIGNvbnN0OwotCiAgICAgQXRvbWljU3RyaW5nIG1faW5p
dGlhdG9yVHlwZTsKICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBtX3RpbWluZzsKICAg
ICBkb3VibGUgbV9maW5pc2hUaW1lOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsMTEgKzEzMCwxMSBA
QCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBUaGlz
IHdpbGwgYmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAgLy8g
UmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIERO
Uywgd2UgImJhY2tmaWxsIiB3aXRoIGZldGNoU3RhcnQuCi0gICAgaW50IGRuc1N0YXJ0ID0gdGlt
aW5nLT5kbnNTdGFydDsKKyAgICBkb3VibGUgZG5zU3RhcnQgPSB0aW1pbmctPmRvbWFpbkxvb2t1
cFN0YXJ0VGltZSgpOwogICAgIGlmIChkbnNTdGFydCA8IDApCiAgICAgICAgIHJldHVybiBmZXRj
aFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0
ZShkbnNTdGFydCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNl
Y29uZHMoZG5zU3RhcnQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1p
bmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xNDUsMTEgKzE0NSwxMSBAQCB1bnNpZ25l
ZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBUaGlzIHdpbGwgYmUg
LTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAgLy8gUmF0aGVyIHRo
YW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIEROUywgd2UgImJh
Y2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1cFN0YXJ0LgotICAgIGludCBkbnNFbmQgPSB0aW1pbmct
PmRuc0VuZDsKKyAgICBkb3VibGUgZG5zRW5kID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1l
KCk7CiAgICAgaWYgKGRuc0VuZCA8IDApCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBTdGFy
dCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoZG5z
RW5kKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhk
bnNFbmQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5l
Y3RTdGFydCgpIGNvbnN0CkBAIC0xNjQsMTYgKzE2NCwxNiBAQCB1bnNpZ25lZCBsb25nIGxvbmcg
UGVyZm9ybWFuY2VUaW1pbmc6OmNvCiAKICAgICAvLyBjb25uZWN0U3RhcnQgd2lsbCBiZSAtMSB3
aGVuIGEgbmV0d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgogICAgIC8vIFJhdGhlciB0aGFuIGV4
cG9zaW5nIGEgc3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBuZXcgY29ubmVjdGlvbiwg
d2UgImJhY2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1cEVuZC4KLSAgICBpbnQgY29ubmVjdFN0YXJ0
ID0gdGltaW5nLT5jb25uZWN0U3RhcnQ7CisgICAgZG91YmxlIGNvbm5lY3RTdGFydCA9IHRpbWlu
Zy0+Y29ubmVjdFN0YXJ0VGltZSgpOwogICAgIGlmIChjb25uZWN0U3RhcnQgPCAwIHx8IGxvYWRl
ci0+cmVzcG9uc2UoKS5jb25uZWN0aW9uUmV1c2VkKCkpCiAgICAgICAgIHJldHVybiBkb21haW5M
b29rdXBFbmQoKTsKIAogICAgIC8vIFJlc291cmNlTG9hZFRpbWluZydzIGNvbm5lY3QgcGhhc2Ug
aW5jbHVkZXMgRE5TLCBob3dldmVyIE5hdmlnYXRpb24gVGltaW5nJ3MKICAgICAvLyBjb25uZWN0
IHBoYXNlIHNob3VsZCBub3QuIFNvIGlmIHRoZXJlIGlzIEROUyB0aW1lLCB0cmltIGl0IGZyb20g
dGhlIHN0YXJ0LgotICAgIGlmICh0aW1pbmctPmRuc0VuZCA+PSAwICYmIHRpbWluZy0+ZG5zRW5k
ID4gY29ubmVjdFN0YXJ0KQotICAgICAgICBjb25uZWN0U3RhcnQgPSB0aW1pbmctPmRuc0VuZDsK
KyAgICBpZiAodGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCkgPj0gMCAmJiB0aW1pbmctPmRv
bWFpbkxvb2t1cEVuZFRpbWUoKSA+IGNvbm5lY3RTdGFydCkKKyAgICAgICAgY29ubmVjdFN0YXJ0
ID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VM
b2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShjb25uZWN0U3RhcnQpOworICAgIHJldHVybiByZXNv
dXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGNvbm5lY3RTdGFydCk7CiB9CiAKIHVu
c2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6Y29ubmVjdEVuZCgpIGNvbnN0CkBA
IC0xODgsMTEgKzE4OCwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6
OmNvCiAKICAgICAvLyBjb25uZWN0RW5kIHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVxdWVz
dCBpcyBub3QgbWFkZS4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwgdmFs
dWUgdGhhdCBpbmRpY2F0ZXMgbm8gbmV3IGNvbm5lY3Rpb24sIHdlICJiYWNrZmlsbCIgd2l0aCBj
b25uZWN0U3RhcnQuCi0gICAgaW50IGNvbm5lY3RFbmQgPSB0aW1pbmctPmNvbm5lY3RFbmQ7Cisg
ICAgZG91YmxlIGNvbm5lY3RFbmQgPSB0aW1pbmctPmNvbm5lY3RFbmRUaW1lKCk7CiAgICAgaWYg
KGNvbm5lY3RFbmQgPCAwIHx8IGxvYWRlci0+cmVzcG9uc2UoKS5jb25uZWN0aW9uUmV1c2VkKCkp
CiAgICAgICAgIHJldHVybiBjb25uZWN0U3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZUxv
YWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGNvbm5lY3RFbmQpOworICAgIHJldHVybiByZXNvdXJj
ZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGNvbm5lY3RFbmQpOwogfQogCiB1bnNpZ25l
ZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNv
bnN0CkBAIC0yMDUsMTEgKzIwNSwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnNlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaW50
IHNzbFN0YXJ0ID0gdGltaW5nLT5zc2xTdGFydDsKKyAgICBkb3VibGUgc3NsU3RhcnQgPSB0aW1p
bmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKTsKICAgICBpZiAoc3NsU3RhcnQgPCAwKQog
ICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVU
b0Fic29sdXRlKHNzbFN0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdl
ck1pbGxpc2Vjb25kcyhzc2xTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KCkgY29uc3QKQEAgLTIxOCw4ICsyMTgsOCBAQCB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlCiAgICAgaWYgKCF0aW1pbmcpCiAg
ICAgICAgIHJldHVybiBjb25uZWN0RW5kKCk7CiAKLSAgICBBU1NFUlQodGltaW5nLT5zZW5kU3Rh
cnQgPj0gMCk7Ci0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUo
dGltaW5nLT5zZW5kU3RhcnQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlcXVlc3RTdGFydFRpbWUo
KSA+PSAwKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vjb25k
cyh0aW1pbmctPnJlcXVlc3RTdGFydFRpbWUoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQ
ZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0CkBAIC0yMjgsMTQgKzIyOCw4
IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAoIXRp
bWluZykKICAgICAgICAgcmV0dXJuIHJlcXVlc3RTdGFydCgpOwogCi0gICAgLy8gRklYTUU6IFJl
c3BvbnNlIHN0YXJ0IG5lZWRzIHRvIGJlIHRoZSB0aW1lIG9mIHRoZSBmaXJzdCByZWNlaXZlZCBi
eXRlLgotICAgIC8vIEhvd2V2ZXIsIHRoZSBSZXNvdXJjZUxvYWRUaW1pbmcgQVBJIGN1cnJlbnRs
eSBvbmx5IHN1cHBvcnRzIHRoZSB0aW1lCi0gICAgLy8gdGhlIGxhc3QgaGVhZGVyIGJ5dGUgd2Fz
IHJlY2VpdmVkLiBGb3IgbWFueSByZXNwb25zZXMgd2l0aCByZWFzb25hYmxlCi0gICAgLy8gc2l6
ZWQgY29va2llcywgdGhlIEhUVFAgaGVhZGVycyBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQgc28g
dGhpcyB0aW1lCi0gICAgLy8gaXMgYmFzaWNhbGx5IGVxdWl2YWxlbnQuIEJ1dCBmb3Igc29tZSBy
ZXNwb25zZXMsIHBhcnRpY3VsYXJseSB0aG9zZSB3aXRoCi0gICAgLy8gaGVhZGVycyBsYXJnZXIg
dGhhbiBhIHNpbmdsZSBwYWNrZXQsIHRoaXMgdGltZSB3aWxsIGJlIHRvbyBsYXRlLgotICAgIEFT
U0VSVCh0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kID49IDApOwotICAgIHJldHVybiByZXNvdXJj
ZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQpOwor
ICAgIEFTU0VSVCh0aW1pbmctPnJlc3BvbnNlU3RhcnRUaW1lKCkgPj0gMCk7CisgICAgcmV0dXJu
IHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5yZXNwb25zZVN0
YXJ0VGltZSgpKTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpy
ZXNwb25zZUVuZCgpIGNvbnN0CkBAIC0zNDgsMTQgKzM0Miw2IEBAIFJlc291cmNlTG9hZFRpbWlu
ZyogUGVyZm9ybWFuY2VUaW1pbmc6OnIKICAgICByZXR1cm4gbG9hZGVyLT5yZXNwb25zZSgpLnJl
c291cmNlTG9hZFRpbWluZygpOwogfQogCi11bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoaW50IHJlbGF0aXZlTWls
bGlzZWNvbmRzKSBjb25zdAotewotICAgIEFTU0VSVChyZWxhdGl2ZU1pbGxpc2Vjb25kcyA+PSAw
KTsKLSAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHJlc291cmNlVGltaW5nID0gcmVzb3VyY2VMb2Fk
VGltaW5nKCk7Ci0gICAgQVNTRVJUKHJlc291cmNlVGltaW5nKTsKLSAgICByZXR1cm4gbW9ub3Rv
bmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhyZXNvdXJjZVRpbWluZy0+Y29udmVydFJlc291
cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUocmVsYXRpdmVNaWxsaXNlY29uZHMpKTsKLX0KLQog
dW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjptb25vdG9uaWNUaW1lVG9JbnRl
Z2VyTWlsbGlzZWNvbmRzKGRvdWJsZSBtb25vdG9uaWNTZWNvbmRzKSBjb25zdAogewogICAgIEFT
U0VSVChtb25vdG9uaWNTZWNvbmRzID49IDApOwpAQCAtMzYzLDYgKzM0OSwxOCBAQCB1bnNpZ25l
ZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om1vCiAgICAgQVNTRVJUKHRpbWluZyk7CiAg
ICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPm1vbm90b25pY1RpbWVUb1Bz
ZXVkb1dhbGxUaW1lKG1vbm90b25pY1NlY29uZHMpKTsKIH0KKyAgICAKK3Vuc2lnbmVkIGxvbmcg
bG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vj
b25kcyhkb3VibGUgc2Vjb25kcykKK3sKKyAgICBpZiAoc2Vjb25kcyA8PSAwLjApCisgICAgICAg
IHJldHVybiAwOworI2lmIFVTRShDRikKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQg
bG9uZyBsb25nPigoc2Vjb25kcyArIGtDRkFic29sdXRlVGltZUludGVydmFsU2luY2UxOTcwKSAq
IDEwMDApOworI2Vsc2UKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25n
PihzZWNvbmRzICogMTAwMCk7CisjZW5kaWYKK30KKyAgICAKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5oCShyZXZp
c2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc4LDggKzc4LDggQEAgcHJpdmF0ZToKICAgICBEb2N1bWVudExv
YWRlciogZG9jdW1lbnRMb2FkZXIoKSBjb25zdDsKICAgICBEb2N1bWVudExvYWRUaW1pbmcqIGRv
Y3VtZW50TG9hZFRpbWluZygpIGNvbnN0OwogICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVzb3Vy
Y2VMb2FkVGltaW5nKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIHJlc291cmNlTG9h
ZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoaW50KSBjb25zdDsKICAgICB1bnNpZ25lZCBsb25nIGxv
bmcgbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUpIGNvbnN0OworICAg
IHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxp
c2Vjb25kcyhkb3VibGUpOwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVRpbWluZy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVRpbWluZy5pZGwJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAwNi93
ZWJhcGkvV2ViVGltaW5nLworLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3JnL2hnL3dlYnBlcmYv
cmF3LWZpbGUvdGlwL3NwZWNzL05hdmlnYXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRtbAogWwogICAg
IENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiBdIGludGVyZmFjZSBQZXJmb3JtYW5jZVRpbWluZyB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5o
CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDYgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgUmVzb3VyY2VSZXNwb25z
ZUJhc2U7Ci0KIGVudW0gQ29udGVudERpc3Bvc2l0aW9uVHlwZSB7CiAgICAgQ29udGVudERpc3Bv
c2l0aW9uTm9uZSwKICAgICBDb250ZW50RGlzcG9zaXRpb25JbmxpbmUsCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcu
Y3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlTG9hZFRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDEwICsyOCw0NSBAQAogI2lu
Y2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWRv
dWJsZSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9u
aWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3QKKyAgICAKK1Jlc291cmNlTG9hZFRp
bWluZzo6UmVzb3VyY2VMb2FkVGltaW5nKCkKKyAgICA6IG1fZG9tYWluTG9va3VwU3RhcnRUaW1l
KC0xLjApCisgICAgLCBtX2RvbWFpbkxvb2t1cEVuZFRpbWUoLTEuMCkKKyAgICAsIG1fY29ubmVj
dFN0YXJ0VGltZSgtMS4wKQorICAgICwgbV9jb25uZWN0RW5kVGltZSgtMS4wKQorICAgICwgbV9z
ZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKDAuMCkKKyAgICAsIG1fcmVxdWVzdFN0YXJ0VGltZSgw
LjApCisgICAgLCBtX3Jlc3BvbnNlU3RhcnRUaW1lKDAuMCkKIHsKLSAgICByZXR1cm4gcmVxdWVz
dFRpbWUgKyBkZWx0YU1pbGxpc2Vjb25kcyAvIDEwMDAuMDsKIH0KLQorICAgIAorUGFzc1JlZlB0
cjxSZXNvdXJjZUxvYWRUaW1pbmc+IFJlc291cmNlTG9hZFRpbWluZzo6ZGVlcENvcHkoKQorewor
ICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IHRpbWluZyA9IGFkb3B0UmVmKG5ldyBSZXNv
dXJjZUxvYWRUaW1pbmcpOworICAgIHRpbWluZy0+c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKG1f
ZG9tYWluTG9va3VwU3RhcnRUaW1lKTsKKyAgICB0aW1pbmctPnNldERvbWFpbkxvb2t1cEVuZFRp
bWUobV9kb21haW5Mb29rdXBFbmRUaW1lKTsKKyAgICB0aW1pbmctPnNldENvbm5lY3RTdGFydFRp
bWUobV9jb25uZWN0U3RhcnRUaW1lKTsKKyAgICB0aW1pbmctPnNldENvbm5lY3RFbmRUaW1lKG1f
Y29ubmVjdEVuZFRpbWUpOworICAgIHRpbWluZy0+c2V0U2VjdXJlQ29ubmVjdGlvblN0YXJ0VGlt
ZShtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUpOworICAgIHRpbWluZy0+c2V0UmVxdWVzdFN0
YXJ0VGltZShtX3JlcXVlc3RTdGFydFRpbWUpOworICAgIHRpbWluZy0+c2V0UmVzcG9uc2VTdGFy
dFRpbWUobV9yZXNwb25zZVN0YXJ0VGltZSk7CisgICAgcmV0dXJuIHRpbWluZy5yZWxlYXNlKCk7
Cit9CisgICAgCitib29sIFJlc291cmNlTG9hZFRpbWluZzo6b3BlcmF0b3I9PShjb25zdCBSZXNv
dXJjZUxvYWRUaW1pbmcmIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiBtX2RvbWFpbkxvb2t1
cFN0YXJ0VGltZSA9PSBvdGhlci5kb21haW5Mb29rdXBTdGFydFRpbWUoKQorICAgICAgICAmJiBt
X2RvbWFpbkxvb2t1cEVuZFRpbWUgPT0gb3RoZXIuZG9tYWluTG9va3VwRW5kVGltZSgpCisgICAg
ICAgICYmIG1fY29ubmVjdFN0YXJ0VGltZSA9PSBvdGhlci5jb25uZWN0U3RhcnRUaW1lKCkKKyAg
ICAgICAgJiYgbV9jb25uZWN0RW5kVGltZSA9PSBvdGhlci5jb25uZWN0RW5kVGltZSgpCisgICAg
ICAgICYmIG1fc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSA9PSBvdGhlci5zZWN1cmVDb25uZWN0
aW9uU3RhcnRUaW1lKCkKKyAgICAgICAgJiYgbV9yZXF1ZXN0U3RhcnRUaW1lID09IG90aGVyLnJl
cXVlc3RTdGFydFRpbWUoKQorICAgICAgICAmJiBtX3Jlc3BvbnNlU3RhcnRUaW1lID09IG90aGVy
LnJlc3BvbnNlU3RhcnRUaW1lKCk7Cit9CisgICAgCitib29sIFJlc291cmNlTG9hZFRpbWluZzo6
b3BlcmF0b3IhPShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVyKSBjb25zdAoreworICAg
IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKK30KKyAgICAKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAkocmV2
aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUxvYWRUaW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsOTYgKzI3LDQ3IEBACiAjaWZuZGVmIFJlc291
cmNlTG9hZFRpbWluZ19oCiAjZGVmaW5lIFJlc291cmNlTG9hZFRpbWluZ19oCiAKLSNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50
TG9hZFRpbWluZzsKLQogY2xhc3MgUmVzb3VyY2VMb2FkVGltaW5nIDogcHVibGljIFJlZkNvdW50
ZWQ8UmVzb3VyY2VMb2FkVGltaW5nPiB7CisgICAgCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUxvYWRUaW1pbmcpOwotICAgIH0KLQotICAgIFBhc3NSZWZQ
dHI8UmVzb3VyY2VMb2FkVGltaW5nPiBkZWVwQ29weSgpCi0gICAgewotICAgICAgICBSZWZQdHI8
UmVzb3VyY2VMb2FkVGltaW5nPiB0aW1pbmcgPSBjcmVhdGUoKTsKLSAgICAgICAgdGltaW5nLT5y
ZXF1ZXN0VGltZSA9IHJlcXVlc3RUaW1lOwotICAgICAgICB0aW1pbmctPnByb3h5U3RhcnQgPSBw
cm94eVN0YXJ0OwotICAgICAgICB0aW1pbmctPnByb3h5RW5kID0gcHJveHlFbmQ7Ci0gICAgICAg
IHRpbWluZy0+ZG5zU3RhcnQgPSBkbnNTdGFydDsKLSAgICAgICAgdGltaW5nLT5kbnNFbmQgPSBk
bnNFbmQ7Ci0gICAgICAgIHRpbWluZy0+Y29ubmVjdFN0YXJ0ID0gY29ubmVjdFN0YXJ0OwotICAg
ICAgICB0aW1pbmctPmNvbm5lY3RFbmQgPSBjb25uZWN0RW5kOwotICAgICAgICB0aW1pbmctPnNl
bmRTdGFydCA9IHNlbmRTdGFydDsKLSAgICAgICAgdGltaW5nLT5zZW5kRW5kID0gc2VuZEVuZDsK
LSAgICAgICAgdGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCA9IHJlY2VpdmVIZWFkZXJzRW5kOwot
ICAgICAgICB0aW1pbmctPnNzbFN0YXJ0ID0gc3NsU3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+c3Ns
RW5kID0gc3NsRW5kOwotICAgICAgICByZXR1cm4gdGltaW5nLnJlbGVhc2UoKTsKLSAgICB9Ci0K
LSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiByZXF1ZXN0VGltZSA9PSBvdGhlci5yZXF1ZXN0VGlt
ZQotICAgICAgICAgICAgJiYgcHJveHlTdGFydCA9PSBvdGhlci5wcm94eVN0YXJ0Ci0gICAgICAg
ICAgICAmJiBwcm94eUVuZCA9PSBvdGhlci5wcm94eUVuZAotICAgICAgICAgICAgJiYgZG5zU3Rh
cnQgPT0gb3RoZXIuZG5zU3RhcnQKLSAgICAgICAgICAgICYmIGRuc0VuZCA9PSBvdGhlci5kbnNF
bmQKLSAgICAgICAgICAgICYmIGNvbm5lY3RTdGFydCA9PSBvdGhlci5jb25uZWN0U3RhcnQKLSAg
ICAgICAgICAgICYmIGNvbm5lY3RFbmQgPT0gb3RoZXIuY29ubmVjdEVuZAotICAgICAgICAgICAg
JiYgc2VuZFN0YXJ0ID09IG90aGVyLnNlbmRTdGFydAotICAgICAgICAgICAgJiYgc2VuZEVuZCA9
PSBvdGhlci5zZW5kRW5kCi0gICAgICAgICAgICAmJiByZWNlaXZlSGVhZGVyc0VuZCA9PSBvdGhl
ci5yZWNlaXZlSGVhZGVyc0VuZAotICAgICAgICAgICAgJiYgc3NsU3RhcnQgPT0gb3RoZXIuc3Ns
U3RhcnQKLSAgICAgICAgICAgICYmIHNzbEVuZCA9PSBvdGhlci5zc2xFbmQ7Ci0gICAgfQotCi0g
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7Ci0gICAgfQotCi0gICAg
Ly8gV2Ugd2FudCB0byBwcmVzZW50IGEgdW5pZmllZCB0aW1lbGluZSB0byBKYXZhc2NyaXB0LiBV
c2luZyB3YWxsdGltZSBpcyBwcm9ibGVtYXRpYywgYmVjYXVzZSB0aGUgY2xvY2sgbWF5IHNrZXcg
d2hpbGUgcmVzb3VyY2VzCi0gICAgLy8gbG9hZC4gVG8gcHJldmVudCB0aGF0IHNrZXcsIHdlIHJl
Y29yZCBhIHNpbmdsZSByZWZlcmVuY2Ugd2FsbHRpbWUgd2hlbiByb290IGRvY3VtZW50IG5hdmln
YXRpb24gYmVnaW5zLiBBbGwgb3RoZXIgdGltZXMgYXJlCi0gICAgLy8gcmVjb3JkZWQgdXNpbmcg
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkuIFdoZW4gYSB0aW1lIG5lZWRzIHRvIGJlIHBy
ZXNlbnRlZCB0byBKYXZhc2NyaXB0LCB3ZSBidWlsZCBhIHBzZXVkby13YWxsdGltZQotICAgIC8v
IHVzaW5nIHRoZSBmb2xsb3dpbmcgZXF1YXRpb246Ci0gICAgLy8gICBwc2V1ZG8gdGltZSA9IGRv
Y3VtZW50IHdhbGwgcmVmZXJlbmNlICsgKHJlc291cmNlIHJlcXVlc3QgdGltZSAtIGRvY3VtZW50
IG1vbm90b25pYyByZWZlcmVuY2UpICsgZGVsdGFNaWxsaXNlY29uZHMgLyAxMDAwLjAuCi0gICAg
ZG91YmxlIGNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1p
bGxpc2Vjb25kcykgY29uc3Q7Ci0KLSAgICBkb3VibGUgcmVxdWVzdFRpbWU7IC8vIG1vbm90b25p
Y2FsbHlJbmNyZWFzaW5nVGltZSgpIHdoZW4gdGhlIHBvcnQgc3RhcnRlZCBoYW5kbGluZyB0aGlz
IHJlcXVlc3QuCi0gICAgaW50IHByb3h5U3RhcnQ7IC8vIFRoZSByZXN0IG9mIHRoZXNlIGFyZSBt
aWxsaXNlY29uZCBkZWx0YXMsIHVzaW5nIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBm
cm9tIHJlcXVlc3RUaW1lLgotICAgIGludCBwcm94eUVuZDsKLSAgICBpbnQgZG5zU3RhcnQ7Ci0g
ICAgaW50IGRuc0VuZDsKLSAgICBpbnQgY29ubmVjdFN0YXJ0OwotICAgIGludCBjb25uZWN0RW5k
OwotICAgIGludCBzZW5kU3RhcnQ7Ci0gICAgaW50IHNlbmRFbmQ7Ci0gICAgaW50IHJlY2VpdmVI
ZWFkZXJzRW5kOwotICAgIGludCBzc2xTdGFydDsKLSAgICBpbnQgc3NsRW5kOwotCisgICAgCisg
ICAgUmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VM
b2FkVGltaW5nPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgUmVzb3VyY2VMb2FkVGlt
aW5nKTsgfQorICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBkZWVwQ29weSgpOwor
ICAgIAorICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmKSBjb25z
dDsKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJikgY29uc3Q7
CisgICAgCisgICAgZG91YmxlIGRvbWFpbkxvb2t1cFN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZG9tYWluTG9va3VwU3RhcnRUaW1lOyB9CisgICAgZG91YmxlIGRvbWFpbkxvb2t1cEVuZFRp
bWUoKSBjb25zdCB7IHJldHVybiBtX2RvbWFpbkxvb2t1cEVuZFRpbWU7IH0KKyAgICBkb3VibGUg
Y29ubmVjdFN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdFN0YXJ0VGltZTsgfQor
ICAgIGRvdWJsZSBjb25uZWN0RW5kVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdEVuZFRp
bWU7IH0KKyAgICBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZTsgfQorICAgIGRvdWJsZSByZXF1ZXN0U3Rh
cnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0U3RhcnRUaW1lOyB9CisgICAgZG91Ymxl
IHJlc3BvbnNlU3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVN0YXJ0VGltZTsg
fQorICAgIAorICAgIHZvaWQgc2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKGRvdWJsZSBkb21haW5M
b29rdXBTdGFydFRpbWUpIHsgbV9kb21haW5Mb29rdXBTdGFydFRpbWUgPSBkb21haW5Mb29rdXBT
dGFydFRpbWU7IH0KKyAgICB2b2lkIHNldERvbWFpbkxvb2t1cEVuZFRpbWUoZG91YmxlIGRvbWFp
bkxvb2t1cEVuZFRpbWUpIHsgbV9kb21haW5Mb29rdXBFbmRUaW1lID0gZG9tYWluTG9va3VwRW5k
VGltZTsgfQorICAgIHZvaWQgc2V0Q29ubmVjdFN0YXJ0VGltZShkb3VibGUgY29ubmVjdFN0YXJ0
VGltZSkgeyBtX2Nvbm5lY3RTdGFydFRpbWUgPSBjb25uZWN0U3RhcnRUaW1lOyB9CisgICAgdm9p
ZCBzZXRDb25uZWN0RW5kVGltZShkb3VibGUgY29ubmVjdEVuZFRpbWUpIHsgbV9jb25uZWN0RW5k
VGltZSA9IGNvbm5lY3RFbmRUaW1lOyB9CisgICAgdm9pZCBzZXRTZWN1cmVDb25uZWN0aW9uU3Rh
cnRUaW1lKGRvdWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKSB7IG1fc2VjdXJlQ29ubmVj
dGlvblN0YXJ0VGltZSA9IHNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWU7IH0KKyAgICB2b2lkIHNl
dFJlcXVlc3RTdGFydFRpbWUoZG91YmxlIHJlcXVlc3RTdGFydFRpbWUpIHsgbV9yZXF1ZXN0U3Rh
cnRUaW1lID0gcmVxdWVzdFN0YXJ0VGltZTsgfQorICAgIHZvaWQgc2V0UmVzcG9uc2VTdGFydFRp
bWUoZG91YmxlIHJlc3BvbnNlU3RhcnRUaW1lKSB7IG1fcmVzcG9uc2VTdGFydFRpbWUgPSByZXNw
b25zZVN0YXJ0VGltZTsgfQorICAgIAogcHJpdmF0ZToKLSAgICBSZXNvdXJjZUxvYWRUaW1pbmco
KQotICAgICAgICA6IHJlcXVlc3RUaW1lKDApCi0gICAgICAgICwgcHJveHlTdGFydCgtMSkKLSAg
ICAgICAgLCBwcm94eUVuZCgtMSkKLSAgICAgICAgLCBkbnNTdGFydCgtMSkKLSAgICAgICAgLCBk
bnNFbmQoLTEpCi0gICAgICAgICwgY29ubmVjdFN0YXJ0KC0xKQotICAgICAgICAsIGNvbm5lY3RF
bmQoLTEpCi0gICAgICAgICwgc2VuZFN0YXJ0KDApCi0gICAgICAgICwgc2VuZEVuZCgwKQotICAg
ICAgICAsIHJlY2VpdmVIZWFkZXJzRW5kKDApCi0gICAgICAgICwgc3NsU3RhcnQoLTEpCi0gICAg
ICAgICwgc3NsRW5kKC0xKQotICAgIHsKLSAgICB9CisgICAgCisgICAgZG91YmxlIG1fZG9tYWlu
TG9va3VwU3RhcnRUaW1lOworICAgIGRvdWJsZSBtX2RvbWFpbkxvb2t1cEVuZFRpbWU7CisgICAg
ZG91YmxlIG1fY29ubmVjdFN0YXJ0VGltZTsKKyAgICBkb3VibGUgbV9jb25uZWN0RW5kVGltZTsK
KyAgICBkb3VibGUgbV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lOworICAgIGRvdWJsZSBtX3Jl
cXVlc3RTdGFydFRpbWU7CisgICAgZG91YmxlIG1fcmVzcG9uc2VTdGFydFRpbWU7CiB9OwogCiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VC
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlUmVzcG9uc2VCYXNlLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0LDYgKzQ0LDcgQEAgaW5saW5lIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIFJlc291
cmNlUgogCiBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6UmVzb3VyY2VSZXNwb25zZUJhc2UoKSAgCiAg
ICAgOiBtX2V4cGVjdGVkQ29udGVudExlbmd0aCgwKQorICAgICwgbV9yZXNvdXJjZUxvYWRUaW1p
bmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSkKICAgICAsIG1faHR0cFN0YXR1c0NvZGUo
MCkKICAgICAsIG1fY29ubmVjdGlvbklEKDApCiAgICAgLCBtX2NhY2hlQ29udHJvbE1heEFnZSgw
KQpAQCAtNzEsNiArNzIsNyBAQCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6UmVzb3VyY2VSZXNwb25z
ZUJhCiAgICAgLCBtX2V4cGVjdGVkQ29udGVudExlbmd0aChleHBlY3RlZExlbmd0aCkKICAgICAs
IG1fdGV4dEVuY29kaW5nTmFtZSh0ZXh0RW5jb2RpbmdOYW1lKQogICAgICwgbV9zdWdnZXN0ZWRG
aWxlbmFtZShmaWxlbmFtZSkKKyAgICAsIG1fcmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9h
ZFRpbWluZzo6Y3JlYXRlKCkpCiAgICAgLCBtX2h0dHBTdGF0dXNDb2RlKDApCiAgICAgLCBtX2Nv
bm5lY3Rpb25JRCgwKQogICAgICwgbV9jYWNoZUNvbnRyb2xNYXhBZ2UoMCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFu
ZGxlTWFjLm1tCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTYsNiAr
NTYsMTAgQEAKICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2ltcG9ydCA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8Rm91bmRhdGlvbi9OU1VSTENvbm5lY3Rp
b25Qcml2YXRlLmg+KQorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VSTENvbm5lY3Rpb25Qcml2YXRl
Lmg+CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgPENGTmV0d29yay9DRlVS
TFJlcXVlc3QuaD4KIApAQCAtMjAwLDYgKzIwNCw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZU5TVVJMQ29ubmVjdGkKICAgICBjb25zdCBib29sIHVzZXNDYWNoZSA9IHRydWU7CiAjZW5k
aWYKICAgICBkLT5tX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKFtbTlNVUkxDb25uZWN0aW9uIGFsbG9j
XSBfaW5pdFdpdGhSZXF1ZXN0Om5zUmVxdWVzdCBkZWxlZ2F0ZTpkZWxlZ2F0ZSB1c2VzQ2FjaGU6
dXNlc0NhY2hlIG1heENvbnRlbnRMZW5ndGg6MCBzdGFydEltbWVkaWF0ZWx5Ok5PIGNvbm5lY3Rp
b25Qcm9wZXJ0aWVzOnByb3BlcnR5RGljdGlvbmFyeV0pOworI2lmIEVOQUJMRShXRUJfVElNSU5H
KSAmJiBfX2hhc19pbmNsdWRlKDxGb3VuZGF0aW9uL05TVVJMQ29ubmVjdGlvblByaXZhdGUuaD4p
CisgICAgW05TVVJMQ29ubmVjdGlvbiBfc2V0Q29sbGVjdHNUaW1pbmdEYXRhOllFU107CisjZW5k
aWYKIH0KIAogYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5t
bQkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxMCBAQAogI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNl
LmgiCiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8Q0ZO
ZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9uLmg+KQorI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGTlNVUkxD
b25uZWN0aW9uLmg+CisjZW5kaWYKKwogQGludGVyZmFjZSBOU1VSTFJlcXVlc3QgKERldGFpbHMp
CiAtIChpZClfcHJvcGVydHlGb3JLZXk6KE5TU3RyaW5nICopa2V5OwogQGVuZApAQCAtMTkzLDcg
KzE5Nyw2IEBAIC0gKEJPT0wpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY28KIC0gKHZv
aWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlUmVz
cG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
Ci0gICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwogCiAgICAgTE9HKE5ldHdvcmssICJIYW5k
bGUgJXAgZGVsZWdhdGUgY29ubmVjdGlvbjolcCBkaWRSZWNlaXZlUmVzcG9uc2U6JXAgKEhUVFAg
c3RhdHVzICVkLCByZXBvcnRlZCBNSU1FVHlwZSAnJXMnKSIsIG1faGFuZGxlLCBjb25uZWN0aW9u
LCByLCBbciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHN0YXR1c0NvZGUpXSA/IFsoaWQp
ciBzdGF0dXNDb2RlXSA6IDAsIFtbciBNSU1FVHlwZV0gVVRGOFN0cmluZ10pOwogCkBAIC0yMTIs
NyArMjE1LDMyIEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY28KIAog
ICAgICAgICBpZiAoW21faGFuZGxlLT5maXJzdFJlcXVlc3QoKS5uc1VSTFJlcXVlc3QoRG9Ob3RV
cGRhdGVIVFRQQm9keSkgX3Byb3BlcnR5Rm9yS2V5OkAiRm9yY2VIVE1MTUlNRVR5cGUiXSkKICAg
ICAgICAgICAgIFtyIF9zZXRNSU1FVHlwZTpAInRleHQvaHRtbCJdOwotCisgICAgICAgIAorI2lm
IF9faGFzX2luY2x1ZGUoPENGTmV0d29yay9DRk5TVVJMQ29ubmVjdGlvbi5oPikKKyAgICAgICAg
UmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlKHIpOworICAgICAgICAKKyAgICAgICAg
TlNEaWN0aW9uYXJ5KiB0aW1pbmdEYXRhID0gW2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFdOworICAg
ICAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCk7CisgICAgICAgIEFTU0VSVCh0aW1pbmcpOworICAgICAgICB0aW1pbmct
PnNldERvbWFpbkxvb2t1cEVuZFRpbWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5U
aW1pbmdEYXRhRG9tYWluTG9va3VwRW5kIl0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgdGltaW5n
LT5zZXREb21haW5Mb29rdXBTdGFydFRpbWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tD
Rk5UaW1pbmdEYXRhRG9tYWluTG9va3VwU3RhcnQiXSBkb3VibGVWYWx1ZV0pOworICAgICAgICB0
aW1pbmctPnNldENvbm5lY3RTdGFydFRpbWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tD
Rk5UaW1pbmdEYXRhQ29ubmVjdFN0YXJ0Il0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgdGltaW5n
LT5zZXRDb25uZWN0RW5kVGltZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWlu
Z0RhdGFDb25uZWN0RW5kIl0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgdGltaW5nLT5zZXRTZWN1
cmVDb25uZWN0aW9uU3RhcnRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGlt
aW5nRGF0YVNlY3VyZUNvbm5lY3Rpb25TdGFydCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAgIHRp
bWluZy0+c2V0UmVxdWVzdFN0YXJ0VGltZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NG
TlRpbWluZ0RhdGFSZXF1ZXN0U3RhcnQiXSBkb3VibGVWYWx1ZV0pOworICAgICAgICB0aW1pbmct
PnNldFJlc3BvbnNlU3RhcnRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGlt
aW5nRGF0YVJlc3BvbnNlU3RhcnQiXSBkb3VibGVWYWx1ZV0pOworICAgICAgICAvLyBUT0RPOiB0
aW1pbmdEYXRhIGhhcyBtb3JlIGluZm9ybWF0aW9uIHRoYXQgd2Ugc2hvdWxkIHN0b3JlIGFuZCB1
c2Ugd2l0aCB0aGVzZSBrZXlzOgorICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFDb25uZWN0aW9u
UmV1c2VkCisgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0YVRpbWluZ0RhdGFJbml0CisgICAgICAg
IC8vIF9rQ0ZOVGltaW5nRGF0YVJlZGlyZWN0U3RhcnQKKyAgICAgICAgLy8gX2tDRk5UaW1pbmdE
YXRhUmVkaXJlY3RFbmQKKyAgICAgICAgLy8gX2tDRk5UaW1pbmdEYXRhRmV0Y2hTdGFydAorICAg
ICAgICAvLyBfa0NGTlRpbWluZ0RhdGFSZXNwb25zZUVuZAorICAgICAgICAvLyBfa0NGTlRpbWlu
Z0RhdGFSZWRpcmVjdENvdW50VzNDCisgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0YVJlZGlyZWN0
Q291bnQKKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyNlbmRpZgog
ICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKG1faGFu
ZGxlLCByKTsKICAgICB9KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHJldmlzaW9u
IDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzQsOSArMjM0LDYgQEAgc3RhdGlj
IHZvaWQgY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKAogc3RhdGljIHZvaWQgc2VuZFJlcXVl
c3RDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5jUmVzdWx0KiwgZ3BvaW50ZXIpOwogc3RhdGljIHZv
aWQgcmVhZENhbGxiYWNrKEdPYmplY3QqLCBHQXN5bmNSZXN1bHQqLCBncG9pbnRlcik7CiBzdGF0
aWMgZ2Jvb2xlYW4gcmVxdWVzdFRpbWVvdXRDYWxsYmFjayh2b2lkKik7Ci0jaWYgRU5BQkxFKFdF
Ql9USU1JTkcpCi1zdGF0aWMgaW50ICBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkb3VibGUgcmVx
dWVzdFRpbWUpOwotI2VuZGlmCiBzdGF0aWMgdm9pZCBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKik7CiAKIHN0YXRpYyBib29sIGdJZ25vcmVTU0xFcnJvcnMg
PSBmYWxzZTsKQEAgLTMxNiwxMSArMzEzLDYgQEAgc3RhdGljIHZvaWQgZ290SGVhZGVyc0NhbGxi
YWNrKFNvdXBNZXNzYQogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+
Z2V0SW50ZXJuYWwoKTsKIAotI2lmIEVOQUJMRShXRUJfVElNSU5HKQotICAgIGlmIChkLT5tX3Jl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5yZWNlaXZlSGVhZGVyc0VuZCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1
ZXN0KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKLSNl
bmRpZgotCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIC8vIFdlIGFyZSBhIGJpdCBtb3JlIGNvbnNl
cnZhdGl2ZSB3aXRoIHRoZSBwZXJzaXN0ZW50IGNyZWRlbnRpYWwgc3RvcmFnZSB0aGFuIHRoZSBz
ZXNzaW9uIHN0b3JlLAogICAgIC8vIHNpbmNlIHdlIGFyZSB3YWl0aW5nIHVudGlsIHdlIGtub3cg
dGhhdCB0aGlzIGF1dGhlbnRpY2F0aW9uIHN1Y2NlZWRlZCBiZWZvcmUgYWN0dWFsbHkgc3Rvcmlu
Zy4KQEAgLTM5MCw3ICszODIsNyBAQCBzdGF0aWMgdm9pZCByZXN0YXJ0ZWRDYWxsYmFjayhTb3Vw
TWVzc2FnCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJu
YWwoKTsKICAgICBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlID0gZC0+bV9yZXNw
b25zZTsKICAgICByZWRpcmVjdFJlc3BvbnNlLnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNvdXJj
ZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKTsKLSAgICByZWRpcmVjdFJlc3BvbnNlLnJlc291cmNlTG9h
ZFRpbWluZygpLT5yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwor
ICAgIHJlZGlyZWN0UmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNldFJlcXVlc3RTdGFy
dFRpbWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogfQogI2VuZGlmCiAKQEAgLTgz
OSw0MCArODMxLDEzIEBAIHN0YXRpYyBib29sIGFkZEZvcm1FbGVtZW50c1RvU291cE1lc3NhZ2UK
IH0KIAogI2lmIEVOQUJMRShXRUJfVElNSU5HKQotc3RhdGljIGludCBtaWxpc2Vjb25kc1NpbmNl
UmVxdWVzdChkb3VibGUgcmVxdWVzdFRpbWUpCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGlu
dD4oKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gcmVxdWVzdFRpbWUpICogMTAwMC4w
KTsKLX0KLQotc3RhdGljIHZvaWQgd3JvdGVCb2R5Q2FsbGJhY2soU291cE1lc3NhZ2UqLCBncG9p
bnRlciBkYXRhKQotewotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGlj
X2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKLSAgICBpZiAoIWhhbmRsZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50
ZXJuYWwoKTsKLSAgICBpZiAoIWQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkt
PnNlbmRFbmQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7Ci19Ci0KIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRp
ZFN0YXJ0UmVxdWVzdCgpCiB7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGdldElu
dGVybmFsKCk7CiAgICAgaWYgKCFkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygp
LT5zZW5kU3RhcnQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7Ci0gICAgaWYgKGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0ICE9IC0xKSB7Ci0gICAgICAgIC8vIFdlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXF1ZXN0VGltaW5nVmlldy5qcyBhc3N1bWVzCi0gICAgICAg
IC8vIHRoYXQgU1NMIHRpbWUgaXMgaW5jbHVkZWQgaW4gY29ubmVjdGlvbiB0aW1lIHNvIG11c3QK
LSAgICAgICAgLy8gc3Vic3RyYWN0IGhlcmUgdGhlIFNTTCBkZWx0YSB0aGF0IHdpbGwgYmUgYWRk
ZWQgbGF0ZXIgKHNlZQotICAgICAgICAvLyBXZWJJbnNwZWN0b3IuUmVxdWVzdFRpbWluZ1ZpZXcu
Y3JlYXRlVGltaW5nVGFibGUgaW4gdGhlCi0gICAgICAgIC8vIGZpbGUgYWJvdmUgZm9yIG1vcmUg
ZGV0YWlscykuCi0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNl
bmRTdGFydCAtPQotICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+c3NsRW5kIC0gZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQ7
Ci0gICAgfQorICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNldFJlcXVl
c3RTdGFydFRpbWUoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFN0
YXJ0VGltZSgpKTsKIH0KIAogc3RhdGljIHZvaWQgbmV0d29ya0V2ZW50Q2FsbGJhY2soU291cE1l
c3NhZ2UqLCBHU29ja2V0Q2xpZW50RXZlbnQgZXZlbnQsIEdJT1N0cmVhbSosIGdwb2ludGVyIGRh
dGEpCkBAIC04ODUsNDMgKzg1MCwzMSBAQCBzdGF0aWMgdm9pZCBuZXR3b3JrRXZlbnRDYWxsYmFj
ayhTb3VwTWVzCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwq
IGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0gICAgaW50IGRlbHRhVGltZSA9IG1pbGlzZWNv
bmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVl
c3RUaW1lKTsKICAgICBzd2l0Y2ggKGV2ZW50KSB7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRf
UkVTT0xWSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5k
bnNTdGFydCA9IGRlbHRhVGltZTsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKS0+c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUkVTT0xW
RUQ6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc0VuZCA9
IGRlbHRhVGltZTsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
c2V0RG9tYWluTG9va3VwRW5kVGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX0NPTk5FQ1RJTkc6Ci0gICAg
ICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RTdGFydCA9IGRl
bHRhVGltZTsKLSAgICAgICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkt
PmRuc1N0YXJ0ICE9IC0xKQotICAgICAgICAgICAgLy8gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1JlcXVlc3RUaW1pbmdWaWV3LmpzIGFzc3VtZXMKLSAgICAgICAgICAgIC8vIHRoYXQgRE5T
IHRpbWUgaXMgaW5jbHVkZWQgaW4gY29ubmVjdGlvbiB0aW1lIHNvIG11c3QKLSAgICAgICAgICAg
IC8vIHN1YnN0cmFjdCBoZXJlIHRoZSBETlMgZGVsdGEgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVy
IChzZWUKLSAgICAgICAgICAgIC8vIFdlYkluc3BlY3Rvci5SZXF1ZXN0VGltaW5nVmlldy5jcmVh
dGVUaW1pbmdUYWJsZSBpbiB0aGUKLSAgICAgICAgICAgIC8vIGZpbGUgYWJvdmUgZm9yIG1vcmUg
ZGV0YWlscykuCi0gICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygp
LT5jb25uZWN0U3RhcnQgLT0KLSAgICAgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5kbnNFbmQgLSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygp
LT5kbnNTdGFydDsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
c2V0Q29ubmVjdFN0YXJ0VGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX0NPTk5FQ1RFRDoKICAgICAgICAg
Ly8gV2ViIFRpbWluZyBjb25zaWRlcnMgdGhhdCBjb25uZWN0aW9uIHRpbWUgaW52b2x2ZXMgZG5z
LCBwcm94eSAmIFRMUyBuZWdvdGlhdGlvbi4uLgogICAgICAgICAvLyBzbyB3ZSBiZXR0ZXIgcGlj
ayBHX1NPQ0tFVF9DTElFTlRfQ09NUExFVEUgZm9yIGNvbm5lY3RFbmQKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUFJPWFlfTkVHT1RJQVRJTkc6Ci0gICAgICAgIGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnByb3h5U3RhcnQgPSBkZWx0YVRpbWU7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1BST1hZX05FR09USUFU
RUQ6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnByb3h5RW5k
ID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9U
TFNfSEFORFNIQUtJTkc6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCktPnNzbFN0YXJ0ID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5zZXRTZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElF
TlRfVExTX0hBTkRTSEFLRUQ6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGlt
aW5nKCktPnNzbEVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NP
Q0tFVF9DTElFTlRfQ09NUExFVEU6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2Fk
VGltaW5nKCktPmNvbm5lY3RFbmQgPSBkZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPnNldENvbm5lY3RFbmRUaW1lKG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CkBAIC05ODAsNyArOTMzLDYgQEAgc3RhdGljIGJvb2wgY3JlYXRl
U291cE1lc3NhZ2VGb3JIYW5kbGVBbgogICAgIGQtPm1fcmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2Fk
VGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpOwogICAgIGdfc2lnbmFsX2Nvbm5l
Y3QoZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgIm5ldHdvcmstZXZlbnQiLCBHX0NBTExCQUNLKG5l
dHdvcmtFdmVudENhbGxiYWNrKSwgaGFuZGxlKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1f
c291cE1lc3NhZ2UuZ2V0KCksICJyZXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHJlc3RhcnRlZENhbGxi
YWNrKSwgaGFuZGxlKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0
KCksICJ3cm90ZS1ib2R5IiwgR19DQUxMQkFDSyh3cm90ZUJvZHlDYWxsYmFjayksIGhhbmRsZSk7
CiAjZW5kaWYKIAogI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA0MywgMSkKQEAgLTEwNTQsNyAr
MTAwNiw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnNlbmRQZW5kaW5nUmVxdWVzdCgKIHsKICNp
ZiBFTkFCTEUoV0VCX1RJTUlORykKICAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKSkKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVx
dWVzdFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICAgICAgZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2V0UmVxdWVzdFN0YXJ0VGltZShtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAjZW5kaWYKIAogICAgIGlmIChkLT5tX2ZpcnN0UmVx
dWVzdC50aW1lb3V0SW50ZXJ2YWwoKSA+IDApIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2
ODM5MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDE0LTA1LTA2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mgb24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNw
b25zZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNw
b25zZT46OmRlY29kZSk6CisgICAgICAgIFRyYW5zZmVyIHdlYiB0aW1pbmcgZGF0YS4KKwogMjAx
NC0wNS0wNiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXVtXSzJdIEFkZCB0YXAgaGlnaGxpZ2h0IG9uIHRoZSBzaW1wbGUgVUlUYXBHZXN0dXJl
UmVjb2duaXplcgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02ODgsOCArNjg4
LDIxIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZW4KICAgICAgICAg
ZW5jb2RlciA8PCByZXNvdXJjZVJlc3BvbnNlLmh0dHBTdGF0dXNUZXh0KCk7CiAgICAgICAgIGVu
Y29kZXIgPDwgcmVzb3VyY2VSZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpOwogICAgIH0KKyAg
ICAKKyAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCk7CisgICAgYm9vbCBoYXNSZXNvdXJjZUxvYWRUaW1pbmcgPSB0aW1p
bmc7CisgICAgZW5jb2RlciA8PCBoYXNSZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgaWYgKGhhc1Jl
c291cmNlTG9hZFRpbWluZykgeworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+ZG9tYWluTG9v
a3VwU3RhcnRUaW1lKCk7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5kb21haW5Mb29rdXBF
bmRUaW1lKCk7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5jb25uZWN0U3RhcnRUaW1lKCk7
CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5jb25uZWN0RW5kVGltZSgpOworICAgICAgICBl
bmNvZGVyIDw8IHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSgpOworICAgICAgICBl
bmNvZGVyIDw8IHRpbWluZy0+cmVxdWVzdFN0YXJ0VGltZSgpOworICAgICAgICBlbmNvZGVyIDw8
IHRpbWluZy0+cmVzcG9uc2VTdGFydFRpbWUoKTsKKyAgICB9CiB9Ci0KKyAgICAKIGJvb2wgQXJn
dW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzb3VyY2VSZXNwb25zZSkKIHsKICNpZiBQTEFURk9S
TShDT0NPQSkKQEAgLTc1NSwxMiArNzY4LDQyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJj
ZVJlc3BvbnNlPjo6ZGUKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzcG9u
c2Uuc2V0U3VnZ2VzdGVkRmlsZW5hbWUoc3VnZ2VzdGVkRmlsZW5hbWUpOwogICAgIH0KLQorICAg
IAorICAgIGJvb2wgaGFzUmVzb3VyY2VMb2FkVGltaW5nOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
IChoYXNSZXNvdXJjZUxvYWRUaW1pbmcpIHsKKyAgICAgICAgZG91YmxlIGRvbWFpbkxvb2t1cFN0
YXJ0VGltZTsKKyAgICAgICAgZG91YmxlIGRvbWFpbkxvb2t1cEVuZFRpbWU7CisgICAgICAgIGRv
dWJsZSBjb25uZWN0U3RhcnRUaW1lOworICAgICAgICBkb3VibGUgY29ubmVjdEVuZFRpbWU7Cisg
ICAgICAgIGRvdWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lOworICAgICAgICBkb3VibGUg
cmVxdWVzdFN0YXJ0VGltZTsKKyAgICAgICAgZG91YmxlIHJlc3BvbnNlU3RhcnRUaW1lOworICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRvbWFpbkxvb2t1cFN0YXJ0VGltZSkKKyAgICAgICAg
ICAgIHx8ICFkZWNvZGVyLmRlY29kZShkb21haW5Mb29rdXBFbmRUaW1lKQorICAgICAgICAgICAg
fHwgIWRlY29kZXIuZGVjb2RlKGNvbm5lY3RTdGFydFRpbWUpCisgICAgICAgICAgICB8fCAhZGVj
b2Rlci5kZWNvZGUoY29ubmVjdEVuZFRpbWUpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNv
ZGUoc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRl
Y29kZShyZXF1ZXN0U3RhcnRUaW1lKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJl
c3BvbnNlU3RhcnRUaW1lKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUmVz
b3VyY2VMb2FkVGltaW5nKiB0aW1pbmcgPSByZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsK
KyAgICAgICAgQVNTRVJUKHRpbWluZyk7CisgICAgICAgIHRpbWluZy0+c2V0RG9tYWluTG9va3Vw
U3RhcnRUaW1lKGRvbWFpbkxvb2t1cFN0YXJ0VGltZSk7CisgICAgICAgIHRpbWluZy0+c2V0RG9t
YWluTG9va3VwRW5kVGltZShkb21haW5Mb29rdXBFbmRUaW1lKTsKKyAgICAgICAgdGltaW5nLT5z
ZXRDb25uZWN0U3RhcnRUaW1lKGNvbm5lY3RTdGFydFRpbWUpOworICAgICAgICB0aW1pbmctPnNl
dENvbm5lY3RFbmRUaW1lKGNvbm5lY3RFbmRUaW1lKTsKKyAgICAgICAgdGltaW5nLT5zZXRTZWN1
cmVDb25uZWN0aW9uU3RhcnRUaW1lKHNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUpOworICAgICAg
ICB0aW1pbmctPnNldFJlcXVlc3RTdGFydFRpbWUocmVxdWVzdFN0YXJ0VGltZSk7CisgICAgICAg
IHRpbWluZy0+c2V0UmVzcG9uc2VTdGFydFRpbWUocmVzcG9uc2VTdGFydFRpbWUpOworICAgIH0K
KyAgICAKICAgICByZXNvdXJjZVJlc3BvbnNlID0gcmVzcG9uc2U7CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KLQorICAgIAogdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVy
cm9yKQogewogICAgIGlmIChrU2hvdWxkU2VyaWFsaXplV2ViQ29yZURhdGEpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231004</attachid>
            <date>2014-05-07 10:02:50 -0700</date>
            <delta_ts>2014-05-08 10:35:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140507100227.patch</filename>
            <type>text/plain</type>
            <size>55428</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExMyBAQAorMjAxNC0wNS0wNiAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFByb2dyZXNz
IG9uIHdlYiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBBZGRlZCBsaW5rZXIgc3ltYm9sLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
T2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVj
dEZvckNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNl
QWdlbnQ6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb246CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2Fk
VGltaW5nIHZhbHVlcyBhbmQgcmVtb3ZlZCB1bnVzZWQgcGFyYW1ldGVycy4KKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QpOgorICAgICAgICBLZWVwIGEgcmVjb3JkIG9mIGEgY3Jv
c3Mgb3JpZ2luIHJlZGlyZWN0IGV2ZW4gaWYgeW91IGFyZSByZWRpcmVjdGVkIGJhY2suCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6IERl
bGV0ZWQuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICBS
ZW1vdmVkIHVudXNlZCBzZXROYXZpZ2F0aW9uU3RhcnQgbWV0aG9kIGRlY2xhcmF0aW9uLgorICAg
ICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgdXJsLgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1
cEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25u
ZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6
Y29ubmVjdEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
OjpzZWN1cmVDb25uZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlRW5kKToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgdmFsdWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6cmVzcG9uc2VTdGFydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDoK
KyAgICAgICAgUmVtb3ZlZCByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzIGRlY2xh
cmF0aW9uLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6Cisg
ICAgICAgIFJlbW92ZWQgcmVzcG9uc2VTdGFydC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuaDoKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6
CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXNl
IG5ldyBSZXNvdXJjZUxvYWRUaW1pbmcgbWV0aG9kcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRp
dmVUb0Fic29sdXRlKToKKyAgICAgICAgUmVwbGFjZWQgcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZl
VG9BYnNvbHV0ZSB3aXRoIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMKKyAg
ICAgICAgYmVjYXVzZSBvZiBuZXcgc3RvcmFnZSBmb3JtYXQgaW4gUmVzb3VyY2VMb2FkVGltaW5n
LgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaDoKKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmlkbDoKKyAgICAgICAgVXBkYXRlZCBzcGVjIHVybC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkVGltaW5nOjpSZXNvdXJjZUxvYWRUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkVGltaW5nOjpkZWVwQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpvcGVyYXRvciE9KToKKyAgICAgICAgTW92ZWQgZnJvbSBSZXNvdXJjZUxvYWRUaW1pbmcuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9h
ZFRpbWVUb01vbm90b25pY1RpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRv
bWFpbkxvb2t1cFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1p
bmc6OmRvbWFpbkxvb2t1cEVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
VGltaW5nOjpjb25uZWN0U3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZFRpbWluZzo6Y29ubmVjdEVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
VGltaW5nOjpzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlTG9hZFRpbWluZzo6cmVxdWVzdFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRUaW1pbmc6OnJlc3BvbnNlU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZFRpbWluZzo6c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6c2V0RG9tYWluTG9va3VwRW5kVGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldENvbm5lY3RTdGFydFRpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRDb25uZWN0RW5kVGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldFNlY3VyZUNvbm5l
Y3Rpb25TdGFydFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpz
ZXRSZXF1ZXN0U3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWlu
Zzo6c2V0UmVzcG9uc2VTdGFydFRpbWUpOgorICAgICAgICBBZGRlZCBhY2Nlc3NvcnMgaW5zdGVh
ZCBvZiBoYXZpbmcgcHVibGljIG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZFRpbWluZzo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpSZXNvdXJjZUxvYWRUaW1pbmcpOgorICAgICAgICBNb3ZlZCBpbXBsZW1lbnRhdGlvbnMgdG8g
UmVzb3VyY2VMb2FkVGltaW5nLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2VC
YXNlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZSk6CisgICAgICAgIEluaXRpYWxpemUgbV9yZXNvdXJj
ZUxvYWRUaW1pbmcgd2hpY2ggaXMgdXNlZCBub3cuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKToKKyAgICAgICAgQ2FsbCBfc2V0Q29sbGVjdHNU
aW1pbmdEYXRhIHRvIGNvbGxlY3QgdGltaW5nIGRhdGEgZm9yIHdlYiB0aW1pbmcuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6CisgICAg
ICAgIFB1dCB0aW1pbmcgZGF0YSBpbnRvIFJlc291cmNlTG9hZFRpbWluZyBkYXRhIHN0cnVjdHVy
ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmdvdEhlYWRlcnNDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpyZXN0YXJ0ZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6ZGlkU3RhcnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdvcmtFdmVudENhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNvdXBNZXNzYWdlRm9ySGFuZGxlQW5kUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdSZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Om1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAg
ICAgVXNlIG5ldyBSZXNvdXJjZUxvYWRUaW1pbmcgbWV0aG9kcy4KKwogMjAxNC0wNS0wNiAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbmltYXRlIEFW
UGxheWVyTGF5ZXIgaW50byBhbmQgb3V0IG9mIGZ1bGwgc2NyZWVuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTE3NTUsNiArMTc1NSw3IEBAIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTVodHQKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VC
YXNlMTZodHRwSGVhZGVyRmllbGRzRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VC
YXNlMTZ0ZXh0RW5jb2RpbmdOYW1lRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VC
YXNlMTdzdWdnZXN0ZWRGaWxlbmFtZUV2CitfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNl
QmFzZTE4cmVzb3VyY2VMb2FkVGltaW5nRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9u
c2VCYXNlMjFleHBlY3RlZENvbnRlbnRMZW5ndGhFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VS
ZXNwb25zZUJhc2UzdXJsRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNmlz
SFRUUEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlQWdlbnQuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
MCwyMSArMjAwLDE2IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQK
ICAgICByZXR1cm4gaGVhZGVyc09iamVjdDsKIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVj
dG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9y
VGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciog
bG9hZGVyKQorc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29y
azo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291cmNlTG9h
ZFRpbWluZyYgdGltaW5nKQogewogICAgIHJldHVybiBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpO
ZXR3b3JrOjpSZXNvdXJjZVRpbWluZzo6Y3JlYXRlKCkKLSAgICAgICAgLnNldFJlcXVlc3RUaW1l
KGxvYWRlci0+dGltaW5nKCktPm1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKHRpbWluZy5j
b252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZSgwKSkpCi0gICAgICAgIC5zZXRQ
cm94eVN0YXJ0KHRpbWluZy5wcm94eVN0YXJ0KQotICAgICAgICAuc2V0UHJveHlFbmQodGltaW5n
LnByb3h5RW5kKQotICAgICAgICAuc2V0RG5zU3RhcnQodGltaW5nLmRuc1N0YXJ0KQotICAgICAg
ICAuc2V0RG5zRW5kKHRpbWluZy5kbnNFbmQpCi0gICAgICAgIC5zZXRDb25uZWN0U3RhcnQodGlt
aW5nLmNvbm5lY3RTdGFydCkKLSAgICAgICAgLnNldENvbm5lY3RFbmQodGltaW5nLmNvbm5lY3RF
bmQpCi0gICAgICAgIC5zZXRTc2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0gICAgICAgIC5zZXRT
c2xFbmQodGltaW5nLnNzbEVuZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0aW1pbmcuc2VuZFN0
YXJ0KQotICAgICAgICAuc2V0U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAgICAgICAgLnNldFJl
Y2VpdmVIZWFkZXJzRW5kKHRpbWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAgICAgICAgLnNldERv
bWFpbkxvb2t1cFN0YXJ0VGltZSh0aW1pbmcuZG9tYWluTG9va3VwU3RhcnRUaW1lKCkpCisgICAg
ICAgIC5zZXREb21haW5Mb29rdXBFbmRUaW1lKHRpbWluZy5kb21haW5Mb29rdXBFbmRUaW1lKCkp
CisgICAgICAgIC5zZXRDb25uZWN0U3RhcnRUaW1lKHRpbWluZy5jb25uZWN0U3RhcnRUaW1lKCkp
CisgICAgICAgIC5zZXRDb25uZWN0RW5kVGltZSh0aW1pbmcuY29ubmVjdEVuZFRpbWUoKSkKKyAg
ICAgICAgLnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUodGltaW5nLnNlY3VyZUNvbm5lY3Rp
b25TdGFydFRpbWUoKSkKKyAgICAgICAgLnNldFJlcXVlc3RTdGFydFRpbWUodGltaW5nLnJlcXVl
c3RTdGFydFRpbWUoKSkKKyAgICAgICAgLnNldFJlc3BvbnNlU3RhcnRUaW1lKHRpbWluZy5yZXNw
b25zZVN0YXJ0VGltZSgpKQogICAgICAgICAucmVsZWFzZSgpOwogfQogCkBAIC0yMjksNyArMjI0
LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcgogICAgIHJldHVy
biByZXF1ZXN0T2JqZWN0OwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVC
dWlsZGVyOjpOZXR3b3JrOjpSZXNwb25zZT4gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBEb2N1bWVudExvYWRlciogbG9hZGVy
KQorc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVz
cG9uc2U+IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAocmVzcG9uc2UuaXNOdWxsKCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpAQCAtMjQ4LDE5ICsyNDMsMTkgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5z
cGVjdG9yOjpUeXBlQnVpbGRlcgogCiAgICAgcmVzcG9uc2VPYmplY3QtPnNldEZyb21EaXNrQ2Fj
aGUocmVzcG9uc2Uud2FzQ2FjaGVkKCkpOwogICAgIGlmIChyZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKSkKLSAgICAgICAgcmVzcG9uc2VPYmplY3QtPnNldFRpbWluZyhidWlsZE9iamVjdEZv
clRpbWluZygqcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCksIGxvYWRlcikpOworICAgICAg
ICByZXNwb25zZU9iamVjdC0+c2V0VGltaW5nKGJ1aWxkT2JqZWN0Rm9yVGltaW5nKCpyZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkpOwogCiAgICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0Owog
fQogCi1zdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpD
YWNoZWRSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJj
ZSogY2FjaGVkUmVzb3VyY2UsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCitzdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVp
bGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2Up
CiB7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJl
c291cmNlPiByZXNvdXJjZU9iamVjdCA9IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6
OkNhY2hlZFJlc291cmNlOjpjcmVhdGUoKQogICAgICAgICAuc2V0VXJsKGNhY2hlZFJlc291cmNl
LT51cmwoKSkKICAgICAgICAgLnNldFR5cGUoSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNv
dXJjZVR5cGVKc29uKCpjYWNoZWRSZXNvdXJjZSkpCiAgICAgICAgIC5zZXRCb2R5U2l6ZShjYWNo
ZWRSZXNvdXJjZS0+ZW5jb2RlZFNpemUoKSk7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBl
QnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVj
dEZvclJlc291cmNlUmVzcG9uc2UoY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCksIGxvYWRlcik7
CisgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiBy
ZXNvdXJjZVJlc3BvbnNlID0gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNhY2hlZFJl
c291cmNlLT5yZXNwb25zZSgpKTsKICAgICBpZiAocmVzb3VyY2VSZXNwb25zZSkKICAgICAgICAg
cmVzb3VyY2VPYmplY3QtPnNldFJlc3BvbnNlKHJlc291cmNlUmVzcG9uc2UpOwogCkBAIC0zMjQs
NyArMzE5LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3aWxsU2VuZFJlcQogICAg
IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlBhZ2U6OlJlc291cmNlVHlwZTo6RW51bSByZXNvdXJj
ZVR5cGUgPSBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlVHlwZUpzb24odHlwZSk7CiAKICAg
ICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6SW5pdGlhdG9yPiBpbml0
aWF0b3JPYmplY3QgPSBidWlsZEluaXRpYXRvck9iamVjdChsb2FkZXItPmZyYW1lKCkgPyBsb2Fk
ZXItPmZyYW1lKCktPmRvY3VtZW50KCkgOiBudWxscHRyKTsKLSAgICBtX2Zyb250ZW5kRGlzcGF0
Y2hlci0+cmVxdWVzdFdpbGxCZVNlbnQocmVxdWVzdElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChs
b2FkZXItPmZyYW1lKCkpLCBtX3BhZ2VBZ2VudC0+bG9hZGVySWQobG9hZGVyKSwgbG9hZGVyLT51
cmwoKS5zdHJpbmcoKSwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGN1
cnJlbnRUaW1lKCksIGluaXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3Bv
bnNlKHJlZGlyZWN0UmVzcG9uc2UsIGxvYWRlciksIHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50
OjpPdGhlclJlc291cmNlID8gJnJlc291cmNlVHlwZSA6IG51bGxwdHIpOworICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyLT5yZXF1ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50LT5m
cmFtZUlkKGxvYWRlci0+ZnJhbWUoKSksIG1fcGFnZUFnZW50LT5sb2FkZXJJZChsb2FkZXIpLCBs
b2FkZXItPnVybCgpLnN0cmluZygpLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVxdWVzdChyZXF1
ZXN0KSwgY3VycmVudFRpbWUoKSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9iamVjdEZvclJlc291
cmNlUmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSksIHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50
OjpPdGhlclJlc291cmNlID8gJnJlc291cmNlVHlwZSA6IG51bGxwdHIpOwogfQogCiB2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6Om1hcmtSZXNvdXJjZUFzQ2FjaGVkKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllcikKQEAgLTM0MSw3ICszMzYsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdl
bnQ6OmRpZFJlY2VpdmVSCiAgICAgICAgIHJldHVybjsKIAogICAgIFN0cmluZyByZXF1ZXN0SWQg
PSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICBSZWZQdHI8
SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IHJlc291cmNlUmVzcG9u
c2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVzcG9uc2UsIGxvYWRlcik7Cisg
ICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNv
dXJjZVJlc3BvbnNlID0gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKTsK
IAogICAgIGJvb2wgaXNOb3RNb2RpZmllZCA9IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0g
MzA0OwogCkBAIC00NjAsNyArNDU1LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpk
aWRMb2FkUmVzbwogCiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6
OkluaXRpYXRvcj4gaW5pdGlhdG9yT2JqZWN0ID0gYnVpbGRJbml0aWF0b3JPYmplY3QobG9hZGVy
LT5mcmFtZSgpID8gbG9hZGVyLT5mcmFtZSgpLT5kb2N1bWVudCgpIDogbnVsbHB0cik7CiAKLSAg
ICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVzdFNlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1
ZXN0SWQsIGZyYW1lSWQsIGxvYWRlcklkLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBjdXJyZW50
VGltZSgpLCBpbml0aWF0b3JPYmplY3QsIGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UocmVz
b3VyY2UsIGxvYWRlcikpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1ZXN0U2VydmVk
RnJvbU1lbW9yeUNhY2hlKHJlcXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQsIGxvYWRlci0+dXJs
KCkuc3RyaW5nKCksIGN1cnJlbnRUaW1lKCksIGluaXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RG
b3JDYWNoZWRSZXNvdXJjZShyZXNvdXJjZSkpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OnNldEluaXRpYWxTY3JpcHRDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgJKHJldmlzaW9uIDE2ODM5MikKKysr
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB3aWxsU2VuZFJl
cXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAg
IHZvaWQgbWFya1Jlc291cmNlQXNDYWNoZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAg
ICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3Vt
ZW50TG9hZGVyKiBsYW9kZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBSZXNvdXJjZUxvYWRl
ciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUmVzb3VyY2VMb2Fk
ZXIqKTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Y29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7
CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9j
dW1lbnRMb2FkZXIqLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGlu
Zyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL3Byb3RvY29sL05ldHdv
cmsuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
TmV0d29yay5qc29uCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxOCArMzIsMTMg
QEAKICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiVGltaW5nIGluZm9ybWF0aW9uIGZvciB0aGUgcmVxdWVzdC4iLAogICAgICAgICAgICAg
InByb3BlcnRpZXMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0VGltZSIs
ICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyByZXF1ZXN0VGltZSBp
cyBhIGJhc2VsaW5lIGluIHNlY29uZHMsIHdoaWxlIHRoZSBvdGhlciBudW1iZXJzIGFyZSB0aWNr
cyBpbiBtaWxsaXNlY29uZHMgcmVsYXRpdmVseSB0byB0aGlzIHJlcXVlc3RUaW1lLiIgfSwKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3h5U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAi
ZGVzY3JpcHRpb24iOiAiU3RhcnRlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAicHJveHlFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24i
OiAiRmluaXNoZWQgcmVzb2x2aW5nIHByb3h5LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImRuc1N0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQg
RE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkbnNF
bmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgRE5TIGFkZHJl
c3MgcmVzb2x2ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0U3RhcnQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBjb25uZWN0aW5nIHRv
IHRoZSByZW1vdGUgaG9zdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0
RW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUg
cmVtb3RlIGhvc3QuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsU3RhcnQiLCAi
dHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBTU0wgaGFuZHNoYWtlLiIg
fSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNzbEVuZCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInNlbmRTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJTdGFydGVkIHNlbmRpbmcgcmVxdWVzdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzZW5kRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVk
IHNlbmRpbmcgcmVxdWVzdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZWNlaXZl
SGVhZGVyc0VuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBy
ZWNlaXZpbmcgcmVzcG9uc2UgaGVhZGVycy4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImRvbWFpbkxvb2t1cFN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6
ICJTdGFydGVkIEROUyBhZGRyZXNzIHJlc29sdmUiIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJkb21haW5Mb29rdXBFbmRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9u
IjogIkZpbmlzaGVkIEROUyBhZGRyZXNzIHJlc29sdmUuIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiY29ubmVjdFN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJTdGFydGVkIGNvbm5lY3RpbmcgdG8gdGhlIHJlbW90ZSBob3N0LiIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RFbmRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRl
c2NyaXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAic2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSIsICJ0eXBlIjogIm51
bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdFN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHNlbmRpbmcgcmVxdWVzdC4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJyZXNwb25zZVN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJk
ZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlY2VpdmluZyByZXNwb25zZS4iIH0KICAgICAgICAgICAg
IF0KICAgICAgICAgfSwKICAgICAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZFRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZFRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Niwx
MiArNzYsNiBAQCB2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6bWFya05hdmlnYXRpb25TCiAgICAg
bV9yZWZlcmVuY2VXYWxsVGltZSA9IGN1cnJlbnRUaW1lKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnRM
b2FkVGltaW5nOjpzZXROYXZpZ2F0aW9uU3RhcnQoZG91YmxlIG5hdmlnYXRpb25TdGFydCkKLXsK
LSAgICBBU1NFUlQobV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lICYmIG1fcmVmZXJlbmNlV2FsbFRp
bWUpOwotICAgIG1fbmF2aWdhdGlvblN0YXJ0ID0gbmF2aWdhdGlvblN0YXJ0OwotfQotCiB2b2lk
IERvY3VtZW50TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1Vy
bCwgY29uc3QgVVJMJiByZWRpcmVjdGVkVXJsKQogewogICAgIG1fcmVkaXJlY3RDb3VudCsrOwpA
QCAtOTAsNyArODQsNyBAQCB2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QoY29u
CiAgICAgbV9yZWRpcmVjdEVuZCA9IG1fZmV0Y2hTdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpOwogICAgIC8vIENoZWNrIGlmIHRoZSByZWRpcmVjdGVkIHVybCBpcyBhbGxvd2Vk
IHRvIGFjY2VzcyB0aGUgcmVkaXJlY3RpbmcgdXJsJ3MgdGltaW5nIGluZm9ybWF0aW9uLgogICAg
IFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVkaXJlY3RlZFNlY3VyaXR5T3JpZ2luID0gU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZShyZWRpcmVjdGVkVXJsKTsKLSAgICBtX2hhc0Nyb3NzT3JpZ2luUmVk
aXJlY3QgPSAhcmVkaXJlY3RlZFNlY3VyaXR5T3JpZ2luLT5jYW5SZXF1ZXN0KHJlZGlyZWN0aW5n
VXJsKTsKKyAgICBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgPSBtX2hhc0Nyb3NzT3JpZ2luUmVk
aXJlY3QgfHwgIXJlZGlyZWN0ZWRTZWN1cml0eU9yaWdpbi0+Y2FuUmVxdWVzdChyZWRpcmVjdGlu
Z1VybCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAt
NDEsNyArNDEsNiBAQCBwdWJsaWM6CiAgICAgZG91YmxlIG1vbm90b25pY1RpbWVUb1BzZXVkb1dh
bGxUaW1lKGRvdWJsZSkgY29uc3Q7CiAKICAgICB2b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsK
LSAgICB2b2lkIHNldE5hdmlnYXRpb25TdGFydChkb3VibGUpOwogICAgIHZvaWQgYWRkUmVkaXJl
Y3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1VybCwgY29uc3QgVVJMJiByZWRpcmVjdGVkVXJsKTsK
IAogICAgIHZvaWQgbWFya1VubG9hZEV2ZW50U3RhcnQoKSB7IG1fdW5sb2FkRXZlbnRTdGFydCA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlLmlkbAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotLy8gU2VlOiBodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJU
aW1pbmcvCisvLyBTZWU6IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvd2VicGVyZi9yYXctZmlsZS90
aXAvc3BlY3MvTmF2aWdhdGlvblRpbWluZy9PdmVydmlldy5odG1sCiBbCiAgICAgQ29uZGl0aW9u
YWw9V0VCX1RJTUlORywKICAgICBFdmVudFRhcmdldCwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4Mzky
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzExMiw3IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpyZWRpcmUKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRj
aFN0YXJ0KCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgZGlmZmVyZW50
IGRlcGVuZGluZyBvbiByZWRpcmVjdHMuCi0gICAgcmV0dXJuIChzdGFydFRpbWUoKSk7CisgICAg
cmV0dXJuIHN0YXJ0VGltZSgpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zzo6ZG9tYWluTG9va3VwU3RhcnQoKSBjb25zdApAQCAtMTIwLDEwICsxMjAsMTAgQEAgZG91Ymxl
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbgogICAgIGlmICghbV9zaG91bGRSZXBv
cnREZXRhaWxzKQogICAgICAgICByZXR1cm4gMC4wOwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBt
X3RpbWluZy0+ZG5zU3RhcnQgPCAwKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRv
bWFpbkxvb2t1cFN0YXJ0VGltZSgpIDwgMCkKICAgICAgICAgcmV0dXJuIGZldGNoU3RhcnQoKTsK
IAotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5n
LT5kbnNTdGFydCk7CisgICAgcmV0dXJuIG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydFRpbWUo
KTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVu
ZCgpIGNvbnN0CkBAIC0xMzEsMTAgKzEzMSwxMCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6ZG9tYWluCiAgICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAg
IHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kbnNFbmQgPCAw
KQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA8
IDApCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBTdGFydCgpOwogCi0gICAgcmV0dXJuIHJl
c291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPmRuc0VuZCk7CisgICAg
cmV0dXJuIG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCk7CiB9CiAKIGRvdWJsZSBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25uZWN0U3RhcnQoKSBjb25zdApAQCAtMTQzLDE1ICsx
NDMsMTUgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNvbm5lYwogICAgICAg
ICByZXR1cm4gMC4wOwogCiAgICAgLy8gY29ubmVjdFN0YXJ0IHdpbGwgYmUgLTEgd2hlbiBhIG5l
dHdvcmsgcmVxdWVzdCBpcyBub3QgbWFkZS4KLSAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5n
LT5jb25uZWN0U3RhcnQgPCAwIHx8IG1fZGlkUmV1c2VDb25uZWN0aW9uKQorICAgIGlmICghbV90
aW1pbmcgfHwgbV90aW1pbmctPmNvbm5lY3RTdGFydFRpbWUoKSA8IDAgfHwgbV9kaWRSZXVzZUNv
bm5lY3Rpb24pCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBFbmQoKTsKIAogICAgIC8vIGNv
bm5lY3RTdGFydCBpbmNsdWRlcyBhbnkgRE5TIHRpbWUsIHNvIHdlIG1heSBuZWVkIHRvIHRyaW0g
dGhhdCBvZmYuCi0gICAgaW50IGNvbm5lY3RTdGFydCA9IG1fdGltaW5nLT5jb25uZWN0U3RhcnQ7
Ci0gICAgaWYgKG1fdGltaW5nLT5kbnNFbmQgPj0gMCkKLSAgICAgICAgY29ubmVjdFN0YXJ0ID0g
bV90aW1pbmctPmRuc0VuZDsKKyAgICBkb3VibGUgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmNv
bm5lY3RTdGFydFRpbWUoKTsKKyAgICBpZiAobV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUo
KSA+PSAwKQorICAgICAgICBjb25uZWN0U3RhcnQgPSBtX3RpbWluZy0+ZG9tYWluTG9va3VwRW5k
VGltZSgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMo
Y29ubmVjdFN0YXJ0KTsKKyAgICByZXR1cm4gY29ubmVjdFN0YXJ0OwogfQogCiBkb3VibGUgUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdEVuZCgpIGNvbnN0CkBAIC0xNjAsMTAgKzE2
MCwxMCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjCiAgICAgICAg
IHJldHVybiAwLjA7CiAKICAgICAvLyBjb25uZWN0U3RhcnQgd2lsbCBiZSAtMSB3aGVuIGEgbmV0
d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmct
PmNvbm5lY3RFbmQgPCAwIHx8IG1fZGlkUmV1c2VDb25uZWN0aW9uKQorICAgIGlmICghbV90aW1p
bmcgfHwgbV90aW1pbmctPmNvbm5lY3RFbmRUaW1lKCkgPCAwIHx8IG1fZGlkUmV1c2VDb25uZWN0
aW9uKQogICAgICAgICByZXR1cm4gY29ubmVjdFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3Vy
Y2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+Y29ubmVjdEVuZCk7CisgICAg
cmV0dXJuIG1fdGltaW5nLT5jb25uZWN0RW5kVGltZSgpOwogfQogCiBkb3VibGUgUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZzo6c2VjdXJlQ29ubmVjdGlvblN0YXJ0KCkgY29uc3QKQEAgLTE3MSwx
MCArMTcxLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpzZWN1cmUKICAg
ICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKICAgICAgICAgcmV0dXJuIDAuMDsKIAotICAg
IGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNzbFN0YXJ0IDwgMCkgLy8gU2VjdXJlIGNvbm5l
Y3Rpb24gbm90IG5lZ290aWF0ZWQuCisgICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+c2Vj
dXJlQ29ubmVjdGlvblN0YXJ0VGltZSgpIDwgMCkgLy8gU2VjdXJlIGNvbm5lY3Rpb24gbm90IG5l
Z290aWF0ZWQuCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1l
VG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+c3NsU3RhcnQpOworICAgIHJldHVybiBt
X3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSgpOwogfQogCiBkb3VibGUgUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0YXJ0KCkgY29uc3QKQEAgLTE4NSwzMyArMTg1
LDEyIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXF1ZXMKICAgICBpZiAo
IW1fdGltaW5nKQogICAgICAgICByZXR1cm4gY29ubmVjdEVuZCgpOwogCi0gICAgcmV0dXJuIHJl
c291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPnNlbmRTdGFydCk7Ci19
Ci0KLWRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29u
c3QKLXsKLSAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKLSAgICAgICAgcmV0dXJuIDAu
MDsKLQotICAgIGlmICghbV90aW1pbmcpCi0gICAgICAgIHJldHVybiByZXF1ZXN0U3RhcnQoKTsK
LSAgICAvLyBGSVhNRTogVGhpcyBudW1iZXIgaXNuJ3QgZXhhY3RseSBjb3JyZWN0LiBTZWUgdGhl
IG5vdGVzIGluIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkuCi0gICAgcmV0dXJu
IHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPnJlY2VpdmVIZWFk
ZXJzRW5kKTsKKyAgICByZXR1cm4gbV90aW1pbmctPnJlcXVlc3RTdGFydFRpbWUoKTsKIH0KIAog
ZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKIHsK
LSAgICBpZiAoIW1fZmluaXNoVGltZSkKLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlU3RhcnQoKTsK
LQotICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3JlcXVl
c3RpbmdEb2N1bWVudC5nZXQoKSwgbV9maW5pc2hUaW1lKTsKLX0KLQotZG91YmxlIFBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmc6OnJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoaW50
IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdAotewotICAgIGlmICghZGVsdGFNaWxsaXNlY29uZHMp
Ci0gICAgICAgIHJldHVybiAwLjA7Ci0gICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0RvY3VtZW50
TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3VtZW50LmdldCgpLCBtX3RpbWluZy0+cmVxdWVz
dFRpbWUpICsgZGVsdGFNaWxsaXNlY29uZHM7CisgICAgcmV0dXJuIG1fZmluaXNoVGltZTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCSh3b3JraW5nIGNvcHkp
CkBAIC02NSw3ICs2NSw2IEBAIHB1YmxpYzoKICAgICBkb3VibGUgY29ubmVjdEVuZCgpIGNvbnN0
OwogICAgIGRvdWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUg
cmVxdWVzdFN0YXJ0KCkgY29uc3Q7Ci0gICAgZG91YmxlIHJlc3BvbnNlU3RhcnQoKSBjb25zdDsK
ICAgICBkb3VibGUgcmVzcG9uc2VFbmQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Jl
c291cmNlKCkgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNzQsOCArNzMsNiBAQCBwcml2YXRlOgogICAg
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0YXRvclR5
cGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBkb3Vi
bGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBmaW5pc2hUaW1lLCBEb2N1bWVudCopOwogICAgIH5Q
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKCk7CiAKLSAgICBkb3VibGUgcmVzb3VyY2VUaW1lVG9E
b2N1bWVudE1pbGxpc2Vjb25kcyhpbnQgZGVsdGFNaWxsaXNlY29uZHMpIGNvbnN0OwotCiAgICAg
QXRvbWljU3RyaW5nIG1faW5pdGlhdG9yVHlwZTsKICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkVGlt
aW5nPiBtX3RpbWluZzsKICAgICBkb3VibGUgbV9maW5pc2hUaW1lOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCShyZXZpc2lv
biAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw1IEBACiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgY29ubmVjdEVuZDsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgcmVxdWVzdFN0YXJ0OwotICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHJlc3BvbnNlU3RhcnQ7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgcmVzcG9uc2VFbmQ7CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAJKHJldmlzaW9u
IDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzAsMTEgKzEzMCwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVy
Zm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBUaGlzIHdpbGwgYmUgLTEgd2hlbiBhIEROUyBy
ZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAgLy8gUmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBz
cGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIEROUywgd2UgImJhY2tmaWxsIiB3aXRoIGZl
dGNoU3RhcnQuCi0gICAgaW50IGRuc1N0YXJ0ID0gdGltaW5nLT5kbnNTdGFydDsKKyAgICBkb3Vi
bGUgZG5zU3RhcnQgPSB0aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0VGltZSgpOwogICAgIGlmIChk
bnNTdGFydCA8IDApCiAgICAgICAgIHJldHVybiBmZXRjaFN0YXJ0KCk7CiAKLSAgICByZXR1cm4g
cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShkbnNTdGFydCk7CisgICAgcmV0dXJu
IHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoZG5zU3RhcnQpOwogfQogCiB1
bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNv
bnN0CkBAIC0xNDUsMTEgKzE0NSwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OmRvCiAKICAgICAvLyBUaGlzIHdpbGwgYmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlz
IG5vdCBwZXJmb3JtZWQuCiAgICAgLy8gUmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZh
bHVlIHRoYXQgaW5kaWNhdGVzIG5vIEROUywgd2UgImJhY2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1
cFN0YXJ0LgotICAgIGludCBkbnNFbmQgPSB0aW1pbmctPmRuc0VuZDsKKyAgICBkb3VibGUgZG5z
RW5kID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCk7CiAgICAgaWYgKGRuc0VuZCA8IDAp
CiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291
cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoZG5zRW5kKTsKKyAgICByZXR1cm4gcmVzb3Vy
Y2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkbnNFbmQpOwogfQogCiB1bnNpZ25lZCBs
b25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RTdGFydCgpIGNvbnN0CkBAIC0xNjQs
MTYgKzE2NCwxNiBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvCiAK
ICAgICAvLyBjb25uZWN0U3RhcnQgd2lsbCBiZSAtMSB3aGVuIGEgbmV0d29yayByZXF1ZXN0IGlz
IG5vdCBtYWRlLgogICAgIC8vIFJhdGhlciB0aGFuIGV4cG9zaW5nIGEgc3BlY2lhbCB2YWx1ZSB0
aGF0IGluZGljYXRlcyBubyBuZXcgY29ubmVjdGlvbiwgd2UgImJhY2tmaWxsIiB3aXRoIGRvbWFp
bkxvb2t1cEVuZC4KLSAgICBpbnQgY29ubmVjdFN0YXJ0ID0gdGltaW5nLT5jb25uZWN0U3RhcnQ7
CisgICAgZG91YmxlIGNvbm5lY3RTdGFydCA9IHRpbWluZy0+Y29ubmVjdFN0YXJ0VGltZSgpOwog
ICAgIGlmIChjb25uZWN0U3RhcnQgPCAwIHx8IGxvYWRlci0+cmVzcG9uc2UoKS5jb25uZWN0aW9u
UmV1c2VkKCkpCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBFbmQoKTsKIAogICAgIC8vIFJl
c291cmNlTG9hZFRpbWluZydzIGNvbm5lY3QgcGhhc2UgaW5jbHVkZXMgRE5TLCBob3dldmVyIE5h
dmlnYXRpb24gVGltaW5nJ3MKICAgICAvLyBjb25uZWN0IHBoYXNlIHNob3VsZCBub3QuIFNvIGlm
IHRoZXJlIGlzIEROUyB0aW1lLCB0cmltIGl0IGZyb20gdGhlIHN0YXJ0LgotICAgIGlmICh0aW1p
bmctPmRuc0VuZCA+PSAwICYmIHRpbWluZy0+ZG5zRW5kID4gY29ubmVjdFN0YXJ0KQotICAgICAg
ICBjb25uZWN0U3RhcnQgPSB0aW1pbmctPmRuc0VuZDsKKyAgICBpZiAodGltaW5nLT5kb21haW5M
b29rdXBFbmRUaW1lKCkgPj0gMCAmJiB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA+IGNv
bm5lY3RTdGFydCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0gdGltaW5nLT5kb21haW5Mb29rdXBF
bmRUaW1lKCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0
ZShjb25uZWN0U3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWls
bGlzZWNvbmRzKGNvbm5lY3RTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6Y29ubmVjdEVuZCgpIGNvbnN0CkBAIC0xODgsMTEgKzE4OCwxMSBAQCB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvCiAKICAgICAvLyBjb25uZWN0RW5k
IHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVxdWVzdCBpcyBub3QgbWFkZS4KICAgICAvLyBS
YXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8gbmV3
IGNvbm5lY3Rpb24sIHdlICJiYWNrZmlsbCIgd2l0aCBjb25uZWN0U3RhcnQuCi0gICAgaW50IGNv
bm5lY3RFbmQgPSB0aW1pbmctPmNvbm5lY3RFbmQ7CisgICAgZG91YmxlIGNvbm5lY3RFbmQgPSB0
aW1pbmctPmNvbm5lY3RFbmRUaW1lKCk7CiAgICAgaWYgKGNvbm5lY3RFbmQgPCAwIHx8IGxvYWRl
ci0+cmVzcG9uc2UoKS5jb25uZWN0aW9uUmV1c2VkKCkpCiAgICAgICAgIHJldHVybiBjb25uZWN0
U3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRl
KGNvbm5lY3RFbmQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlz
ZWNvbmRzKGNvbm5lY3RFbmQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNvbnN0CkBAIC0yMDUsMTEgKzIwNSwxMSBA
QCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnNlCiAgICAgaWYgKCF0aW1p
bmcpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaW50IHNzbFN0YXJ0ID0gdGltaW5nLT5zc2xT
dGFydDsKKyAgICBkb3VibGUgc3NsU3RhcnQgPSB0aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFy
dFRpbWUoKTsKICAgICBpZiAoc3NsU3RhcnQgPCAwKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHNzbFN0YXJ0KTsKKyAg
ICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhzc2xTdGFydCk7
CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0
KCkgY29uc3QKQEAgLTIxOCw4ICsyMTgsOCBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFu
Y2VUaW1pbmc6OnJlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiBjb25uZWN0RW5k
KCk7CiAKLSAgICBBU1NFUlQodGltaW5nLT5zZW5kU3RhcnQgPj0gMCk7Ci0gICAgcmV0dXJuIHJl
c291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5zZW5kU3RhcnQpOworICAg
IEFTU0VSVCh0aW1pbmctPnJlcXVlc3RTdGFydFRpbWUoKSA+PSAwKTsKKyAgICByZXR1cm4gcmVz
b3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlcXVlc3RTdGFydFRp
bWUoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9u
c2VTdGFydCgpIGNvbnN0CkBAIC0yMjgsMTQgKzIyOCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQ
ZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIHJl
cXVlc3RTdGFydCgpOwogCi0gICAgLy8gRklYTUU6IFJlc3BvbnNlIHN0YXJ0IG5lZWRzIHRvIGJl
IHRoZSB0aW1lIG9mIHRoZSBmaXJzdCByZWNlaXZlZCBieXRlLgotICAgIC8vIEhvd2V2ZXIsIHRo
ZSBSZXNvdXJjZUxvYWRUaW1pbmcgQVBJIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHRoZSB0aW1l
Ci0gICAgLy8gdGhlIGxhc3QgaGVhZGVyIGJ5dGUgd2FzIHJlY2VpdmVkLiBGb3IgbWFueSByZXNw
b25zZXMgd2l0aCByZWFzb25hYmxlCi0gICAgLy8gc2l6ZWQgY29va2llcywgdGhlIEhUVFAgaGVh
ZGVycyBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQgc28gdGhpcyB0aW1lCi0gICAgLy8gaXMgYmFz
aWNhbGx5IGVxdWl2YWxlbnQuIEJ1dCBmb3Igc29tZSByZXNwb25zZXMsIHBhcnRpY3VsYXJseSB0
aG9zZSB3aXRoCi0gICAgLy8gaGVhZGVycyBsYXJnZXIgdGhhbiBhIHNpbmdsZSBwYWNrZXQsIHRo
aXMgdGltZSB3aWxsIGJlIHRvbyBsYXRlLgotICAgIEFTU0VSVCh0aW1pbmctPnJlY2VpdmVIZWFk
ZXJzRW5kID49IDApOwotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29s
dXRlKHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlc3Bv
bnNlU3RhcnRUaW1lKCkgPj0gMCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVUb0ludGVn
ZXJNaWxsaXNlY29uZHModGltaW5nLT5yZXNwb25zZVN0YXJ0VGltZSgpKTsKIH0KIAogdW5zaWdu
ZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0CkBAIC0z
NDgsMTQgKzM0Miw2IEBAIFJlc291cmNlTG9hZFRpbWluZyogUGVyZm9ybWFuY2VUaW1pbmc6OnIK
ICAgICByZXR1cm4gbG9hZGVyLT5yZXNwb25zZSgpLnJlc291cmNlTG9hZFRpbWluZygpOwogfQog
Ci11bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlc291cmNlTG9hZFRpbWVS
ZWxhdGl2ZVRvQWJzb2x1dGUoaW50IHJlbGF0aXZlTWlsbGlzZWNvbmRzKSBjb25zdAotewotICAg
IEFTU0VSVChyZWxhdGl2ZU1pbGxpc2Vjb25kcyA+PSAwKTsKLSAgICBSZXNvdXJjZUxvYWRUaW1p
bmcqIHJlc291cmNlVGltaW5nID0gcmVzb3VyY2VMb2FkVGltaW5nKCk7Ci0gICAgQVNTRVJUKHJl
c291cmNlVGltaW5nKTsKLSAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vj
b25kcyhyZXNvdXJjZVRpbWluZy0+Y29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1Rp
bWUocmVsYXRpdmVNaWxsaXNlY29uZHMpKTsKLX0KLQogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZv
cm1hbmNlVGltaW5nOjptb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJsZSBt
b25vdG9uaWNTZWNvbmRzKSBjb25zdAogewogICAgIEFTU0VSVChtb25vdG9uaWNTZWNvbmRzID49
IDApOwpAQCAtMzYzLDYgKzM0OSwxOCBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6Om1vCiAgICAgQVNTRVJUKHRpbWluZyk7CiAgICAgcmV0dXJuIHRvSW50ZWdlck1pbGxp
c2Vjb25kcyh0aW1pbmctPm1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKG1vbm90b25pY1Nl
Y29uZHMpKTsKIH0KKyAgICAKK3Vuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6
cmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUgc2Vjb25kcykKK3sK
KyAgICBpZiAoc2Vjb25kcyA8PSAwLjApCisgICAgICAgIHJldHVybiAwOworI2lmIFVTRShDRikK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPigoc2Vjb25kcyArIGtD
RkFic29sdXRlVGltZUludGVydmFsU2luY2UxOTcwKSAqIDEwMDApOworI2Vsc2UKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihzZWNvbmRzICogMTAwMCk7CisjZW5k
aWYKK30KKyAgICAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDgg
Kzc4LDggQEAgcHJpdmF0ZToKICAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIoKSBj
b25zdDsKICAgICBEb2N1bWVudExvYWRUaW1pbmcqIGRvY3VtZW50TG9hZFRpbWluZygpIGNvbnN0
OwogICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVzb3VyY2VMb2FkVGltaW5nKCkgY29uc3Q7Ci0g
ICAgdW5zaWduZWQgbG9uZyBsb25nIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUo
aW50KSBjb25zdDsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbW9ub3RvbmljVGltZVRvSW50ZWdl
ck1pbGxpc2Vjb25kcyhkb3VibGUpIGNvbnN0OworICAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxv
bmcgcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUpOwogfTsKIAog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwJKHJldmlz
aW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
LS8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViVGltaW5nLworLy8gU2Vl
OiBodHRwczovL2R2Y3MudzMub3JnL2hnL3dlYnBlcmYvcmF3LWZpbGUvdGlwL3NwZWNzL05hdmln
YXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRtbAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcs
CiBdIGludGVyZmFjZSBQZXJmb3JtYW5jZVRpbWluZyB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM3LDkgKzM3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVFRQ
SGVhZGVyTWFwOwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7Ci0KIGVudW0gQ29udGVudERp
c3Bvc2l0aW9uVHlwZSB7CiAgICAgQ29udGVudERpc3Bvc2l0aW9uTm9uZSwKICAgICBDb250ZW50
RGlzcG9zaXRpb25JbmxpbmUsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlTG9hZFRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI3LDEwICsyOCw0NSBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWlu
Zy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWRvdWJsZSBSZXNvdXJjZUxvYWRUaW1pbmc6
OmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vj
b25kcykgY29uc3QKKyAgICAKK1Jlc291cmNlTG9hZFRpbWluZzo6UmVzb3VyY2VMb2FkVGltaW5n
KCkKKyAgICA6IG1fZG9tYWluTG9va3VwU3RhcnRUaW1lKC0xLjApCisgICAgLCBtX2RvbWFpbkxv
b2t1cEVuZFRpbWUoLTEuMCkKKyAgICAsIG1fY29ubmVjdFN0YXJ0VGltZSgtMS4wKQorICAgICwg
bV9jb25uZWN0RW5kVGltZSgtMS4wKQorICAgICwgbV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1l
KDAuMCkKKyAgICAsIG1fcmVxdWVzdFN0YXJ0VGltZSgwLjApCisgICAgLCBtX3Jlc3BvbnNlU3Rh
cnRUaW1lKDAuMCkKIHsKLSAgICByZXR1cm4gcmVxdWVzdFRpbWUgKyBkZWx0YU1pbGxpc2Vjb25k
cyAvIDEwMDAuMDsKIH0KLQorICAgIAorUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IFJl
c291cmNlTG9hZFRpbWluZzo6ZGVlcENvcHkoKQoreworICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRU
aW1pbmc+IHRpbWluZyA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUxvYWRUaW1pbmcpOworICAgIHRp
bWluZy0+c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKG1fZG9tYWluTG9va3VwU3RhcnRUaW1lKTsK
KyAgICB0aW1pbmctPnNldERvbWFpbkxvb2t1cEVuZFRpbWUobV9kb21haW5Mb29rdXBFbmRUaW1l
KTsKKyAgICB0aW1pbmctPnNldENvbm5lY3RTdGFydFRpbWUobV9jb25uZWN0U3RhcnRUaW1lKTsK
KyAgICB0aW1pbmctPnNldENvbm5lY3RFbmRUaW1lKG1fY29ubmVjdEVuZFRpbWUpOworICAgIHRp
bWluZy0+c2V0U2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZShtX3NlY3VyZUNvbm5lY3Rpb25TdGFy
dFRpbWUpOworICAgIHRpbWluZy0+c2V0UmVxdWVzdFN0YXJ0VGltZShtX3JlcXVlc3RTdGFydFRp
bWUpOworICAgIHRpbWluZy0+c2V0UmVzcG9uc2VTdGFydFRpbWUobV9yZXNwb25zZVN0YXJ0VGlt
ZSk7CisgICAgcmV0dXJuIHRpbWluZy5yZWxlYXNlKCk7Cit9CisgICAgCitib29sIFJlc291cmNl
TG9hZFRpbWluZzo6b3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVyKSBj
b25zdAoreworICAgIHJldHVybiBtX2RvbWFpbkxvb2t1cFN0YXJ0VGltZSA9PSBvdGhlci5kb21h
aW5Mb29rdXBTdGFydFRpbWUoKQorICAgICAgICAmJiBtX2RvbWFpbkxvb2t1cEVuZFRpbWUgPT0g
b3RoZXIuZG9tYWluTG9va3VwRW5kVGltZSgpCisgICAgICAgICYmIG1fY29ubmVjdFN0YXJ0VGlt
ZSA9PSBvdGhlci5jb25uZWN0U3RhcnRUaW1lKCkKKyAgICAgICAgJiYgbV9jb25uZWN0RW5kVGlt
ZSA9PSBvdGhlci5jb25uZWN0RW5kVGltZSgpCisgICAgICAgICYmIG1fc2VjdXJlQ29ubmVjdGlv
blN0YXJ0VGltZSA9PSBvdGhlci5zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKCkKKyAgICAgICAg
JiYgbV9yZXF1ZXN0U3RhcnRUaW1lID09IG90aGVyLnJlcXVlc3RTdGFydFRpbWUoKQorICAgICAg
ICAmJiBtX3Jlc3BvbnNlU3RhcnRUaW1lID09IG90aGVyLnJlc3BvbnNlU3RhcnRUaW1lKCk7Cit9
CisgICAgCitib29sIFJlc291cmNlTG9hZFRpbWluZzo6b3BlcmF0b3IhPShjb25zdCBSZXNvdXJj
ZUxvYWRUaW1pbmcmIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiAhKCp0aGlzID09IG90aGVy
KTsKK30KKyAgICAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VMb2FkVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUsIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjYsOTYgKzI3LDQ3IEBACiAjaWZuZGVmIFJlc291cmNlTG9hZFRpbWluZ19oCiAjZGVmaW5l
IFJlc291cmNlTG9hZFRpbWluZ19oCiAKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50TG9hZFRpbWluZzsKLQogY2xhc3MgUmVz
b3VyY2VMb2FkVGltaW5nIDogcHVibGljIFJlZkNvdW50ZWQ8UmVzb3VyY2VMb2FkVGltaW5nPiB7
CisgICAgCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5n
PiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZXNvdXJjZUxv
YWRUaW1pbmcpOwotICAgIH0KLQotICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBk
ZWVwQ29weSgpCi0gICAgewotICAgICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiB0aW1p
bmcgPSBjcmVhdGUoKTsKLSAgICAgICAgdGltaW5nLT5yZXF1ZXN0VGltZSA9IHJlcXVlc3RUaW1l
OwotICAgICAgICB0aW1pbmctPnByb3h5U3RhcnQgPSBwcm94eVN0YXJ0OwotICAgICAgICB0aW1p
bmctPnByb3h5RW5kID0gcHJveHlFbmQ7Ci0gICAgICAgIHRpbWluZy0+ZG5zU3RhcnQgPSBkbnNT
dGFydDsKLSAgICAgICAgdGltaW5nLT5kbnNFbmQgPSBkbnNFbmQ7Ci0gICAgICAgIHRpbWluZy0+
Y29ubmVjdFN0YXJ0ID0gY29ubmVjdFN0YXJ0OwotICAgICAgICB0aW1pbmctPmNvbm5lY3RFbmQg
PSBjb25uZWN0RW5kOwotICAgICAgICB0aW1pbmctPnNlbmRTdGFydCA9IHNlbmRTdGFydDsKLSAg
ICAgICAgdGltaW5nLT5zZW5kRW5kID0gc2VuZEVuZDsKLSAgICAgICAgdGltaW5nLT5yZWNlaXZl
SGVhZGVyc0VuZCA9IHJlY2VpdmVIZWFkZXJzRW5kOwotICAgICAgICB0aW1pbmctPnNzbFN0YXJ0
ID0gc3NsU3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+c3NsRW5kID0gc3NsRW5kOwotICAgICAgICBy
ZXR1cm4gdGltaW5nLnJlbGVhc2UoKTsKLSAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biByZXF1ZXN0VGltZSA9PSBvdGhlci5yZXF1ZXN0VGltZQotICAgICAgICAgICAgJiYgcHJveHlT
dGFydCA9PSBvdGhlci5wcm94eVN0YXJ0Ci0gICAgICAgICAgICAmJiBwcm94eUVuZCA9PSBvdGhl
ci5wcm94eUVuZAotICAgICAgICAgICAgJiYgZG5zU3RhcnQgPT0gb3RoZXIuZG5zU3RhcnQKLSAg
ICAgICAgICAgICYmIGRuc0VuZCA9PSBvdGhlci5kbnNFbmQKLSAgICAgICAgICAgICYmIGNvbm5l
Y3RTdGFydCA9PSBvdGhlci5jb25uZWN0U3RhcnQKLSAgICAgICAgICAgICYmIGNvbm5lY3RFbmQg
PT0gb3RoZXIuY29ubmVjdEVuZAotICAgICAgICAgICAgJiYgc2VuZFN0YXJ0ID09IG90aGVyLnNl
bmRTdGFydAotICAgICAgICAgICAgJiYgc2VuZEVuZCA9PSBvdGhlci5zZW5kRW5kCi0gICAgICAg
ICAgICAmJiByZWNlaXZlSGVhZGVyc0VuZCA9PSBvdGhlci5yZWNlaXZlSGVhZGVyc0VuZAotICAg
ICAgICAgICAgJiYgc3NsU3RhcnQgPT0gb3RoZXIuc3NsU3RhcnQKLSAgICAgICAgICAgICYmIHNz
bEVuZCA9PSBvdGhlci5zc2xFbmQ7Ci0gICAgfQotCi0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0
IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
ISgqdGhpcyA9PSBvdGhlcik7Ci0gICAgfQotCi0gICAgLy8gV2Ugd2FudCB0byBwcmVzZW50IGEg
dW5pZmllZCB0aW1lbGluZSB0byBKYXZhc2NyaXB0LiBVc2luZyB3YWxsdGltZSBpcyBwcm9ibGVt
YXRpYywgYmVjYXVzZSB0aGUgY2xvY2sgbWF5IHNrZXcgd2hpbGUgcmVzb3VyY2VzCi0gICAgLy8g
bG9hZC4gVG8gcHJldmVudCB0aGF0IHNrZXcsIHdlIHJlY29yZCBhIHNpbmdsZSByZWZlcmVuY2Ug
d2FsbHRpbWUgd2hlbiByb290IGRvY3VtZW50IG5hdmlnYXRpb24gYmVnaW5zLiBBbGwgb3RoZXIg
dGltZXMgYXJlCi0gICAgLy8gcmVjb3JkZWQgdXNpbmcgbW9ub3RvbmljYWxseUluY3JlYXNpbmdU
aW1lKCkuIFdoZW4gYSB0aW1lIG5lZWRzIHRvIGJlIHByZXNlbnRlZCB0byBKYXZhc2NyaXB0LCB3
ZSBidWlsZCBhIHBzZXVkby13YWxsdGltZQotICAgIC8vIHVzaW5nIHRoZSBmb2xsb3dpbmcgZXF1
YXRpb246Ci0gICAgLy8gICBwc2V1ZG8gdGltZSA9IGRvY3VtZW50IHdhbGwgcmVmZXJlbmNlICsg
KHJlc291cmNlIHJlcXVlc3QgdGltZSAtIGRvY3VtZW50IG1vbm90b25pYyByZWZlcmVuY2UpICsg
ZGVsdGFNaWxsaXNlY29uZHMgLyAxMDAwLjAuCi0gICAgZG91YmxlIGNvbnZlcnRSZXNvdXJjZUxv
YWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7Ci0KLSAg
ICBkb3VibGUgcmVxdWVzdFRpbWU7IC8vIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIHdo
ZW4gdGhlIHBvcnQgc3RhcnRlZCBoYW5kbGluZyB0aGlzIHJlcXVlc3QuCi0gICAgaW50IHByb3h5
U3RhcnQ7IC8vIFRoZSByZXN0IG9mIHRoZXNlIGFyZSBtaWxsaXNlY29uZCBkZWx0YXMsIHVzaW5n
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBmcm9tIHJlcXVlc3RUaW1lLgotICAgIGlu
dCBwcm94eUVuZDsKLSAgICBpbnQgZG5zU3RhcnQ7Ci0gICAgaW50IGRuc0VuZDsKLSAgICBpbnQg
Y29ubmVjdFN0YXJ0OwotICAgIGludCBjb25uZWN0RW5kOwotICAgIGludCBzZW5kU3RhcnQ7Ci0g
ICAgaW50IHNlbmRFbmQ7Ci0gICAgaW50IHJlY2VpdmVIZWFkZXJzRW5kOwotICAgIGludCBzc2xT
dGFydDsKLSAgICBpbnQgc3NsRW5kOwotCisgICAgCisgICAgUmVzb3VyY2VMb2FkVGltaW5nKCk7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgUmVzb3VyY2VMb2FkVGltaW5nKTsgfQorICAgIFBhc3NSZWZQdHI8
UmVzb3VyY2VMb2FkVGltaW5nPiBkZWVwQ29weSgpOworICAgIAorICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmKSBjb25zdDsKKyAgICBib29sIG9wZXJhdG9yIT0o
Y29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJikgY29uc3Q7CisgICAgCisgICAgZG91YmxlIGRvbWFp
bkxvb2t1cFN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tYWluTG9va3VwU3RhcnRUaW1l
OyB9CisgICAgZG91YmxlIGRvbWFpbkxvb2t1cEVuZFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2Rv
bWFpbkxvb2t1cEVuZFRpbWU7IH0KKyAgICBkb3VibGUgY29ubmVjdFN0YXJ0VGltZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY29ubmVjdFN0YXJ0VGltZTsgfQorICAgIGRvdWJsZSBjb25uZWN0RW5kVGlt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdEVuZFRpbWU7IH0KKyAgICBkb3VibGUgc2VjdXJl
Q29ubmVjdGlvblN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJlQ29ubmVjdGlvblN0
YXJ0VGltZTsgfQorICAgIGRvdWJsZSByZXF1ZXN0U3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4g
bV9yZXF1ZXN0U3RhcnRUaW1lOyB9CisgICAgZG91YmxlIHJlc3BvbnNlU3RhcnRUaW1lKCkgY29u
c3QgeyByZXR1cm4gbV9yZXNwb25zZVN0YXJ0VGltZTsgfQorICAgIAorICAgIHZvaWQgc2V0RG9t
YWluTG9va3VwU3RhcnRUaW1lKGRvdWJsZSBkb21haW5Mb29rdXBTdGFydFRpbWUpIHsgbV9kb21h
aW5Mb29rdXBTdGFydFRpbWUgPSBkb21haW5Mb29rdXBTdGFydFRpbWU7IH0KKyAgICB2b2lkIHNl
dERvbWFpbkxvb2t1cEVuZFRpbWUoZG91YmxlIGRvbWFpbkxvb2t1cEVuZFRpbWUpIHsgbV9kb21h
aW5Mb29rdXBFbmRUaW1lID0gZG9tYWluTG9va3VwRW5kVGltZTsgfQorICAgIHZvaWQgc2V0Q29u
bmVjdFN0YXJ0VGltZShkb3VibGUgY29ubmVjdFN0YXJ0VGltZSkgeyBtX2Nvbm5lY3RTdGFydFRp
bWUgPSBjb25uZWN0U3RhcnRUaW1lOyB9CisgICAgdm9pZCBzZXRDb25uZWN0RW5kVGltZShkb3Vi
bGUgY29ubmVjdEVuZFRpbWUpIHsgbV9jb25uZWN0RW5kVGltZSA9IGNvbm5lY3RFbmRUaW1lOyB9
CisgICAgdm9pZCBzZXRTZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKGRvdWJsZSBzZWN1cmVDb25u
ZWN0aW9uU3RhcnRUaW1lKSB7IG1fc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSA9IHNlY3VyZUNv
bm5lY3Rpb25TdGFydFRpbWU7IH0KKyAgICB2b2lkIHNldFJlcXVlc3RTdGFydFRpbWUoZG91Ymxl
IHJlcXVlc3RTdGFydFRpbWUpIHsgbV9yZXF1ZXN0U3RhcnRUaW1lID0gcmVxdWVzdFN0YXJ0VGlt
ZTsgfQorICAgIHZvaWQgc2V0UmVzcG9uc2VTdGFydFRpbWUoZG91YmxlIHJlc3BvbnNlU3RhcnRU
aW1lKSB7IG1fcmVzcG9uc2VTdGFydFRpbWUgPSByZXNwb25zZVN0YXJ0VGltZTsgfQorICAgIAog
cHJpdmF0ZToKLSAgICBSZXNvdXJjZUxvYWRUaW1pbmcoKQotICAgICAgICA6IHJlcXVlc3RUaW1l
KDApCi0gICAgICAgICwgcHJveHlTdGFydCgtMSkKLSAgICAgICAgLCBwcm94eUVuZCgtMSkKLSAg
ICAgICAgLCBkbnNTdGFydCgtMSkKLSAgICAgICAgLCBkbnNFbmQoLTEpCi0gICAgICAgICwgY29u
bmVjdFN0YXJ0KC0xKQotICAgICAgICAsIGNvbm5lY3RFbmQoLTEpCi0gICAgICAgICwgc2VuZFN0
YXJ0KDApCi0gICAgICAgICwgc2VuZEVuZCgwKQotICAgICAgICAsIHJlY2VpdmVIZWFkZXJzRW5k
KDApCi0gICAgICAgICwgc3NsU3RhcnQoLTEpCi0gICAgICAgICwgc3NsRW5kKC0xKQotICAgIHsK
LSAgICB9CisgICAgCisgICAgZG91YmxlIG1fZG9tYWluTG9va3VwU3RhcnRUaW1lOworICAgIGRv
dWJsZSBtX2RvbWFpbkxvb2t1cEVuZFRpbWU7CisgICAgZG91YmxlIG1fY29ubmVjdFN0YXJ0VGlt
ZTsKKyAgICBkb3VibGUgbV9jb25uZWN0RW5kVGltZTsKKyAgICBkb3VibGUgbV9zZWN1cmVDb25u
ZWN0aW9uU3RhcnRUaW1lOworICAgIGRvdWJsZSBtX3JlcXVlc3RTdGFydFRpbWU7CisgICAgZG91
YmxlIG1fcmVzcG9uc2VTdGFydFRpbWU7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZVJlc3BvbnNlQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAgaW5s
aW5lIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIFJlc291cmNlUgogCiBSZXNvdXJjZVJlc3BvbnNl
QmFzZTo6UmVzb3VyY2VSZXNwb25zZUJhc2UoKSAgCiAgICAgOiBtX2V4cGVjdGVkQ29udGVudExl
bmd0aCgwKQorICAgICwgbV9yZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpj
cmVhdGUoKSkKICAgICAsIG1faHR0cFN0YXR1c0NvZGUoMCkKICAgICAsIG1fY29ubmVjdGlvbklE
KDApCiAgICAgLCBtX2NhY2hlQ29udHJvbE1heEFnZSgwKQpAQCAtNzEsNiArNzIsNyBAQCBSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6UmVzb3VyY2VSZXNwb25zZUJhCiAgICAgLCBtX2V4cGVjdGVkQ29u
dGVudExlbmd0aChleHBlY3RlZExlbmd0aCkKICAgICAsIG1fdGV4dEVuY29kaW5nTmFtZSh0ZXh0
RW5jb2RpbmdOYW1lKQogICAgICwgbV9zdWdnZXN0ZWRGaWxlbmFtZShmaWxlbmFtZSkKKyAgICAs
IG1fcmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpCiAgICAg
LCBtX2h0dHBTdGF0dXNDb2RlKDApCiAgICAgLCBtX2Nvbm5lY3Rpb25JRCgwKQogICAgICwgbV9j
YWNoZUNvbnRyb2xNYXhBZ2UoMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCShyZXZpc2lvbiAxNjgz
OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRs
ZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsMTAgQEAKICNpbXBvcnQgPHd0Zi90
ZXh0L0Jhc2U2NC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaWYgX19oYXNf
aW5jbHVkZSg8Rm91bmRhdGlvbi9OU1VSTENvbm5lY3Rpb25Qcml2YXRlLmg+KQorI2ltcG9ydCA8
Rm91bmRhdGlvbi9OU1VSTENvbm5lY3Rpb25Qcml2YXRlLmg+CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKElPUykKICNpbXBvcnQgPENGTmV0d29yay9DRlVSTFJlcXVlc3QuaD4KIApAQCAtMjAwLDYg
KzIwNCw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGkKICAgICBj
b25zdCBib29sIHVzZXNDYWNoZSA9IHRydWU7CiAjZW5kaWYKICAgICBkLT5tX2Nvbm5lY3Rpb24g
PSBhZG9wdE5TKFtbTlNVUkxDb25uZWN0aW9uIGFsbG9jXSBfaW5pdFdpdGhSZXF1ZXN0Om5zUmVx
dWVzdCBkZWxlZ2F0ZTpkZWxlZ2F0ZSB1c2VzQ2FjaGU6dXNlc0NhY2hlIG1heENvbnRlbnRMZW5n
dGg6MCBzdGFydEltbWVkaWF0ZWx5Ok5PIGNvbm5lY3Rpb25Qcm9wZXJ0aWVzOnByb3BlcnR5RGlj
dGlvbmFyeV0pOworI2lmIEVOQUJMRShXRUJfVElNSU5HKSAmJiBfX2hhc19pbmNsdWRlKDxGb3Vu
ZGF0aW9uL05TVVJMQ29ubmVjdGlvblByaXZhdGUuaD4pCisgICAgW05TVVJMQ29ubmVjdGlvbiBf
c2V0Q29sbGVjdHNUaW1pbmdEYXRhOllFU107CisjZW5kaWYKIH0KIAogYm9vbCBSZXNvdXJjZUhh
bmRsZTo6c3RhcnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMTY4MzkyKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwx
MCBAQAogI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNlLmgiCiAjaW1wb3J0IDx3dGYvTWFpblRo
cmVhZC5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9u
Lmg+KQorI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9uLmg+CisjZW5kaWYKKwog
QGludGVyZmFjZSBOU1VSTFJlcXVlc3QgKERldGFpbHMpCiAtIChpZClfcHJvcGVydHlGb3JLZXk6
KE5TU3RyaW5nICopa2V5OwogQGVuZApAQCAtMTkzLDcgKzE5Nyw2IEBAIC0gKEJPT0wpY29ubmVj
dGlvbjooTlNVUkxDb25uZWN0aW9uICopY28KIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25u
ZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKily
CiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgVU5VU0VEX1BBUkFNKGNvbm5l
Y3Rpb24pOwogCiAgICAgTE9HKE5ldHdvcmssICJIYW5kbGUgJXAgZGVsZWdhdGUgY29ubmVjdGlv
bjolcCBkaWRSZWNlaXZlUmVzcG9uc2U6JXAgKEhUVFAgc3RhdHVzICVkLCByZXBvcnRlZCBNSU1F
VHlwZSAnJXMnKSIsIG1faGFuZGxlLCBjb25uZWN0aW9uLCByLCBbciByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKHN0YXR1c0NvZGUpXSA/IFsoaWQpciBzdGF0dXNDb2RlXSA6IDAsIFtbciBN
SU1FVHlwZV0gVVRGOFN0cmluZ10pOwogCkBAIC0yMTIsNyArMjE1LDMyIEBAIC0gKHZvaWQpY29u
bmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY28KIAogICAgICAgICBpZiAoW21faGFuZGxlLT5m
aXJzdFJlcXVlc3QoKS5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSkgX3Byb3BlcnR5
Rm9yS2V5OkAiRm9yY2VIVE1MTUlNRVR5cGUiXSkKICAgICAgICAgICAgIFtyIF9zZXRNSU1FVHlw
ZTpAInRleHQvaHRtbCJdOwotCisgICAgICAgIAorI2lmIF9faGFzX2luY2x1ZGUoPENGTmV0d29y
ay9DRk5TVVJMQ29ubmVjdGlvbi5oPikKKyAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJj
ZVJlc3BvbnNlKHIpOworICAgICAgICAKKyAgICAgICAgTlNEaWN0aW9uYXJ5KiB0aW1pbmdEYXRh
ID0gW2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFdOworICAgICAgICBSZXNvdXJjZUxvYWRUaW1pbmcq
IHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgICAg
IEFTU0VSVCh0aW1pbmcpOworICAgICAgICB0aW1pbmctPnNldERvbWFpbkxvb2t1cEVuZFRpbWUo
W1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhRG9tYWluTG9va3VwRW5k
Il0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgdGltaW5nLT5zZXREb21haW5Mb29rdXBTdGFydFRp
bWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhRG9tYWluTG9va3Vw
U3RhcnQiXSBkb3VibGVWYWx1ZV0pOworICAgICAgICB0aW1pbmctPnNldENvbm5lY3RTdGFydFRp
bWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhQ29ubmVjdFN0YXJ0
Il0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgdGltaW5nLT5zZXRDb25uZWN0RW5kVGltZShbW3Rp
bWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25uZWN0RW5kIl0gZG91Ymxl
VmFsdWVdKTsKKyAgICAgICAgdGltaW5nLT5zZXRTZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKFtb
dGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVNlY3VyZUNvbm5lY3Rpb25T
dGFydCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAgIHRpbWluZy0+c2V0UmVxdWVzdFN0YXJ0VGlt
ZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFSZXF1ZXN0U3RhcnQi
XSBkb3VibGVWYWx1ZV0pOworICAgICAgICB0aW1pbmctPnNldFJlc3BvbnNlU3RhcnRUaW1lKFtb
dGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVJlc3BvbnNlU3RhcnQiXSBk
b3VibGVWYWx1ZV0pOworICAgICAgICAvLyBUT0RPOiB0aW1pbmdEYXRhIGhhcyBtb3JlIGluZm9y
bWF0aW9uIHRoYXQgd2Ugc2hvdWxkIHN0b3JlIGFuZCB1c2Ugd2l0aCB0aGVzZSBrZXlzOgorICAg
ICAgICAvLyBfa0NGTlRpbWluZ0RhdGFDb25uZWN0aW9uUmV1c2VkCisgICAgICAgIC8vIF9rQ0ZO
VGltaW5nRGF0YVRpbWluZ0RhdGFJbml0CisgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0YVJlZGly
ZWN0U3RhcnQKKyAgICAgICAgLy8gX2tDRk5UaW1pbmdEYXRhUmVkaXJlY3RFbmQKKyAgICAgICAg
Ly8gX2tDRk5UaW1pbmdEYXRhRmV0Y2hTdGFydAorICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFS
ZXNwb25zZUVuZAorICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFSZWRpcmVjdENvdW50VzNDCisg
ICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0YVJlZGlyZWN0Q291bnQKKyNlbHNlCisgICAgICAgIFVO
VVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyNlbmRpZgogICAgICAgICBtX2hhbmRsZS0+Y2xpZW50
KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCByKTsKICAgICB9KTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzQsOSArMjM0LDYgQEAgc3RhdGljIHZvaWQgY2xlYW51cFNvdXBSZXF1ZXN0
T3BlcmF0aW9uKAogc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiwgR0Fz
eW5jUmVzdWx0KiwgZ3BvaW50ZXIpOwogc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3Qq
LCBHQXN5bmNSZXN1bHQqLCBncG9pbnRlcik7CiBzdGF0aWMgZ2Jvb2xlYW4gcmVxdWVzdFRpbWVv
dXRDYWxsYmFjayh2b2lkKik7Ci0jaWYgRU5BQkxFKFdFQl9USU1JTkcpCi1zdGF0aWMgaW50ICBt
aWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkb3VibGUgcmVxdWVzdFRpbWUpOwotI2VuZGlmCiBzdGF0
aWMgdm9pZCBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKik7
CiAKIHN0YXRpYyBib29sIGdJZ25vcmVTU0xFcnJvcnMgPSBmYWxzZTsKQEAgLTMxNiwxMSArMzEz
LDYgQEAgc3RhdGljIHZvaWQgZ290SGVhZGVyc0NhbGxiYWNrKFNvdXBNZXNzYQogCiAgICAgUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIAotI2lmIEVO
QUJMRShXRUJfVElNSU5HKQotICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWlu
ZygpKQotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZWNlaXZl
SGVhZGVyc0VuZCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oR1RL
KQogICAgIC8vIFdlIGFyZSBhIGJpdCBtb3JlIGNvbnNlcnZhdGl2ZSB3aXRoIHRoZSBwZXJzaXN0
ZW50IGNyZWRlbnRpYWwgc3RvcmFnZSB0aGFuIHRoZSBzZXNzaW9uIHN0b3JlLAogICAgIC8vIHNp
bmNlIHdlIGFyZSB3YWl0aW5nIHVudGlsIHdlIGtub3cgdGhhdCB0aGlzIGF1dGhlbnRpY2F0aW9u
IHN1Y2NlZWRlZCBiZWZvcmUgYWN0dWFsbHkgc3RvcmluZy4KQEAgLTM5MCw3ICszODIsNyBAQCBz
dGF0aWMgdm9pZCByZXN0YXJ0ZWRDYWxsYmFjayhTb3VwTWVzc2FnCiAgICAgUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlID0gZC0+bV9yZXNwb25zZTsKICAgICByZWRpcmVjdFJlc3Bv
bnNlLnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKTsK
LSAgICByZWRpcmVjdFJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgIHJlZGlyZWN0UmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnNldFJlcXVlc3RTdGFydFRpbWUobW9ub3RvbmljYWxseUluY3Jl
YXNpbmdUaW1lKCkpOwogfQogI2VuZGlmCiAKQEAgLTgzOSw0MCArODMxLDEzIEBAIHN0YXRpYyBi
b29sIGFkZEZvcm1FbGVtZW50c1RvU291cE1lc3NhZ2UKIH0KIAogI2lmIEVOQUJMRShXRUJfVElN
SU5HKQotc3RhdGljIGludCBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkb3VibGUgcmVxdWVzdFRp
bWUpCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oKG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpIC0gcmVxdWVzdFRpbWUpICogMTAwMC4wKTsKLX0KLQotc3RhdGljIHZvaWQgd3Jv
dGVCb2R5Q2FsbGJhY2soU291cE1lc3NhZ2UqLCBncG9pbnRlciBkYXRhKQotewotICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihk
YXRhKTsKLSAgICBpZiAoIWhhbmRsZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpZiAoIWQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNlbmRFbmQgPSBtaWxpc2Vjb25kc1Np
bmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGlt
ZSk7Ci19Ci0KIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFN0YXJ0UmVxdWVzdCgpCiB7CiAgICAg
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGdldEludGVybmFsKCk7CiAgICAgaWYgKCFkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZW5kU3RhcnQgPSBtaWxpc2Vjb25k
c1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0
VGltZSk7Ci0gICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbFN0
YXJ0ICE9IC0xKSB7Ci0gICAgICAgIC8vIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXF1
ZXN0VGltaW5nVmlldy5qcyBhc3N1bWVzCi0gICAgICAgIC8vIHRoYXQgU1NMIHRpbWUgaXMgaW5j
bHVkZWQgaW4gY29ubmVjdGlvbiB0aW1lIHNvIG11c3QKLSAgICAgICAgLy8gc3Vic3RyYWN0IGhl
cmUgdGhlIFNTTCBkZWx0YSB0aGF0IHdpbGwgYmUgYWRkZWQgbGF0ZXIgKHNlZQotICAgICAgICAv
LyBXZWJJbnNwZWN0b3IuUmVxdWVzdFRpbWluZ1ZpZXcuY3JlYXRlVGltaW5nVGFibGUgaW4gdGhl
Ci0gICAgICAgIC8vIGZpbGUgYWJvdmUgZm9yIG1vcmUgZGV0YWlscykuCi0gICAgICAgIGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNlbmRTdGFydCAtPQotICAgICAgICAgICAg
ZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsRW5kIC0gZC0+bV9yZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQ7Ci0gICAgfQorICAgIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNldFJlcXVlc3RTdGFydFRpbWUoZC0+bV9yZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFN0YXJ0VGltZSgpKTsKIH0KIAogc3RhdGlj
IHZvaWQgbmV0d29ya0V2ZW50Q2FsbGJhY2soU291cE1lc3NhZ2UqLCBHU29ja2V0Q2xpZW50RXZl
bnQgZXZlbnQsIEdJT1N0cmVhbSosIGdwb2ludGVyIGRhdGEpCkBAIC04ODUsNDMgKzg1MCwzMSBA
QCBzdGF0aWMgdm9pZCBuZXR3b3JrRXZlbnRDYWxsYmFjayhTb3VwTWVzCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFs
KCk7Ci0gICAgaW50IGRlbHRhVGltZSA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVz
cG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKICAgICBzd2l0Y2ggKGV2
ZW50KSB7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUkVTT0xWSU5HOgotICAgICAgICBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNTdGFydCA9IGRlbHRhVGltZTsKKyAg
ICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2V0RG9tYWluTG9va3Vw
U3RhcnRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUkVTT0xWRUQ6Ci0gICAgICAgIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc0VuZCA9IGRlbHRhVGltZTsKKyAgICAgICAgZC0+
bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2V0RG9tYWluTG9va3VwRW5kVGltZSht
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
R19TT0NLRVRfQ0xJRU5UX0NPTk5FQ1RJTkc6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCktPmNvbm5lY3RTdGFydCA9IGRlbHRhVGltZTsKLSAgICAgICAgaWYgKGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc1N0YXJ0ICE9IC0xKQotICAgICAg
ICAgICAgLy8gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlcXVlc3RUaW1pbmdWaWV3Lmpz
IGFzc3VtZXMKLSAgICAgICAgICAgIC8vIHRoYXQgRE5TIHRpbWUgaXMgaW5jbHVkZWQgaW4gY29u
bmVjdGlvbiB0aW1lIHNvIG11c3QKLSAgICAgICAgICAgIC8vIHN1YnN0cmFjdCBoZXJlIHRoZSBE
TlMgZGVsdGEgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVyIChzZWUKLSAgICAgICAgICAgIC8vIFdl
Ykluc3BlY3Rvci5SZXF1ZXN0VGltaW5nVmlldy5jcmVhdGVUaW1pbmdUYWJsZSBpbiB0aGUKLSAg
ICAgICAgICAgIC8vIGZpbGUgYWJvdmUgZm9yIG1vcmUgZGV0YWlscykuCi0gICAgICAgICAgICBk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5jb25uZWN0U3RhcnQgLT0KLSAgICAg
ICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNFbmQgLSBk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNTdGFydDsKKyAgICAgICAgZC0+
bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2V0Q29ubmVjdFN0YXJ0VGltZShtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19T
T0NLRVRfQ0xJRU5UX0NPTk5FQ1RFRDoKICAgICAgICAgLy8gV2ViIFRpbWluZyBjb25zaWRlcnMg
dGhhdCBjb25uZWN0aW9uIHRpbWUgaW52b2x2ZXMgZG5zLCBwcm94eSAmIFRMUyBuZWdvdGlhdGlv
bi4uLgogICAgICAgICAvLyBzbyB3ZSBiZXR0ZXIgcGljayBHX1NPQ0tFVF9DTElFTlRfQ09NUExF
VEUgZm9yIGNvbm5lY3RFbmQKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElF
TlRfUFJPWFlfTkVHT1RJQVRJTkc6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2Fk
VGltaW5nKCktPnByb3h5U3RhcnQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgR19TT0NLRVRfQ0xJRU5UX1BST1hZX05FR09USUFURUQ6Ci0gICAgICAgIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnByb3h5RW5kID0gZGVsdGFUaW1lOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9UTFNfSEFORFNIQUtJTkc6Ci0gICAgICAg
IGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0ID0gZGVsdGFUaW1l
OworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZXRTZWN1cmVD
b25uZWN0aW9uU3RhcnRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfVExTX0hBTkRTSEFLRUQ6Ci0gICAg
ICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbEVuZCA9IGRlbHRhVGlt
ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfQ09NUExFVEU6Ci0g
ICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RFbmQgPSBk
ZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNl
dENvbm5lY3RFbmRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC05
ODAsNyArOTMzLDYgQEAgc3RhdGljIGJvb2wgY3JlYXRlU291cE1lc3NhZ2VGb3JIYW5kbGVBbgog
ICAgIGQtPm1fcmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWlu
Zzo6Y3JlYXRlKCkpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2FnZS5nZXQo
KSwgIm5ldHdvcmstZXZlbnQiLCBHX0NBTExCQUNLKG5ldHdvcmtFdmVudENhbGxiYWNrKSwgaGFu
ZGxlKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksICJyZXN0
YXJ0ZWQiLCBHX0NBTExCQUNLKHJlc3RhcnRlZENhbGxiYWNrKSwgaGFuZGxlKTsKLSAgICBnX3Np
Z25hbF9jb25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksICJ3cm90ZS1ib2R5IiwgR19DQUxM
QkFDSyh3cm90ZUJvZHlDYWxsYmFjayksIGhhbmRsZSk7CiAjZW5kaWYKIAogI2lmIFNPVVBfQ0hF
Q0tfVkVSU0lPTigyLCA0MywgMSkKQEAgLTEwNTQsNyArMTAwNiw3IEBAIHZvaWQgUmVzb3VyY2VI
YW5kbGU6OnNlbmRQZW5kaW5nUmVxdWVzdCgKIHsKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKICAg
ICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAgZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUgPSBtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKTsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS0+c2V0UmVxdWVzdFN0YXJ0VGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7
CiAjZW5kaWYKIAogICAgIGlmIChkLT5tX2ZpcnN0UmVxdWVzdC50aW1lb3V0SW50ZXJ2YWwoKSA+
IDApIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE0LTA1LTA2ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJv
Z3Jlc3Mgb24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmVuY29kZSk6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlY29kZSk6CisgICAgICAg
IFRyYW5zZmVyIHdlYiB0aW1pbmcgZGF0YS4KKwogMjAxNC0wNS0wNiAgQmVuamFtaW4gUG91bGFp
biAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXVtXSzJdIEFkZCB0YXAgaGln
aGxpZ2h0IG9uIHRoZSBzaW1wbGUgVUlUYXBHZXN0dXJlUmVjb2duaXplcgpJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAJKHJldmlzaW9u
IDE2ODM5MikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02ODgsOCArNjg4LDIxIEBAIHZvaWQgQXJndW1lbnRDb2Rl
cjxSZXNvdXJjZVJlc3BvbnNlPjo6ZW4KICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlc3Bv
bnNlLmh0dHBTdGF0dXNUZXh0KCk7CiAgICAgICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXNwb25z
ZS5zdWdnZXN0ZWRGaWxlbmFtZSgpOwogICAgIH0KKyAgICAKKyAgICBSZXNvdXJjZUxvYWRUaW1p
bmcqIHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAg
Ym9vbCBoYXNSZXNvdXJjZUxvYWRUaW1pbmcgPSB0aW1pbmc7CisgICAgZW5jb2RlciA8PCBoYXNS
ZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgaWYgKGhhc1Jlc291cmNlTG9hZFRpbWluZykgeworICAg
ICAgICBlbmNvZGVyIDw8IHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnRUaW1lKCk7CisgICAgICAg
IGVuY29kZXIgPDwgdGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCk7CisgICAgICAgIGVuY29k
ZXIgPDwgdGltaW5nLT5jb25uZWN0U3RhcnRUaW1lKCk7CisgICAgICAgIGVuY29kZXIgPDwgdGlt
aW5nLT5jb25uZWN0RW5kVGltZSgpOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+c2VjdXJl
Q29ubmVjdGlvblN0YXJ0VGltZSgpOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+cmVxdWVz
dFN0YXJ0VGltZSgpOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+cmVzcG9uc2VTdGFydFRp
bWUoKTsKKyAgICB9CiB9Ci0KKyAgICAKIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3Bv
bnNlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VSZXNwb25zZSYg
cmVzb3VyY2VSZXNwb25zZSkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTc1NSwxMiArNzY4
LDQyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGUKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzcG9uc2Uuc2V0U3VnZ2VzdGVkRmlsZW5hbWUo
c3VnZ2VzdGVkRmlsZW5hbWUpOwogICAgIH0KLQorICAgIAorICAgIGJvb2wgaGFzUmVzb3VyY2VM
b2FkVGltaW5nOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzUmVzb3VyY2VMb2FkVGltaW5n
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChoYXNSZXNvdXJjZUxvYWRUaW1pbmcp
IHsKKyAgICAgICAgZG91YmxlIGRvbWFpbkxvb2t1cFN0YXJ0VGltZTsKKyAgICAgICAgZG91Ymxl
IGRvbWFpbkxvb2t1cEVuZFRpbWU7CisgICAgICAgIGRvdWJsZSBjb25uZWN0U3RhcnRUaW1lOwor
ICAgICAgICBkb3VibGUgY29ubmVjdEVuZFRpbWU7CisgICAgICAgIGRvdWJsZSBzZWN1cmVDb25u
ZWN0aW9uU3RhcnRUaW1lOworICAgICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0VGltZTsKKyAgICAg
ICAgZG91YmxlIHJlc3BvbnNlU3RhcnRUaW1lOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGRvbWFpbkxvb2t1cFN0YXJ0VGltZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShk
b21haW5Mb29rdXBFbmRUaW1lKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGNvbm5l
Y3RTdGFydFRpbWUpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoY29ubmVjdEVuZFRp
bWUpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoc2VjdXJlQ29ubmVjdGlvblN0YXJ0
VGltZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0U3RhcnRUaW1lKQor
ICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHJlc3BvbnNlU3RhcnRUaW1lKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUmVzb3VyY2VMb2FkVGltaW5nKiB0aW1pbmcg
PSByZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICAgICAgQVNTRVJUKHRpbWluZyk7
CisgICAgICAgIHRpbWluZy0+c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKGRvbWFpbkxvb2t1cFN0
YXJ0VGltZSk7CisgICAgICAgIHRpbWluZy0+c2V0RG9tYWluTG9va3VwRW5kVGltZShkb21haW5M
b29rdXBFbmRUaW1lKTsKKyAgICAgICAgdGltaW5nLT5zZXRDb25uZWN0U3RhcnRUaW1lKGNvbm5l
Y3RTdGFydFRpbWUpOworICAgICAgICB0aW1pbmctPnNldENvbm5lY3RFbmRUaW1lKGNvbm5lY3RF
bmRUaW1lKTsKKyAgICAgICAgdGltaW5nLT5zZXRTZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKHNl
Y3VyZUNvbm5lY3Rpb25TdGFydFRpbWUpOworICAgICAgICB0aW1pbmctPnNldFJlcXVlc3RTdGFy
dFRpbWUocmVxdWVzdFN0YXJ0VGltZSk7CisgICAgICAgIHRpbWluZy0+c2V0UmVzcG9uc2VTdGFy
dFRpbWUocmVzcG9uc2VTdGFydFRpbWUpOworICAgIH0KKyAgICAKICAgICByZXNvdXJjZVJlc3Bv
bnNlID0gcmVzcG9uc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLQorICAgIAogdm9pZCBBcmd1
bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogewogICAgIGlmIChrU2hvdWxk
U2VyaWFsaXplV2ViQ29yZURhdGEpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231078</attachid>
            <date>2014-05-08 10:35:57 -0700</date>
            <delta_ts>2014-05-08 10:47:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140508103533.patch</filename>
            <type>text/plain</type>
            <size>55759</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExMyBAQAorMjAxNC0wNS0wNyAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFByb2dyZXNz
IG9uIHdlYiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBBZGRlZCBsaW5rZXIgc3ltYm9sLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
T2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVj
dEZvckNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNl
QWdlbnQ6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb246CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2Fk
VGltaW5nIHZhbHVlcyBhbmQgcmVtb3ZlZCB1bnVzZWQgcGFyYW1ldGVycy4KKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QpOgorICAgICAgICBLZWVwIGEgcmVjb3JkIG9mIGEgY3Jv
c3Mgb3JpZ2luIHJlZGlyZWN0IGV2ZW4gaWYgeW91IGFyZSByZWRpcmVjdGVkIGJhY2suCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6IERl
bGV0ZWQuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICBS
ZW1vdmVkIHVudXNlZCBzZXROYXZpZ2F0aW9uU3RhcnQgbWV0aG9kIGRlY2xhcmF0aW9uLgorICAg
ICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgdXJsLgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1
cEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25u
ZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6
Y29ubmVjdEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
OjpzZWN1cmVDb25uZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlRW5kKToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgdmFsdWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6cmVzcG9uc2VTdGFydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDoK
KyAgICAgICAgUmVtb3ZlZCByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzIGRlY2xh
cmF0aW9uLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6Cisg
ICAgICAgIFJlbW92ZWQgcmVzcG9uc2VTdGFydC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuaDoKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6
CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXNl
IG5ldyBSZXNvdXJjZUxvYWRUaW1pbmcgbWV0aG9kcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRp
dmVUb0Fic29sdXRlKToKKyAgICAgICAgUmVwbGFjZWQgcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZl
VG9BYnNvbHV0ZSB3aXRoIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMKKyAg
ICAgICAgYmVjYXVzZSBvZiBuZXcgc3RvcmFnZSBmb3JtYXQgaW4gUmVzb3VyY2VMb2FkVGltaW5n
LgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaDoKKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmlkbDoKKyAgICAgICAgVXBkYXRlZCBzcGVjIHVybC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkVGltaW5nOjpSZXNvdXJjZUxvYWRUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkVGltaW5nOjpkZWVwQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpvcGVyYXRvciE9KToKKyAgICAgICAgTW92ZWQgZnJvbSBSZXNvdXJjZUxvYWRUaW1pbmcuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9h
ZFRpbWVUb01vbm90b25pY1RpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRv
bWFpbkxvb2t1cFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1p
bmc6OmRvbWFpbkxvb2t1cEVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
VGltaW5nOjpjb25uZWN0U3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZFRpbWluZzo6Y29ubmVjdEVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
VGltaW5nOjpzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlTG9hZFRpbWluZzo6cmVxdWVzdFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRUaW1pbmc6OnJlc3BvbnNlU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZFRpbWluZzo6c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6c2V0RG9tYWluTG9va3VwRW5kVGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldENvbm5lY3RTdGFydFRpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRDb25uZWN0RW5kVGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldFNlY3VyZUNvbm5l
Y3Rpb25TdGFydFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpz
ZXRSZXF1ZXN0U3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWlu
Zzo6c2V0UmVzcG9uc2VTdGFydFRpbWUpOgorICAgICAgICBBZGRlZCBhY2Nlc3NvcnMgaW5zdGVh
ZCBvZiBoYXZpbmcgcHVibGljIG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZFRpbWluZzo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpSZXNvdXJjZUxvYWRUaW1pbmcpOgorICAgICAgICBNb3ZlZCBpbXBsZW1lbnRhdGlvbnMgdG8g
UmVzb3VyY2VMb2FkVGltaW5nLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2VC
YXNlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZSk6CisgICAgICAgIEluaXRpYWxpemUgbV9yZXNvdXJj
ZUxvYWRUaW1pbmcgd2hpY2ggaXMgdXNlZCBub3cuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKToKKyAgICAgICAgQ2FsbCBfc2V0Q29sbGVjdHNU
aW1pbmdEYXRhIHRvIGNvbGxlY3QgdGltaW5nIGRhdGEgZm9yIHdlYiB0aW1pbmcuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6CisgICAg
ICAgIFB1dCB0aW1pbmcgZGF0YSBpbnRvIFJlc291cmNlTG9hZFRpbWluZyBkYXRhIHN0cnVjdHVy
ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmdvdEhlYWRlcnNDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpyZXN0YXJ0ZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6ZGlkU3RhcnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdvcmtFdmVudENhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNvdXBNZXNzYWdlRm9ySGFuZGxlQW5kUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdSZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Om1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAg
ICAgVXNlIG5ldyBSZXNvdXJjZUxvYWRUaW1pbmcgbWV0aG9kcy4KKwogMjAxNC0wNS0wNiAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbmltYXRlIEFW
UGxheWVyTGF5ZXIgaW50byBhbmQgb3V0IG9mIGZ1bGwgc2NyZWVuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTc3MSw2ICs3NzEsNyBAQCBfX1pON1dlYkNvcmUxOFBsYXRm
b3JtUGFzdGVib2FyZDhhZGRUeXBlCiBfX1pON1dlYkNvcmUxOFBsYXRmb3JtUGFzdGVib2FyZDhn
ZXRUeXBlc0VSTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZs
b3dFRUUKIF9fWk43V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkOHNldFR5cGVzRVJLTjNXVEY2
VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUUKIF9fWk43V2Vi
Q29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkQzFFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUx
OFJlc291cmNlTG9hZFRpbWluZ0MxRXYKIF9fWk43V2ViQ29yZTE4U3R5bGVTaGVldENvbnRlbnRz
MTFwYXJzZVN0cmluZ0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4U3R5bGVTaGVldENv
bnRlbnRzQzFFUE5TXzE1U3R5bGVSdWxlSW1wb3J0RVJLTjNXVEY2U3RyaW5nRVJLTlNfMTZDU1NQ
YXJzZXJDb250ZXh0RQogX19aTjdXZWJDb3JlMThTdHlsZVNoZWV0Q29udGVudHNEMUV2CkBAIC04
NDUsNiArODQ2LDcgQEAgX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE3c2V0SAog
X19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE4c2V0SFRUUEhlYWRlckZpZWxkRVJL
TjNXVEYxMkF0b21pY1N0cmluZ0VSS05TMV82U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJj
ZVJlc3BvbnNlQmFzZTE5c2V0VGV4dEVuY29kaW5nTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dlc3RlZEZpbGVuYW1lRVJLTjNX
VEY2U3RyaW5nRQorX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTIxc2V0UmVzb3Vy
Y2VMb2FkVGltaW5nRU4zV1RGMTBQYXNzUmVmUHRySU5TXzE4UmVzb3VyY2VMb2FkVGltaW5nRUVF
CiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMjRzZXRFeHBlY3RlZENvbnRlbnRM
ZW5ndGhFeAogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTZzZXRVUkxFUktOU18z
VVJMRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZUMyRXYKQEAgLTE3NTUsNiAr
MTc1Nyw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTVodHQKIF9fWk5L
N1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTZodHRwSGVhZGVyRmllbGRzRXYKIF9fWk5L
N1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTZ0ZXh0RW5jb2RpbmdOYW1lRXYKIF9fWk5L
N1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzdWdnZXN0ZWRGaWxlbmFtZUV2CitfX1pO
SzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE4cmVzb3VyY2VMb2FkVGltaW5nRXYKIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMjFleHBlY3RlZENvbnRlbnRMZW5ndGhF
dgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UzdXJsRXYKIF9fWk5LN1dlYkNv
cmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNmlzSFRUUEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCShyZXZpc2lvbiAx
NjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMCwyMSArMjAwLDE2IEBAIHN0YXRpYyBQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKICAgICByZXR1cm4gaGVhZGVyc09iamVjdDsKIH0K
IAotc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVz
b3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWlu
ZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBhc3NSZWZQdHI8SW5z
cGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0
Rm9yVGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nKQogewogICAgIHJldHVy
biBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNvdXJjZVRpbWluZzo6Y3JlYXRl
KCkKLSAgICAgICAgLnNldFJlcXVlc3RUaW1lKGxvYWRlci0+dGltaW5nKCktPm1vbm90b25pY1Rp
bWVUb1BzZXVkb1dhbGxUaW1lKHRpbWluZy5jb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3Rv
bmljVGltZSgwKSkpCi0gICAgICAgIC5zZXRQcm94eVN0YXJ0KHRpbWluZy5wcm94eVN0YXJ0KQot
ICAgICAgICAuc2V0UHJveHlFbmQodGltaW5nLnByb3h5RW5kKQotICAgICAgICAuc2V0RG5zU3Rh
cnQodGltaW5nLmRuc1N0YXJ0KQotICAgICAgICAuc2V0RG5zRW5kKHRpbWluZy5kbnNFbmQpCi0g
ICAgICAgIC5zZXRDb25uZWN0U3RhcnQodGltaW5nLmNvbm5lY3RTdGFydCkKLSAgICAgICAgLnNl
dENvbm5lY3RFbmQodGltaW5nLmNvbm5lY3RFbmQpCi0gICAgICAgIC5zZXRTc2xTdGFydCh0aW1p
bmcuc3NsU3RhcnQpCi0gICAgICAgIC5zZXRTc2xFbmQodGltaW5nLnNzbEVuZCkKLSAgICAgICAg
LnNldFNlbmRTdGFydCh0aW1pbmcuc2VuZFN0YXJ0KQotICAgICAgICAuc2V0U2VuZEVuZCh0aW1p
bmcuc2VuZEVuZCkKLSAgICAgICAgLnNldFJlY2VpdmVIZWFkZXJzRW5kKHRpbWluZy5yZWNlaXZl
SGVhZGVyc0VuZCkKKyAgICAgICAgLnNldERvbWFpbkxvb2t1cFN0YXJ0VGltZSh0aW1pbmcuZG9t
YWluTG9va3VwU3RhcnRUaW1lKCkpCisgICAgICAgIC5zZXREb21haW5Mb29rdXBFbmRUaW1lKHRp
bWluZy5kb21haW5Mb29rdXBFbmRUaW1lKCkpCisgICAgICAgIC5zZXRDb25uZWN0U3RhcnRUaW1l
KHRpbWluZy5jb25uZWN0U3RhcnRUaW1lKCkpCisgICAgICAgIC5zZXRDb25uZWN0RW5kVGltZSh0
aW1pbmcuY29ubmVjdEVuZFRpbWUoKSkKKyAgICAgICAgLnNldFNlY3VyZUNvbm5lY3Rpb25TdGFy
dFRpbWUodGltaW5nLnNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKSkKKyAgICAgICAgLnNldFJl
cXVlc3RTdGFydFRpbWUodGltaW5nLnJlcXVlc3RTdGFydFRpbWUoKSkKKyAgICAgICAgLnNldFJl
c3BvbnNlU3RhcnRUaW1lKHRpbWluZy5yZXNwb25zZVN0YXJ0VGltZSgpKQogICAgICAgICAucmVs
ZWFzZSgpOwogfQogCkBAIC0yMjksNyArMjI0LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVj
dG9yOjpUeXBlQnVpbGRlcgogICAgIHJldHVybiByZXF1ZXN0T2JqZWN0OwogfQogCi1zdGF0aWMg
UGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNwb25zZT4gYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAocmVz
cG9uc2UuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjQ4LDE5ICsyNDMs
MTkgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcgogCiAgICAgcmVz
cG9uc2VPYmplY3QtPnNldEZyb21EaXNrQ2FjaGUocmVzcG9uc2Uud2FzQ2FjaGVkKCkpOwogICAg
IGlmIChyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAgcmVzcG9uc2VPYmpl
Y3QtPnNldFRpbWluZyhidWlsZE9iamVjdEZvclRpbWluZygqcmVzcG9uc2UucmVzb3VyY2VMb2Fk
VGltaW5nKCksIGxvYWRlcikpOworICAgICAgICByZXNwb25zZU9iamVjdC0+c2V0VGltaW5nKGJ1
aWxkT2JqZWN0Rm9yVGltaW5nKCpyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkpOwogCiAg
ICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0OwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0
b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JD
YWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIERvY3VtZW50TG9h
ZGVyKiBsb2FkZXIpCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpO
ZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlw
ZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlPiByZXNvdXJjZU9iamVjdCA9IEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlOjpjcmVhdGUoKQogICAg
ICAgICAuc2V0VXJsKGNhY2hlZFJlc291cmNlLT51cmwoKSkKICAgICAgICAgLnNldFR5cGUoSW5z
cGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZVR5cGVKc29uKCpjYWNoZWRSZXNvdXJjZSkp
CiAgICAgICAgIC5zZXRCb2R5U2l6ZShjYWNoZWRSZXNvdXJjZS0+ZW5jb2RlZFNpemUoKSk7CiAK
LSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IHJl
c291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UoY2FjaGVkUmVz
b3VyY2UtPnJlc3BvbnNlKCksIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1
aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0gYnVpbGRPYmplY3RG
b3JSZXNvdXJjZVJlc3BvbnNlKGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpKTsKICAgICBpZiAo
cmVzb3VyY2VSZXNwb25zZSkKICAgICAgICAgcmVzb3VyY2VPYmplY3QtPnNldFJlc3BvbnNlKHJl
c291cmNlUmVzcG9uc2UpOwogCkBAIC0zMjQsNyArMzE5LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNv
dXJjZUFnZW50Ojp3aWxsU2VuZFJlcQogICAgIEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlBhZ2U6
OlJlc291cmNlVHlwZTo6RW51bSByZXNvdXJjZVR5cGUgPSBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJl
c291cmNlVHlwZUpzb24odHlwZSk7CiAKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRl
cjo6TmV0d29yazo6SW5pdGlhdG9yPiBpbml0aWF0b3JPYmplY3QgPSBidWlsZEluaXRpYXRvck9i
amVjdChsb2FkZXItPmZyYW1lKCkgPyBsb2FkZXItPmZyYW1lKCktPmRvY3VtZW50KCkgOiBudWxs
cHRyKTsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVzdFdpbGxCZVNlbnQocmVxdWVz
dElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXItPmZyYW1lKCkpLCBtX3BhZ2VBZ2VudC0+
bG9hZGVySWQobG9hZGVyKSwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKSwgYnVpbGRPYmplY3RGb3JS
ZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGN1cnJlbnRUaW1lKCksIGluaXRpYXRvck9iamVjdCwg
YnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UsIGxvYWRlciks
IHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8gJnJlc291cmNlVHlw
ZSA6IG51bGxwdHIpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1ZXN0V2lsbEJlU2Vu
dChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+ZnJhbWUoKSksIG1fcGFn
ZUFnZW50LT5sb2FkZXJJZChsb2FkZXIpLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBidWlsZE9i
amVjdEZvclJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgY3VycmVudFRpbWUoKSwgaW5pdGlhdG9y
T2JqZWN0LCBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSks
IHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8gJnJlc291cmNlVHlw
ZSA6IG51bGxwdHIpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Om1hcmtSZXNv
dXJjZUFzQ2FjaGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKQEAgLTM0MSw3ICszMzYsNyBA
QCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJ
ZChpZGVudGlmaWVyKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29y
azo6UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVz
cG9uc2UocmVzcG9uc2UsIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxk
ZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0gYnVpbGRPYmplY3RGb3JS
ZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKTsKIAogICAgIGJvb2wgaXNOb3RNb2RpZmllZCA9IHJl
c3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gMzA0OwogCkBAIC00NjAsNyArNDU1LDcgQEAgdm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2FkUmVzbwogCiAgICAgUmVmUHRyPEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkluaXRpYXRvcj4gaW5pdGlhdG9yT2JqZWN0ID0g
YnVpbGRJbml0aWF0b3JPYmplY3QobG9hZGVyLT5mcmFtZSgpID8gbG9hZGVyLT5mcmFtZSgpLT5k
b2N1bWVudCgpIDogbnVsbHB0cik7CiAKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVz
dFNlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1ZXN0SWQsIGZyYW1lSWQsIGxvYWRlcklkLCBsb2Fk
ZXItPnVybCgpLnN0cmluZygpLCBjdXJyZW50VGltZSgpLCBpbml0aWF0b3JPYmplY3QsIGJ1aWxk
T2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2UsIGxvYWRlcikpOworICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyLT5yZXF1ZXN0U2VydmVkRnJvbU1lbW9yeUNhY2hlKHJlcXVlc3RJZCwgZnJh
bWVJZCwgbG9hZGVySWQsIGxvYWRlci0+dXJsKCkuc3RyaW5nKCksIGN1cnJlbnRUaW1lKCksIGlu
aXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShyZXNvdXJjZSkpOwog
fQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEluaXRpYWxTY3JpcHRDb250ZW50
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgbWFya1Jlc291cmNlQXNDYWNoZWQodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsYW9kZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBSZXNvdXJjZUxvYWRlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3Bv
bnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRh
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5n
dGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBkb3VibGUgZmluaXNoVGlt
ZSk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCShyZXZpc2lvbiAxNjgzOTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiwxOCArMzIsMTMgQEAKICAgICAgICAgICAgICJ0eXBlIjogIm9iamVj
dCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGltaW5nIGluZm9ybWF0aW9uIGZvciB0
aGUgcmVxdWVzdC4iLAogICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJyZXF1ZXN0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJUaW1pbmcncyByZXF1ZXN0VGltZSBpcyBhIGJhc2VsaW5lIGluIHNlY29uZHMsIHdoaWxl
IHRoZSBvdGhlciBudW1iZXJzIGFyZSB0aWNrcyBpbiBtaWxsaXNlY29uZHMgcmVsYXRpdmVseSB0
byB0aGlzIHJlcXVlc3RUaW1lLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3h5
U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCByZXNvbHZp
bmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJveHlFbmQiLCAidHlw
ZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgcmVzb2x2aW5nIHByb3h5LiIg
fSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRuc1N0YXJ0IiwgInR5cGUiOiAibnVtYmVy
IiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0sCi0gICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJkbnNFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3Jp
cHRpb24iOiAiRmluaXNoZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJjb25uZWN0U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRp
b24iOiAiU3RhcnRlZCBjb25uZWN0aW5nIHRvIHRoZSByZW1vdGUgaG9zdC4iIH0sCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0RW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2Ny
aXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAic3NsU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24i
OiAiU3RhcnRlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNzbEVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBTU0wg
aGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbmRTdGFydCIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHNlbmRpbmcgcmVxdWVzdC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzZW5kRW5kIiwgInR5cGUiOiAibnVtYmVy
IiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHNlbmRpbmcgcmVxdWVzdC4iIH0sCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJyZWNlaXZlSGVhZGVyc0VuZCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCByZWNlaXZpbmcgcmVzcG9uc2UgaGVhZGVycy4iIH0K
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cFN0YXJ0VGltZSIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIEROUyBhZGRyZXNzIHJlc29sdmUi
IH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb21haW5Mb29rdXBFbmRUaW1lIiwgInR5
cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIEROUyBhZGRyZXNzIHJlc29s
dmUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29ubmVjdFN0YXJ0VGltZSIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5lY3RpbmcgdG8gdGhl
IHJlbW90ZSBob3N0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RFbmRU
aW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUg
cmVtb3RlIGhvc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VjdXJlQ29ubmVj
dGlvblN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVk
IFNTTCBoYW5kc2hha2UuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdFN0
YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHNlbmRp
bmcgcmVxdWVzdC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNwb25zZVN0YXJ0
VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlY2Vpdmlu
ZyByZXNwb25zZS4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewpJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAJKHJldmlz
aW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NiwxMiArNzYsNiBAQCB2b2lkIERvY3VtZW50TG9hZFRp
bWluZzo6bWFya05hdmlnYXRpb25TCiAgICAgbV9yZWZlcmVuY2VXYWxsVGltZSA9IGN1cnJlbnRU
aW1lKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjpzZXROYXZpZ2F0aW9uU3RhcnQo
ZG91YmxlIG5hdmlnYXRpb25TdGFydCkKLXsKLSAgICBBU1NFUlQobV9yZWZlcmVuY2VNb25vdG9u
aWNUaW1lICYmIG1fcmVmZXJlbmNlV2FsbFRpbWUpOwotICAgIG1fbmF2aWdhdGlvblN0YXJ0ID0g
bmF2aWdhdGlvblN0YXJ0OwotfQotCiB2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6YWRkUmVkaXJl
Y3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1VybCwgY29uc3QgVVJMJiByZWRpcmVjdGVkVXJsKQog
ewogICAgIG1fcmVkaXJlY3RDb3VudCsrOwpAQCAtOTAsNyArODQsNyBAQCB2b2lkIERvY3VtZW50
TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QoY29uCiAgICAgbV9yZWRpcmVjdEVuZCA9IG1fZmV0Y2hT
dGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogICAgIC8vIENoZWNrIGlmIHRo
ZSByZWRpcmVjdGVkIHVybCBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgcmVkaXJlY3RpbmcgdXJs
J3MgdGltaW5nIGluZm9ybWF0aW9uLgogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVkaXJl
Y3RlZFNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZWRpcmVjdGVkVXJs
KTsKLSAgICBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgPSAhcmVkaXJlY3RlZFNlY3VyaXR5T3Jp
Z2luLT5jYW5SZXF1ZXN0KHJlZGlyZWN0aW5nVXJsKTsKKyAgICBtX2hhc0Nyb3NzT3JpZ2luUmVk
aXJlY3QgPSBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgfHwgIXJlZGlyZWN0ZWRTZWN1cml0eU9y
aWdpbi0+Y2FuUmVxdWVzdChyZWRpcmVjdGluZ1VybCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgJ
KHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRU
aW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAgICAgZG91
YmxlIG1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKGRvdWJsZSkgY29uc3Q7CiAKICAgICB2
b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKLSAgICB2b2lkIHNldE5hdmlnYXRpb25TdGFydChk
b3VibGUpOwogICAgIHZvaWQgYWRkUmVkaXJlY3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1VybCwg
Y29uc3QgVVJMJiByZWRpcmVjdGVkVXJsKTsKIAogICAgIHZvaWQgbWFya1VubG9hZEV2ZW50U3Rh
cnQoKSB7IG1fdW5sb2FkRXZlbnRTdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAkocmV2aXNpb24gMTY4Mzky
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8gU2VlOiBodHRwOi8v
ZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisvLyBTZWU6IGh0dHBzOi8vZHZjcy53
My5vcmcvaGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3MvTmF2aWdhdGlvblRpbWluZy9PdmVy
dmlldy5odG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAgICBFdmVudFRhcmdl
dCwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzExMiw3
IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZWRpcmUKIGRvdWJsZSBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KCkgY29uc3QKIHsKICAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgYmUgZGlmZmVyZW50IGRlcGVuZGluZyBvbiByZWRpcmVjdHMuCi0gICAg
cmV0dXJuIChzdGFydFRpbWUoKSk7CisgICAgcmV0dXJuIHN0YXJ0VGltZSgpOwogfQogCiBkb3Vi
bGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluTG9va3VwU3RhcnQoKSBjb25zdApA
QCAtMTIwLDEwICsxMjAsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRv
bWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAgICAgICByZXR1cm4gMC4w
OwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zU3RhcnQgPCAwKQorICAgIGlm
ICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0VGltZSgpIDwgMCkKICAg
ICAgICAgcmV0dXJuIGZldGNoU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0Rv
Y3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNTdGFydCk7CisgICAgcmV0dXJuIG1fdGlt
aW5nLT5kb21haW5Mb29rdXBTdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xMzEsMTAgKzEzMSwxMCBA
QCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluCiAgICAgaWYgKCFtX3No
b3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGlt
aW5nIHx8IG1fdGltaW5nLT5kbnNFbmQgPCAwKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1p
bmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA8IDApCiAgICAgICAgIHJldHVybiBkb21haW5Mb29r
dXBTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29u
ZHMobV90aW1pbmctPmRuc0VuZCk7CisgICAgcmV0dXJuIG1fdGltaW5nLT5kb21haW5Mb29rdXBF
bmRUaW1lKCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25uZWN0
U3RhcnQoKSBjb25zdApAQCAtMTQzLDE1ICsxNDMsMTUgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmNvbm5lYwogICAgICAgICByZXR1cm4gMC4wOwogCiAgICAgLy8gY29ubmVj
dFN0YXJ0IHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVxdWVzdCBpcyBub3QgbWFkZS4KLSAg
ICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5jb25uZWN0U3RhcnQgPCAwIHx8IG1fZGlkUmV1
c2VDb25uZWN0aW9uKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmNvbm5lY3RTdGFy
dFRpbWUoKSA8IDAgfHwgbV9kaWRSZXVzZUNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiBkb21h
aW5Mb29rdXBFbmQoKTsKIAogICAgIC8vIGNvbm5lY3RTdGFydCBpbmNsdWRlcyBhbnkgRE5TIHRp
bWUsIHNvIHdlIG1heSBuZWVkIHRvIHRyaW0gdGhhdCBvZmYuCi0gICAgaW50IGNvbm5lY3RTdGFy
dCA9IG1fdGltaW5nLT5jb25uZWN0U3RhcnQ7Ci0gICAgaWYgKG1fdGltaW5nLT5kbnNFbmQgPj0g
MCkKLSAgICAgICAgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmRuc0VuZDsKKyAgICBkb3VibGUg
Y29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmNvbm5lY3RTdGFydFRpbWUoKTsKKyAgICBpZiAobV90
aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA+PSAwKQorICAgICAgICBjb25uZWN0U3RhcnQg
PSBtX3RpbWluZy0+ZG9tYWluTG9va3VwRW5kVGltZSgpOwogCi0gICAgcmV0dXJuIHJlc291cmNl
VGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoY29ubmVjdFN0YXJ0KTsKKyAgICByZXR1cm4gY29u
bmVjdFN0YXJ0OwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVj
dEVuZCgpIGNvbnN0CkBAIC0xNjAsMTAgKzE2MCwxMCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6Y29ubmVjCiAgICAgICAgIHJldHVybiAwLjA7CiAKICAgICAvLyBjb25uZWN0
U3RhcnQgd2lsbCBiZSAtMSB3aGVuIGEgbmV0d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgotICAg
IGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmNvbm5lY3RFbmQgPCAwIHx8IG1fZGlkUmV1c2VD
b25uZWN0aW9uKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmNvbm5lY3RFbmRUaW1l
KCkgPCAwIHx8IG1fZGlkUmV1c2VDb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gY29ubmVjdFN0
YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyht
X3RpbWluZy0+Y29ubmVjdEVuZCk7CisgICAgcmV0dXJuIG1fdGltaW5nLT5jb25uZWN0RW5kVGlt
ZSgpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6c2VjdXJlQ29ubmVj
dGlvblN0YXJ0KCkgY29uc3QKQEAgLTE3MSwxMCArMTcxLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nOjpzZWN1cmUKICAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykK
ICAgICAgICAgcmV0dXJuIDAuMDsKIAotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNz
bFN0YXJ0IDwgMCkgLy8gU2VjdXJlIGNvbm5lY3Rpb24gbm90IG5lZ290aWF0ZWQuCisgICAgaWYg
KCFtX3RpbWluZyB8fCBtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSgpIDwgMCkg
Ly8gU2VjdXJlIGNvbm5lY3Rpb24gbm90IG5lZ290aWF0ZWQuCiAgICAgICAgIHJldHVybiAwLjA7
CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWlu
Zy0+c3NsU3RhcnQpOworICAgIHJldHVybiBtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0
VGltZSgpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0
YXJ0KCkgY29uc3QKQEAgLTE4NSwzMyArMTg1LDE1IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpyZXF1ZXMKICAgICBpZiAoIW1fdGltaW5nKQogICAgICAgICByZXR1cm4gY29u
bmVjdEVuZCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29u
ZHMobV90aW1pbmctPnNlbmRTdGFydCk7Ci19Ci0KLWRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKLXsKLSAgICBpZiAoIW1fc2hvdWxkUmVwb3J0
RGV0YWlscykKLSAgICAgICAgcmV0dXJuIDAuMDsKLQotICAgIGlmICghbV90aW1pbmcpCi0gICAg
ICAgIHJldHVybiByZXF1ZXN0U3RhcnQoKTsKLSAgICAvLyBGSVhNRTogVGhpcyBudW1iZXIgaXNu
J3QgZXhhY3RseSBjb3JyZWN0LiBTZWUgdGhlIG5vdGVzIGluIFBlcmZvcm1hbmNlVGltaW5nOjpy
ZXNwb25zZVN0YXJ0KCkuCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNl
Y29uZHMobV90aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kKTsKKyAgICByZXR1cm4gbV90aW1pbmct
PnJlcXVlc3RTdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZmluaXNoVGltZSkKICAgICAg
ICAgcmV0dXJuIHJlc3BvbnNlU3RhcnQoKTsKLQotICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9E
b2N1bWVudE1pbGxpc2Vjb25kcyhtX3JlcXVlc3RpbmdEb2N1bWVudC5nZXQoKSwgbV9maW5pc2hU
aW1lKTsKLX0KLQotZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc291cmNlVGlt
ZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdAotewot
ICAgIGlmICghZGVsdGFNaWxsaXNlY29uZHMpCi0gICAgICAgIHJldHVybiAwLjA7Ci0gICAgcmV0
dXJuIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3Vt
ZW50LmdldCgpLCBtX3RpbWluZy0+cmVxdWVzdFRpbWUpICsgZGVsdGFNaWxsaXNlY29uZHM7Cisg
ICAgCisgICAgcmV0dXJuIG1fZmluaXNoVGltZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw2IEBAIHB1Ymxp
YzoKICAgICBkb3VibGUgY29ubmVjdEVuZCgpIGNvbnN0OwogICAgIGRvdWJsZSBzZWN1cmVDb25u
ZWN0aW9uU3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0KCkgY29uc3Q7Ci0g
ICAgZG91YmxlIHJlc3BvbnNlU3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVzcG9uc2VFbmQo
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Jlc291cmNlKCkgeyByZXR1cm4gdHJ1ZTsg
fQpAQCAtNzQsOCArNzMsNiBAQCBwcml2YXRlOgogICAgIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0YXRvclR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJs
ZSBmaW5pc2hUaW1lLCBEb2N1bWVudCopOwogICAgIH5QZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
KCk7CiAKLSAgICBkb3VibGUgcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhpbnQg
ZGVsdGFNaWxsaXNlY29uZHMpIGNvbnN0OwotCiAgICAgQXRvbWljU3RyaW5nIG1faW5pdGlhdG9y
VHlwZTsKICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBtX3RpbWluZzsKICAgICBkb3Vi
bGUgbV9maW5pc2hUaW1lOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC00Myw2ICs0Myw1IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3Vi
bGUgY29ubmVjdEVuZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJp
Y3RlZCBkb3VibGUgcmVxdWVzdFN0YXJ0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3Ry
aWN0ZWQgZG91YmxlIHJlc3BvbnNlU3RhcnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVz
dHJpY3RlZCBkb3VibGUgcmVzcG9uc2VFbmQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsMTEg
KzEzMCwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAg
ICAvLyBUaGlzIHdpbGwgYmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQu
CiAgICAgLy8gUmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNh
dGVzIG5vIEROUywgd2UgImJhY2tmaWxsIiB3aXRoIGZldGNoU3RhcnQuCi0gICAgaW50IGRuc1N0
YXJ0ID0gdGltaW5nLT5kbnNTdGFydDsKKyAgICBkb3VibGUgZG5zU3RhcnQgPSB0aW1pbmctPmRv
bWFpbkxvb2t1cFN0YXJ0VGltZSgpOwogICAgIGlmIChkbnNTdGFydCA8IDApCiAgICAgICAgIHJl
dHVybiBmZXRjaFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZl
VG9BYnNvbHV0ZShkbnNTdGFydCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVUb0ludGVn
ZXJNaWxsaXNlY29uZHMoZG5zU3RhcnQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9y
bWFuY2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xNDUsMTEgKzE0NSwxMSBA
QCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBUaGlz
IHdpbGwgYmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAgLy8g
UmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIERO
Uywgd2UgImJhY2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1cFN0YXJ0LgotICAgIGludCBkbnNFbmQg
PSB0aW1pbmctPmRuc0VuZDsKKyAgICBkb3VibGUgZG5zRW5kID0gdGltaW5nLT5kb21haW5Mb29r
dXBFbmRUaW1lKCk7CiAgICAgaWYgKGRuc0VuZCA8IDApCiAgICAgICAgIHJldHVybiBkb21haW5M
b29rdXBTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJz
b2x1dGUoZG5zRW5kKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxp
c2Vjb25kcyhkbnNFbmQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1p
bmc6OmNvbm5lY3RTdGFydCgpIGNvbnN0CkBAIC0xNjQsMTYgKzE2NCwxNiBAQCB1bnNpZ25lZCBs
b25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvCiAKICAgICAvLyBjb25uZWN0U3RhcnQgd2ls
bCBiZSAtMSB3aGVuIGEgbmV0d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgogICAgIC8vIFJhdGhl
ciB0aGFuIGV4cG9zaW5nIGEgc3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBuZXcgY29u
bmVjdGlvbiwgd2UgImJhY2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1cEVuZC4KLSAgICBpbnQgY29u
bmVjdFN0YXJ0ID0gdGltaW5nLT5jb25uZWN0U3RhcnQ7CisgICAgZG91YmxlIGNvbm5lY3RTdGFy
dCA9IHRpbWluZy0+Y29ubmVjdFN0YXJ0VGltZSgpOwogICAgIGlmIChjb25uZWN0U3RhcnQgPCAw
IHx8IGxvYWRlci0+cmVzcG9uc2UoKS5jb25uZWN0aW9uUmV1c2VkKCkpCiAgICAgICAgIHJldHVy
biBkb21haW5Mb29rdXBFbmQoKTsKIAogICAgIC8vIFJlc291cmNlTG9hZFRpbWluZydzIGNvbm5l
Y3QgcGhhc2UgaW5jbHVkZXMgRE5TLCBob3dldmVyIE5hdmlnYXRpb24gVGltaW5nJ3MKICAgICAv
LyBjb25uZWN0IHBoYXNlIHNob3VsZCBub3QuIFNvIGlmIHRoZXJlIGlzIEROUyB0aW1lLCB0cmlt
IGl0IGZyb20gdGhlIHN0YXJ0LgotICAgIGlmICh0aW1pbmctPmRuc0VuZCA+PSAwICYmIHRpbWlu
Zy0+ZG5zRW5kID4gY29ubmVjdFN0YXJ0KQotICAgICAgICBjb25uZWN0U3RhcnQgPSB0aW1pbmct
PmRuc0VuZDsKKyAgICBpZiAodGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCkgPj0gMCAmJiB0
aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA+IGNvbm5lY3RTdGFydCkKKyAgICAgICAgY29u
bmVjdFN0YXJ0ID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCk7CiAKLSAgICByZXR1cm4g
cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShjb25uZWN0U3RhcnQpOworICAgIHJl
dHVybiByZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGNvbm5lY3RTdGFydCk7
CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6Y29ubmVjdEVuZCgp
IGNvbnN0CkBAIC0xODgsMTEgKzE4OCwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFu
Y2VUaW1pbmc6OmNvCiAKICAgICAvLyBjb25uZWN0RW5kIHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdv
cmsgcmVxdWVzdCBpcyBub3QgbWFkZS4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNw
ZWNpYWwgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8gbmV3IGNvbm5lY3Rpb24sIHdlICJiYWNrZmls
bCIgd2l0aCBjb25uZWN0U3RhcnQuCi0gICAgaW50IGNvbm5lY3RFbmQgPSB0aW1pbmctPmNvbm5l
Y3RFbmQ7CisgICAgZG91YmxlIGNvbm5lY3RFbmQgPSB0aW1pbmctPmNvbm5lY3RFbmRUaW1lKCk7
CiAgICAgaWYgKGNvbm5lY3RFbmQgPCAwIHx8IGxvYWRlci0+cmVzcG9uc2UoKS5jb25uZWN0aW9u
UmV1c2VkKCkpCiAgICAgICAgIHJldHVybiBjb25uZWN0U3RhcnQoKTsKIAotICAgIHJldHVybiBy
ZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGNvbm5lY3RFbmQpOworICAgIHJldHVy
biByZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGNvbm5lY3RFbmQpOwogfQog
CiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25T
dGFydCgpIGNvbnN0CkBAIC0yMDUsMTEgKzIwNSwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVy
Zm9ybWFuY2VUaW1pbmc6OnNlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgaW50IHNzbFN0YXJ0ID0gdGltaW5nLT5zc2xTdGFydDsKKyAgICBkb3VibGUgc3NsU3Rh
cnQgPSB0aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKTsKICAgICBpZiAoc3NsU3Rh
cnQgPCAwKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1l
UmVsYXRpdmVUb0Fic29sdXRlKHNzbFN0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGlt
ZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhzc2xTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9u
ZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KCkgY29uc3QKQEAgLTIxOCw4ICsyMTgs
OCBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlCiAgICAgaWYgKCF0
aW1pbmcpCiAgICAgICAgIHJldHVybiBjb25uZWN0RW5kKCk7CiAKLSAgICBBU1NFUlQodGltaW5n
LT5zZW5kU3RhcnQgPj0gMCk7Ci0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRv
QWJzb2x1dGUodGltaW5nLT5zZW5kU3RhcnQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlcXVlc3RT
dGFydFRpbWUoKSA+PSAwKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1p
bGxpc2Vjb25kcyh0aW1pbmctPnJlcXVlc3RTdGFydFRpbWUoKSk7CiB9CiAKIHVuc2lnbmVkIGxv
bmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0CkBAIC0yMjgs
MTQgKzIyOCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmUKICAg
ICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIHJlcXVlc3RTdGFydCgpOwogCi0gICAgLy8g
RklYTUU6IFJlc3BvbnNlIHN0YXJ0IG5lZWRzIHRvIGJlIHRoZSB0aW1lIG9mIHRoZSBmaXJzdCBy
ZWNlaXZlZCBieXRlLgotICAgIC8vIEhvd2V2ZXIsIHRoZSBSZXNvdXJjZUxvYWRUaW1pbmcgQVBJ
IGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHRoZSB0aW1lCi0gICAgLy8gdGhlIGxhc3QgaGVhZGVy
IGJ5dGUgd2FzIHJlY2VpdmVkLiBGb3IgbWFueSByZXNwb25zZXMgd2l0aCByZWFzb25hYmxlCi0g
ICAgLy8gc2l6ZWQgY29va2llcywgdGhlIEhUVFAgaGVhZGVycyBmaXQgaW50byBhIHNpbmdsZSBw
YWNrZXQgc28gdGhpcyB0aW1lCi0gICAgLy8gaXMgYmFzaWNhbGx5IGVxdWl2YWxlbnQuIEJ1dCBm
b3Igc29tZSByZXNwb25zZXMsIHBhcnRpY3VsYXJseSB0aG9zZSB3aXRoCi0gICAgLy8gaGVhZGVy
cyBsYXJnZXIgdGhhbiBhIHNpbmdsZSBwYWNrZXQsIHRoaXMgdGltZSB3aWxsIGJlIHRvbyBsYXRl
LgotICAgIEFTU0VSVCh0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kID49IDApOwotICAgIHJldHVy
biByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWluZy0+cmVjZWl2ZUhlYWRl
cnNFbmQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlc3BvbnNlU3RhcnRUaW1lKCkgPj0gMCk7Cisg
ICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5y
ZXNwb25zZVN0YXJ0VGltZSgpKTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNl
VGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0CkBAIC0zNDgsMTQgKzM0Miw2IEBAIFJlc291cmNl
TG9hZFRpbWluZyogUGVyZm9ybWFuY2VUaW1pbmc6OnIKICAgICByZXR1cm4gbG9hZGVyLT5yZXNw
b25zZSgpLnJlc291cmNlTG9hZFRpbWluZygpOwogfQogCi11bnNpZ25lZCBsb25nIGxvbmcgUGVy
Zm9ybWFuY2VUaW1pbmc6OnJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoaW50IHJl
bGF0aXZlTWlsbGlzZWNvbmRzKSBjb25zdAotewotICAgIEFTU0VSVChyZWxhdGl2ZU1pbGxpc2Vj
b25kcyA+PSAwKTsKLSAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHJlc291cmNlVGltaW5nID0gcmVz
b3VyY2VMb2FkVGltaW5nKCk7Ci0gICAgQVNTRVJUKHJlc291cmNlVGltaW5nKTsKLSAgICByZXR1
cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhyZXNvdXJjZVRpbWluZy0+Y29u
dmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUocmVsYXRpdmVNaWxsaXNlY29uZHMp
KTsKLX0KLQogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjptb25vdG9uaWNU
aW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJsZSBtb25vdG9uaWNTZWNvbmRzKSBjb25zdAog
ewogICAgIEFTU0VSVChtb25vdG9uaWNTZWNvbmRzID49IDApOwpAQCAtMzYzLDYgKzM0OSwxOCBA
QCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om1vCiAgICAgQVNTRVJUKHRp
bWluZyk7CiAgICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPm1vbm90b25p
Y1RpbWVUb1BzZXVkb1dhbGxUaW1lKG1vbm90b25pY1NlY29uZHMpKTsKIH0KKyAgICAKK3Vuc2ln
bmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVRvSW50ZWdl
ck1pbGxpc2Vjb25kcyhkb3VibGUgc2Vjb25kcykKK3sKKyAgICBpZiAoc2Vjb25kcyA8PSAwLjAp
CisgICAgICAgIHJldHVybiAwOworI2lmIFVTRShDRikKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dW5zaWduZWQgbG9uZyBsb25nPigoc2Vjb25kcyArIGtDRkFic29sdXRlVGltZUludGVydmFsU2lu
Y2UxOTcwKSAqIDEwMDApOworI2Vsc2UKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQg
bG9uZyBsb25nPihzZWNvbmRzICogMTAwMCk7CisjZW5kaWYKK30KKyAgICAKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGlt
aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWlu
Zy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
VGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDggKzc4LDggQEAgcHJpdmF0ZToKICAgICBE
b2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIoKSBjb25zdDsKICAgICBEb2N1bWVudExvYWRU
aW1pbmcqIGRvY3VtZW50TG9hZFRpbWluZygpIGNvbnN0OwogICAgIFJlc291cmNlTG9hZFRpbWlu
ZyogcmVzb3VyY2VMb2FkVGltaW5nKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIHJl
c291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoaW50KSBjb25zdDsKICAgICB1bnNpZ25l
ZCBsb25nIGxvbmcgbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUpIGNv
bnN0OworICAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcmVzb3VyY2VMb2FkVGltZVRvSW50
ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUpOwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3
ICsyOCw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS8vIFNlZTogaHR0cDovL2Rldi53My5v
cmcvMjAwNi93ZWJhcGkvV2ViVGltaW5nLworLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3JnL2hn
L3dlYnBlcmYvcmF3LWZpbGUvdGlwL3NwZWNzL05hdmlnYXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRt
bAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiBdIGludGVyZmFjZSBQZXJmb3JtYW5j
ZVRpbWluZyB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJz
ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQ
UGFyc2Vycy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBQYXJzZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDYgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZUJhc2U7Ci0KIGVudW0gQ29udGVudERpc3Bvc2l0aW9uVHlwZSB7CiAgICAgQ29u
dGVudERpc3Bvc2l0aW9uTm9uZSwKICAgICBDb250ZW50RGlzcG9zaXRpb25JbmxpbmUsCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxv
YWRUaW1pbmcuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDEwICsyOCw0
NSBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWRvdWJsZSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1l
VG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3QKKyAgICAKK1Jlc291
cmNlTG9hZFRpbWluZzo6UmVzb3VyY2VMb2FkVGltaW5nKCkKKyAgICA6IG1fZG9tYWluTG9va3Vw
U3RhcnRUaW1lKC0xLjApCisgICAgLCBtX2RvbWFpbkxvb2t1cEVuZFRpbWUoLTEuMCkKKyAgICAs
IG1fY29ubmVjdFN0YXJ0VGltZSgtMS4wKQorICAgICwgbV9jb25uZWN0RW5kVGltZSgtMS4wKQor
ICAgICwgbV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKC0xLjApCisgICAgLCBtX3JlcXVlc3RT
dGFydFRpbWUoMC4wKQorICAgICwgbV9yZXNwb25zZVN0YXJ0VGltZSgwLjApCiB7Ci0gICAgcmV0
dXJuIHJlcXVlc3RUaW1lICsgZGVsdGFNaWxsaXNlY29uZHMgLyAxMDAwLjA7CiB9CiAKK1Bhc3NS
ZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBSZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KCkK
K3sKKyAgICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiB0aW1pbmcgPSBhZG9wdFJlZihuZXcg
UmVzb3VyY2VMb2FkVGltaW5nKTsKKyAgICB0aW1pbmctPnNldERvbWFpbkxvb2t1cFN0YXJ0VGlt
ZShtX2RvbWFpbkxvb2t1cFN0YXJ0VGltZSk7CisgICAgdGltaW5nLT5zZXREb21haW5Mb29rdXBF
bmRUaW1lKG1fZG9tYWluTG9va3VwRW5kVGltZSk7CisgICAgdGltaW5nLT5zZXRDb25uZWN0U3Rh
cnRUaW1lKG1fY29ubmVjdFN0YXJ0VGltZSk7CisgICAgdGltaW5nLT5zZXRDb25uZWN0RW5kVGlt
ZShtX2Nvbm5lY3RFbmRUaW1lKTsKKyAgICB0aW1pbmctPnNldFNlY3VyZUNvbm5lY3Rpb25TdGFy
dFRpbWUobV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKTsKKyAgICB0aW1pbmctPnNldFJlcXVl
c3RTdGFydFRpbWUobV9yZXF1ZXN0U3RhcnRUaW1lKTsKKyAgICB0aW1pbmctPnNldFJlc3BvbnNl
U3RhcnRUaW1lKG1fcmVzcG9uc2VTdGFydFRpbWUpOworICAgIHJldHVybiB0aW1pbmcucmVsZWFz
ZSgpOworfQorICAgIAorYm9vbCBSZXNvdXJjZUxvYWRUaW1pbmc6Om9wZXJhdG9yPT0oY29uc3Qg
UmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kb21haW5M
b29rdXBTdGFydFRpbWUgPT0gb3RoZXIuZG9tYWluTG9va3VwU3RhcnRUaW1lKCkKKyAgICAgICAg
JiYgbV9kb21haW5Mb29rdXBFbmRUaW1lID09IG90aGVyLmRvbWFpbkxvb2t1cEVuZFRpbWUoKQor
ICAgICAgICAmJiBtX2Nvbm5lY3RTdGFydFRpbWUgPT0gb3RoZXIuY29ubmVjdFN0YXJ0VGltZSgp
CisgICAgICAgICYmIG1fY29ubmVjdEVuZFRpbWUgPT0gb3RoZXIuY29ubmVjdEVuZFRpbWUoKQor
ICAgICAgICAmJiBtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUgPT0gb3RoZXIuc2VjdXJlQ29u
bmVjdGlvblN0YXJ0VGltZSgpCisgICAgICAgICYmIG1fcmVxdWVzdFN0YXJ0VGltZSA9PSBvdGhl
ci5yZXF1ZXN0U3RhcnRUaW1lKCkKKyAgICAgICAgJiYgbV9yZXNwb25zZVN0YXJ0VGltZSA9PSBv
dGhlci5yZXNwb25zZVN0YXJ0VGltZSgpOworfQorICAgIAorYm9vbCBSZXNvdXJjZUxvYWRUaW1p
bmc6Om9wZXJhdG9yIT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKK3sK
KyAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7Cit9CisgICAgCiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgJ
KHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VMb2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDk2ICsyNyw0NyBAQAogI2lmbmRlZiBS
ZXNvdXJjZUxvYWRUaW1pbmdfaAogI2RlZmluZSBSZXNvdXJjZUxvYWRUaW1pbmdfaAogCi0jaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1
bWVudExvYWRUaW1pbmc7Ci0KIGNsYXNzIFJlc291cmNlTG9hZFRpbWluZyA6IHB1YmxpYyBSZWZD
b3VudGVkPFJlc291cmNlTG9hZFRpbWluZz4geworICAgIAogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgUmVzb3VyY2VMb2FkVGltaW5nKTsKLSAgICB9Ci0KLSAgICBQYXNz
UmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gZGVlcENvcHkoKQotICAgIHsKLSAgICAgICAgUmVm
UHRyPFJlc291cmNlTG9hZFRpbWluZz4gdGltaW5nID0gY3JlYXRlKCk7Ci0gICAgICAgIHRpbWlu
Zy0+cmVxdWVzdFRpbWUgPSByZXF1ZXN0VGltZTsKLSAgICAgICAgdGltaW5nLT5wcm94eVN0YXJ0
ID0gcHJveHlTdGFydDsKLSAgICAgICAgdGltaW5nLT5wcm94eUVuZCA9IHByb3h5RW5kOwotICAg
ICAgICB0aW1pbmctPmRuc1N0YXJ0ID0gZG5zU3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+ZG5zRW5k
ID0gZG5zRW5kOwotICAgICAgICB0aW1pbmctPmNvbm5lY3RTdGFydCA9IGNvbm5lY3RTdGFydDsK
LSAgICAgICAgdGltaW5nLT5jb25uZWN0RW5kID0gY29ubmVjdEVuZDsKLSAgICAgICAgdGltaW5n
LT5zZW5kU3RhcnQgPSBzZW5kU3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+c2VuZEVuZCA9IHNlbmRF
bmQ7Ci0gICAgICAgIHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQgPSByZWNlaXZlSGVhZGVyc0Vu
ZDsKLSAgICAgICAgdGltaW5nLT5zc2xTdGFydCA9IHNzbFN0YXJ0OwotICAgICAgICB0aW1pbmct
PnNzbEVuZCA9IHNzbEVuZDsKLSAgICAgICAgcmV0dXJuIHRpbWluZy5yZWxlYXNlKCk7Ci0gICAg
fQotCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIp
IGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gcmVxdWVzdFRpbWUgPT0gb3RoZXIucmVxdWVz
dFRpbWUKLSAgICAgICAgICAgICYmIHByb3h5U3RhcnQgPT0gb3RoZXIucHJveHlTdGFydAotICAg
ICAgICAgICAgJiYgcHJveHlFbmQgPT0gb3RoZXIucHJveHlFbmQKLSAgICAgICAgICAgICYmIGRu
c1N0YXJ0ID09IG90aGVyLmRuc1N0YXJ0Ci0gICAgICAgICAgICAmJiBkbnNFbmQgPT0gb3RoZXIu
ZG5zRW5kCi0gICAgICAgICAgICAmJiBjb25uZWN0U3RhcnQgPT0gb3RoZXIuY29ubmVjdFN0YXJ0
Ci0gICAgICAgICAgICAmJiBjb25uZWN0RW5kID09IG90aGVyLmNvbm5lY3RFbmQKLSAgICAgICAg
ICAgICYmIHNlbmRTdGFydCA9PSBvdGhlci5zZW5kU3RhcnQKLSAgICAgICAgICAgICYmIHNlbmRF
bmQgPT0gb3RoZXIuc2VuZEVuZAotICAgICAgICAgICAgJiYgcmVjZWl2ZUhlYWRlcnNFbmQgPT0g
b3RoZXIucmVjZWl2ZUhlYWRlcnNFbmQKLSAgICAgICAgICAgICYmIHNzbFN0YXJ0ID09IG90aGVy
LnNzbFN0YXJ0Ci0gICAgICAgICAgICAmJiBzc2xFbmQgPT0gb3RoZXIuc3NsRW5kOwotICAgIH0K
LQotICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVyKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwotICAgIH0KLQot
ICAgIC8vIFdlIHdhbnQgdG8gcHJlc2VudCBhIHVuaWZpZWQgdGltZWxpbmUgdG8gSmF2YXNjcmlw
dC4gVXNpbmcgd2FsbHRpbWUgaXMgcHJvYmxlbWF0aWMsIGJlY2F1c2UgdGhlIGNsb2NrIG1heSBz
a2V3IHdoaWxlIHJlc291cmNlcwotICAgIC8vIGxvYWQuIFRvIHByZXZlbnQgdGhhdCBza2V3LCB3
ZSByZWNvcmQgYSBzaW5nbGUgcmVmZXJlbmNlIHdhbGx0aW1lIHdoZW4gcm9vdCBkb2N1bWVudCBu
YXZpZ2F0aW9uIGJlZ2lucy4gQWxsIG90aGVyIHRpbWVzIGFyZQotICAgIC8vIHJlY29yZGVkIHVz
aW5nIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLiBXaGVuIGEgdGltZSBuZWVkcyB0byBi
ZSBwcmVzZW50ZWQgdG8gSmF2YXNjcmlwdCwgd2UgYnVpbGQgYSBwc2V1ZG8td2FsbHRpbWUKLSAg
ICAvLyB1c2luZyB0aGUgZm9sbG93aW5nIGVxdWF0aW9uOgotICAgIC8vICAgcHNldWRvIHRpbWUg
PSBkb2N1bWVudCB3YWxsIHJlZmVyZW5jZSArIChyZXNvdXJjZSByZXF1ZXN0IHRpbWUgLSBkb2N1
bWVudCBtb25vdG9uaWMgcmVmZXJlbmNlKSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wLgot
ICAgIGRvdWJsZSBjb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZShpbnQgZGVs
dGFNaWxsaXNlY29uZHMpIGNvbnN0OwotCi0gICAgZG91YmxlIHJlcXVlc3RUaW1lOyAvLyBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSB3aGVuIHRoZSBwb3J0IHN0YXJ0ZWQgaGFuZGxpbmcg
dGhpcyByZXF1ZXN0LgotICAgIGludCBwcm94eVN0YXJ0OyAvLyBUaGUgcmVzdCBvZiB0aGVzZSBh
cmUgbWlsbGlzZWNvbmQgZGVsdGFzLCB1c2luZyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KSwgZnJvbSByZXF1ZXN0VGltZS4KLSAgICBpbnQgcHJveHlFbmQ7Ci0gICAgaW50IGRuc1N0YXJ0
OwotICAgIGludCBkbnNFbmQ7Ci0gICAgaW50IGNvbm5lY3RTdGFydDsKLSAgICBpbnQgY29ubmVj
dEVuZDsKLSAgICBpbnQgc2VuZFN0YXJ0OwotICAgIGludCBzZW5kRW5kOwotICAgIGludCByZWNl
aXZlSGVhZGVyc0VuZDsKLSAgICBpbnQgc3NsU3RhcnQ7Ci0gICAgaW50IHNzbEVuZDsKLQorICAg
IAorICAgIFJlc291cmNlTG9hZFRpbWluZygpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291
cmNlTG9hZFRpbWluZz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNlTG9h
ZFRpbWluZyk7IH0KKyAgICBQYXNzUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gZGVlcENvcHko
KTsKKyAgICAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJikg
Y29uc3Q7CisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYpIGNv
bnN0OworICAgIAorICAgIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydFRpbWUoKSBjb25zdCB7IHJl
dHVybiBtX2RvbWFpbkxvb2t1cFN0YXJ0VGltZTsgfQorICAgIGRvdWJsZSBkb21haW5Mb29rdXBF
bmRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9kb21haW5Mb29rdXBFbmRUaW1lOyB9CisgICAgZG91
YmxlIGNvbm5lY3RTdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3RTdGFydFRpbWU7
IH0KKyAgICBkb3VibGUgY29ubmVjdEVuZFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3RF
bmRUaW1lOyB9CisgICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKSBjb25zdCB7
IHJldHVybiBtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWU7IH0KKyAgICBkb3VibGUgcmVxdWVz
dFN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdFN0YXJ0VGltZTsgfQorICAgIGRv
dWJsZSByZXNwb25zZVN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VTdGFydFRp
bWU7IH0KKyAgICAKKyAgICB2b2lkIHNldERvbWFpbkxvb2t1cFN0YXJ0VGltZShkb3VibGUgZG9t
YWluTG9va3VwU3RhcnRUaW1lKSB7IG1fZG9tYWluTG9va3VwU3RhcnRUaW1lID0gZG9tYWluTG9v
a3VwU3RhcnRUaW1lOyB9CisgICAgdm9pZCBzZXREb21haW5Mb29rdXBFbmRUaW1lKGRvdWJsZSBk
b21haW5Mb29rdXBFbmRUaW1lKSB7IG1fZG9tYWluTG9va3VwRW5kVGltZSA9IGRvbWFpbkxvb2t1
cEVuZFRpbWU7IH0KKyAgICB2b2lkIHNldENvbm5lY3RTdGFydFRpbWUoZG91YmxlIGNvbm5lY3RT
dGFydFRpbWUpIHsgbV9jb25uZWN0U3RhcnRUaW1lID0gY29ubmVjdFN0YXJ0VGltZTsgfQorICAg
IHZvaWQgc2V0Q29ubmVjdEVuZFRpbWUoZG91YmxlIGNvbm5lY3RFbmRUaW1lKSB7IG1fY29ubmVj
dEVuZFRpbWUgPSBjb25uZWN0RW5kVGltZTsgfQorICAgIHZvaWQgc2V0U2VjdXJlQ29ubmVjdGlv
blN0YXJ0VGltZShkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSkgeyBtX3NlY3VyZUNv
bm5lY3Rpb25TdGFydFRpbWUgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lOyB9CisgICAgdm9p
ZCBzZXRSZXF1ZXN0U3RhcnRUaW1lKGRvdWJsZSByZXF1ZXN0U3RhcnRUaW1lKSB7IG1fcmVxdWVz
dFN0YXJ0VGltZSA9IHJlcXVlc3RTdGFydFRpbWU7IH0KKyAgICB2b2lkIHNldFJlc3BvbnNlU3Rh
cnRUaW1lKGRvdWJsZSByZXNwb25zZVN0YXJ0VGltZSkgeyBtX3Jlc3BvbnNlU3RhcnRUaW1lID0g
cmVzcG9uc2VTdGFydFRpbWU7IH0KKyAgICAKIHByaXZhdGU6Ci0gICAgUmVzb3VyY2VMb2FkVGlt
aW5nKCkKLSAgICAgICAgOiByZXF1ZXN0VGltZSgwKQotICAgICAgICAsIHByb3h5U3RhcnQoLTEp
Ci0gICAgICAgICwgcHJveHlFbmQoLTEpCi0gICAgICAgICwgZG5zU3RhcnQoLTEpCi0gICAgICAg
ICwgZG5zRW5kKC0xKQotICAgICAgICAsIGNvbm5lY3RTdGFydCgtMSkKLSAgICAgICAgLCBjb25u
ZWN0RW5kKC0xKQotICAgICAgICAsIHNlbmRTdGFydCgwKQotICAgICAgICAsIHNlbmRFbmQoMCkK
LSAgICAgICAgLCByZWNlaXZlSGVhZGVyc0VuZCgwKQotICAgICAgICAsIHNzbFN0YXJ0KC0xKQot
ICAgICAgICAsIHNzbEVuZCgtMSkKLSAgICB7Ci0gICAgfQorICAgIAorICAgIGRvdWJsZSBtX2Rv
bWFpbkxvb2t1cFN0YXJ0VGltZTsKKyAgICBkb3VibGUgbV9kb21haW5Mb29rdXBFbmRUaW1lOwor
ICAgIGRvdWJsZSBtX2Nvbm5lY3RTdGFydFRpbWU7CisgICAgZG91YmxlIG1fY29ubmVjdEVuZFRp
bWU7CisgICAgZG91YmxlIG1fc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZTsKKyAgICBkb3VibGUg
bV9yZXF1ZXN0U3RhcnRUaW1lOworICAgIGRvdWJsZSBtX3Jlc3BvbnNlU3RhcnRUaW1lOwogfTsK
IAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VI
YW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC01Niw2ICs1NiwxNCBAQAogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAj
aW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxGb3VuZGF0
aW9uL05TVVJMQ29ubmVjdGlvblByaXZhdGUuaD4pCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJM
Q29ubmVjdGlvblByaXZhdGUuaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMQ29ubmVjdGlvbiAo
VGltaW5nRGF0YSkKKysgKHZvaWQpX3NldENvbGxlY3RzVGltaW5nRGF0YTooQk9PTCljb2xsZWN0
OworQGVuZAorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxDRk5ldHdvcmsv
Q0ZVUkxSZXF1ZXN0Lmg+CiAKQEAgLTIwMCw2ICsyMDgsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpjcmVhdGVOU1VSTENvbm5lY3RpCiAgICAgY29uc3QgYm9vbCB1c2VzQ2FjaGUgPSB0cnVlOwog
I2VuZGlmCiAgICAgZC0+bV9jb25uZWN0aW9uID0gYWRvcHROUyhbW05TVVJMQ29ubmVjdGlvbiBh
bGxvY10gX2luaXRXaXRoUmVxdWVzdDpuc1JlcXVlc3QgZGVsZWdhdGU6ZGVsZWdhdGUgdXNlc0Nh
Y2hlOnVzZXNDYWNoZSBtYXhDb250ZW50TGVuZ3RoOjAgc3RhcnRJbW1lZGlhdGVseTpOTyBjb25u
ZWN0aW9uUHJvcGVydGllczpwcm9wZXJ0eURpY3Rpb25hcnldKTsKKyNpZiBFTkFCTEUoV0VCX1RJ
TUlORykKKyAgICBbTlNVUkxDb25uZWN0aW9uIF9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6WUVTXTsK
KyNlbmRpZgogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlLm1tCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0J
KHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDE0IEBACiAjaW1wb3J0ICJXZWJDb3JlVVJMUmVz
cG9uc2UuaCIKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRl
KDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4pCisjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZO
U1VSTENvbm5lY3Rpb24uaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMU2Vzc2lvblRhc2sgKFRp
bWluZ0RhdGEpCistIChOU0RpY3Rpb25hcnkgKilfdGltaW5nRGF0YTsKK0BlbmQKKyNlbmRpZgor
CiBAaW50ZXJmYWNlIE5TVVJMUmVxdWVzdCAoRGV0YWlscykKIC0gKGlkKV9wcm9wZXJ0eUZvcktl
eTooTlNTdHJpbmcgKilrZXk7CiBAZW5kCkBAIC0xOTMsNyArMjAxLDYgQEAgLSAoQk9PTCljb25u
ZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENv
bm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAq
KXIKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBVTlVTRURfUEFSQU0oY29u
bmVjdGlvbik7CiAKICAgICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0
aW9uOiVwIGRpZFJlY2VpdmVSZXNwb25zZTolcCAoSFRUUCBzdGF0dXMgJWQsIHJlcG9ydGVkIE1J
TUVUeXBlICclcycpIiwgbV9oYW5kbGUsIGNvbm5lY3Rpb24sIHIsIFtyIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3Ioc3RhdHVzQ29kZSldID8gWyhpZClyIHN0YXR1c0NvZGVdIDogMCwgW1ty
IE1JTUVUeXBlXSBVVEY4U3RyaW5nXSk7CiAKQEAgLTIxMiw4ICsyMTksMzIgQEAgLSAodm9pZClj
b25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogCiAgICAgICAgIGlmIChbbV9oYW5kbGUt
PmZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSBfcHJvcGVy
dHlGb3JLZXk6QCJGb3JjZUhUTUxNSU1FVHlwZSJdKQogICAgICAgICAgICAgW3IgX3NldE1JTUVU
eXBlOkAidGV4dC9odG1sIl07Ci0KLSAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNl
aXZlUmVzcG9uc2VBc3luYyhtX2hhbmRsZSwgcik7CisgICAgICAgIAorICAgICAgICBSZXNvdXJj
ZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2Uocik7CisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisg
ICAgICAgIE5TRGljdGlvbmFyeSogdGltaW5nRGF0YSA9IFtjb25uZWN0aW9uIF90aW1pbmdEYXRh
XTsKKyAgICAgICAgcmVzb3VyY2VSZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3Vy
Y2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7CisgICAgICAgIFJlc291cmNlTG9hZFRpbWluZyogdGlt
aW5nID0gcmVzb3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICAgICAgdGlt
aW5nLT5zZXREb21haW5Mb29rdXBFbmRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9r
Q0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cEVuZCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAgIHRp
bWluZy0+c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpA
Il9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cFN0YXJ0Il0gZG91YmxlVmFsdWVdKTsKKyAgICAg
ICAgdGltaW5nLT5zZXRDb25uZWN0U3RhcnRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpA
Il9rQ0ZOVGltaW5nRGF0YUNvbm5lY3RTdGFydCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAgIHRp
bWluZy0+c2V0Q29ubmVjdEVuZFRpbWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5U
aW1pbmdEYXRhQ29ubmVjdEVuZCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAgIHRpbWluZy0+c2V0
U2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NG
TlRpbWluZ0RhdGFTZWN1cmVDb25uZWN0aW9uU3RhcnQiXSBkb3VibGVWYWx1ZV0pOworICAgICAg
ICB0aW1pbmctPnNldFJlcXVlc3RTdGFydFRpbWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAi
X2tDRk5UaW1pbmdEYXRhUmVxdWVzdFN0YXJ0Il0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgdGlt
aW5nLT5zZXRSZXNwb25zZVN0YXJ0VGltZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NG
TlRpbWluZ0RhdGFSZXNwb25zZVN0YXJ0Il0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgLy8gVE9E
TzogdGltaW5nRGF0YSBoYXMgbW9yZSBpbmZvcm1hdGlvbiB0aGF0IHdlIHNob3VsZCBzdG9yZSBh
bmQgdXNlIHdpdGggdGhlc2Uga2V5czoKKyAgICAgICAgLy8gX2tDRk5UaW1pbmdEYXRhQ29ubmVj
dGlvblJldXNlZAorICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFUaW1pbmdEYXRhSW5pdAorICAg
ICAgICAvLyBfa0NGTlRpbWluZ0RhdGFSZWRpcmVjdFN0YXJ0CisgICAgICAgIC8vIF9rQ0ZOVGlt
aW5nRGF0YVJlZGlyZWN0RW5kCisgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0YUZldGNoU3RhcnQK
KyAgICAgICAgLy8gX2tDRk5UaW1pbmdEYXRhUmVzcG9uc2VFbmQKKyAgICAgICAgLy8gX2tDRk5U
aW1pbmdEYXRhUmVkaXJlY3RDb3VudFczQworICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFSZWRp
cmVjdENvdW50CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisjZW5k
aWYKKyAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyht
X2hhbmRsZSwgcmVzb3VyY2VSZXNwb25zZSk7CiAgICAgfSk7CiAKICAgICBkaXNwYXRjaF9zZW1h
cGhvcmVfd2FpdChtX3NlbWFwaG9yZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjM0LDkgKzIzNCw2IEBAIHN0YXRpYyB2b2lkIGNsZWFudXBTb3VwUmVxdWVzdE9wZXJh
dGlvbigKIHN0YXRpYyB2b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVjdCosIEdBc3luY1Jl
c3VsdCosIGdwb2ludGVyKTsKIHN0YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiwgR0Fz
eW5jUmVzdWx0KiwgZ3BvaW50ZXIpOwogc3RhdGljIGdib29sZWFuIHJlcXVlc3RUaW1lb3V0Q2Fs
bGJhY2sodm9pZCopOwotI2lmIEVOQUJMRShXRUJfVElNSU5HKQotc3RhdGljIGludCAgbWlsaXNl
Y29uZHNTaW5jZVJlcXVlc3QoZG91YmxlIHJlcXVlc3RUaW1lKTsKLSNlbmRpZgogc3RhdGljIHZv
aWQgY29udGludWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSopOwogCiBz
dGF0aWMgYm9vbCBnSWdub3JlU1NMRXJyb3JzID0gZmFsc2U7CkBAIC0zMTYsMTEgKzMxMyw2IEBA
IHN0YXRpYyB2b2lkIGdvdEhlYWRlcnNDYWxsYmFjayhTb3VwTWVzc2EKIAogICAgIFJlc291cmNl
SGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAKLSNpZiBFTkFCTEUo
V0VCX1RJTUlORykKLSAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkK
LSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVjZWl2ZUhlYWRl
cnNFbmQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9h
ZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKEdUSykKICAg
ICAvLyBXZSBhcmUgYSBiaXQgbW9yZSBjb25zZXJ2YXRpdmUgd2l0aCB0aGUgcGVyc2lzdGVudCBj
cmVkZW50aWFsIHN0b3JhZ2UgdGhhbiB0aGUgc2Vzc2lvbiBzdG9yZSwKICAgICAvLyBzaW5jZSB3
ZSBhcmUgd2FpdGluZyB1bnRpbCB3ZSBrbm93IHRoYXQgdGhpcyBhdXRoZW50aWNhdGlvbiBzdWNj
ZWVkZWQgYmVmb3JlIGFjdHVhbGx5IHN0b3JpbmcuCkBAIC0zOTAsNyArMzgyLDcgQEAgc3RhdGlj
IHZvaWQgcmVzdGFydGVkQ2FsbGJhY2soU291cE1lc3NhZwogICAgIFJlc291cmNlSGFuZGxlSW50
ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAgICAgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSA9IGQtPm1fcmVzcG9uc2U7CiAgICAgcmVkaXJlY3RSZXNwb25zZS5z
ZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7Ci0gICAg
cmVkaXJlY3RSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUgPSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICByZWRpcmVjdFJlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5zZXRSZXF1ZXN0U3RhcnRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgpKTsKIH0KICNlbmRpZgogCkBAIC04MzksNDAgKzgzMSwxMyBAQCBzdGF0aWMgYm9vbCBh
ZGRGb3JtRWxlbWVudHNUb1NvdXBNZXNzYWdlCiB9CiAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykK
LXN0YXRpYyBpbnQgbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZG91YmxlIHJlcXVlc3RUaW1lKQot
ewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KChtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKSAtIHJlcXVlc3RUaW1lKSAqIDEwMDAuMCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdyb3RlQm9k
eUNhbGxiYWNrKFNvdXBNZXNzYWdlKiwgZ3BvaW50ZXIgZGF0YSkKLXsKLSAgICBSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7
Ci0gICAgaWYgKCFoYW5kbGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlc291cmNlSGFuZGxl
SW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0gICAgaWYgKCFkLT5tX3Jlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBkLT5tX3Jl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZW5kRW5kID0gbWlsaXNlY29uZHNTaW5jZVJl
cXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUpOwot
fQotCiB2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRTdGFydFJlcXVlc3QoKQogewogICAgIFJlc291
cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBnZXRJbnRlcm5hbCgpOwogICAgIGlmICghZC0+bV9yZXNw
b25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VuZFN0YXJ0ID0gbWlsaXNlY29uZHNTaW5j
ZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUp
OwotICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xTdGFydCAh
PSAtMSkgewotICAgICAgICAvLyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVxdWVzdFRp
bWluZ1ZpZXcuanMgYXNzdW1lcwotICAgICAgICAvLyB0aGF0IFNTTCB0aW1lIGlzIGluY2x1ZGVk
IGluIGNvbm5lY3Rpb24gdGltZSBzbyBtdXN0Ci0gICAgICAgIC8vIHN1YnN0cmFjdCBoZXJlIHRo
ZSBTU0wgZGVsdGEgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVyIChzZWUKLSAgICAgICAgLy8gV2Vi
SW5zcGVjdG9yLlJlcXVlc3RUaW1pbmdWaWV3LmNyZWF0ZVRpbWluZ1RhYmxlIGluIHRoZQotICAg
ICAgICAvLyBmaWxlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMpLgotICAgICAgICBkLT5tX3Jlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZW5kU3RhcnQgLT0KLSAgICAgICAgICAgIGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbEVuZCAtIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0OwotICAgIH0KKyAgICBkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpLT5zZXRSZXF1ZXN0U3RhcnRUaW1lKGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RTdGFydFRpbWUoKSk7CiB9CiAKIHN0YXRpYyB2b2lk
IG5ldHdvcmtFdmVudENhbGxiYWNrKFNvdXBNZXNzYWdlKiwgR1NvY2tldENsaWVudEV2ZW50IGV2
ZW50LCBHSU9TdHJlYW0qLCBncG9pbnRlciBkYXRhKQpAQCAtODg1LDQzICs4NTAsMzEgQEAgc3Rh
dGljIHZvaWQgbmV0d29ya0V2ZW50Q2FsbGJhY2soU291cE1lcwogICAgICAgICByZXR1cm47CiAK
ICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwot
ICAgIGludCBkZWx0YVRpbWUgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNl
LnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7CiAgICAgc3dpdGNoIChldmVudCkg
ewogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1JFU09MVklORzoKLSAgICAgICAgZC0+bV9yZXNw
b25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3RhcnQgPSBkZWx0YVRpbWU7CisgICAgICAg
IGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNldERvbWFpbkxvb2t1cFN0YXJ0
VGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgR19TT0NLRVRfQ0xJRU5UX1JFU09MVkVEOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpLT5kbnNFbmQgPSBkZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVz
cG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNldERvbWFpbkxvb2t1cEVuZFRpbWUobW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09D
S0VUX0NMSUVOVF9DT05ORUNUSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9h
ZFRpbWluZygpLT5jb25uZWN0U3RhcnQgPSBkZWx0YVRpbWU7Ci0gICAgICAgIGlmIChkLT5tX3Jl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNTdGFydCAhPSAtMSkKLSAgICAgICAgICAg
IC8vIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXF1ZXN0VGltaW5nVmlldy5qcyBhc3N1
bWVzCi0gICAgICAgICAgICAvLyB0aGF0IEROUyB0aW1lIGlzIGluY2x1ZGVkIGluIGNvbm5lY3Rp
b24gdGltZSBzbyBtdXN0Ci0gICAgICAgICAgICAvLyBzdWJzdHJhY3QgaGVyZSB0aGUgRE5TIGRl
bHRhIHRoYXQgd2lsbCBiZSBhZGRlZCBsYXRlciAoc2VlCi0gICAgICAgICAgICAvLyBXZWJJbnNw
ZWN0b3IuUmVxdWVzdFRpbWluZ1ZpZXcuY3JlYXRlVGltaW5nVGFibGUgaW4gdGhlCi0gICAgICAg
ICAgICAvLyBmaWxlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMpLgotICAgICAgICAgICAgZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+Y29ubmVjdFN0YXJ0IC09Ci0gICAgICAgICAg
ICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zRW5kIC0gZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3RhcnQ7CisgICAgICAgIGQtPm1fcmVz
cG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNldENvbm5lY3RTdGFydFRpbWUobW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VU
X0NMSUVOVF9DT05ORUNURUQ6CiAgICAgICAgIC8vIFdlYiBUaW1pbmcgY29uc2lkZXJzIHRoYXQg
Y29ubmVjdGlvbiB0aW1lIGludm9sdmVzIGRucywgcHJveHkgJiBUTFMgbmVnb3RpYXRpb24uLi4K
ICAgICAgICAgLy8gc28gd2UgYmV0dGVyIHBpY2sgR19TT0NLRVRfQ0xJRU5UX0NPTVBMRVRFIGZv
ciBjb25uZWN0RW5kCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1BS
T1hZX05FR09USUFUSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWlu
ZygpLT5wcm94eVN0YXJ0ID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdf
U09DS0VUX0NMSUVOVF9QUk9YWV9ORUdPVElBVEVEOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpLT5wcm94eUVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfVExTX0hBTkRTSEFLSU5HOgotICAgICAgICBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xTdGFydCA9IGRlbHRhVGltZTsKKyAg
ICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2V0U2VjdXJlQ29ubmVj
dGlvblN0YXJ0VGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1RMU19IQU5EU0hBS0VEOgotICAgICAgICBk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xFbmQgPSBkZWx0YVRpbWU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX0NPTVBMRVRFOgotICAgICAg
ICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5jb25uZWN0RW5kID0gZGVsdGFU
aW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZXRDb25u
ZWN0RW5kVGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtOTgwLDcg
KzkzMyw2IEBAIHN0YXRpYyBib29sIGNyZWF0ZVNvdXBNZXNzYWdlRm9ySGFuZGxlQW4KICAgICBk
LT5tX3Jlc3BvbnNlLnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNy
ZWF0ZSgpKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksICJu
ZXR3b3JrLWV2ZW50IiwgR19DQUxMQkFDSyhuZXR3b3JrRXZlbnRDYWxsYmFjayksIGhhbmRsZSk7
CiAgICAgZ19zaWduYWxfY29ubmVjdChkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCAicmVzdGFydGVk
IiwgR19DQUxMQkFDSyhyZXN0YXJ0ZWRDYWxsYmFjayksIGhhbmRsZSk7Ci0gICAgZ19zaWduYWxf
Y29ubmVjdChkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCAid3JvdGUtYm9keSIsIEdfQ0FMTEJBQ0so
d3JvdGVCb2R5Q2FsbGJhY2spLCBoYW5kbGUpOwogI2VuZGlmCiAKICNpZiBTT1VQX0NIRUNLX1ZF
UlNJT04oMiwgNDMsIDEpCkBAIC0xMDU0LDcgKzEwMDYsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpzZW5kUGVuZGluZ1JlcXVlc3QoCiB7CiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgaWYg
KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCi0gICAgICAgIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lID0gbW9ub3RvbmljYWxseUluY3Jl
YXNpbmdUaW1lKCk7CisgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkt
PnNldFJlcXVlc3RTdGFydFRpbWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogI2Vu
ZGlmCiAKICAgICBpZiAoZC0+bV9maXJzdFJlcXVlc3QudGltZW91dEludGVydmFsKCkgPiAwKSB7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wNS0wNyAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFByb2dyZXNz
IG9uIHdlYiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZWNvZGUpOgorICAgICAgICBUcmFu
c2ZlciB3ZWIgdGltaW5nIGRhdGEuCisKIDIwMTQtMDUtMDYgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11bV0syXSBBZGQgdGFwIGhpZ2hsaWdo
dCBvbiB0aGUgc2ltcGxlIFVJVGFwR2VzdHVyZVJlY29nbml6ZXIKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCShyZXZpc2lvbiAxNjgz
OTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjg4LDYgKzY4OCwxOSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVz
b3VyY2VSZXNwb25zZT46OmVuCiAgICAgICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXNwb25zZS5o
dHRwU3RhdHVzVGV4dCgpOwogICAgICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVzcG9uc2Uuc3Vn
Z2VzdGVkRmlsZW5hbWUoKTsKICAgICB9CisgICAgCisgICAgUmVzb3VyY2VMb2FkVGltaW5nKiB0
aW1pbmcgPSByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpOworICAgIGJvb2wg
aGFzUmVzb3VyY2VMb2FkVGltaW5nID0gdGltaW5nOworICAgIGVuY29kZXIgPDwgaGFzUmVzb3Vy
Y2VMb2FkVGltaW5nOworICAgIGlmIChoYXNSZXNvdXJjZUxvYWRUaW1pbmcpIHsKKyAgICAgICAg
ZW5jb2RlciA8PCB0aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0VGltZSgpOworICAgICAgICBlbmNv
ZGVyIDw8IHRpbWluZy0+ZG9tYWluTG9va3VwRW5kVGltZSgpOworICAgICAgICBlbmNvZGVyIDw8
IHRpbWluZy0+Y29ubmVjdFN0YXJ0VGltZSgpOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+
Y29ubmVjdEVuZFRpbWUoKTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPnNlY3VyZUNvbm5l
Y3Rpb25TdGFydFRpbWUoKTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPnJlcXVlc3RTdGFy
dFRpbWUoKTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPnJlc3BvbnNlU3RhcnRUaW1lKCk7
CisgICAgfQogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlY29k
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlc291cmNlUmVzcG9uc2UmIHJlc291cmNlUmVz
cG9uc2UpCkBAIC03NTYsNiArNzY5LDM2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJl
c3BvbnNlPjo6ZGUKICAgICAgICAgcmVzcG9uc2Uuc2V0U3VnZ2VzdGVkRmlsZW5hbWUoc3VnZ2Vz
dGVkRmlsZW5hbWUpOwogICAgIH0KIAorICAgIGJvb2wgaGFzUmVzb3VyY2VMb2FkVGltaW5nOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmIChoYXNSZXNvdXJjZUxvYWRUaW1pbmcpIHsKKyAgICAgICAg
ZG91YmxlIGRvbWFpbkxvb2t1cFN0YXJ0VGltZTsKKyAgICAgICAgZG91YmxlIGRvbWFpbkxvb2t1
cEVuZFRpbWU7CisgICAgICAgIGRvdWJsZSBjb25uZWN0U3RhcnRUaW1lOworICAgICAgICBkb3Vi
bGUgY29ubmVjdEVuZFRpbWU7CisgICAgICAgIGRvdWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnRU
aW1lOworICAgICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0VGltZTsKKyAgICAgICAgZG91YmxlIHJl
c3BvbnNlU3RhcnRUaW1lOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRvbWFpbkxvb2t1
cFN0YXJ0VGltZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShkb21haW5Mb29rdXBF
bmRUaW1lKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGNvbm5lY3RTdGFydFRpbWUp
CisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoY29ubmVjdEVuZFRpbWUpCisgICAgICAg
ICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSkKKyAgICAg
ICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0U3RhcnRUaW1lKQorICAgICAgICAgICAg
fHwgIWRlY29kZXIuZGVjb2RlKHJlc3BvbnNlU3RhcnRUaW1lKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNl
TG9hZFRpbWluZzo6Y3JlYXRlKCkpOworICAgICAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWlu
ZyA9IHJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpOworICAgICAgICB0aW1pbmctPnNldERv
bWFpbkxvb2t1cFN0YXJ0VGltZShkb21haW5Mb29rdXBTdGFydFRpbWUpOworICAgICAgICB0aW1p
bmctPnNldERvbWFpbkxvb2t1cEVuZFRpbWUoZG9tYWluTG9va3VwRW5kVGltZSk7CisgICAgICAg
IHRpbWluZy0+c2V0Q29ubmVjdFN0YXJ0VGltZShjb25uZWN0U3RhcnRUaW1lKTsKKyAgICAgICAg
dGltaW5nLT5zZXRDb25uZWN0RW5kVGltZShjb25uZWN0RW5kVGltZSk7CisgICAgICAgIHRpbWlu
Zy0+c2V0U2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZShzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1l
KTsKKyAgICAgICAgdGltaW5nLT5zZXRSZXF1ZXN0U3RhcnRUaW1lKHJlcXVlc3RTdGFydFRpbWUp
OworICAgICAgICB0aW1pbmctPnNldFJlc3BvbnNlU3RhcnRUaW1lKHJlc3BvbnNlU3RhcnRUaW1l
KTsKKyAgICB9CisgICAgCiAgICAgcmVzb3VyY2VSZXNwb25zZSA9IHJlc3BvbnNlOwogCiAgICAg
cmV0dXJuIHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231079</attachid>
            <date>2014-05-08 10:47:36 -0700</date>
            <delta_ts>2014-05-08 11:47:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140508104712.patch</filename>
            <type>text/plain</type>
            <size>55753</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExMyBAQAorMjAxNC0wNS0wNyAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFByb2dyZXNz
IG9uIHdlYiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBBZGRlZCBsaW5rZXIgc3ltYm9sLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
T2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVj
dEZvckNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNl
QWdlbnQ6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb246CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2Fk
VGltaW5nIHZhbHVlcyBhbmQgcmVtb3ZlZCB1bnVzZWQgcGFyYW1ldGVycy4KKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QpOgorICAgICAgICBLZWVwIGEgcmVjb3JkIG9mIGEgY3Jv
c3Mgb3JpZ2luIHJlZGlyZWN0IGV2ZW4gaWYgeW91IGFyZSByZWRpcmVjdGVkIGJhY2suCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6IERl
bGV0ZWQuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICBS
ZW1vdmVkIHVudXNlZCBzZXROYXZpZ2F0aW9uU3RhcnQgbWV0aG9kIGRlY2xhcmF0aW9uLgorICAg
ICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgdXJsLgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1
cEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25u
ZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6
Y29ubmVjdEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
OjpzZWN1cmVDb25uZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlRW5kKToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgdmFsdWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6cmVzcG9uc2VTdGFydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDoK
KyAgICAgICAgUmVtb3ZlZCByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzIGRlY2xh
cmF0aW9uLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6Cisg
ICAgICAgIFJlbW92ZWQgcmVzcG9uc2VTdGFydC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuaDoKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6
CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXNl
IG5ldyBSZXNvdXJjZUxvYWRUaW1pbmcgbWV0aG9kcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRp
dmVUb0Fic29sdXRlKToKKyAgICAgICAgUmVwbGFjZWQgcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZl
VG9BYnNvbHV0ZSB3aXRoIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMKKyAg
ICAgICAgYmVjYXVzZSBvZiBuZXcgc3RvcmFnZSBmb3JtYXQgaW4gUmVzb3VyY2VMb2FkVGltaW5n
LgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaDoKKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmlkbDoKKyAgICAgICAgVXBkYXRlZCBzcGVjIHVybC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkVGltaW5nOjpSZXNvdXJjZUxvYWRUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkVGltaW5nOjpkZWVwQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpvcGVyYXRvciE9KToKKyAgICAgICAgTW92ZWQgZnJvbSBSZXNvdXJjZUxvYWRUaW1pbmcuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9h
ZFRpbWVUb01vbm90b25pY1RpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRv
bWFpbkxvb2t1cFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1p
bmc6OmRvbWFpbkxvb2t1cEVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
VGltaW5nOjpjb25uZWN0U3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZFRpbWluZzo6Y29ubmVjdEVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
VGltaW5nOjpzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlTG9hZFRpbWluZzo6cmVxdWVzdFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRUaW1pbmc6OnJlc3BvbnNlU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZFRpbWluZzo6c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6c2V0RG9tYWluTG9va3VwRW5kVGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldENvbm5lY3RTdGFydFRpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRDb25uZWN0RW5kVGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldFNlY3VyZUNvbm5l
Y3Rpb25TdGFydFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpz
ZXRSZXF1ZXN0U3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWlu
Zzo6c2V0UmVzcG9uc2VTdGFydFRpbWUpOgorICAgICAgICBBZGRlZCBhY2Nlc3NvcnMgaW5zdGVh
ZCBvZiBoYXZpbmcgcHVibGljIG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZFRpbWluZzo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpSZXNvdXJjZUxvYWRUaW1pbmcpOgorICAgICAgICBNb3ZlZCBpbXBsZW1lbnRhdGlvbnMgdG8g
UmVzb3VyY2VMb2FkVGltaW5nLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2VC
YXNlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZSk6CisgICAgICAgIEluaXRpYWxpemUgbV9yZXNvdXJj
ZUxvYWRUaW1pbmcgd2hpY2ggaXMgdXNlZCBub3cuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKToKKyAgICAgICAgQ2FsbCBfc2V0Q29sbGVjdHNU
aW1pbmdEYXRhIHRvIGNvbGxlY3QgdGltaW5nIGRhdGEgZm9yIHdlYiB0aW1pbmcuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6CisgICAg
ICAgIFB1dCB0aW1pbmcgZGF0YSBpbnRvIFJlc291cmNlTG9hZFRpbWluZyBkYXRhIHN0cnVjdHVy
ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmdvdEhlYWRlcnNDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpyZXN0YXJ0ZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6ZGlkU3RhcnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdvcmtFdmVudENhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNvdXBNZXNzYWdlRm9ySGFuZGxlQW5kUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdSZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Om1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAg
ICAgVXNlIG5ldyBSZXNvdXJjZUxvYWRUaW1pbmcgbWV0aG9kcy4KKwogMjAxNC0wNS0wNiAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbmltYXRlIEFW
UGxheWVyTGF5ZXIgaW50byBhbmQgb3V0IG9mIGZ1bGwgc2NyZWVuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTc3MSw2ICs3NzEsNyBAQCBfX1pON1dlYkNvcmUxOFBsYXRm
b3JtUGFzdGVib2FyZDhhZGRUeXBlCiBfX1pON1dlYkNvcmUxOFBsYXRmb3JtUGFzdGVib2FyZDhn
ZXRUeXBlc0VSTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZs
b3dFRUUKIF9fWk43V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkOHNldFR5cGVzRVJLTjNXVEY2
VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUUKIF9fWk43V2Vi
Q29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkQzFFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUx
OFJlc291cmNlTG9hZFRpbWluZ0MxRXYKIF9fWk43V2ViQ29yZTE4U3R5bGVTaGVldENvbnRlbnRz
MTFwYXJzZVN0cmluZ0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4U3R5bGVTaGVldENv
bnRlbnRzQzFFUE5TXzE1U3R5bGVSdWxlSW1wb3J0RVJLTjNXVEY2U3RyaW5nRVJLTlNfMTZDU1NQ
YXJzZXJDb250ZXh0RQogX19aTjdXZWJDb3JlMThTdHlsZVNoZWV0Q29udGVudHNEMUV2CkBAIC04
NDUsNiArODQ2LDcgQEAgX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE3c2V0SAog
X19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE4c2V0SFRUUEhlYWRlckZpZWxkRVJL
TjNXVEYxMkF0b21pY1N0cmluZ0VSS05TMV82U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJj
ZVJlc3BvbnNlQmFzZTE5c2V0VGV4dEVuY29kaW5nTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dlc3RlZEZpbGVuYW1lRVJLTjNX
VEY2U3RyaW5nRQorX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTIxc2V0UmVzb3Vy
Y2VMb2FkVGltaW5nRU4zV1RGMTBQYXNzUmVmUHRySU5TXzE4UmVzb3VyY2VMb2FkVGltaW5nRUVF
CiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMjRzZXRFeHBlY3RlZENvbnRlbnRM
ZW5ndGhFeAogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTZzZXRVUkxFUktOU18z
VVJMRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZUMyRXYKQEAgLTE3NTUsNiAr
MTc1Nyw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTVodHQKIF9fWk5L
N1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTZodHRwSGVhZGVyRmllbGRzRXYKIF9fWk5L
N1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTZ0ZXh0RW5jb2RpbmdOYW1lRXYKIF9fWk5L
N1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzdWdnZXN0ZWRGaWxlbmFtZUV2CitfX1pO
SzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE4cmVzb3VyY2VMb2FkVGltaW5nRXYKIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMjFleHBlY3RlZENvbnRlbnRMZW5ndGhF
dgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UzdXJsRXYKIF9fWk5LN1dlYkNv
cmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNmlzSFRUUEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCShyZXZpc2lvbiAx
NjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMCwyMSArMjAwLDE2IEBAIHN0YXRpYyBQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKICAgICByZXR1cm4gaGVhZGVyc09iamVjdDsKIH0K
IAotc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVz
b3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWlu
ZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBhc3NSZWZQdHI8SW5z
cGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0
Rm9yVGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nKQogewogICAgIHJldHVy
biBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNvdXJjZVRpbWluZzo6Y3JlYXRl
KCkKLSAgICAgICAgLnNldFJlcXVlc3RUaW1lKGxvYWRlci0+dGltaW5nKCktPm1vbm90b25pY1Rp
bWVUb1BzZXVkb1dhbGxUaW1lKHRpbWluZy5jb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3Rv
bmljVGltZSgwKSkpCi0gICAgICAgIC5zZXRQcm94eVN0YXJ0KHRpbWluZy5wcm94eVN0YXJ0KQot
ICAgICAgICAuc2V0UHJveHlFbmQodGltaW5nLnByb3h5RW5kKQotICAgICAgICAuc2V0RG5zU3Rh
cnQodGltaW5nLmRuc1N0YXJ0KQotICAgICAgICAuc2V0RG5zRW5kKHRpbWluZy5kbnNFbmQpCi0g
ICAgICAgIC5zZXRDb25uZWN0U3RhcnQodGltaW5nLmNvbm5lY3RTdGFydCkKLSAgICAgICAgLnNl
dENvbm5lY3RFbmQodGltaW5nLmNvbm5lY3RFbmQpCi0gICAgICAgIC5zZXRTc2xTdGFydCh0aW1p
bmcuc3NsU3RhcnQpCi0gICAgICAgIC5zZXRTc2xFbmQodGltaW5nLnNzbEVuZCkKLSAgICAgICAg
LnNldFNlbmRTdGFydCh0aW1pbmcuc2VuZFN0YXJ0KQotICAgICAgICAuc2V0U2VuZEVuZCh0aW1p
bmcuc2VuZEVuZCkKLSAgICAgICAgLnNldFJlY2VpdmVIZWFkZXJzRW5kKHRpbWluZy5yZWNlaXZl
SGVhZGVyc0VuZCkKKyAgICAgICAgLnNldERvbWFpbkxvb2t1cFN0YXJ0VGltZSh0aW1pbmcuZG9t
YWluTG9va3VwU3RhcnRUaW1lKCkpCisgICAgICAgIC5zZXREb21haW5Mb29rdXBFbmRUaW1lKHRp
bWluZy5kb21haW5Mb29rdXBFbmRUaW1lKCkpCisgICAgICAgIC5zZXRDb25uZWN0U3RhcnRUaW1l
KHRpbWluZy5jb25uZWN0U3RhcnRUaW1lKCkpCisgICAgICAgIC5zZXRDb25uZWN0RW5kVGltZSh0
aW1pbmcuY29ubmVjdEVuZFRpbWUoKSkKKyAgICAgICAgLnNldFNlY3VyZUNvbm5lY3Rpb25TdGFy
dFRpbWUodGltaW5nLnNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKSkKKyAgICAgICAgLnNldFJl
cXVlc3RTdGFydFRpbWUodGltaW5nLnJlcXVlc3RTdGFydFRpbWUoKSkKKyAgICAgICAgLnNldFJl
c3BvbnNlU3RhcnRUaW1lKHRpbWluZy5yZXNwb25zZVN0YXJ0VGltZSgpKQogICAgICAgICAucmVs
ZWFzZSgpOwogfQogCkBAIC0yMjksNyArMjI0LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVj
dG9yOjpUeXBlQnVpbGRlcgogICAgIHJldHVybiByZXF1ZXN0T2JqZWN0OwogfQogCi1zdGF0aWMg
UGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNwb25zZT4gYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAocmVz
cG9uc2UuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjQ4LDE5ICsyNDMs
MTkgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcgogCiAgICAgcmVz
cG9uc2VPYmplY3QtPnNldEZyb21EaXNrQ2FjaGUocmVzcG9uc2Uud2FzQ2FjaGVkKCkpOwogICAg
IGlmIChyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAgcmVzcG9uc2VPYmpl
Y3QtPnNldFRpbWluZyhidWlsZE9iamVjdEZvclRpbWluZygqcmVzcG9uc2UucmVzb3VyY2VMb2Fk
VGltaW5nKCksIGxvYWRlcikpOworICAgICAgICByZXNwb25zZU9iamVjdC0+c2V0VGltaW5nKGJ1
aWxkT2JqZWN0Rm9yVGltaW5nKCpyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkpOwogCiAg
ICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0OwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0
b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JD
YWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIERvY3VtZW50TG9h
ZGVyKiBsb2FkZXIpCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpO
ZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlw
ZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlPiByZXNvdXJjZU9iamVjdCA9IEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlOjpjcmVhdGUoKQogICAg
ICAgICAuc2V0VXJsKGNhY2hlZFJlc291cmNlLT51cmwoKSkKICAgICAgICAgLnNldFR5cGUoSW5z
cGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZVR5cGVKc29uKCpjYWNoZWRSZXNvdXJjZSkp
CiAgICAgICAgIC5zZXRCb2R5U2l6ZShjYWNoZWRSZXNvdXJjZS0+ZW5jb2RlZFNpemUoKSk7CiAK
LSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IHJl
c291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UoY2FjaGVkUmVz
b3VyY2UtPnJlc3BvbnNlKCksIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1
aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0gYnVpbGRPYmplY3RG
b3JSZXNvdXJjZVJlc3BvbnNlKGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpKTsKICAgICBpZiAo
cmVzb3VyY2VSZXNwb25zZSkKICAgICAgICAgcmVzb3VyY2VPYmplY3QtPnNldFJlc3BvbnNlKHJl
c291cmNlUmVzcG9uc2UpOwogCkBAIC0zMjQsNyArMzE5LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNv
dXJjZUFnZW50Ojp3aWxsU2VuZFJlcQogICAgIEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlBhZ2U6
OlJlc291cmNlVHlwZTo6RW51bSByZXNvdXJjZVR5cGUgPSBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJl
c291cmNlVHlwZUpzb24odHlwZSk7CiAKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRl
cjo6TmV0d29yazo6SW5pdGlhdG9yPiBpbml0aWF0b3JPYmplY3QgPSBidWlsZEluaXRpYXRvck9i
amVjdChsb2FkZXItPmZyYW1lKCkgPyBsb2FkZXItPmZyYW1lKCktPmRvY3VtZW50KCkgOiBudWxs
cHRyKTsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVzdFdpbGxCZVNlbnQocmVxdWVz
dElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXItPmZyYW1lKCkpLCBtX3BhZ2VBZ2VudC0+
bG9hZGVySWQobG9hZGVyKSwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKSwgYnVpbGRPYmplY3RGb3JS
ZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGN1cnJlbnRUaW1lKCksIGluaXRpYXRvck9iamVjdCwg
YnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UsIGxvYWRlciks
IHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8gJnJlc291cmNlVHlw
ZSA6IG51bGxwdHIpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1ZXN0V2lsbEJlU2Vu
dChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+ZnJhbWUoKSksIG1fcGFn
ZUFnZW50LT5sb2FkZXJJZChsb2FkZXIpLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBidWlsZE9i
amVjdEZvclJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgY3VycmVudFRpbWUoKSwgaW5pdGlhdG9y
T2JqZWN0LCBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSks
IHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8gJnJlc291cmNlVHlw
ZSA6IG51bGxwdHIpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Om1hcmtSZXNv
dXJjZUFzQ2FjaGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKQEAgLTM0MSw3ICszMzYsNyBA
QCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJ
ZChpZGVudGlmaWVyKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29y
azo6UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVz
cG9uc2UocmVzcG9uc2UsIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxk
ZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0gYnVpbGRPYmplY3RGb3JS
ZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKTsKIAogICAgIGJvb2wgaXNOb3RNb2RpZmllZCA9IHJl
c3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gMzA0OwogCkBAIC00NjAsNyArNDU1LDcgQEAgdm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2FkUmVzbwogCiAgICAgUmVmUHRyPEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkluaXRpYXRvcj4gaW5pdGlhdG9yT2JqZWN0ID0g
YnVpbGRJbml0aWF0b3JPYmplY3QobG9hZGVyLT5mcmFtZSgpID8gbG9hZGVyLT5mcmFtZSgpLT5k
b2N1bWVudCgpIDogbnVsbHB0cik7CiAKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVz
dFNlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1ZXN0SWQsIGZyYW1lSWQsIGxvYWRlcklkLCBsb2Fk
ZXItPnVybCgpLnN0cmluZygpLCBjdXJyZW50VGltZSgpLCBpbml0aWF0b3JPYmplY3QsIGJ1aWxk
T2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2UsIGxvYWRlcikpOworICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyLT5yZXF1ZXN0U2VydmVkRnJvbU1lbW9yeUNhY2hlKHJlcXVlc3RJZCwgZnJh
bWVJZCwgbG9hZGVySWQsIGxvYWRlci0+dXJsKCkuc3RyaW5nKCksIGN1cnJlbnRUaW1lKCksIGlu
aXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShyZXNvdXJjZSkpOwog
fQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEluaXRpYWxTY3JpcHRDb250ZW50
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgbWFya1Jlc291cmNlQXNDYWNoZWQodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsYW9kZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBSZXNvdXJjZUxvYWRlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3Bv
bnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRh
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5n
dGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBkb3VibGUgZmluaXNoVGlt
ZSk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCShyZXZpc2lvbiAxNjgzOTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiwxOCArMzIsMTMgQEAKICAgICAgICAgICAgICJ0eXBlIjogIm9iamVj
dCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGltaW5nIGluZm9ybWF0aW9uIGZvciB0
aGUgcmVxdWVzdC4iLAogICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJyZXF1ZXN0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJUaW1pbmcncyByZXF1ZXN0VGltZSBpcyBhIGJhc2VsaW5lIGluIHNlY29uZHMsIHdoaWxl
IHRoZSBvdGhlciBudW1iZXJzIGFyZSB0aWNrcyBpbiBtaWxsaXNlY29uZHMgcmVsYXRpdmVseSB0
byB0aGlzIHJlcXVlc3RUaW1lLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3h5
U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCByZXNvbHZp
bmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJveHlFbmQiLCAidHlw
ZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgcmVzb2x2aW5nIHByb3h5LiIg
fSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRuc1N0YXJ0IiwgInR5cGUiOiAibnVtYmVy
IiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0sCi0gICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJkbnNFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3Jp
cHRpb24iOiAiRmluaXNoZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJjb25uZWN0U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRp
b24iOiAiU3RhcnRlZCBjb25uZWN0aW5nIHRvIHRoZSByZW1vdGUgaG9zdC4iIH0sCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0RW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2Ny
aXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAic3NsU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24i
OiAiU3RhcnRlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNzbEVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBTU0wg
aGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbmRTdGFydCIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHNlbmRpbmcgcmVxdWVzdC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzZW5kRW5kIiwgInR5cGUiOiAibnVtYmVy
IiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHNlbmRpbmcgcmVxdWVzdC4iIH0sCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJyZWNlaXZlSGVhZGVyc0VuZCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCByZWNlaXZpbmcgcmVzcG9uc2UgaGVhZGVycy4iIH0K
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cFN0YXJ0VGltZSIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIEROUyBhZGRyZXNzIHJlc29sdmUi
IH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb21haW5Mb29rdXBFbmRUaW1lIiwgInR5
cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIEROUyBhZGRyZXNzIHJlc29s
dmUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29ubmVjdFN0YXJ0VGltZSIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5lY3RpbmcgdG8gdGhl
IHJlbW90ZSBob3N0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RFbmRU
aW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUg
cmVtb3RlIGhvc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VjdXJlQ29ubmVj
dGlvblN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVk
IFNTTCBoYW5kc2hha2UuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdFN0
YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHNlbmRp
bmcgcmVxdWVzdC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNwb25zZVN0YXJ0
VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlY2Vpdmlu
ZyByZXNwb25zZS4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewpJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAJKHJldmlz
aW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NiwxMiArNzYsNiBAQCB2b2lkIERvY3VtZW50TG9hZFRp
bWluZzo6bWFya05hdmlnYXRpb25TCiAgICAgbV9yZWZlcmVuY2VXYWxsVGltZSA9IGN1cnJlbnRU
aW1lKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjpzZXROYXZpZ2F0aW9uU3RhcnQo
ZG91YmxlIG5hdmlnYXRpb25TdGFydCkKLXsKLSAgICBBU1NFUlQobV9yZWZlcmVuY2VNb25vdG9u
aWNUaW1lICYmIG1fcmVmZXJlbmNlV2FsbFRpbWUpOwotICAgIG1fbmF2aWdhdGlvblN0YXJ0ID0g
bmF2aWdhdGlvblN0YXJ0OwotfQotCiB2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6YWRkUmVkaXJl
Y3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1VybCwgY29uc3QgVVJMJiByZWRpcmVjdGVkVXJsKQog
ewogICAgIG1fcmVkaXJlY3RDb3VudCsrOwpAQCAtOTAsNyArODQsNyBAQCB2b2lkIERvY3VtZW50
TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QoY29uCiAgICAgbV9yZWRpcmVjdEVuZCA9IG1fZmV0Y2hT
dGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogICAgIC8vIENoZWNrIGlmIHRo
ZSByZWRpcmVjdGVkIHVybCBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgcmVkaXJlY3RpbmcgdXJs
J3MgdGltaW5nIGluZm9ybWF0aW9uLgogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVkaXJl
Y3RlZFNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZWRpcmVjdGVkVXJs
KTsKLSAgICBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgPSAhcmVkaXJlY3RlZFNlY3VyaXR5T3Jp
Z2luLT5jYW5SZXF1ZXN0KHJlZGlyZWN0aW5nVXJsKTsKKyAgICBtX2hhc0Nyb3NzT3JpZ2luUmVk
aXJlY3QgPSBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgfHwgIXJlZGlyZWN0ZWRTZWN1cml0eU9y
aWdpbi0+Y2FuUmVxdWVzdChyZWRpcmVjdGluZ1VybCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgJ
KHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRU
aW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAgICAgZG91
YmxlIG1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKGRvdWJsZSkgY29uc3Q7CiAKICAgICB2
b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKLSAgICB2b2lkIHNldE5hdmlnYXRpb25TdGFydChk
b3VibGUpOwogICAgIHZvaWQgYWRkUmVkaXJlY3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1VybCwg
Y29uc3QgVVJMJiByZWRpcmVjdGVkVXJsKTsKIAogICAgIHZvaWQgbWFya1VubG9hZEV2ZW50U3Rh
cnQoKSB7IG1fdW5sb2FkRXZlbnRTdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAkocmV2aXNpb24gMTY4Mzky
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8gU2VlOiBodHRwOi8v
ZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisvLyBTZWU6IGh0dHBzOi8vZHZjcy53
My5vcmcvaGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3MvTmF2aWdhdGlvblRpbWluZy9PdmVy
dmlldy5odG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAgICBFdmVudFRhcmdl
dCwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzExMiw3
IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZWRpcmUKIGRvdWJsZSBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KCkgY29uc3QKIHsKICAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgYmUgZGlmZmVyZW50IGRlcGVuZGluZyBvbiByZWRpcmVjdHMuCi0gICAg
cmV0dXJuIChzdGFydFRpbWUoKSk7CisgICAgcmV0dXJuIHN0YXJ0VGltZSgpOwogfQogCiBkb3Vi
bGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluTG9va3VwU3RhcnQoKSBjb25zdApA
QCAtMTIwLDEwICsxMjAsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRv
bWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAgICAgICByZXR1cm4gMC4w
OwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zU3RhcnQgPCAwKQorICAgIGlm
ICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0VGltZSgpIDwgMCkKICAg
ICAgICAgcmV0dXJuIGZldGNoU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0Rv
Y3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNTdGFydCk7CisgICAgcmV0dXJuIG1fdGlt
aW5nLT5kb21haW5Mb29rdXBTdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xMzEsMTAgKzEzMSwxMCBA
QCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluCiAgICAgaWYgKCFtX3No
b3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGlt
aW5nIHx8IG1fdGltaW5nLT5kbnNFbmQgPCAwKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1p
bmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA8IDApCiAgICAgICAgIHJldHVybiBkb21haW5Mb29r
dXBTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29u
ZHMobV90aW1pbmctPmRuc0VuZCk7CisgICAgcmV0dXJuIG1fdGltaW5nLT5kb21haW5Mb29rdXBF
bmRUaW1lKCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25uZWN0
U3RhcnQoKSBjb25zdApAQCAtMTQzLDE1ICsxNDMsMTUgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmNvbm5lYwogICAgICAgICByZXR1cm4gMC4wOwogCiAgICAgLy8gY29ubmVj
dFN0YXJ0IHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVxdWVzdCBpcyBub3QgbWFkZS4KLSAg
ICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5jb25uZWN0U3RhcnQgPCAwIHx8IG1fZGlkUmV1
c2VDb25uZWN0aW9uKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmNvbm5lY3RTdGFy
dFRpbWUoKSA8IDAgfHwgbV9kaWRSZXVzZUNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiBkb21h
aW5Mb29rdXBFbmQoKTsKIAogICAgIC8vIGNvbm5lY3RTdGFydCBpbmNsdWRlcyBhbnkgRE5TIHRp
bWUsIHNvIHdlIG1heSBuZWVkIHRvIHRyaW0gdGhhdCBvZmYuCi0gICAgaW50IGNvbm5lY3RTdGFy
dCA9IG1fdGltaW5nLT5jb25uZWN0U3RhcnQ7Ci0gICAgaWYgKG1fdGltaW5nLT5kbnNFbmQgPj0g
MCkKLSAgICAgICAgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmRuc0VuZDsKKyAgICBkb3VibGUg
Y29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmNvbm5lY3RTdGFydFRpbWUoKTsKKyAgICBpZiAobV90
aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA+PSAwKQorICAgICAgICBjb25uZWN0U3RhcnQg
PSBtX3RpbWluZy0+ZG9tYWluTG9va3VwRW5kVGltZSgpOwogCi0gICAgcmV0dXJuIHJlc291cmNl
VGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoY29ubmVjdFN0YXJ0KTsKKyAgICByZXR1cm4gY29u
bmVjdFN0YXJ0OwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVj
dEVuZCgpIGNvbnN0CkBAIC0xNjAsMTAgKzE2MCwxMCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6Y29ubmVjCiAgICAgICAgIHJldHVybiAwLjA7CiAKICAgICAvLyBjb25uZWN0
U3RhcnQgd2lsbCBiZSAtMSB3aGVuIGEgbmV0d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgotICAg
IGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmNvbm5lY3RFbmQgPCAwIHx8IG1fZGlkUmV1c2VD
b25uZWN0aW9uKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmNvbm5lY3RFbmRUaW1l
KCkgPCAwIHx8IG1fZGlkUmV1c2VDb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gY29ubmVjdFN0
YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyht
X3RpbWluZy0+Y29ubmVjdEVuZCk7CisgICAgcmV0dXJuIG1fdGltaW5nLT5jb25uZWN0RW5kVGlt
ZSgpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6c2VjdXJlQ29ubmVj
dGlvblN0YXJ0KCkgY29uc3QKQEAgLTE3MSwxMCArMTcxLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nOjpzZWN1cmUKICAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykK
ICAgICAgICAgcmV0dXJuIDAuMDsKIAotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNz
bFN0YXJ0IDwgMCkgLy8gU2VjdXJlIGNvbm5lY3Rpb24gbm90IG5lZ290aWF0ZWQuCisgICAgaWYg
KCFtX3RpbWluZyB8fCBtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSgpIDwgMCkg
Ly8gU2VjdXJlIGNvbm5lY3Rpb24gbm90IG5lZ290aWF0ZWQuCiAgICAgICAgIHJldHVybiAwLjA7
CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWlu
Zy0+c3NsU3RhcnQpOworICAgIHJldHVybiBtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0
VGltZSgpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0
YXJ0KCkgY29uc3QKQEAgLTE4NSwzMyArMTg1LDEyIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpyZXF1ZXMKICAgICBpZiAoIW1fdGltaW5nKQogICAgICAgICByZXR1cm4gY29u
bmVjdEVuZCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29u
ZHMobV90aW1pbmctPnNlbmRTdGFydCk7Ci19Ci0KLWRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKLXsKLSAgICBpZiAoIW1fc2hvdWxkUmVwb3J0
RGV0YWlscykKLSAgICAgICAgcmV0dXJuIDAuMDsKLQotICAgIGlmICghbV90aW1pbmcpCi0gICAg
ICAgIHJldHVybiByZXF1ZXN0U3RhcnQoKTsKLSAgICAvLyBGSVhNRTogVGhpcyBudW1iZXIgaXNu
J3QgZXhhY3RseSBjb3JyZWN0LiBTZWUgdGhlIG5vdGVzIGluIFBlcmZvcm1hbmNlVGltaW5nOjpy
ZXNwb25zZVN0YXJ0KCkuCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNl
Y29uZHMobV90aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kKTsKKyAgICByZXR1cm4gbV90aW1pbmct
PnJlcXVlc3RTdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fZmluaXNoVGltZSkKLSAgICAg
ICAgcmV0dXJuIHJlc3BvbnNlU3RhcnQoKTsKLQotICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9E
b2N1bWVudE1pbGxpc2Vjb25kcyhtX3JlcXVlc3RpbmdEb2N1bWVudC5nZXQoKSwgbV9maW5pc2hU
aW1lKTsKLX0KLQotZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc291cmNlVGlt
ZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdAotewot
ICAgIGlmICghZGVsdGFNaWxsaXNlY29uZHMpCi0gICAgICAgIHJldHVybiAwLjA7Ci0gICAgcmV0
dXJuIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3Vt
ZW50LmdldCgpLCBtX3RpbWluZy0+cmVxdWVzdFRpbWUpICsgZGVsdGFNaWxsaXNlY29uZHM7Cisg
ICAgcmV0dXJuIG1fZmluaXNoVGltZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgJ
KHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw2IEBAIHB1YmxpYzoKICAg
ICBkb3VibGUgY29ubmVjdEVuZCgpIGNvbnN0OwogICAgIGRvdWJsZSBzZWN1cmVDb25uZWN0aW9u
U3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0KCkgY29uc3Q7Ci0gICAgZG91
YmxlIHJlc3BvbnNlU3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVzcG9uc2VFbmQoKSBjb25z
dDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Jlc291cmNlKCkgeyByZXR1cm4gdHJ1ZTsgfQpAQCAt
NzQsOCArNzMsNiBAQCBwcml2YXRlOgogICAgIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoY29u
c3QgQXRvbWljU3RyaW5nJiBpbml0YXRvclR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBmaW5p
c2hUaW1lLCBEb2N1bWVudCopOwogICAgIH5QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKCk7CiAK
LSAgICBkb3VibGUgcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhpbnQgZGVsdGFN
aWxsaXNlY29uZHMpIGNvbnN0OwotCiAgICAgQXRvbWljU3RyaW5nIG1faW5pdGlhdG9yVHlwZTsK
ICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBtX3RpbWluZzsKICAgICBkb3VibGUgbV9m
aW5pc2hUaW1lOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuaWRsCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2
ICs0Myw1IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgY29u
bmVjdEVuZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBzZWN1
cmVDb25uZWN0aW9uU3RhcnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBk
b3VibGUgcmVxdWVzdFN0YXJ0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQg
ZG91YmxlIHJlc3BvbnNlU3RhcnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGUgcmVzcG9uc2VFbmQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsMTEgKzEzMCwx
MSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBU
aGlzIHdpbGwgYmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAg
Ly8gUmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5v
IEROUywgd2UgImJhY2tmaWxsIiB3aXRoIGZldGNoU3RhcnQuCi0gICAgaW50IGRuc1N0YXJ0ID0g
dGltaW5nLT5kbnNTdGFydDsKKyAgICBkb3VibGUgZG5zU3RhcnQgPSB0aW1pbmctPmRvbWFpbkxv
b2t1cFN0YXJ0VGltZSgpOwogICAgIGlmIChkbnNTdGFydCA8IDApCiAgICAgICAgIHJldHVybiBm
ZXRjaFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNv
bHV0ZShkbnNTdGFydCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxs
aXNlY29uZHMoZG5zU3RhcnQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xNDUsMTEgKzE0NSwxMSBAQCB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBUaGlzIHdpbGwg
YmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAgLy8gUmF0aGVy
IHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIEROUywgd2Ug
ImJhY2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1cFN0YXJ0LgotICAgIGludCBkbnNFbmQgPSB0aW1p
bmctPmRuc0VuZDsKKyAgICBkb3VibGUgZG5zRW5kID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmRU
aW1lKCk7CiAgICAgaWYgKGRuc0VuZCA8IDApCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBT
dGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUo
ZG5zRW5kKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vjb25k
cyhkbnNFbmQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNv
bm5lY3RTdGFydCgpIGNvbnN0CkBAIC0xNjQsMTYgKzE2NCwxNiBAQCB1bnNpZ25lZCBsb25nIGxv
bmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvCiAKICAgICAvLyBjb25uZWN0U3RhcnQgd2lsbCBiZSAt
MSB3aGVuIGEgbmV0d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgogICAgIC8vIFJhdGhlciB0aGFu
IGV4cG9zaW5nIGEgc3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBuZXcgY29ubmVjdGlv
biwgd2UgImJhY2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1cEVuZC4KLSAgICBpbnQgY29ubmVjdFN0
YXJ0ID0gdGltaW5nLT5jb25uZWN0U3RhcnQ7CisgICAgZG91YmxlIGNvbm5lY3RTdGFydCA9IHRp
bWluZy0+Y29ubmVjdFN0YXJ0VGltZSgpOwogICAgIGlmIChjb25uZWN0U3RhcnQgPCAwIHx8IGxv
YWRlci0+cmVzcG9uc2UoKS5jb25uZWN0aW9uUmV1c2VkKCkpCiAgICAgICAgIHJldHVybiBkb21h
aW5Mb29rdXBFbmQoKTsKIAogICAgIC8vIFJlc291cmNlTG9hZFRpbWluZydzIGNvbm5lY3QgcGhh
c2UgaW5jbHVkZXMgRE5TLCBob3dldmVyIE5hdmlnYXRpb24gVGltaW5nJ3MKICAgICAvLyBjb25u
ZWN0IHBoYXNlIHNob3VsZCBub3QuIFNvIGlmIHRoZXJlIGlzIEROUyB0aW1lLCB0cmltIGl0IGZy
b20gdGhlIHN0YXJ0LgotICAgIGlmICh0aW1pbmctPmRuc0VuZCA+PSAwICYmIHRpbWluZy0+ZG5z
RW5kID4gY29ubmVjdFN0YXJ0KQotICAgICAgICBjb25uZWN0U3RhcnQgPSB0aW1pbmctPmRuc0Vu
ZDsKKyAgICBpZiAodGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCkgPj0gMCAmJiB0aW1pbmct
PmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA+IGNvbm5lY3RTdGFydCkKKyAgICAgICAgY29ubmVjdFN0
YXJ0ID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCk7CiAKLSAgICByZXR1cm4gcmVzb3Vy
Y2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShjb25uZWN0U3RhcnQpOworICAgIHJldHVybiBy
ZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGNvbm5lY3RTdGFydCk7CiB9CiAK
IHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6Y29ubmVjdEVuZCgpIGNvbnN0
CkBAIC0xODgsMTEgKzE4OCwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1p
bmc6OmNvCiAKICAgICAvLyBjb25uZWN0RW5kIHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVx
dWVzdCBpcyBub3QgbWFkZS4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwg
dmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8gbmV3IGNvbm5lY3Rpb24sIHdlICJiYWNrZmlsbCIgd2l0
aCBjb25uZWN0U3RhcnQuCi0gICAgaW50IGNvbm5lY3RFbmQgPSB0aW1pbmctPmNvbm5lY3RFbmQ7
CisgICAgZG91YmxlIGNvbm5lY3RFbmQgPSB0aW1pbmctPmNvbm5lY3RFbmRUaW1lKCk7CiAgICAg
aWYgKGNvbm5lY3RFbmQgPCAwIHx8IGxvYWRlci0+cmVzcG9uc2UoKS5jb25uZWN0aW9uUmV1c2Vk
KCkpCiAgICAgICAgIHJldHVybiBjb25uZWN0U3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJj
ZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGNvbm5lY3RFbmQpOworICAgIHJldHVybiByZXNv
dXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGNvbm5lY3RFbmQpOwogfQogCiB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCgp
IGNvbnN0CkBAIC0yMDUsMTEgKzIwNSwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFu
Y2VUaW1pbmc6OnNlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
aW50IHNzbFN0YXJ0ID0gdGltaW5nLT5zc2xTdGFydDsKKyAgICBkb3VibGUgc3NsU3RhcnQgPSB0
aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKTsKICAgICBpZiAoc3NsU3RhcnQgPCAw
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRp
dmVUb0Fic29sdXRlKHNzbFN0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50
ZWdlck1pbGxpc2Vjb25kcyhzc2xTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJm
b3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KCkgY29uc3QKQEAgLTIxOCw4ICsyMTgsOCBAQCB1
bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlCiAgICAgaWYgKCF0aW1pbmcp
CiAgICAgICAgIHJldHVybiBjb25uZWN0RW5kKCk7CiAKLSAgICBBU1NFUlQodGltaW5nLT5zZW5k
U3RhcnQgPj0gMCk7Ci0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1
dGUodGltaW5nLT5zZW5kU3RhcnQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlcXVlc3RTdGFydFRp
bWUoKSA+PSAwKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vj
b25kcyh0aW1pbmctPnJlcXVlc3RTdGFydFRpbWUoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9u
ZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0CkBAIC0yMjgsMTQgKzIy
OCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAo
IXRpbWluZykKICAgICAgICAgcmV0dXJuIHJlcXVlc3RTdGFydCgpOwogCi0gICAgLy8gRklYTUU6
IFJlc3BvbnNlIHN0YXJ0IG5lZWRzIHRvIGJlIHRoZSB0aW1lIG9mIHRoZSBmaXJzdCByZWNlaXZl
ZCBieXRlLgotICAgIC8vIEhvd2V2ZXIsIHRoZSBSZXNvdXJjZUxvYWRUaW1pbmcgQVBJIGN1cnJl
bnRseSBvbmx5IHN1cHBvcnRzIHRoZSB0aW1lCi0gICAgLy8gdGhlIGxhc3QgaGVhZGVyIGJ5dGUg
d2FzIHJlY2VpdmVkLiBGb3IgbWFueSByZXNwb25zZXMgd2l0aCByZWFzb25hYmxlCi0gICAgLy8g
c2l6ZWQgY29va2llcywgdGhlIEhUVFAgaGVhZGVycyBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQg
c28gdGhpcyB0aW1lCi0gICAgLy8gaXMgYmFzaWNhbGx5IGVxdWl2YWxlbnQuIEJ1dCBmb3Igc29t
ZSByZXNwb25zZXMsIHBhcnRpY3VsYXJseSB0aG9zZSB3aXRoCi0gICAgLy8gaGVhZGVycyBsYXJn
ZXIgdGhhbiBhIHNpbmdsZSBwYWNrZXQsIHRoaXMgdGltZSB3aWxsIGJlIHRvbyBsYXRlLgotICAg
IEFTU0VSVCh0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kID49IDApOwotICAgIHJldHVybiByZXNv
dXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQp
OworICAgIEFTU0VSVCh0aW1pbmctPnJlc3BvbnNlU3RhcnRUaW1lKCkgPj0gMCk7CisgICAgcmV0
dXJuIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5yZXNwb25z
ZVN0YXJ0VGltZSgpKTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5n
OjpyZXNwb25zZUVuZCgpIGNvbnN0CkBAIC0zNDgsMTQgKzM0Miw2IEBAIFJlc291cmNlTG9hZFRp
bWluZyogUGVyZm9ybWFuY2VUaW1pbmc6OnIKICAgICByZXR1cm4gbG9hZGVyLT5yZXNwb25zZSgp
LnJlc291cmNlTG9hZFRpbWluZygpOwogfQogCi11bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFu
Y2VUaW1pbmc6OnJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoaW50IHJlbGF0aXZl
TWlsbGlzZWNvbmRzKSBjb25zdAotewotICAgIEFTU0VSVChyZWxhdGl2ZU1pbGxpc2Vjb25kcyA+
PSAwKTsKLSAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHJlc291cmNlVGltaW5nID0gcmVzb3VyY2VM
b2FkVGltaW5nKCk7Ci0gICAgQVNTRVJUKHJlc291cmNlVGltaW5nKTsKLSAgICByZXR1cm4gbW9u
b3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhyZXNvdXJjZVRpbWluZy0+Y29udmVydFJl
c291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUocmVsYXRpdmVNaWxsaXNlY29uZHMpKTsKLX0K
LQogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjptb25vdG9uaWNUaW1lVG9J
bnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJsZSBtb25vdG9uaWNTZWNvbmRzKSBjb25zdAogewogICAg
IEFTU0VSVChtb25vdG9uaWNTZWNvbmRzID49IDApOwpAQCAtMzYzLDYgKzM0OSwxOCBAQCB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om1vCiAgICAgQVNTRVJUKHRpbWluZyk7
CiAgICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPm1vbm90b25pY1RpbWVU
b1BzZXVkb1dhbGxUaW1lKG1vbm90b25pY1NlY29uZHMpKTsKIH0KKyAgICAKK3Vuc2lnbmVkIGxv
bmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxp
c2Vjb25kcyhkb3VibGUgc2Vjb25kcykKK3sKKyAgICBpZiAoc2Vjb25kcyA8PSAwLjApCisgICAg
ICAgIHJldHVybiAwOworI2lmIFVTRShDRikKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQgbG9uZyBsb25nPigoc2Vjb25kcyArIGtDRkFic29sdXRlVGltZUludGVydmFsU2luY2UxOTcw
KSAqIDEwMDApOworI2Vsc2UKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBs
b25nPihzZWNvbmRzICogMTAwMCk7CisjZW5kaWYKK30KKyAgICAKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5oCShy
ZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5n
LmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDggKzc4LDggQEAgcHJpdmF0ZToKICAgICBEb2N1bWVu
dExvYWRlciogZG9jdW1lbnRMb2FkZXIoKSBjb25zdDsKICAgICBEb2N1bWVudExvYWRUaW1pbmcq
IGRvY3VtZW50TG9hZFRpbWluZygpIGNvbnN0OwogICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVz
b3VyY2VMb2FkVGltaW5nKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIHJlc291cmNl
TG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoaW50KSBjb25zdDsKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUpIGNvbnN0Owor
ICAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1p
bGxpc2Vjb25kcyhkb3VibGUpOwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZVRpbWluZy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZVRpbWluZy5pZGwJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3
IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAw
Ni93ZWJhcGkvV2ViVGltaW5nLworLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3JnL2hnL3dlYnBl
cmYvcmF3LWZpbGUvdGlwL3NwZWNzL05hdmlnYXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRtbAogWwog
ICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiBdIGludGVyZmFjZSBQZXJmb3JtYW5jZVRpbWlu
ZyB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vy
cy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDYgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgUmVzb3VyY2VSZXNw
b25zZUJhc2U7Ci0KIGVudW0gQ29udGVudERpc3Bvc2l0aW9uVHlwZSB7CiAgICAgQ29udGVudERp
c3Bvc2l0aW9uTm9uZSwKICAgICBDb250ZW50RGlzcG9zaXRpb25JbmxpbmUsCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1p
bmcuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDEwICsyOCw0NSBAQAog
I2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWRvdWJsZSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25v
dG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3QKKyAgICAKK1Jlc291cmNlTG9h
ZFRpbWluZzo6UmVzb3VyY2VMb2FkVGltaW5nKCkKKyAgICA6IG1fZG9tYWluTG9va3VwU3RhcnRU
aW1lKC0xLjApCisgICAgLCBtX2RvbWFpbkxvb2t1cEVuZFRpbWUoLTEuMCkKKyAgICAsIG1fY29u
bmVjdFN0YXJ0VGltZSgtMS4wKQorICAgICwgbV9jb25uZWN0RW5kVGltZSgtMS4wKQorICAgICwg
bV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKC0xLjApCisgICAgLCBtX3JlcXVlc3RTdGFydFRp
bWUoMC4wKQorICAgICwgbV9yZXNwb25zZVN0YXJ0VGltZSgwLjApCiB7Ci0gICAgcmV0dXJuIHJl
cXVlc3RUaW1lICsgZGVsdGFNaWxsaXNlY29uZHMgLyAxMDAwLjA7CiB9CiAKK1Bhc3NSZWZQdHI8
UmVzb3VyY2VMb2FkVGltaW5nPiBSZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KCkKK3sKKyAg
ICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiB0aW1pbmcgPSBhZG9wdFJlZihuZXcgUmVzb3Vy
Y2VMb2FkVGltaW5nKTsKKyAgICB0aW1pbmctPnNldERvbWFpbkxvb2t1cFN0YXJ0VGltZShtX2Rv
bWFpbkxvb2t1cFN0YXJ0VGltZSk7CisgICAgdGltaW5nLT5zZXREb21haW5Mb29rdXBFbmRUaW1l
KG1fZG9tYWluTG9va3VwRW5kVGltZSk7CisgICAgdGltaW5nLT5zZXRDb25uZWN0U3RhcnRUaW1l
KG1fY29ubmVjdFN0YXJ0VGltZSk7CisgICAgdGltaW5nLT5zZXRDb25uZWN0RW5kVGltZShtX2Nv
bm5lY3RFbmRUaW1lKTsKKyAgICB0aW1pbmctPnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUo
bV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKTsKKyAgICB0aW1pbmctPnNldFJlcXVlc3RTdGFy
dFRpbWUobV9yZXF1ZXN0U3RhcnRUaW1lKTsKKyAgICB0aW1pbmctPnNldFJlc3BvbnNlU3RhcnRU
aW1lKG1fcmVzcG9uc2VTdGFydFRpbWUpOworICAgIHJldHVybiB0aW1pbmcucmVsZWFzZSgpOwor
fQorICAgIAorYm9vbCBSZXNvdXJjZUxvYWRUaW1pbmc6Om9wZXJhdG9yPT0oY29uc3QgUmVzb3Vy
Y2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kb21haW5Mb29rdXBT
dGFydFRpbWUgPT0gb3RoZXIuZG9tYWluTG9va3VwU3RhcnRUaW1lKCkKKyAgICAgICAgJiYgbV9k
b21haW5Mb29rdXBFbmRUaW1lID09IG90aGVyLmRvbWFpbkxvb2t1cEVuZFRpbWUoKQorICAgICAg
ICAmJiBtX2Nvbm5lY3RTdGFydFRpbWUgPT0gb3RoZXIuY29ubmVjdFN0YXJ0VGltZSgpCisgICAg
ICAgICYmIG1fY29ubmVjdEVuZFRpbWUgPT0gb3RoZXIuY29ubmVjdEVuZFRpbWUoKQorICAgICAg
ICAmJiBtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUgPT0gb3RoZXIuc2VjdXJlQ29ubmVjdGlv
blN0YXJ0VGltZSgpCisgICAgICAgICYmIG1fcmVxdWVzdFN0YXJ0VGltZSA9PSBvdGhlci5yZXF1
ZXN0U3RhcnRUaW1lKCkKKyAgICAgICAgJiYgbV9yZXNwb25zZVN0YXJ0VGltZSA9PSBvdGhlci5y
ZXNwb25zZVN0YXJ0VGltZSgpOworfQorICAgIAorYm9vbCBSZXNvdXJjZUxvYWRUaW1pbmc6Om9w
ZXJhdG9yIT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKK3sKKyAgICBy
ZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7Cit9CisgICAgCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgJKHJldmlz
aW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VM
b2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDk2ICsyNyw0NyBAQAogI2lmbmRlZiBSZXNvdXJj
ZUxvYWRUaW1pbmdfaAogI2RlZmluZSBSZXNvdXJjZUxvYWRUaW1pbmdfaAogCi0jaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVudExv
YWRUaW1pbmc7Ci0KIGNsYXNzIFJlc291cmNlTG9hZFRpbWluZyA6IHB1YmxpYyBSZWZDb3VudGVk
PFJlc291cmNlTG9hZFRpbWluZz4geworICAgIAogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFJlc291cmNlTG9hZFRpbWluZz4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VMb2FkVGltaW5nKTsKLSAgICB9Ci0KLSAgICBQYXNzUmVmUHRy
PFJlc291cmNlTG9hZFRpbWluZz4gZGVlcENvcHkoKQotICAgIHsKLSAgICAgICAgUmVmUHRyPFJl
c291cmNlTG9hZFRpbWluZz4gdGltaW5nID0gY3JlYXRlKCk7Ci0gICAgICAgIHRpbWluZy0+cmVx
dWVzdFRpbWUgPSByZXF1ZXN0VGltZTsKLSAgICAgICAgdGltaW5nLT5wcm94eVN0YXJ0ID0gcHJv
eHlTdGFydDsKLSAgICAgICAgdGltaW5nLT5wcm94eUVuZCA9IHByb3h5RW5kOwotICAgICAgICB0
aW1pbmctPmRuc1N0YXJ0ID0gZG5zU3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+ZG5zRW5kID0gZG5z
RW5kOwotICAgICAgICB0aW1pbmctPmNvbm5lY3RTdGFydCA9IGNvbm5lY3RTdGFydDsKLSAgICAg
ICAgdGltaW5nLT5jb25uZWN0RW5kID0gY29ubmVjdEVuZDsKLSAgICAgICAgdGltaW5nLT5zZW5k
U3RhcnQgPSBzZW5kU3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+c2VuZEVuZCA9IHNlbmRFbmQ7Ci0g
ICAgICAgIHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQgPSByZWNlaXZlSGVhZGVyc0VuZDsKLSAg
ICAgICAgdGltaW5nLT5zc2xTdGFydCA9IHNzbFN0YXJ0OwotICAgICAgICB0aW1pbmctPnNzbEVu
ZCA9IHNzbEVuZDsKLSAgICAgICAgcmV0dXJuIHRpbWluZy5yZWxlYXNlKCk7Ci0gICAgfQotCi0g
ICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gcmVxdWVzdFRpbWUgPT0gb3RoZXIucmVxdWVzdFRpbWUK
LSAgICAgICAgICAgICYmIHByb3h5U3RhcnQgPT0gb3RoZXIucHJveHlTdGFydAotICAgICAgICAg
ICAgJiYgcHJveHlFbmQgPT0gb3RoZXIucHJveHlFbmQKLSAgICAgICAgICAgICYmIGRuc1N0YXJ0
ID09IG90aGVyLmRuc1N0YXJ0Ci0gICAgICAgICAgICAmJiBkbnNFbmQgPT0gb3RoZXIuZG5zRW5k
Ci0gICAgICAgICAgICAmJiBjb25uZWN0U3RhcnQgPT0gb3RoZXIuY29ubmVjdFN0YXJ0Ci0gICAg
ICAgICAgICAmJiBjb25uZWN0RW5kID09IG90aGVyLmNvbm5lY3RFbmQKLSAgICAgICAgICAgICYm
IHNlbmRTdGFydCA9PSBvdGhlci5zZW5kU3RhcnQKLSAgICAgICAgICAgICYmIHNlbmRFbmQgPT0g
b3RoZXIuc2VuZEVuZAotICAgICAgICAgICAgJiYgcmVjZWl2ZUhlYWRlcnNFbmQgPT0gb3RoZXIu
cmVjZWl2ZUhlYWRlcnNFbmQKLSAgICAgICAgICAgICYmIHNzbFN0YXJ0ID09IG90aGVyLnNzbFN0
YXJ0Ci0gICAgICAgICAgICAmJiBzc2xFbmQgPT0gb3RoZXIuc3NsRW5kOwotICAgIH0KLQotICAg
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVyKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwotICAgIH0KLQotICAgIC8v
IFdlIHdhbnQgdG8gcHJlc2VudCBhIHVuaWZpZWQgdGltZWxpbmUgdG8gSmF2YXNjcmlwdC4gVXNp
bmcgd2FsbHRpbWUgaXMgcHJvYmxlbWF0aWMsIGJlY2F1c2UgdGhlIGNsb2NrIG1heSBza2V3IHdo
aWxlIHJlc291cmNlcwotICAgIC8vIGxvYWQuIFRvIHByZXZlbnQgdGhhdCBza2V3LCB3ZSByZWNv
cmQgYSBzaW5nbGUgcmVmZXJlbmNlIHdhbGx0aW1lIHdoZW4gcm9vdCBkb2N1bWVudCBuYXZpZ2F0
aW9uIGJlZ2lucy4gQWxsIG90aGVyIHRpbWVzIGFyZQotICAgIC8vIHJlY29yZGVkIHVzaW5nIG1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLiBXaGVuIGEgdGltZSBuZWVkcyB0byBiZSBwcmVz
ZW50ZWQgdG8gSmF2YXNjcmlwdCwgd2UgYnVpbGQgYSBwc2V1ZG8td2FsbHRpbWUKLSAgICAvLyB1
c2luZyB0aGUgZm9sbG93aW5nIGVxdWF0aW9uOgotICAgIC8vICAgcHNldWRvIHRpbWUgPSBkb2N1
bWVudCB3YWxsIHJlZmVyZW5jZSArIChyZXNvdXJjZSByZXF1ZXN0IHRpbWUgLSBkb2N1bWVudCBt
b25vdG9uaWMgcmVmZXJlbmNlKSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wLgotICAgIGRv
dWJsZSBjb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZShpbnQgZGVsdGFNaWxs
aXNlY29uZHMpIGNvbnN0OwotCi0gICAgZG91YmxlIHJlcXVlc3RUaW1lOyAvLyBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSB3aGVuIHRoZSBwb3J0IHN0YXJ0ZWQgaGFuZGxpbmcgdGhpcyBy
ZXF1ZXN0LgotICAgIGludCBwcm94eVN0YXJ0OyAvLyBUaGUgcmVzdCBvZiB0aGVzZSBhcmUgbWls
bGlzZWNvbmQgZGVsdGFzLCB1c2luZyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgZnJv
bSByZXF1ZXN0VGltZS4KLSAgICBpbnQgcHJveHlFbmQ7Ci0gICAgaW50IGRuc1N0YXJ0OwotICAg
IGludCBkbnNFbmQ7Ci0gICAgaW50IGNvbm5lY3RTdGFydDsKLSAgICBpbnQgY29ubmVjdEVuZDsK
LSAgICBpbnQgc2VuZFN0YXJ0OwotICAgIGludCBzZW5kRW5kOwotICAgIGludCByZWNlaXZlSGVh
ZGVyc0VuZDsKLSAgICBpbnQgc3NsU3RhcnQ7Ci0gICAgaW50IHNzbEVuZDsKLQorICAgIAorICAg
IFJlc291cmNlTG9hZFRpbWluZygpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlTG9h
ZFRpbWluZz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNlTG9hZFRpbWlu
Zyk7IH0KKyAgICBQYXNzUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gZGVlcENvcHkoKTsKKyAg
ICAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJikgY29uc3Q7
CisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYpIGNvbnN0Owor
ICAgIAorICAgIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBt
X2RvbWFpbkxvb2t1cFN0YXJ0VGltZTsgfQorICAgIGRvdWJsZSBkb21haW5Mb29rdXBFbmRUaW1l
KCkgY29uc3QgeyByZXR1cm4gbV9kb21haW5Mb29rdXBFbmRUaW1lOyB9CisgICAgZG91YmxlIGNv
bm5lY3RTdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3RTdGFydFRpbWU7IH0KKyAg
ICBkb3VibGUgY29ubmVjdEVuZFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3RFbmRUaW1l
OyB9CisgICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKSBjb25zdCB7IHJldHVy
biBtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWU7IH0KKyAgICBkb3VibGUgcmVxdWVzdFN0YXJ0
VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdFN0YXJ0VGltZTsgfQorICAgIGRvdWJsZSBy
ZXNwb25zZVN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VTdGFydFRpbWU7IH0K
KyAgICAKKyAgICB2b2lkIHNldERvbWFpbkxvb2t1cFN0YXJ0VGltZShkb3VibGUgZG9tYWluTG9v
a3VwU3RhcnRUaW1lKSB7IG1fZG9tYWluTG9va3VwU3RhcnRUaW1lID0gZG9tYWluTG9va3VwU3Rh
cnRUaW1lOyB9CisgICAgdm9pZCBzZXREb21haW5Mb29rdXBFbmRUaW1lKGRvdWJsZSBkb21haW5M
b29rdXBFbmRUaW1lKSB7IG1fZG9tYWluTG9va3VwRW5kVGltZSA9IGRvbWFpbkxvb2t1cEVuZFRp
bWU7IH0KKyAgICB2b2lkIHNldENvbm5lY3RTdGFydFRpbWUoZG91YmxlIGNvbm5lY3RTdGFydFRp
bWUpIHsgbV9jb25uZWN0U3RhcnRUaW1lID0gY29ubmVjdFN0YXJ0VGltZTsgfQorICAgIHZvaWQg
c2V0Q29ubmVjdEVuZFRpbWUoZG91YmxlIGNvbm5lY3RFbmRUaW1lKSB7IG1fY29ubmVjdEVuZFRp
bWUgPSBjb25uZWN0RW5kVGltZTsgfQorICAgIHZvaWQgc2V0U2VjdXJlQ29ubmVjdGlvblN0YXJ0
VGltZShkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSkgeyBtX3NlY3VyZUNvbm5lY3Rp
b25TdGFydFRpbWUgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lOyB9CisgICAgdm9pZCBzZXRS
ZXF1ZXN0U3RhcnRUaW1lKGRvdWJsZSByZXF1ZXN0U3RhcnRUaW1lKSB7IG1fcmVxdWVzdFN0YXJ0
VGltZSA9IHJlcXVlc3RTdGFydFRpbWU7IH0KKyAgICB2b2lkIHNldFJlc3BvbnNlU3RhcnRUaW1l
KGRvdWJsZSByZXNwb25zZVN0YXJ0VGltZSkgeyBtX3Jlc3BvbnNlU3RhcnRUaW1lID0gcmVzcG9u
c2VTdGFydFRpbWU7IH0KKyAgICAKIHByaXZhdGU6Ci0gICAgUmVzb3VyY2VMb2FkVGltaW5nKCkK
LSAgICAgICAgOiByZXF1ZXN0VGltZSgwKQotICAgICAgICAsIHByb3h5U3RhcnQoLTEpCi0gICAg
ICAgICwgcHJveHlFbmQoLTEpCi0gICAgICAgICwgZG5zU3RhcnQoLTEpCi0gICAgICAgICwgZG5z
RW5kKC0xKQotICAgICAgICAsIGNvbm5lY3RTdGFydCgtMSkKLSAgICAgICAgLCBjb25uZWN0RW5k
KC0xKQotICAgICAgICAsIHNlbmRTdGFydCgwKQotICAgICAgICAsIHNlbmRFbmQoMCkKLSAgICAg
ICAgLCByZWNlaXZlSGVhZGVyc0VuZCgwKQotICAgICAgICAsIHNzbFN0YXJ0KC0xKQotICAgICAg
ICAsIHNzbEVuZCgtMSkKLSAgICB7Ci0gICAgfQorICAgIAorICAgIGRvdWJsZSBtX2RvbWFpbkxv
b2t1cFN0YXJ0VGltZTsKKyAgICBkb3VibGUgbV9kb21haW5Mb29rdXBFbmRUaW1lOworICAgIGRv
dWJsZSBtX2Nvbm5lY3RTdGFydFRpbWU7CisgICAgZG91YmxlIG1fY29ubmVjdEVuZFRpbWU7Cisg
ICAgZG91YmxlIG1fc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZTsKKyAgICBkb3VibGUgbV9yZXF1
ZXN0U3RhcnRUaW1lOworICAgIGRvdWJsZSBtX3Jlc3BvbnNlU3RhcnRUaW1lOwogfTsKIAogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC01Niw2ICs1NiwxNCBAQAogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxGb3VuZGF0aW9uL05T
VVJMQ29ubmVjdGlvblByaXZhdGUuaD4pCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMQ29ubmVj
dGlvblByaXZhdGUuaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMQ29ubmVjdGlvbiAoVGltaW5n
RGF0YSkKKysgKHZvaWQpX3NldENvbGxlY3RzVGltaW5nRGF0YTooQk9PTCljb2xsZWN0OworQGVu
ZAorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZVUkxS
ZXF1ZXN0Lmg+CiAKQEAgLTIwMCw2ICsyMDgsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVh
dGVOU1VSTENvbm5lY3RpCiAgICAgY29uc3QgYm9vbCB1c2VzQ2FjaGUgPSB0cnVlOwogI2VuZGlm
CiAgICAgZC0+bV9jb25uZWN0aW9uID0gYWRvcHROUyhbW05TVVJMQ29ubmVjdGlvbiBhbGxvY10g
X2luaXRXaXRoUmVxdWVzdDpuc1JlcXVlc3QgZGVsZWdhdGU6ZGVsZWdhdGUgdXNlc0NhY2hlOnVz
ZXNDYWNoZSBtYXhDb250ZW50TGVuZ3RoOjAgc3RhcnRJbW1lZGlhdGVseTpOTyBjb25uZWN0aW9u
UHJvcGVydGllczpwcm9wZXJ0eURpY3Rpb25hcnldKTsKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykK
KyAgICBbTlNVUkxDb25uZWN0aW9uIF9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6WUVTXTsKKyNlbmRp
ZgogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1
ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1t
CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTM5LDYgKzM5LDE0IEBACiAjaW1wb3J0ICJXZWJDb3JlVVJMUmVzcG9uc2Uu
aCIKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxDRk5l
dHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4pCisjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZOU1VSTENv
bm5lY3Rpb24uaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMU2Vzc2lvblRhc2sgKFRpbWluZ0Rh
dGEpCistIChOU0RpY3Rpb25hcnkgKilfdGltaW5nRGF0YTsKK0BlbmQKKyNlbmRpZgorCiBAaW50
ZXJmYWNlIE5TVVJMUmVxdWVzdCAoRGV0YWlscykKIC0gKGlkKV9wcm9wZXJ0eUZvcktleTooTlNT
dHJpbmcgKilrZXk7CiBAZW5kCkBAIC0xOTMsNyArMjAxLDYgQEAgLSAoQk9PTCljb25uZWN0aW9u
OihOU1VSTENvbm5lY3Rpb24gKiljbwogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rp
b24gKiljb25uZWN0aW9uIGRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXIKIHsK
ICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlv
bik7CiAKICAgICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0aW9uOiVw
IGRpZFJlY2VpdmVSZXNwb25zZTolcCAoSFRUUCBzdGF0dXMgJWQsIHJlcG9ydGVkIE1JTUVUeXBl
ICclcycpIiwgbV9oYW5kbGUsIGNvbm5lY3Rpb24sIHIsIFtyIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3Ioc3RhdHVzQ29kZSldID8gWyhpZClyIHN0YXR1c0NvZGVdIDogMCwgW1tyIE1JTUVU
eXBlXSBVVEY4U3RyaW5nXSk7CiAKQEAgLTIxMiw4ICsyMTksMzIgQEAgLSAodm9pZCljb25uZWN0
aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogCiAgICAgICAgIGlmIChbbV9oYW5kbGUtPmZpcnN0
UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSBfcHJvcGVydHlGb3JL
ZXk6QCJGb3JjZUhUTUxNSU1FVHlwZSJdKQogICAgICAgICAgICAgW3IgX3NldE1JTUVUeXBlOkAi
dGV4dC9odG1sIl07Ci0KLSAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVz
cG9uc2VBc3luYyhtX2hhbmRsZSwgcik7CisgICAgICAgIAorICAgICAgICBSZXNvdXJjZVJlc3Bv
bnNlIHJlc291cmNlUmVzcG9uc2Uocik7CisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgICAg
IE5TRGljdGlvbmFyeSogdGltaW5nRGF0YSA9IFtjb25uZWN0aW9uIF90aW1pbmdEYXRhXTsKKyAg
ICAgICAgcmVzb3VyY2VSZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2Fk
VGltaW5nOjpjcmVhdGUoKSk7CisgICAgICAgIFJlc291cmNlTG9hZFRpbWluZyogdGltaW5nID0g
cmVzb3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICAgICAgdGltaW5nLT5z
ZXREb21haW5Mb29rdXBFbmRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGlt
aW5nRGF0YURvbWFpbkxvb2t1cEVuZCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAgIHRpbWluZy0+
c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZO
VGltaW5nRGF0YURvbWFpbkxvb2t1cFN0YXJ0Il0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgdGlt
aW5nLT5zZXRDb25uZWN0U3RhcnRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZO
VGltaW5nRGF0YUNvbm5lY3RTdGFydCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAgIHRpbWluZy0+
c2V0Q29ubmVjdEVuZFRpbWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdE
YXRhQ29ubmVjdEVuZCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAgIHRpbWluZy0+c2V0U2VjdXJl
Q29ubmVjdGlvblN0YXJ0VGltZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWlu
Z0RhdGFTZWN1cmVDb25uZWN0aW9uU3RhcnQiXSBkb3VibGVWYWx1ZV0pOworICAgICAgICB0aW1p
bmctPnNldFJlcXVlc3RTdGFydFRpbWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5U
aW1pbmdEYXRhUmVxdWVzdFN0YXJ0Il0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgdGltaW5nLT5z
ZXRSZXNwb25zZVN0YXJ0VGltZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWlu
Z0RhdGFSZXNwb25zZVN0YXJ0Il0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgLy8gVE9ETzogdGlt
aW5nRGF0YSBoYXMgbW9yZSBpbmZvcm1hdGlvbiB0aGF0IHdlIHNob3VsZCBzdG9yZSBhbmQgdXNl
IHdpdGggdGhlc2Uga2V5czoKKyAgICAgICAgLy8gX2tDRk5UaW1pbmdEYXRhQ29ubmVjdGlvblJl
dXNlZAorICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFUaW1pbmdEYXRhSW5pdAorICAgICAgICAv
LyBfa0NGTlRpbWluZ0RhdGFSZWRpcmVjdFN0YXJ0CisgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0
YVJlZGlyZWN0RW5kCisgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0YUZldGNoU3RhcnQKKyAgICAg
ICAgLy8gX2tDRk5UaW1pbmdEYXRhUmVzcG9uc2VFbmQKKyAgICAgICAgLy8gX2tDRk5UaW1pbmdE
YXRhUmVkaXJlY3RDb3VudFczQworICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFSZWRpcmVjdENv
dW50CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisjZW5kaWYKKyAg
ICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhtX2hhbmRs
ZSwgcmVzb3VyY2VSZXNwb25zZSk7CiAgICAgfSk7CiAKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVf
d2FpdChtX3NlbWFwaG9yZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjM0LDkgKzIzNCw2IEBAIHN0YXRpYyB2b2lkIGNsZWFudXBTb3VwUmVxdWVzdE9wZXJhdGlvbigK
IHN0YXRpYyB2b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVjdCosIEdBc3luY1Jlc3VsdCos
IGdwb2ludGVyKTsKIHN0YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5jUmVz
dWx0KiwgZ3BvaW50ZXIpOwogc3RhdGljIGdib29sZWFuIHJlcXVlc3RUaW1lb3V0Q2FsbGJhY2so
dm9pZCopOwotI2lmIEVOQUJMRShXRUJfVElNSU5HKQotc3RhdGljIGludCAgbWlsaXNlY29uZHNT
aW5jZVJlcXVlc3QoZG91YmxlIHJlcXVlc3RUaW1lKTsKLSNlbmRpZgogc3RhdGljIHZvaWQgY29u
dGludWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSopOwogCiBzdGF0aWMg
Ym9vbCBnSWdub3JlU1NMRXJyb3JzID0gZmFsc2U7CkBAIC0zMTYsMTEgKzMxMyw2IEBAIHN0YXRp
YyB2b2lkIGdvdEhlYWRlcnNDYWxsYmFjayhTb3VwTWVzc2EKIAogICAgIFJlc291cmNlSGFuZGxl
SW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAKLSNpZiBFTkFCTEUoV0VCX1RJ
TUlORykKLSAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAg
ICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVjZWl2ZUhlYWRlcnNFbmQg
PSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWlu
ZygpLT5yZXF1ZXN0VGltZSk7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKEdUSykKICAgICAvLyBX
ZSBhcmUgYSBiaXQgbW9yZSBjb25zZXJ2YXRpdmUgd2l0aCB0aGUgcGVyc2lzdGVudCBjcmVkZW50
aWFsIHN0b3JhZ2UgdGhhbiB0aGUgc2Vzc2lvbiBzdG9yZSwKICAgICAvLyBzaW5jZSB3ZSBhcmUg
d2FpdGluZyB1bnRpbCB3ZSBrbm93IHRoYXQgdGhpcyBhdXRoZW50aWNhdGlvbiBzdWNjZWVkZWQg
YmVmb3JlIGFjdHVhbGx5IHN0b3JpbmcuCkBAIC0zOTAsNyArMzgyLDcgQEAgc3RhdGljIHZvaWQg
cmVzdGFydGVkQ2FsbGJhY2soU291cE1lc3NhZwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwq
IGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAgICAgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJl
Y3RSZXNwb25zZSA9IGQtPm1fcmVzcG9uc2U7CiAgICAgcmVkaXJlY3RSZXNwb25zZS5zZXRSZXNv
dXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7Ci0gICAgcmVkaXJl
Y3RSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUgPSBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICByZWRpcmVjdFJlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5zZXRSZXF1ZXN0U3RhcnRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
KTsKIH0KICNlbmRpZgogCkBAIC04MzksNDAgKzgzMSwxMyBAQCBzdGF0aWMgYm9vbCBhZGRGb3Jt
RWxlbWVudHNUb1NvdXBNZXNzYWdlCiB9CiAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKLXN0YXRp
YyBpbnQgbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZG91YmxlIHJlcXVlc3RUaW1lKQotewotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KChtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAt
IHJlcXVlc3RUaW1lKSAqIDEwMDAuMCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdyb3RlQm9keUNhbGxi
YWNrKFNvdXBNZXNzYWdlKiwgZ3BvaW50ZXIgZGF0YSkKLXsKLSAgICBSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7Ci0gICAg
aWYgKCFoYW5kbGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlc291cmNlSGFuZGxlSW50ZXJu
YWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0gICAgaWYgKCFkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBkLT5tX3Jlc3BvbnNl
LnJlc291cmNlTG9hZFRpbWluZygpLT5zZW5kRW5kID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3Qo
ZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUpOwotfQotCiB2
b2lkIFJlc291cmNlSGFuZGxlOjpkaWRTdGFydFJlcXVlc3QoKQogewogICAgIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWwqIGQgPSBnZXRJbnRlcm5hbCgpOwogICAgIGlmICghZC0+bV9yZXNwb25zZS5y
ZXNvdXJjZUxvYWRUaW1pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZC0+bV9yZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VuZFN0YXJ0ID0gbWlsaXNlY29uZHNTaW5jZVJlcXVl
c3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUpOwotICAg
IGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xTdGFydCAhPSAtMSkg
ewotICAgICAgICAvLyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVxdWVzdFRpbWluZ1Zp
ZXcuanMgYXNzdW1lcwotICAgICAgICAvLyB0aGF0IFNTTCB0aW1lIGlzIGluY2x1ZGVkIGluIGNv
bm5lY3Rpb24gdGltZSBzbyBtdXN0Ci0gICAgICAgIC8vIHN1YnN0cmFjdCBoZXJlIHRoZSBTU0wg
ZGVsdGEgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVyIChzZWUKLSAgICAgICAgLy8gV2ViSW5zcGVj
dG9yLlJlcXVlc3RUaW1pbmdWaWV3LmNyZWF0ZVRpbWluZ1RhYmxlIGluIHRoZQotICAgICAgICAv
LyBmaWxlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMpLgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpLT5zZW5kU3RhcnQgLT0KLSAgICAgICAgICAgIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbEVuZCAtIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCktPnNzbFN0YXJ0OwotICAgIH0KKyAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5zZXRSZXF1ZXN0U3RhcnRUaW1lKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCktPnJlcXVlc3RTdGFydFRpbWUoKSk7CiB9CiAKIHN0YXRpYyB2b2lkIG5ldHdv
cmtFdmVudENhbGxiYWNrKFNvdXBNZXNzYWdlKiwgR1NvY2tldENsaWVudEV2ZW50IGV2ZW50LCBH
SU9TdHJlYW0qLCBncG9pbnRlciBkYXRhKQpAQCAtODg1LDQzICs4NTAsMzEgQEAgc3RhdGljIHZv
aWQgbmV0d29ya0V2ZW50Q2FsbGJhY2soU291cE1lcwogICAgICAgICByZXR1cm47CiAKICAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIGlu
dCBkZWx0YVRpbWUgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7CiAgICAgc3dpdGNoIChldmVudCkgewogICAg
IGNhc2UgR19TT0NLRVRfQ0xJRU5UX1JFU09MVklORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5y
ZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3RhcnQgPSBkZWx0YVRpbWU7CisgICAgICAgIGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNldERvbWFpbkxvb2t1cFN0YXJ0VGltZSht
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
R19TT0NLRVRfQ0xJRU5UX1JFU09MVkVEOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5kbnNFbmQgPSBkZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPnNldERvbWFpbkxvb2t1cEVuZFRpbWUobW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NM
SUVOVF9DT05ORUNUSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWlu
ZygpLT5jb25uZWN0U3RhcnQgPSBkZWx0YVRpbWU7Ci0gICAgICAgIGlmIChkLT5tX3Jlc3BvbnNl
LnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNTdGFydCAhPSAtMSkKLSAgICAgICAgICAgIC8vIFdl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXF1ZXN0VGltaW5nVmlldy5qcyBhc3N1bWVzCi0g
ICAgICAgICAgICAvLyB0aGF0IEROUyB0aW1lIGlzIGluY2x1ZGVkIGluIGNvbm5lY3Rpb24gdGlt
ZSBzbyBtdXN0Ci0gICAgICAgICAgICAvLyBzdWJzdHJhY3QgaGVyZSB0aGUgRE5TIGRlbHRhIHRo
YXQgd2lsbCBiZSBhZGRlZCBsYXRlciAoc2VlCi0gICAgICAgICAgICAvLyBXZWJJbnNwZWN0b3Iu
UmVxdWVzdFRpbWluZ1ZpZXcuY3JlYXRlVGltaW5nVGFibGUgaW4gdGhlCi0gICAgICAgICAgICAv
LyBmaWxlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMpLgotICAgICAgICAgICAgZC0+bV9yZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+Y29ubmVjdFN0YXJ0IC09Ci0gICAgICAgICAgICAgICAg
ZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zRW5kIC0gZC0+bV9yZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3RhcnQ7CisgICAgICAgIGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPnNldENvbm5lY3RTdGFydFRpbWUobW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVO
VF9DT05ORUNURUQ6CiAgICAgICAgIC8vIFdlYiBUaW1pbmcgY29uc2lkZXJzIHRoYXQgY29ubmVj
dGlvbiB0aW1lIGludm9sdmVzIGRucywgcHJveHkgJiBUTFMgbmVnb3RpYXRpb24uLi4KICAgICAg
ICAgLy8gc28gd2UgYmV0dGVyIHBpY2sgR19TT0NLRVRfQ0xJRU5UX0NPTVBMRVRFIGZvciBjb25u
ZWN0RW5kCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1BST1hZX05F
R09USUFUSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5w
cm94eVN0YXJ0ID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VU
X0NMSUVOVF9QUk9YWV9ORUdPVElBVEVEOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5wcm94eUVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBHX1NPQ0tFVF9DTElFTlRfVExTX0hBTkRTSEFLSU5HOgotICAgICAgICBkLT5tX3Jlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xTdGFydCA9IGRlbHRhVGltZTsKKyAgICAgICAg
ZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2V0U2VjdXJlQ29ubmVjdGlvblN0
YXJ0VGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1RMU19IQU5EU0hBS0VEOgotICAgICAgICBkLT5tX3Jl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xFbmQgPSBkZWx0YVRpbWU7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX0NPTVBMRVRFOgotICAgICAgICBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5jb25uZWN0RW5kID0gZGVsdGFUaW1lOwor
ICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZXRDb25uZWN0RW5k
VGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtOTgwLDcgKzkzMyw2
IEBAIHN0YXRpYyBib29sIGNyZWF0ZVNvdXBNZXNzYWdlRm9ySGFuZGxlQW4KICAgICBkLT5tX3Jl
c3BvbnNlLnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgp
KTsKICAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksICJuZXR3b3Jr
LWV2ZW50IiwgR19DQUxMQkFDSyhuZXR3b3JrRXZlbnRDYWxsYmFjayksIGhhbmRsZSk7CiAgICAg
Z19zaWduYWxfY29ubmVjdChkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCAicmVzdGFydGVkIiwgR19D
QUxMQkFDSyhyZXN0YXJ0ZWRDYWxsYmFjayksIGhhbmRsZSk7Ci0gICAgZ19zaWduYWxfY29ubmVj
dChkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCAid3JvdGUtYm9keSIsIEdfQ0FMTEJBQ0sod3JvdGVC
b2R5Q2FsbGJhY2spLCBoYW5kbGUpOwogI2VuZGlmCiAKICNpZiBTT1VQX0NIRUNLX1ZFUlNJT04o
MiwgNDMsIDEpCkBAIC0xMDU0LDcgKzEwMDYsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpzZW5k
UGVuZGluZ1JlcXVlc3QoCiB7CiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgaWYgKGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCi0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdU
aW1lKCk7CisgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNldFJl
cXVlc3RTdGFydFRpbWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogI2VuZGlmCiAK
ICAgICBpZiAoZC0+bV9maXJzdFJlcXVlc3QudGltZW91dEludGVydmFsKCkgPiAwKSB7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wNS0wNyAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFByb2dyZXNzIG9uIHdl
YiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZWNvZGUpOgorICAgICAgICBUcmFuc2ZlciB3
ZWIgdGltaW5nIGRhdGEuCisKIDIwMTQtMDUtMDYgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11bV0syXSBBZGQgdGFwIGhpZ2hsaWdodCBvbiB0
aGUgc2ltcGxlIFVJVGFwR2VzdHVyZVJlY29nbml6ZXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjg4LDYgKzY4OCwxOSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VS
ZXNwb25zZT46OmVuCiAgICAgICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXNwb25zZS5odHRwU3Rh
dHVzVGV4dCgpOwogICAgICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVzcG9uc2Uuc3VnZ2VzdGVk
RmlsZW5hbWUoKTsKICAgICB9CisgICAgCisgICAgUmVzb3VyY2VMb2FkVGltaW5nKiB0aW1pbmcg
PSByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpOworICAgIGJvb2wgaGFzUmVz
b3VyY2VMb2FkVGltaW5nID0gdGltaW5nOworICAgIGVuY29kZXIgPDwgaGFzUmVzb3VyY2VMb2Fk
VGltaW5nOworICAgIGlmIChoYXNSZXNvdXJjZUxvYWRUaW1pbmcpIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCB0aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0VGltZSgpOworICAgICAgICBlbmNvZGVyIDw8
IHRpbWluZy0+ZG9tYWluTG9va3VwRW5kVGltZSgpOworICAgICAgICBlbmNvZGVyIDw8IHRpbWlu
Zy0+Y29ubmVjdFN0YXJ0VGltZSgpOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+Y29ubmVj
dEVuZFRpbWUoKTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25T
dGFydFRpbWUoKTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPnJlcXVlc3RTdGFydFRpbWUo
KTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPnJlc3BvbnNlU3RhcnRUaW1lKCk7CisgICAg
fQogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIFJlc291cmNlUmVzcG9uc2UmIHJlc291cmNlUmVzcG9uc2Up
CkBAIC03NTYsNiArNzY5LDM2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNl
Pjo6ZGUKICAgICAgICAgcmVzcG9uc2Uuc2V0U3VnZ2VzdGVkRmlsZW5hbWUoc3VnZ2VzdGVkRmls
ZW5hbWUpOwogICAgIH0KIAorICAgIGJvb2wgaGFzUmVzb3VyY2VMb2FkVGltaW5nOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGlmIChoYXNSZXNvdXJjZUxvYWRUaW1pbmcpIHsKKyAgICAgICAgZG91Ymxl
IGRvbWFpbkxvb2t1cFN0YXJ0VGltZTsKKyAgICAgICAgZG91YmxlIGRvbWFpbkxvb2t1cEVuZFRp
bWU7CisgICAgICAgIGRvdWJsZSBjb25uZWN0U3RhcnRUaW1lOworICAgICAgICBkb3VibGUgY29u
bmVjdEVuZFRpbWU7CisgICAgICAgIGRvdWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lOwor
ICAgICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0VGltZTsKKyAgICAgICAgZG91YmxlIHJlc3BvbnNl
U3RhcnRUaW1lOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRvbWFpbkxvb2t1cFN0YXJ0
VGltZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShkb21haW5Mb29rdXBFbmRUaW1l
KQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGNvbm5lY3RTdGFydFRpbWUpCisgICAg
ICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoY29ubmVjdEVuZFRpbWUpCisgICAgICAgICAgICB8
fCAhZGVjb2Rlci5kZWNvZGUoc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSkKKyAgICAgICAgICAg
IHx8ICFkZWNvZGVyLmRlY29kZShyZXF1ZXN0U3RhcnRUaW1lKQorICAgICAgICAgICAgfHwgIWRl
Y29kZXIuZGVjb2RlKHJlc3BvbnNlU3RhcnRUaW1lKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9hZFRp
bWluZzo6Y3JlYXRlKCkpOworICAgICAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpOworICAgICAgICB0aW1pbmctPnNldERvbWFpbkxv
b2t1cFN0YXJ0VGltZShkb21haW5Mb29rdXBTdGFydFRpbWUpOworICAgICAgICB0aW1pbmctPnNl
dERvbWFpbkxvb2t1cEVuZFRpbWUoZG9tYWluTG9va3VwRW5kVGltZSk7CisgICAgICAgIHRpbWlu
Zy0+c2V0Q29ubmVjdFN0YXJ0VGltZShjb25uZWN0U3RhcnRUaW1lKTsKKyAgICAgICAgdGltaW5n
LT5zZXRDb25uZWN0RW5kVGltZShjb25uZWN0RW5kVGltZSk7CisgICAgICAgIHRpbWluZy0+c2V0
U2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZShzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKTsKKyAg
ICAgICAgdGltaW5nLT5zZXRSZXF1ZXN0U3RhcnRUaW1lKHJlcXVlc3RTdGFydFRpbWUpOworICAg
ICAgICB0aW1pbmctPnNldFJlc3BvbnNlU3RhcnRUaW1lKHJlc3BvbnNlU3RhcnRUaW1lKTsKKyAg
ICB9CisgICAgCiAgICAgcmVzb3VyY2VSZXNwb25zZSA9IHJlc3BvbnNlOwogCiAgICAgcmV0dXJu
IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231084</attachid>
            <date>2014-05-08 11:47:17 -0700</date>
            <delta_ts>2014-05-09 10:22:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140508114654.patch</filename>
            <type>text/plain</type>
            <size>55862</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExMyBAQAorMjAxNC0wNS0wNyAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFByb2dyZXNz
IG9uIHdlYiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBBZGRlZCBsaW5rZXIgc3ltYm9sLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
T2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVj
dEZvckNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNl
QWdlbnQ6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb246CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2Fk
VGltaW5nIHZhbHVlcyBhbmQgcmVtb3ZlZCB1bnVzZWQgcGFyYW1ldGVycy4KKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QpOgorICAgICAgICBLZWVwIGEgcmVjb3JkIG9mIGEgY3Jv
c3Mgb3JpZ2luIHJlZGlyZWN0IGV2ZW4gaWYgeW91IGFyZSByZWRpcmVjdGVkIGJhY2suCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6IERl
bGV0ZWQuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICBS
ZW1vdmVkIHVudXNlZCBzZXROYXZpZ2F0aW9uU3RhcnQgbWV0aG9kIGRlY2xhcmF0aW9uLgorICAg
ICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgdXJsLgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cFN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1
cEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25u
ZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6
Y29ubmVjdEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
OjpzZWN1cmVDb25uZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlRW5kKToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgdmFsdWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6cmVzcG9uc2VTdGFydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDoK
KyAgICAgICAgUmVtb3ZlZCByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzIGRlY2xh
cmF0aW9uLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6Cisg
ICAgICAgIFJlbW92ZWQgcmVzcG9uc2VTdGFydC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuaDoKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6
CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXNl
IG5ldyBSZXNvdXJjZUxvYWRUaW1pbmcgbWV0aG9kcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRp
dmVUb0Fic29sdXRlKToKKyAgICAgICAgUmVwbGFjZWQgcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZl
VG9BYnNvbHV0ZSB3aXRoIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMKKyAg
ICAgICAgYmVjYXVzZSBvZiBuZXcgc3RvcmFnZSBmb3JtYXQgaW4gUmVzb3VyY2VMb2FkVGltaW5n
LgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaDoKKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmlkbDoKKyAgICAgICAgVXBkYXRlZCBzcGVjIHVybC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkVGltaW5nOjpSZXNvdXJjZUxvYWRUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkVGltaW5nOjpkZWVwQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpvcGVyYXRvciE9KToKKyAgICAgICAgTW92ZWQgZnJvbSBSZXNvdXJjZUxvYWRUaW1pbmcuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9h
ZFRpbWVUb01vbm90b25pY1RpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRv
bWFpbkxvb2t1cFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1p
bmc6OmRvbWFpbkxvb2t1cEVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
VGltaW5nOjpjb25uZWN0U3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZFRpbWluZzo6Y29ubmVjdEVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
VGltaW5nOjpzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlTG9hZFRpbWluZzo6cmVxdWVzdFN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRUaW1pbmc6OnJlc3BvbnNlU3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZFRpbWluZzo6c2V0RG9tYWluTG9va3VwU3RhcnRUaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6c2V0RG9tYWluTG9va3VwRW5kVGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldENvbm5lY3RTdGFydFRpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpzZXRDb25uZWN0RW5kVGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OnNldFNlY3VyZUNvbm5l
Y3Rpb25TdGFydFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpz
ZXRSZXF1ZXN0U3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWlu
Zzo6c2V0UmVzcG9uc2VTdGFydFRpbWUpOgorICAgICAgICBBZGRlZCBhY2Nlc3NvcnMgaW5zdGVh
ZCBvZiBoYXZpbmcgcHVibGljIG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZFRpbWluZzo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRU
aW1pbmc6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpSZXNvdXJjZUxvYWRUaW1pbmcpOgorICAgICAgICBNb3ZlZCBpbXBsZW1lbnRhdGlvbnMgdG8g
UmVzb3VyY2VMb2FkVGltaW5nLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2VC
YXNlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZSk6CisgICAgICAgIEluaXRpYWxpemUgbV9yZXNvdXJj
ZUxvYWRUaW1pbmcgd2hpY2ggaXMgdXNlZCBub3cuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKToKKyAgICAgICAgQ2FsbCBfc2V0Q29sbGVjdHNU
aW1pbmdEYXRhIHRvIGNvbGxlY3QgdGltaW5nIGRhdGEgZm9yIHdlYiB0aW1pbmcuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6CisgICAg
ICAgIFB1dCB0aW1pbmcgZGF0YSBpbnRvIFJlc291cmNlTG9hZFRpbWluZyBkYXRhIHN0cnVjdHVy
ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmdvdEhlYWRlcnNDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpyZXN0YXJ0ZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6ZGlkU3RhcnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdvcmtFdmVudENhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNvdXBNZXNzYWdlRm9ySGFuZGxlQW5kUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdSZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Om1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAg
ICAgVXNlIG5ldyBSZXNvdXJjZUxvYWRUaW1pbmcgbWV0aG9kcy4KKwogMjAxNC0wNS0wNiAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbmltYXRlIEFW
UGxheWVyTGF5ZXIgaW50byBhbmQgb3V0IG9mIGZ1bGwgc2NyZWVuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTc3MSw2ICs3NzEsNyBAQCBfX1pON1dlYkNvcmUxOFBsYXRm
b3JtUGFzdGVib2FyZDhhZGRUeXBlCiBfX1pON1dlYkNvcmUxOFBsYXRmb3JtUGFzdGVib2FyZDhn
ZXRUeXBlc0VSTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZs
b3dFRUUKIF9fWk43V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkOHNldFR5cGVzRVJLTjNXVEY2
VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUUKIF9fWk43V2Vi
Q29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkQzFFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUx
OFJlc291cmNlTG9hZFRpbWluZ0MxRXYKIF9fWk43V2ViQ29yZTE4U3R5bGVTaGVldENvbnRlbnRz
MTFwYXJzZVN0cmluZ0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4U3R5bGVTaGVldENv
bnRlbnRzQzFFUE5TXzE1U3R5bGVSdWxlSW1wb3J0RVJLTjNXVEY2U3RyaW5nRVJLTlNfMTZDU1NQ
YXJzZXJDb250ZXh0RQogX19aTjdXZWJDb3JlMThTdHlsZVNoZWV0Q29udGVudHNEMUV2CkBAIC04
NDUsNiArODQ2LDcgQEAgX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE3c2V0SAog
X19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE4c2V0SFRUUEhlYWRlckZpZWxkRVJL
TjNXVEYxMkF0b21pY1N0cmluZ0VSS05TMV82U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJj
ZVJlc3BvbnNlQmFzZTE5c2V0VGV4dEVuY29kaW5nTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dlc3RlZEZpbGVuYW1lRVJLTjNX
VEY2U3RyaW5nRQorX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTIxc2V0UmVzb3Vy
Y2VMb2FkVGltaW5nRU4zV1RGMTBQYXNzUmVmUHRySU5TXzE4UmVzb3VyY2VMb2FkVGltaW5nRUVF
CiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMjRzZXRFeHBlY3RlZENvbnRlbnRM
ZW5ndGhFeAogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTZzZXRVUkxFUktOU18z
VVJMRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZUMyRXYKQEAgLTE3NTUsNiAr
MTc1Nyw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTVodHQKIF9fWk5L
N1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTZodHRwSGVhZGVyRmllbGRzRXYKIF9fWk5L
N1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTZ0ZXh0RW5jb2RpbmdOYW1lRXYKIF9fWk5L
N1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzdWdnZXN0ZWRGaWxlbmFtZUV2CitfX1pO
SzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE4cmVzb3VyY2VMb2FkVGltaW5nRXYKIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMjFleHBlY3RlZENvbnRlbnRMZW5ndGhF
dgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UzdXJsRXYKIF9fWk5LN1dlYkNv
cmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNmlzSFRUUEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCShyZXZpc2lvbiAx
NjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMCwyMSArMjAwLDE2IEBAIHN0YXRpYyBQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKICAgICByZXR1cm4gaGVhZGVyc09iamVjdDsKIH0K
IAotc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVz
b3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWlu
ZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBhc3NSZWZQdHI8SW5z
cGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0
Rm9yVGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nKQogewogICAgIHJldHVy
biBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNvdXJjZVRpbWluZzo6Y3JlYXRl
KCkKLSAgICAgICAgLnNldFJlcXVlc3RUaW1lKGxvYWRlci0+dGltaW5nKCktPm1vbm90b25pY1Rp
bWVUb1BzZXVkb1dhbGxUaW1lKHRpbWluZy5jb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3Rv
bmljVGltZSgwKSkpCi0gICAgICAgIC5zZXRQcm94eVN0YXJ0KHRpbWluZy5wcm94eVN0YXJ0KQot
ICAgICAgICAuc2V0UHJveHlFbmQodGltaW5nLnByb3h5RW5kKQotICAgICAgICAuc2V0RG5zU3Rh
cnQodGltaW5nLmRuc1N0YXJ0KQotICAgICAgICAuc2V0RG5zRW5kKHRpbWluZy5kbnNFbmQpCi0g
ICAgICAgIC5zZXRDb25uZWN0U3RhcnQodGltaW5nLmNvbm5lY3RTdGFydCkKLSAgICAgICAgLnNl
dENvbm5lY3RFbmQodGltaW5nLmNvbm5lY3RFbmQpCi0gICAgICAgIC5zZXRTc2xTdGFydCh0aW1p
bmcuc3NsU3RhcnQpCi0gICAgICAgIC5zZXRTc2xFbmQodGltaW5nLnNzbEVuZCkKLSAgICAgICAg
LnNldFNlbmRTdGFydCh0aW1pbmcuc2VuZFN0YXJ0KQotICAgICAgICAuc2V0U2VuZEVuZCh0aW1p
bmcuc2VuZEVuZCkKLSAgICAgICAgLnNldFJlY2VpdmVIZWFkZXJzRW5kKHRpbWluZy5yZWNlaXZl
SGVhZGVyc0VuZCkKKyAgICAgICAgLnNldERvbWFpbkxvb2t1cFN0YXJ0VGltZSh0aW1pbmcuZG9t
YWluTG9va3VwU3RhcnRUaW1lKCkpCisgICAgICAgIC5zZXREb21haW5Mb29rdXBFbmRUaW1lKHRp
bWluZy5kb21haW5Mb29rdXBFbmRUaW1lKCkpCisgICAgICAgIC5zZXRDb25uZWN0U3RhcnRUaW1l
KHRpbWluZy5jb25uZWN0U3RhcnRUaW1lKCkpCisgICAgICAgIC5zZXRDb25uZWN0RW5kVGltZSh0
aW1pbmcuY29ubmVjdEVuZFRpbWUoKSkKKyAgICAgICAgLnNldFNlY3VyZUNvbm5lY3Rpb25TdGFy
dFRpbWUodGltaW5nLnNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKSkKKyAgICAgICAgLnNldFJl
cXVlc3RTdGFydFRpbWUodGltaW5nLnJlcXVlc3RTdGFydFRpbWUoKSkKKyAgICAgICAgLnNldFJl
c3BvbnNlU3RhcnRUaW1lKHRpbWluZy5yZXNwb25zZVN0YXJ0VGltZSgpKQogICAgICAgICAucmVs
ZWFzZSgpOwogfQogCkBAIC0yMjksNyArMjI0LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVj
dG9yOjpUeXBlQnVpbGRlcgogICAgIHJldHVybiByZXF1ZXN0T2JqZWN0OwogfQogCi1zdGF0aWMg
UGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNwb25zZT4gYnVp
bGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQorc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAocmVz
cG9uc2UuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjQ4LDE5ICsyNDMs
MTkgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcgogCiAgICAgcmVz
cG9uc2VPYmplY3QtPnNldEZyb21EaXNrQ2FjaGUocmVzcG9uc2Uud2FzQ2FjaGVkKCkpOwogICAg
IGlmIChyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAgcmVzcG9uc2VPYmpl
Y3QtPnNldFRpbWluZyhidWlsZE9iamVjdEZvclRpbWluZygqcmVzcG9uc2UucmVzb3VyY2VMb2Fk
VGltaW5nKCksIGxvYWRlcikpOworICAgICAgICByZXNwb25zZU9iamVjdC0+c2V0VGltaW5nKGJ1
aWxkT2JqZWN0Rm9yVGltaW5nKCpyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkpOwogCiAg
ICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0OwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0
b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JD
YWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIERvY3VtZW50TG9h
ZGVyKiBsb2FkZXIpCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpO
ZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlw
ZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlPiByZXNvdXJjZU9iamVjdCA9IEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkNhY2hlZFJlc291cmNlOjpjcmVhdGUoKQogICAg
ICAgICAuc2V0VXJsKGNhY2hlZFJlc291cmNlLT51cmwoKSkKICAgICAgICAgLnNldFR5cGUoSW5z
cGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZVR5cGVKc29uKCpjYWNoZWRSZXNvdXJjZSkp
CiAgICAgICAgIC5zZXRCb2R5U2l6ZShjYWNoZWRSZXNvdXJjZS0+ZW5jb2RlZFNpemUoKSk7CiAK
LSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzcG9uc2U+IHJl
c291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UoY2FjaGVkUmVz
b3VyY2UtPnJlc3BvbnNlKCksIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1
aWxkZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0gYnVpbGRPYmplY3RG
b3JSZXNvdXJjZVJlc3BvbnNlKGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpKTsKICAgICBpZiAo
cmVzb3VyY2VSZXNwb25zZSkKICAgICAgICAgcmVzb3VyY2VPYmplY3QtPnNldFJlc3BvbnNlKHJl
c291cmNlUmVzcG9uc2UpOwogCkBAIC0zMjQsNyArMzE5LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNv
dXJjZUFnZW50Ojp3aWxsU2VuZFJlcQogICAgIEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlBhZ2U6
OlJlc291cmNlVHlwZTo6RW51bSByZXNvdXJjZVR5cGUgPSBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJl
c291cmNlVHlwZUpzb24odHlwZSk7CiAKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRl
cjo6TmV0d29yazo6SW5pdGlhdG9yPiBpbml0aWF0b3JPYmplY3QgPSBidWlsZEluaXRpYXRvck9i
amVjdChsb2FkZXItPmZyYW1lKCkgPyBsb2FkZXItPmZyYW1lKCktPmRvY3VtZW50KCkgOiBudWxs
cHRyKTsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVzdFdpbGxCZVNlbnQocmVxdWVz
dElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXItPmZyYW1lKCkpLCBtX3BhZ2VBZ2VudC0+
bG9hZGVySWQobG9hZGVyKSwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKSwgYnVpbGRPYmplY3RGb3JS
ZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGN1cnJlbnRUaW1lKCksIGluaXRpYXRvck9iamVjdCwg
YnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UsIGxvYWRlciks
IHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8gJnJlc291cmNlVHlw
ZSA6IG51bGxwdHIpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1ZXN0V2lsbEJlU2Vu
dChyZXF1ZXN0SWQsIG1fcGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+ZnJhbWUoKSksIG1fcGFn
ZUFnZW50LT5sb2FkZXJJZChsb2FkZXIpLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBidWlsZE9i
amVjdEZvclJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgY3VycmVudFRpbWUoKSwgaW5pdGlhdG9y
T2JqZWN0LCBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSks
IHR5cGUgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8gJnJlc291cmNlVHlw
ZSA6IG51bGxwdHIpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Om1hcmtSZXNv
dXJjZUFzQ2FjaGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKQEAgLTM0MSw3ICszMzYsNyBA
QCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJ
ZChpZGVudGlmaWVyKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29y
azo6UmVzcG9uc2U+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVz
cG9uc2UocmVzcG9uc2UsIGxvYWRlcik7CisgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxk
ZXI6Ok5ldHdvcms6OlJlc3BvbnNlPiByZXNvdXJjZVJlc3BvbnNlID0gYnVpbGRPYmplY3RGb3JS
ZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKTsKIAogICAgIGJvb2wgaXNOb3RNb2RpZmllZCA9IHJl
c3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gMzA0OwogCkBAIC00NjAsNyArNDU1LDcgQEAgdm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2FkUmVzbwogCiAgICAgUmVmUHRyPEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OkluaXRpYXRvcj4gaW5pdGlhdG9yT2JqZWN0ID0g
YnVpbGRJbml0aWF0b3JPYmplY3QobG9hZGVyLT5mcmFtZSgpID8gbG9hZGVyLT5mcmFtZSgpLT5k
b2N1bWVudCgpIDogbnVsbHB0cik7CiAKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVz
dFNlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1ZXN0SWQsIGZyYW1lSWQsIGxvYWRlcklkLCBsb2Fk
ZXItPnVybCgpLnN0cmluZygpLCBjdXJyZW50VGltZSgpLCBpbml0aWF0b3JPYmplY3QsIGJ1aWxk
T2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2UsIGxvYWRlcikpOworICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyLT5yZXF1ZXN0U2VydmVkRnJvbU1lbW9yeUNhY2hlKHJlcXVlc3RJZCwgZnJh
bWVJZCwgbG9hZGVySWQsIGxvYWRlci0+dXJsKCkuc3RyaW5nKCksIGN1cnJlbnRUaW1lKCksIGlu
aXRpYXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShyZXNvdXJjZSkpOwog
fQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEluaXRpYWxTY3JpcHRDb250ZW50
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgbWFya1Jlc291cmNlQXNDYWNoZWQodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsYW9kZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBSZXNvdXJjZUxvYWRlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3Bv
bnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRh
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5n
dGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBkb3VibGUgZmluaXNoVGlt
ZSk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCShyZXZpc2lvbiAxNjgzOTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiwxOCArMzIsMTMgQEAKICAgICAgICAgICAgICJ0eXBlIjogIm9iamVj
dCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGltaW5nIGluZm9ybWF0aW9uIGZvciB0
aGUgcmVxdWVzdC4iLAogICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJyZXF1ZXN0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJUaW1pbmcncyByZXF1ZXN0VGltZSBpcyBhIGJhc2VsaW5lIGluIHNlY29uZHMsIHdoaWxl
IHRoZSBvdGhlciBudW1iZXJzIGFyZSB0aWNrcyBpbiBtaWxsaXNlY29uZHMgcmVsYXRpdmVseSB0
byB0aGlzIHJlcXVlc3RUaW1lLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3h5
U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCByZXNvbHZp
bmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJveHlFbmQiLCAidHlw
ZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgcmVzb2x2aW5nIHByb3h5LiIg
fSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRuc1N0YXJ0IiwgInR5cGUiOiAibnVtYmVy
IiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0sCi0gICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJkbnNFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3Jp
cHRpb24iOiAiRmluaXNoZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJjb25uZWN0U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRp
b24iOiAiU3RhcnRlZCBjb25uZWN0aW5nIHRvIHRoZSByZW1vdGUgaG9zdC4iIH0sCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0RW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2Ny
aXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAic3NsU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24i
OiAiU3RhcnRlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNzbEVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBTU0wg
aGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbmRTdGFydCIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHNlbmRpbmcgcmVxdWVzdC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzZW5kRW5kIiwgInR5cGUiOiAibnVtYmVy
IiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHNlbmRpbmcgcmVxdWVzdC4iIH0sCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJyZWNlaXZlSGVhZGVyc0VuZCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCByZWNlaXZpbmcgcmVzcG9uc2UgaGVhZGVycy4iIH0K
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cFN0YXJ0VGltZSIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIEROUyBhZGRyZXNzIHJlc29sdmUi
IH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb21haW5Mb29rdXBFbmRUaW1lIiwgInR5
cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIEROUyBhZGRyZXNzIHJlc29s
dmUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29ubmVjdFN0YXJ0VGltZSIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5lY3RpbmcgdG8gdGhl
IHJlbW90ZSBob3N0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RFbmRU
aW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUg
cmVtb3RlIGhvc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VjdXJlQ29ubmVj
dGlvblN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVk
IFNTTCBoYW5kc2hha2UuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdFN0
YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHNlbmRp
bmcgcmVxdWVzdC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNwb25zZVN0YXJ0
VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlY2Vpdmlu
ZyByZXNwb25zZS4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewpJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAJKHJldmlz
aW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NiwxMiArNzYsNiBAQCB2b2lkIERvY3VtZW50TG9hZFRp
bWluZzo6bWFya05hdmlnYXRpb25TCiAgICAgbV9yZWZlcmVuY2VXYWxsVGltZSA9IGN1cnJlbnRU
aW1lKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjpzZXROYXZpZ2F0aW9uU3RhcnQo
ZG91YmxlIG5hdmlnYXRpb25TdGFydCkKLXsKLSAgICBBU1NFUlQobV9yZWZlcmVuY2VNb25vdG9u
aWNUaW1lICYmIG1fcmVmZXJlbmNlV2FsbFRpbWUpOwotICAgIG1fbmF2aWdhdGlvblN0YXJ0ID0g
bmF2aWdhdGlvblN0YXJ0OwotfQotCiB2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6YWRkUmVkaXJl
Y3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1VybCwgY29uc3QgVVJMJiByZWRpcmVjdGVkVXJsKQog
ewogICAgIG1fcmVkaXJlY3RDb3VudCsrOwpAQCAtOTAsNyArODQsNyBAQCB2b2lkIERvY3VtZW50
TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QoY29uCiAgICAgbV9yZWRpcmVjdEVuZCA9IG1fZmV0Y2hT
dGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogICAgIC8vIENoZWNrIGlmIHRo
ZSByZWRpcmVjdGVkIHVybCBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgcmVkaXJlY3RpbmcgdXJs
J3MgdGltaW5nIGluZm9ybWF0aW9uLgogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVkaXJl
Y3RlZFNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZWRpcmVjdGVkVXJs
KTsKLSAgICBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgPSAhcmVkaXJlY3RlZFNlY3VyaXR5T3Jp
Z2luLT5jYW5SZXF1ZXN0KHJlZGlyZWN0aW5nVXJsKTsKKyAgICBtX2hhc0Nyb3NzT3JpZ2luUmVk
aXJlY3QgPSBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgfHwgIXJlZGlyZWN0ZWRTZWN1cml0eU9y
aWdpbi0+Y2FuUmVxdWVzdChyZWRpcmVjdGluZ1VybCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgJ
KHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRU
aW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAgICAgZG91
YmxlIG1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKGRvdWJsZSkgY29uc3Q7CiAKICAgICB2
b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKLSAgICB2b2lkIHNldE5hdmlnYXRpb25TdGFydChk
b3VibGUpOwogICAgIHZvaWQgYWRkUmVkaXJlY3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1VybCwg
Y29uc3QgVVJMJiByZWRpcmVjdGVkVXJsKTsKIAogICAgIHZvaWQgbWFya1VubG9hZEV2ZW50U3Rh
cnQoKSB7IG1fdW5sb2FkRXZlbnRTdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAkocmV2aXNpb24gMTY4Mzky
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8gU2VlOiBodHRwOi8v
ZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisvLyBTZWU6IGh0dHBzOi8vZHZjcy53
My5vcmcvaGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3MvTmF2aWdhdGlvblRpbWluZy9PdmVy
dmlldy5odG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAgICBFdmVudFRhcmdl
dCwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzExMiw3
IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZWRpcmUKIGRvdWJsZSBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpmZXRjaFN0YXJ0KCkgY29uc3QKIHsKICAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgYmUgZGlmZmVyZW50IGRlcGVuZGluZyBvbiByZWRpcmVjdHMuCi0gICAg
cmV0dXJuIChzdGFydFRpbWUoKSk7CisgICAgcmV0dXJuIHN0YXJ0VGltZSgpOwogfQogCiBkb3Vi
bGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluTG9va3VwU3RhcnQoKSBjb25zdApA
QCAtMTIwLDEwICsxMjAsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRv
bWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAgICAgICByZXR1cm4gMC4w
OwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zU3RhcnQgPCAwKQorICAgIGlm
ICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0VGltZSgpIDwgMCkKICAg
ICAgICAgcmV0dXJuIGZldGNoU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0Rv
Y3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNTdGFydCk7CisgICAgcmV0dXJuIG1fdGlt
aW5nLT5kb21haW5Mb29rdXBTdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xMzEsMTAgKzEzMSwxMCBA
QCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluCiAgICAgaWYgKCFtX3No
b3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGlt
aW5nIHx8IG1fdGltaW5nLT5kbnNFbmQgPCAwKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1p
bmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA8IDApCiAgICAgICAgIHJldHVybiBkb21haW5Mb29r
dXBTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29u
ZHMobV90aW1pbmctPmRuc0VuZCk7CisgICAgcmV0dXJuIG1fdGltaW5nLT5kb21haW5Mb29rdXBF
bmRUaW1lKCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25uZWN0
U3RhcnQoKSBjb25zdApAQCAtMTQzLDE1ICsxNDMsMTUgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmNvbm5lYwogICAgICAgICByZXR1cm4gMC4wOwogCiAgICAgLy8gY29ubmVj
dFN0YXJ0IHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVxdWVzdCBpcyBub3QgbWFkZS4KLSAg
ICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5jb25uZWN0U3RhcnQgPCAwIHx8IG1fZGlkUmV1
c2VDb25uZWN0aW9uKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmNvbm5lY3RTdGFy
dFRpbWUoKSA8IDAgfHwgbV9kaWRSZXVzZUNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiBkb21h
aW5Mb29rdXBFbmQoKTsKIAogICAgIC8vIGNvbm5lY3RTdGFydCBpbmNsdWRlcyBhbnkgRE5TIHRp
bWUsIHNvIHdlIG1heSBuZWVkIHRvIHRyaW0gdGhhdCBvZmYuCi0gICAgaW50IGNvbm5lY3RTdGFy
dCA9IG1fdGltaW5nLT5jb25uZWN0U3RhcnQ7Ci0gICAgaWYgKG1fdGltaW5nLT5kbnNFbmQgPj0g
MCkKLSAgICAgICAgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmRuc0VuZDsKKyAgICBkb3VibGUg
Y29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmNvbm5lY3RTdGFydFRpbWUoKTsKKyAgICBpZiAobV90
aW1pbmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA+PSAwKQorICAgICAgICBjb25uZWN0U3RhcnQg
PSBtX3RpbWluZy0+ZG9tYWluTG9va3VwRW5kVGltZSgpOwogCi0gICAgcmV0dXJuIHJlc291cmNl
VGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoY29ubmVjdFN0YXJ0KTsKKyAgICByZXR1cm4gY29u
bmVjdFN0YXJ0OwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVj
dEVuZCgpIGNvbnN0CkBAIC0xNjAsMTAgKzE2MCwxMCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6Y29ubmVjCiAgICAgICAgIHJldHVybiAwLjA7CiAKICAgICAvLyBjb25uZWN0
U3RhcnQgd2lsbCBiZSAtMSB3aGVuIGEgbmV0d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgotICAg
IGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmNvbm5lY3RFbmQgPCAwIHx8IG1fZGlkUmV1c2VD
b25uZWN0aW9uKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmNvbm5lY3RFbmRUaW1l
KCkgPCAwIHx8IG1fZGlkUmV1c2VDb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gY29ubmVjdFN0
YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyht
X3RpbWluZy0+Y29ubmVjdEVuZCk7CisgICAgcmV0dXJuIG1fdGltaW5nLT5jb25uZWN0RW5kVGlt
ZSgpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6c2VjdXJlQ29ubmVj
dGlvblN0YXJ0KCkgY29uc3QKQEAgLTE3MSwxMCArMTcxLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nOjpzZWN1cmUKICAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykK
ICAgICAgICAgcmV0dXJuIDAuMDsKIAotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNz
bFN0YXJ0IDwgMCkgLy8gU2VjdXJlIGNvbm5lY3Rpb24gbm90IG5lZ290aWF0ZWQuCisgICAgaWYg
KCFtX3RpbWluZyB8fCBtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSgpIDwgMCkg
Ly8gU2VjdXJlIGNvbm5lY3Rpb24gbm90IG5lZ290aWF0ZWQuCiAgICAgICAgIHJldHVybiAwLjA7
CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWlu
Zy0+c3NsU3RhcnQpOworICAgIHJldHVybiBtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0
VGltZSgpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0
YXJ0KCkgY29uc3QKQEAgLTE4NSwzMyArMTg1LDEyIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpyZXF1ZXMKICAgICBpZiAoIW1fdGltaW5nKQogICAgICAgICByZXR1cm4gY29u
bmVjdEVuZCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29u
ZHMobV90aW1pbmctPnNlbmRTdGFydCk7Ci19Ci0KLWRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKLXsKLSAgICBpZiAoIW1fc2hvdWxkUmVwb3J0
RGV0YWlscykKLSAgICAgICAgcmV0dXJuIDAuMDsKLQotICAgIGlmICghbV90aW1pbmcpCi0gICAg
ICAgIHJldHVybiByZXF1ZXN0U3RhcnQoKTsKLSAgICAvLyBGSVhNRTogVGhpcyBudW1iZXIgaXNu
J3QgZXhhY3RseSBjb3JyZWN0LiBTZWUgdGhlIG5vdGVzIGluIFBlcmZvcm1hbmNlVGltaW5nOjpy
ZXNwb25zZVN0YXJ0KCkuCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNl
Y29uZHMobV90aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kKTsKKyAgICByZXR1cm4gbV90aW1pbmct
PnJlcXVlc3RTdGFydFRpbWUoKTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fZmluaXNoVGltZSkKLSAgICAg
ICAgcmV0dXJuIHJlc3BvbnNlU3RhcnQoKTsKLQotICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9E
b2N1bWVudE1pbGxpc2Vjb25kcyhtX3JlcXVlc3RpbmdEb2N1bWVudC5nZXQoKSwgbV9maW5pc2hU
aW1lKTsKLX0KLQotZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc291cmNlVGlt
ZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdAotewot
ICAgIGlmICghZGVsdGFNaWxsaXNlY29uZHMpCi0gICAgICAgIHJldHVybiAwLjA7Ci0gICAgcmV0
dXJuIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3Vt
ZW50LmdldCgpLCBtX3RpbWluZy0+cmVxdWVzdFRpbWUpICsgZGVsdGFNaWxsaXNlY29uZHM7Cisg
ICAgcmV0dXJuIG1fZmluaXNoVGltZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgJ
KHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw2IEBAIHB1YmxpYzoKICAg
ICBkb3VibGUgY29ubmVjdEVuZCgpIGNvbnN0OwogICAgIGRvdWJsZSBzZWN1cmVDb25uZWN0aW9u
U3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0KCkgY29uc3Q7Ci0gICAgZG91
YmxlIHJlc3BvbnNlU3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVzcG9uc2VFbmQoKSBjb25z
dDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Jlc291cmNlKCkgeyByZXR1cm4gdHJ1ZTsgfQpAQCAt
NzQsOCArNzMsNiBAQCBwcml2YXRlOgogICAgIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoY29u
c3QgQXRvbWljU3RyaW5nJiBpbml0YXRvclR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBmaW5p
c2hUaW1lLCBEb2N1bWVudCopOwogICAgIH5QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKCk7CiAK
LSAgICBkb3VibGUgcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhpbnQgZGVsdGFN
aWxsaXNlY29uZHMpIGNvbnN0OwotCiAgICAgQXRvbWljU3RyaW5nIG1faW5pdGlhdG9yVHlwZTsK
ICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBtX3RpbWluZzsKICAgICBkb3VibGUgbV9m
aW5pc2hUaW1lOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuaWRsCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2
ICs0Myw1IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgY29u
bmVjdEVuZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBzZWN1
cmVDb25uZWN0aW9uU3RhcnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBk
b3VibGUgcmVxdWVzdFN0YXJ0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQg
ZG91YmxlIHJlc3BvbnNlU3RhcnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGUgcmVzcG9uc2VFbmQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsMTEgKzEzMCwx
MSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBU
aGlzIHdpbGwgYmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAg
Ly8gUmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5v
IEROUywgd2UgImJhY2tmaWxsIiB3aXRoIGZldGNoU3RhcnQuCi0gICAgaW50IGRuc1N0YXJ0ID0g
dGltaW5nLT5kbnNTdGFydDsKKyAgICBkb3VibGUgZG5zU3RhcnQgPSB0aW1pbmctPmRvbWFpbkxv
b2t1cFN0YXJ0VGltZSgpOwogICAgIGlmIChkbnNTdGFydCA8IDApCiAgICAgICAgIHJldHVybiBm
ZXRjaFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNv
bHV0ZShkbnNTdGFydCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxs
aXNlY29uZHMoZG5zU3RhcnQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xNDUsMTEgKzE0NSwxMSBAQCB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBUaGlzIHdpbGwg
YmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAgLy8gUmF0aGVy
IHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIEROUywgd2Ug
ImJhY2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1cFN0YXJ0LgotICAgIGludCBkbnNFbmQgPSB0aW1p
bmctPmRuc0VuZDsKKyAgICBkb3VibGUgZG5zRW5kID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmRU
aW1lKCk7CiAgICAgaWYgKGRuc0VuZCA8IDApCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBT
dGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUo
ZG5zRW5kKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vjb25k
cyhkbnNFbmQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNv
bm5lY3RTdGFydCgpIGNvbnN0CkBAIC0xNjQsMTYgKzE2NCwxNiBAQCB1bnNpZ25lZCBsb25nIGxv
bmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvCiAKICAgICAvLyBjb25uZWN0U3RhcnQgd2lsbCBiZSAt
MSB3aGVuIGEgbmV0d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgogICAgIC8vIFJhdGhlciB0aGFu
IGV4cG9zaW5nIGEgc3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBuZXcgY29ubmVjdGlv
biwgd2UgImJhY2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1cEVuZC4KLSAgICBpbnQgY29ubmVjdFN0
YXJ0ID0gdGltaW5nLT5jb25uZWN0U3RhcnQ7CisgICAgZG91YmxlIGNvbm5lY3RTdGFydCA9IHRp
bWluZy0+Y29ubmVjdFN0YXJ0VGltZSgpOwogICAgIGlmIChjb25uZWN0U3RhcnQgPCAwIHx8IGxv
YWRlci0+cmVzcG9uc2UoKS5jb25uZWN0aW9uUmV1c2VkKCkpCiAgICAgICAgIHJldHVybiBkb21h
aW5Mb29rdXBFbmQoKTsKIAogICAgIC8vIFJlc291cmNlTG9hZFRpbWluZydzIGNvbm5lY3QgcGhh
c2UgaW5jbHVkZXMgRE5TLCBob3dldmVyIE5hdmlnYXRpb24gVGltaW5nJ3MKICAgICAvLyBjb25u
ZWN0IHBoYXNlIHNob3VsZCBub3QuIFNvIGlmIHRoZXJlIGlzIEROUyB0aW1lLCB0cmltIGl0IGZy
b20gdGhlIHN0YXJ0LgotICAgIGlmICh0aW1pbmctPmRuc0VuZCA+PSAwICYmIHRpbWluZy0+ZG5z
RW5kID4gY29ubmVjdFN0YXJ0KQotICAgICAgICBjb25uZWN0U3RhcnQgPSB0aW1pbmctPmRuc0Vu
ZDsKKyAgICBpZiAodGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCkgPj0gMCAmJiB0aW1pbmct
PmRvbWFpbkxvb2t1cEVuZFRpbWUoKSA+IGNvbm5lY3RTdGFydCkKKyAgICAgICAgY29ubmVjdFN0
YXJ0ID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmRUaW1lKCk7CiAKLSAgICByZXR1cm4gcmVzb3Vy
Y2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShjb25uZWN0U3RhcnQpOworICAgIHJldHVybiBy
ZXNvdXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGNvbm5lY3RTdGFydCk7CiB9CiAK
IHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6Y29ubmVjdEVuZCgpIGNvbnN0
CkBAIC0xODgsMTEgKzE4OCwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1p
bmc6OmNvCiAKICAgICAvLyBjb25uZWN0RW5kIHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVx
dWVzdCBpcyBub3QgbWFkZS4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwg
dmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8gbmV3IGNvbm5lY3Rpb24sIHdlICJiYWNrZmlsbCIgd2l0
aCBjb25uZWN0U3RhcnQuCi0gICAgaW50IGNvbm5lY3RFbmQgPSB0aW1pbmctPmNvbm5lY3RFbmQ7
CisgICAgZG91YmxlIGNvbm5lY3RFbmQgPSB0aW1pbmctPmNvbm5lY3RFbmRUaW1lKCk7CiAgICAg
aWYgKGNvbm5lY3RFbmQgPCAwIHx8IGxvYWRlci0+cmVzcG9uc2UoKS5jb25uZWN0aW9uUmV1c2Vk
KCkpCiAgICAgICAgIHJldHVybiBjb25uZWN0U3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJj
ZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGNvbm5lY3RFbmQpOworICAgIHJldHVybiByZXNv
dXJjZUxvYWRUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGNvbm5lY3RFbmQpOwogfQogCiB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCgp
IGNvbnN0CkBAIC0yMDUsMTEgKzIwNSwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFu
Y2VUaW1pbmc6OnNlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
aW50IHNzbFN0YXJ0ID0gdGltaW5nLT5zc2xTdGFydDsKKyAgICBkb3VibGUgc3NsU3RhcnQgPSB0
aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKTsKICAgICBpZiAoc3NsU3RhcnQgPCAw
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRp
dmVUb0Fic29sdXRlKHNzbFN0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50
ZWdlck1pbGxpc2Vjb25kcyhzc2xTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJm
b3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KCkgY29uc3QKQEAgLTIxOCw4ICsyMTgsOCBAQCB1
bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlCiAgICAgaWYgKCF0aW1pbmcp
CiAgICAgICAgIHJldHVybiBjb25uZWN0RW5kKCk7CiAKLSAgICBBU1NFUlQodGltaW5nLT5zZW5k
U3RhcnQgPj0gMCk7Ci0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1
dGUodGltaW5nLT5zZW5kU3RhcnQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlcXVlc3RTdGFydFRp
bWUoKSA+PSAwKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxpc2Vj
b25kcyh0aW1pbmctPnJlcXVlc3RTdGFydFRpbWUoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9u
ZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0CkBAIC0yMjgsMTQgKzIy
OCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAo
IXRpbWluZykKICAgICAgICAgcmV0dXJuIHJlcXVlc3RTdGFydCgpOwogCi0gICAgLy8gRklYTUU6
IFJlc3BvbnNlIHN0YXJ0IG5lZWRzIHRvIGJlIHRoZSB0aW1lIG9mIHRoZSBmaXJzdCByZWNlaXZl
ZCBieXRlLgotICAgIC8vIEhvd2V2ZXIsIHRoZSBSZXNvdXJjZUxvYWRUaW1pbmcgQVBJIGN1cnJl
bnRseSBvbmx5IHN1cHBvcnRzIHRoZSB0aW1lCi0gICAgLy8gdGhlIGxhc3QgaGVhZGVyIGJ5dGUg
d2FzIHJlY2VpdmVkLiBGb3IgbWFueSByZXNwb25zZXMgd2l0aCByZWFzb25hYmxlCi0gICAgLy8g
c2l6ZWQgY29va2llcywgdGhlIEhUVFAgaGVhZGVycyBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQg
c28gdGhpcyB0aW1lCi0gICAgLy8gaXMgYmFzaWNhbGx5IGVxdWl2YWxlbnQuIEJ1dCBmb3Igc29t
ZSByZXNwb25zZXMsIHBhcnRpY3VsYXJseSB0aG9zZSB3aXRoCi0gICAgLy8gaGVhZGVycyBsYXJn
ZXIgdGhhbiBhIHNpbmdsZSBwYWNrZXQsIHRoaXMgdGltZSB3aWxsIGJlIHRvbyBsYXRlLgotICAg
IEFTU0VSVCh0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kID49IDApOwotICAgIHJldHVybiByZXNv
dXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQp
OworICAgIEFTU0VSVCh0aW1pbmctPnJlc3BvbnNlU3RhcnRUaW1lKCkgPj0gMCk7CisgICAgcmV0
dXJuIHJlc291cmNlTG9hZFRpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5yZXNwb25z
ZVN0YXJ0VGltZSgpKTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5n
OjpyZXNwb25zZUVuZCgpIGNvbnN0CkBAIC0zNDgsMTQgKzM0Miw2IEBAIFJlc291cmNlTG9hZFRp
bWluZyogUGVyZm9ybWFuY2VUaW1pbmc6OnIKICAgICByZXR1cm4gbG9hZGVyLT5yZXNwb25zZSgp
LnJlc291cmNlTG9hZFRpbWluZygpOwogfQogCi11bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFu
Y2VUaW1pbmc6OnJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoaW50IHJlbGF0aXZl
TWlsbGlzZWNvbmRzKSBjb25zdAotewotICAgIEFTU0VSVChyZWxhdGl2ZU1pbGxpc2Vjb25kcyA+
PSAwKTsKLSAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHJlc291cmNlVGltaW5nID0gcmVzb3VyY2VM
b2FkVGltaW5nKCk7Ci0gICAgQVNTRVJUKHJlc291cmNlVGltaW5nKTsKLSAgICByZXR1cm4gbW9u
b3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhyZXNvdXJjZVRpbWluZy0+Y29udmVydFJl
c291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUocmVsYXRpdmVNaWxsaXNlY29uZHMpKTsKLX0K
LQogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjptb25vdG9uaWNUaW1lVG9J
bnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJsZSBtb25vdG9uaWNTZWNvbmRzKSBjb25zdAogewogICAg
IEFTU0VSVChtb25vdG9uaWNTZWNvbmRzID49IDApOwpAQCAtMzYzLDYgKzM0OSwxOCBAQCB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om1vCiAgICAgQVNTRVJUKHRpbWluZyk7
CiAgICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPm1vbm90b25pY1RpbWVU
b1BzZXVkb1dhbGxUaW1lKG1vbm90b25pY1NlY29uZHMpKTsKIH0KKyAgICAKK3Vuc2lnbmVkIGxv
bmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1pbGxp
c2Vjb25kcyhkb3VibGUgc2Vjb25kcykKK3sKKyAgICBpZiAoc2Vjb25kcyA8PSAwLjApCisgICAg
ICAgIHJldHVybiAwOworI2lmIFVTRShDRikKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQgbG9uZyBsb25nPigoc2Vjb25kcyArIGtDRkFic29sdXRlVGltZUludGVydmFsU2luY2UxOTcw
KSAqIDEwMDApOworI2Vsc2UKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBs
b25nPihzZWNvbmRzICogMTAwMCk7CisjZW5kaWYKK30KKyAgICAKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5oCShy
ZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5n
LmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDggKzc4LDggQEAgcHJpdmF0ZToKICAgICBEb2N1bWVu
dExvYWRlciogZG9jdW1lbnRMb2FkZXIoKSBjb25zdDsKICAgICBEb2N1bWVudExvYWRUaW1pbmcq
IGRvY3VtZW50TG9hZFRpbWluZygpIGNvbnN0OwogICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVz
b3VyY2VMb2FkVGltaW5nKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIHJlc291cmNl
TG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoaW50KSBjb25zdDsKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUpIGNvbnN0Owor
ICAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcmVzb3VyY2VMb2FkVGltZVRvSW50ZWdlck1p
bGxpc2Vjb25kcyhkb3VibGUpOwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZVRpbWluZy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZVRpbWluZy5pZGwJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3
IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAw
Ni93ZWJhcGkvV2ViVGltaW5nLworLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3JnL2hnL3dlYnBl
cmYvcmF3LWZpbGUvdGlwL3NwZWNzL05hdmlnYXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRtbAogWwog
ICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiBdIGludGVyZmFjZSBQZXJmb3JtYW5jZVRpbWlu
ZyB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vy
cy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDYgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgUmVzb3VyY2VSZXNw
b25zZUJhc2U7Ci0KIGVudW0gQ29udGVudERpc3Bvc2l0aW9uVHlwZSB7CiAgICAgQ29udGVudERp
c3Bvc2l0aW9uTm9uZSwKICAgICBDb250ZW50RGlzcG9zaXRpb25JbmxpbmUsCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1p
bmcuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDEwICsyOCw0NSBAQAog
I2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWRvdWJsZSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25v
dG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3QKKyAgICAKK1Jlc291cmNlTG9h
ZFRpbWluZzo6UmVzb3VyY2VMb2FkVGltaW5nKCkKKyAgICA6IG1fZG9tYWluTG9va3VwU3RhcnRU
aW1lKC0xLjApCisgICAgLCBtX2RvbWFpbkxvb2t1cEVuZFRpbWUoLTEuMCkKKyAgICAsIG1fY29u
bmVjdFN0YXJ0VGltZSgtMS4wKQorICAgICwgbV9jb25uZWN0RW5kVGltZSgtMS4wKQorICAgICwg
bV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKC0xLjApCisgICAgLCBtX3JlcXVlc3RTdGFydFRp
bWUoMC4wKQorICAgICwgbV9yZXNwb25zZVN0YXJ0VGltZSgwLjApCiB7Ci0gICAgcmV0dXJuIHJl
cXVlc3RUaW1lICsgZGVsdGFNaWxsaXNlY29uZHMgLyAxMDAwLjA7CiB9CiAKK1Bhc3NSZWZQdHI8
UmVzb3VyY2VMb2FkVGltaW5nPiBSZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KCkKK3sKKyAg
ICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiB0aW1pbmcgPSBhZG9wdFJlZihuZXcgUmVzb3Vy
Y2VMb2FkVGltaW5nKTsKKyAgICB0aW1pbmctPnNldERvbWFpbkxvb2t1cFN0YXJ0VGltZShtX2Rv
bWFpbkxvb2t1cFN0YXJ0VGltZSk7CisgICAgdGltaW5nLT5zZXREb21haW5Mb29rdXBFbmRUaW1l
KG1fZG9tYWluTG9va3VwRW5kVGltZSk7CisgICAgdGltaW5nLT5zZXRDb25uZWN0U3RhcnRUaW1l
KG1fY29ubmVjdFN0YXJ0VGltZSk7CisgICAgdGltaW5nLT5zZXRDb25uZWN0RW5kVGltZShtX2Nv
bm5lY3RFbmRUaW1lKTsKKyAgICB0aW1pbmctPnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUo
bV9zZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lKTsKKyAgICB0aW1pbmctPnNldFJlcXVlc3RTdGFy
dFRpbWUobV9yZXF1ZXN0U3RhcnRUaW1lKTsKKyAgICB0aW1pbmctPnNldFJlc3BvbnNlU3RhcnRU
aW1lKG1fcmVzcG9uc2VTdGFydFRpbWUpOworICAgIHJldHVybiB0aW1pbmcucmVsZWFzZSgpOwor
fQorICAgIAorYm9vbCBSZXNvdXJjZUxvYWRUaW1pbmc6Om9wZXJhdG9yPT0oY29uc3QgUmVzb3Vy
Y2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kb21haW5Mb29rdXBT
dGFydFRpbWUgPT0gb3RoZXIuZG9tYWluTG9va3VwU3RhcnRUaW1lKCkKKyAgICAgICAgJiYgbV9k
b21haW5Mb29rdXBFbmRUaW1lID09IG90aGVyLmRvbWFpbkxvb2t1cEVuZFRpbWUoKQorICAgICAg
ICAmJiBtX2Nvbm5lY3RTdGFydFRpbWUgPT0gb3RoZXIuY29ubmVjdFN0YXJ0VGltZSgpCisgICAg
ICAgICYmIG1fY29ubmVjdEVuZFRpbWUgPT0gb3RoZXIuY29ubmVjdEVuZFRpbWUoKQorICAgICAg
ICAmJiBtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUgPT0gb3RoZXIuc2VjdXJlQ29ubmVjdGlv
blN0YXJ0VGltZSgpCisgICAgICAgICYmIG1fcmVxdWVzdFN0YXJ0VGltZSA9PSBvdGhlci5yZXF1
ZXN0U3RhcnRUaW1lKCkKKyAgICAgICAgJiYgbV9yZXNwb25zZVN0YXJ0VGltZSA9PSBvdGhlci5y
ZXNwb25zZVN0YXJ0VGltZSgpOworfQorICAgIAorYm9vbCBSZXNvdXJjZUxvYWRUaW1pbmc6Om9w
ZXJhdG9yIT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKK3sKKyAgICBy
ZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7Cit9CisgICAgCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgJKHJldmlz
aW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VM
b2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDk2ICsyNyw0NyBAQAogI2lmbmRlZiBSZXNvdXJj
ZUxvYWRUaW1pbmdfaAogI2RlZmluZSBSZXNvdXJjZUxvYWRUaW1pbmdfaAogCi0jaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVudExv
YWRUaW1pbmc7Ci0KIGNsYXNzIFJlc291cmNlTG9hZFRpbWluZyA6IHB1YmxpYyBSZWZDb3VudGVk
PFJlc291cmNlTG9hZFRpbWluZz4geworICAgIAogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFJlc291cmNlTG9hZFRpbWluZz4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VMb2FkVGltaW5nKTsKLSAgICB9Ci0KLSAgICBQYXNzUmVmUHRy
PFJlc291cmNlTG9hZFRpbWluZz4gZGVlcENvcHkoKQotICAgIHsKLSAgICAgICAgUmVmUHRyPFJl
c291cmNlTG9hZFRpbWluZz4gdGltaW5nID0gY3JlYXRlKCk7Ci0gICAgICAgIHRpbWluZy0+cmVx
dWVzdFRpbWUgPSByZXF1ZXN0VGltZTsKLSAgICAgICAgdGltaW5nLT5wcm94eVN0YXJ0ID0gcHJv
eHlTdGFydDsKLSAgICAgICAgdGltaW5nLT5wcm94eUVuZCA9IHByb3h5RW5kOwotICAgICAgICB0
aW1pbmctPmRuc1N0YXJ0ID0gZG5zU3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+ZG5zRW5kID0gZG5z
RW5kOwotICAgICAgICB0aW1pbmctPmNvbm5lY3RTdGFydCA9IGNvbm5lY3RTdGFydDsKLSAgICAg
ICAgdGltaW5nLT5jb25uZWN0RW5kID0gY29ubmVjdEVuZDsKLSAgICAgICAgdGltaW5nLT5zZW5k
U3RhcnQgPSBzZW5kU3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+c2VuZEVuZCA9IHNlbmRFbmQ7Ci0g
ICAgICAgIHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQgPSByZWNlaXZlSGVhZGVyc0VuZDsKLSAg
ICAgICAgdGltaW5nLT5zc2xTdGFydCA9IHNzbFN0YXJ0OwotICAgICAgICB0aW1pbmctPnNzbEVu
ZCA9IHNzbEVuZDsKLSAgICAgICAgcmV0dXJuIHRpbWluZy5yZWxlYXNlKCk7Ci0gICAgfQotCi0g
ICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gcmVxdWVzdFRpbWUgPT0gb3RoZXIucmVxdWVzdFRpbWUK
LSAgICAgICAgICAgICYmIHByb3h5U3RhcnQgPT0gb3RoZXIucHJveHlTdGFydAotICAgICAgICAg
ICAgJiYgcHJveHlFbmQgPT0gb3RoZXIucHJveHlFbmQKLSAgICAgICAgICAgICYmIGRuc1N0YXJ0
ID09IG90aGVyLmRuc1N0YXJ0Ci0gICAgICAgICAgICAmJiBkbnNFbmQgPT0gb3RoZXIuZG5zRW5k
Ci0gICAgICAgICAgICAmJiBjb25uZWN0U3RhcnQgPT0gb3RoZXIuY29ubmVjdFN0YXJ0Ci0gICAg
ICAgICAgICAmJiBjb25uZWN0RW5kID09IG90aGVyLmNvbm5lY3RFbmQKLSAgICAgICAgICAgICYm
IHNlbmRTdGFydCA9PSBvdGhlci5zZW5kU3RhcnQKLSAgICAgICAgICAgICYmIHNlbmRFbmQgPT0g
b3RoZXIuc2VuZEVuZAotICAgICAgICAgICAgJiYgcmVjZWl2ZUhlYWRlcnNFbmQgPT0gb3RoZXIu
cmVjZWl2ZUhlYWRlcnNFbmQKLSAgICAgICAgICAgICYmIHNzbFN0YXJ0ID09IG90aGVyLnNzbFN0
YXJ0Ci0gICAgICAgICAgICAmJiBzc2xFbmQgPT0gb3RoZXIuc3NsRW5kOwotICAgIH0KLQotICAg
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVyKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwotICAgIH0KLQotICAgIC8v
IFdlIHdhbnQgdG8gcHJlc2VudCBhIHVuaWZpZWQgdGltZWxpbmUgdG8gSmF2YXNjcmlwdC4gVXNp
bmcgd2FsbHRpbWUgaXMgcHJvYmxlbWF0aWMsIGJlY2F1c2UgdGhlIGNsb2NrIG1heSBza2V3IHdo
aWxlIHJlc291cmNlcwotICAgIC8vIGxvYWQuIFRvIHByZXZlbnQgdGhhdCBza2V3LCB3ZSByZWNv
cmQgYSBzaW5nbGUgcmVmZXJlbmNlIHdhbGx0aW1lIHdoZW4gcm9vdCBkb2N1bWVudCBuYXZpZ2F0
aW9uIGJlZ2lucy4gQWxsIG90aGVyIHRpbWVzIGFyZQotICAgIC8vIHJlY29yZGVkIHVzaW5nIG1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLiBXaGVuIGEgdGltZSBuZWVkcyB0byBiZSBwcmVz
ZW50ZWQgdG8gSmF2YXNjcmlwdCwgd2UgYnVpbGQgYSBwc2V1ZG8td2FsbHRpbWUKLSAgICAvLyB1
c2luZyB0aGUgZm9sbG93aW5nIGVxdWF0aW9uOgotICAgIC8vICAgcHNldWRvIHRpbWUgPSBkb2N1
bWVudCB3YWxsIHJlZmVyZW5jZSArIChyZXNvdXJjZSByZXF1ZXN0IHRpbWUgLSBkb2N1bWVudCBt
b25vdG9uaWMgcmVmZXJlbmNlKSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wLgotICAgIGRv
dWJsZSBjb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZShpbnQgZGVsdGFNaWxs
aXNlY29uZHMpIGNvbnN0OwotCi0gICAgZG91YmxlIHJlcXVlc3RUaW1lOyAvLyBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSB3aGVuIHRoZSBwb3J0IHN0YXJ0ZWQgaGFuZGxpbmcgdGhpcyBy
ZXF1ZXN0LgotICAgIGludCBwcm94eVN0YXJ0OyAvLyBUaGUgcmVzdCBvZiB0aGVzZSBhcmUgbWls
bGlzZWNvbmQgZGVsdGFzLCB1c2luZyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgZnJv
bSByZXF1ZXN0VGltZS4KLSAgICBpbnQgcHJveHlFbmQ7Ci0gICAgaW50IGRuc1N0YXJ0OwotICAg
IGludCBkbnNFbmQ7Ci0gICAgaW50IGNvbm5lY3RTdGFydDsKLSAgICBpbnQgY29ubmVjdEVuZDsK
LSAgICBpbnQgc2VuZFN0YXJ0OwotICAgIGludCBzZW5kRW5kOwotICAgIGludCByZWNlaXZlSGVh
ZGVyc0VuZDsKLSAgICBpbnQgc3NsU3RhcnQ7Ci0gICAgaW50IHNzbEVuZDsKLQorICAgIAorICAg
IFJlc291cmNlTG9hZFRpbWluZygpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlc291cmNlTG9h
ZFRpbWluZz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJlc291cmNlTG9hZFRpbWlu
Zyk7IH0KKyAgICBQYXNzUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gZGVlcENvcHkoKTsKKyAg
ICAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJikgY29uc3Q7
CisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYpIGNvbnN0Owor
ICAgIAorICAgIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBt
X2RvbWFpbkxvb2t1cFN0YXJ0VGltZTsgfQorICAgIGRvdWJsZSBkb21haW5Mb29rdXBFbmRUaW1l
KCkgY29uc3QgeyByZXR1cm4gbV9kb21haW5Mb29rdXBFbmRUaW1lOyB9CisgICAgZG91YmxlIGNv
bm5lY3RTdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3RTdGFydFRpbWU7IH0KKyAg
ICBkb3VibGUgY29ubmVjdEVuZFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3RFbmRUaW1l
OyB9CisgICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUoKSBjb25zdCB7IHJldHVy
biBtX3NlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWU7IH0KKyAgICBkb3VibGUgcmVxdWVzdFN0YXJ0
VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdFN0YXJ0VGltZTsgfQorICAgIGRvdWJsZSBy
ZXNwb25zZVN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VTdGFydFRpbWU7IH0K
KyAgICAKKyAgICB2b2lkIHNldERvbWFpbkxvb2t1cFN0YXJ0VGltZShkb3VibGUgZG9tYWluTG9v
a3VwU3RhcnRUaW1lKSB7IG1fZG9tYWluTG9va3VwU3RhcnRUaW1lID0gZG9tYWluTG9va3VwU3Rh
cnRUaW1lOyB9CisgICAgdm9pZCBzZXREb21haW5Mb29rdXBFbmRUaW1lKGRvdWJsZSBkb21haW5M
b29rdXBFbmRUaW1lKSB7IG1fZG9tYWluTG9va3VwRW5kVGltZSA9IGRvbWFpbkxvb2t1cEVuZFRp
bWU7IH0KKyAgICB2b2lkIHNldENvbm5lY3RTdGFydFRpbWUoZG91YmxlIGNvbm5lY3RTdGFydFRp
bWUpIHsgbV9jb25uZWN0U3RhcnRUaW1lID0gY29ubmVjdFN0YXJ0VGltZTsgfQorICAgIHZvaWQg
c2V0Q29ubmVjdEVuZFRpbWUoZG91YmxlIGNvbm5lY3RFbmRUaW1lKSB7IG1fY29ubmVjdEVuZFRp
bWUgPSBjb25uZWN0RW5kVGltZTsgfQorICAgIHZvaWQgc2V0U2VjdXJlQ29ubmVjdGlvblN0YXJ0
VGltZShkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSkgeyBtX3NlY3VyZUNvbm5lY3Rp
b25TdGFydFRpbWUgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnRUaW1lOyB9CisgICAgdm9pZCBzZXRS
ZXF1ZXN0U3RhcnRUaW1lKGRvdWJsZSByZXF1ZXN0U3RhcnRUaW1lKSB7IG1fcmVxdWVzdFN0YXJ0
VGltZSA9IHJlcXVlc3RTdGFydFRpbWU7IH0KKyAgICB2b2lkIHNldFJlc3BvbnNlU3RhcnRUaW1l
KGRvdWJsZSByZXNwb25zZVN0YXJ0VGltZSkgeyBtX3Jlc3BvbnNlU3RhcnRUaW1lID0gcmVzcG9u
c2VTdGFydFRpbWU7IH0KKyAgICAKIHByaXZhdGU6Ci0gICAgUmVzb3VyY2VMb2FkVGltaW5nKCkK
LSAgICAgICAgOiByZXF1ZXN0VGltZSgwKQotICAgICAgICAsIHByb3h5U3RhcnQoLTEpCi0gICAg
ICAgICwgcHJveHlFbmQoLTEpCi0gICAgICAgICwgZG5zU3RhcnQoLTEpCi0gICAgICAgICwgZG5z
RW5kKC0xKQotICAgICAgICAsIGNvbm5lY3RTdGFydCgtMSkKLSAgICAgICAgLCBjb25uZWN0RW5k
KC0xKQotICAgICAgICAsIHNlbmRTdGFydCgwKQotICAgICAgICAsIHNlbmRFbmQoMCkKLSAgICAg
ICAgLCByZWNlaXZlSGVhZGVyc0VuZCgwKQotICAgICAgICAsIHNzbFN0YXJ0KC0xKQotICAgICAg
ICAsIHNzbEVuZCgtMSkKLSAgICB7Ci0gICAgfQorICAgIAorICAgIGRvdWJsZSBtX2RvbWFpbkxv
b2t1cFN0YXJ0VGltZTsKKyAgICBkb3VibGUgbV9kb21haW5Mb29rdXBFbmRUaW1lOworICAgIGRv
dWJsZSBtX2Nvbm5lY3RTdGFydFRpbWU7CisgICAgZG91YmxlIG1fY29ubmVjdEVuZFRpbWU7Cisg
ICAgZG91YmxlIG1fc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZTsKKyAgICBkb3VibGUgbV9yZXF1
ZXN0U3RhcnRUaW1lOworICAgIGRvdWJsZSBtX3Jlc3BvbnNlU3RhcnRUaW1lOwogfTsKIAogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC01Niw2ICs1NiwxNCBAQAogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxGb3VuZGF0aW9uL05T
VVJMQ29ubmVjdGlvblByaXZhdGUuaD4pCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMQ29ubmVj
dGlvblByaXZhdGUuaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMQ29ubmVjdGlvbiAoVGltaW5n
RGF0YSkKKysgKHZvaWQpX3NldENvbGxlY3RzVGltaW5nRGF0YTooQk9PTCljb2xsZWN0OworQGVu
ZAorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZVUkxS
ZXF1ZXN0Lmg+CiAKQEAgLTIwMCw2ICsyMDgsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVh
dGVOU1VSTENvbm5lY3RpCiAgICAgY29uc3QgYm9vbCB1c2VzQ2FjaGUgPSB0cnVlOwogI2VuZGlm
CiAgICAgZC0+bV9jb25uZWN0aW9uID0gYWRvcHROUyhbW05TVVJMQ29ubmVjdGlvbiBhbGxvY10g
X2luaXRXaXRoUmVxdWVzdDpuc1JlcXVlc3QgZGVsZWdhdGU6ZGVsZWdhdGUgdXNlc0NhY2hlOnVz
ZXNDYWNoZSBtYXhDb250ZW50TGVuZ3RoOjAgc3RhcnRJbW1lZGlhdGVseTpOTyBjb25uZWN0aW9u
UHJvcGVydGllczpwcm9wZXJ0eURpY3Rpb25hcnldKTsKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykK
KyAgICBbTlNVUkxDb25uZWN0aW9uIF9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6WUVTXTsKKyNlbmRp
ZgogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1
ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1t
CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTM5LDYgKzM5LDE0IEBACiAjaW1wb3J0ICJXZWJDb3JlVVJMUmVzcG9uc2Uu
aCIKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxDRk5l
dHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4pCisjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZOU1VSTENv
bm5lY3Rpb24uaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMQ29ubmVjdGlvbiAoVGltaW5nRGF0
YSkKKy0gKE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhOworQGVuZAorI2VuZGlmCisKIEBpbnRl
cmZhY2UgTlNVUkxSZXF1ZXN0IChEZXRhaWxzKQogLSAoaWQpX3Byb3BlcnR5Rm9yS2V5OihOU1N0
cmluZyAqKWtleTsKIEBlbmQKQEAgLTE5Myw3ICsyMDEsNiBAQCAtIChCT09MKWNvbm5lY3Rpb246
KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlv
biAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcgogewog
ICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9u
KTsKIAogICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIGRlbGVnYXRlIGNvbm5lY3Rpb246JXAg
ZGlkUmVjZWl2ZVJlc3BvbnNlOiVwIChIVFRQIHN0YXR1cyAlZCwgcmVwb3J0ZWQgTUlNRVR5cGUg
JyVzJykiLCBtX2hhbmRsZSwgY29ubmVjdGlvbiwgciwgW3IgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihzdGF0dXNDb2RlKV0gPyBbKGlkKXIgc3RhdHVzQ29kZV0gOiAwLCBbW3IgTUlNRVR5
cGVdIFVURjhTdHJpbmddKTsKIApAQCAtMjEyLDggKzIxOSwzNCBAQCAtICh2b2lkKWNvbm5lY3Rp
b246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAKICAgICAgICAgaWYgKFttX2hhbmRsZS0+Zmlyc3RS
ZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpIF9wcm9wZXJ0eUZvcktl
eTpAIkZvcmNlSFRNTE1JTUVUeXBlIl0pCiAgICAgICAgICAgICBbciBfc2V0TUlNRVR5cGU6QCJ0
ZXh0L2h0bWwiXTsKLQotICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKG1faGFuZGxlLCByKTsKKyAgICAgICAgCisgICAgICAgIFJlc291cmNlUmVzcG9u
c2UgcmVzb3VyY2VSZXNwb25zZShyKTsKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAgICAgICAg
TlNEaWN0aW9uYXJ5KiB0aW1pbmdEYXRhID0gW2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFdOworICAg
ICAgICBpZiAodGltaW5nRGF0YSkgeworICAgICAgICAgICAgcmVzb3VyY2VSZXNwb25zZS5zZXRS
ZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7CisgICAgICAg
ICAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCk7CisgICAgICAgICAgICB0aW1pbmctPnNldERvbWFpbkxvb2t1cEVuZFRp
bWUoW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhRG9tYWluTG9va3Vw
RW5kIl0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgICAgIHRpbWluZy0+c2V0RG9tYWluTG9va3Vw
U3RhcnRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFp
bkxvb2t1cFN0YXJ0Il0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgICAgIHRpbWluZy0+c2V0Q29u
bmVjdFN0YXJ0VGltZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFD
b25uZWN0U3RhcnQiXSBkb3VibGVWYWx1ZV0pOworICAgICAgICAgICAgdGltaW5nLT5zZXRDb25u
ZWN0RW5kVGltZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25u
ZWN0RW5kIl0gZG91YmxlVmFsdWVdKTsKKyAgICAgICAgICAgIHRpbWluZy0+c2V0U2VjdXJlQ29u
bmVjdGlvblN0YXJ0VGltZShbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0Rh
dGFTZWN1cmVDb25uZWN0aW9uU3RhcnQiXSBkb3VibGVWYWx1ZV0pOworICAgICAgICAgICAgdGlt
aW5nLT5zZXRSZXF1ZXN0U3RhcnRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZO
VGltaW5nRGF0YVJlcXVlc3RTdGFydCJdIGRvdWJsZVZhbHVlXSk7CisgICAgICAgICAgICB0aW1p
bmctPnNldFJlc3BvbnNlU3RhcnRUaW1lKFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZO
VGltaW5nRGF0YVJlc3BvbnNlU3RhcnQiXSBkb3VibGVWYWx1ZV0pOworICAgICAgICAgICAgLy8g
VE9ETzogdGltaW5nRGF0YSBoYXMgbW9yZSBpbmZvcm1hdGlvbiB0aGF0IHdlIHNob3VsZCBzdG9y
ZSBhbmQgdXNlIHdpdGggdGhlc2Uga2V5czoKKyAgICAgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0
YUNvbm5lY3Rpb25SZXVzZWQKKyAgICAgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0YVRpbWluZ0Rh
dGFJbml0CisgICAgICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFSZWRpcmVjdFN0YXJ0CisgICAg
ICAgICAgICAvLyBfa0NGTlRpbWluZ0RhdGFSZWRpcmVjdEVuZAorICAgICAgICAgICAgLy8gX2tD
Rk5UaW1pbmdEYXRhRmV0Y2hTdGFydAorICAgICAgICAgICAgLy8gX2tDRk5UaW1pbmdEYXRhUmVz
cG9uc2VFbmQKKyAgICAgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0YVJlZGlyZWN0Q291bnRXM0MK
KyAgICAgICAgICAgIC8vIF9rQ0ZOVGltaW5nRGF0YVJlZGlyZWN0Q291bnQKKyAgICAgICAgfQor
I2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworI2VuZGlmCisgICAgICAg
IG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMobV9oYW5kbGUsIHJl
c291cmNlUmVzcG9uc2UpOwogICAgIH0pOwogCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQo
bV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNCw5
ICsyMzQsNiBAQCBzdGF0aWMgdm9pZCBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24oCiBzdGF0
aWMgdm9pZCBzZW5kUmVxdWVzdENhbGxiYWNrKEdPYmplY3QqLCBHQXN5bmNSZXN1bHQqLCBncG9p
bnRlcik7CiBzdGF0aWMgdm9pZCByZWFkQ2FsbGJhY2soR09iamVjdCosIEdBc3luY1Jlc3VsdCos
IGdwb2ludGVyKTsKIHN0YXRpYyBnYm9vbGVhbiByZXF1ZXN0VGltZW91dENhbGxiYWNrKHZvaWQq
KTsKLSNpZiBFTkFCTEUoV0VCX1RJTUlORykKLXN0YXRpYyBpbnQgIG1pbGlzZWNvbmRzU2luY2VS
ZXF1ZXN0KGRvdWJsZSByZXF1ZXN0VGltZSk7Ci0jZW5kaWYKIHN0YXRpYyB2b2lkIGNvbnRpbnVl
QWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqKTsKIAogc3RhdGljIGJvb2wg
Z0lnbm9yZVNTTEVycm9ycyA9IGZhbHNlOwpAQCAtMzE2LDExICszMTMsNiBAQCBzdGF0aWMgdm9p
ZCBnb3RIZWFkZXJzQ2FsbGJhY2soU291cE1lc3NhCiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVy
bmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogCi0jaWYgRU5BQkxFKFdFQl9USU1JTkcp
Ci0gICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCi0gICAgICAgIGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlY2VpdmVIZWFkZXJzRW5kID0gbWls
aXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
cmVxdWVzdFRpbWUpOwotI2VuZGlmCi0KICNpZiBQTEFURk9STShHVEspCiAgICAgLy8gV2UgYXJl
IGEgYml0IG1vcmUgY29uc2VydmF0aXZlIHdpdGggdGhlIHBlcnNpc3RlbnQgY3JlZGVudGlhbCBz
dG9yYWdlIHRoYW4gdGhlIHNlc3Npb24gc3RvcmUsCiAgICAgLy8gc2luY2Ugd2UgYXJlIHdhaXRp
bmcgdW50aWwgd2Uga25vdyB0aGF0IHRoaXMgYXV0aGVudGljYXRpb24gc3VjY2VlZGVkIGJlZm9y
ZSBhY3R1YWxseSBzdG9yaW5nLgpAQCAtMzkwLDcgKzM4Miw3IEBAIHN0YXRpYyB2b2lkIHJlc3Rh
cnRlZENhbGxiYWNrKFNvdXBNZXNzYWcKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0g
aGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVz
cG9uc2UgPSBkLT5tX3Jlc3BvbnNlOwogICAgIHJlZGlyZWN0UmVzcG9uc2Uuc2V0UmVzb3VyY2VM
b2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpOwotICAgIHJlZGlyZWN0UmVz
cG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lID0gbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCk7CisgICAgcmVkaXJlY3RSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+c2V0UmVxdWVzdFN0YXJ0VGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiB9
CiAjZW5kaWYKIApAQCAtODM5LDQwICs4MzEsMTMgQEAgc3RhdGljIGJvb2wgYWRkRm9ybUVsZW1l
bnRzVG9Tb3VwTWVzc2FnZQogfQogCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCi1zdGF0aWMgaW50
IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGRvdWJsZSByZXF1ZXN0VGltZSkKLXsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8aW50PigobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSByZXF1
ZXN0VGltZSkgKiAxMDAwLjApOwotfQotCi1zdGF0aWMgdm9pZCB3cm90ZUJvZHlDYWxsYmFjayhT
b3VwTWVzc2FnZSosIGdwb2ludGVyIGRhdGEpCi17Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwotICAgIGlmICgh
aGFuZGxlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBk
ID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIGlmICghZC0+bV9yZXNwb25zZS5yZXNvdXJj
ZUxvYWRUaW1pbmcoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZC0+bV9yZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKS0+c2VuZEVuZCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKLX0KLQogdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6ZGlkU3RhcnRSZXF1ZXN0KCkKIHsKICAgICBSZXNvdXJjZUhhbmRsZUlu
dGVybmFsKiBkID0gZ2V0SW50ZXJuYWwoKTsKICAgICBpZiAoIWQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnNlbmRTdGFydCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKLSAgICBpZiAo
ZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQgIT0gLTEpIHsKLSAg
ICAgICAgLy8gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlcXVlc3RUaW1pbmdWaWV3Lmpz
IGFzc3VtZXMKLSAgICAgICAgLy8gdGhhdCBTU0wgdGltZSBpcyBpbmNsdWRlZCBpbiBjb25uZWN0
aW9uIHRpbWUgc28gbXVzdAotICAgICAgICAvLyBzdWJzdHJhY3QgaGVyZSB0aGUgU1NMIGRlbHRh
IHRoYXQgd2lsbCBiZSBhZGRlZCBsYXRlciAoc2VlCi0gICAgICAgIC8vIFdlYkluc3BlY3Rvci5S
ZXF1ZXN0VGltaW5nVmlldy5jcmVhdGVUaW1pbmdUYWJsZSBpbiB0aGUKLSAgICAgICAgLy8gZmls
ZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzKS4KLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJj
ZUxvYWRUaW1pbmcoKS0+c2VuZFN0YXJ0IC09Ci0gICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpLT5zc2xFbmQgLSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5zc2xTdGFydDsKLSAgICB9CisgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKS0+c2V0UmVxdWVzdFN0YXJ0VGltZShkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5yZXF1ZXN0U3RhcnRUaW1lKCkpOwogfQogCiBzdGF0aWMgdm9pZCBuZXR3b3JrRXZl
bnRDYWxsYmFjayhTb3VwTWVzc2FnZSosIEdTb2NrZXRDbGllbnRFdmVudCBldmVudCwgR0lPU3Ry
ZWFtKiwgZ3BvaW50ZXIgZGF0YSkKQEAgLTg4NSw0MyArODUwLDMxIEBAIHN0YXRpYyB2b2lkIG5l
dHdvcmtFdmVudENhbGxiYWNrKFNvdXBNZXMKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpbnQgZGVs
dGFUaW1lID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxv
YWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUpOwogICAgIHN3aXRjaCAoZXZlbnQpIHsKICAgICBjYXNl
IEdfU09DS0VUX0NMSUVOVF9SRVNPTFZJTkc6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCktPmRuc1N0YXJ0ID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZXREb21haW5Mb29rdXBTdGFydFRpbWUobW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09D
S0VUX0NMSUVOVF9SRVNPTFZFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKS0+ZG5zRW5kID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5zZXREb21haW5Mb29rdXBFbmRUaW1lKG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRf
Q09OTkVDVElORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
Y29ubmVjdFN0YXJ0ID0gZGVsdGFUaW1lOwotICAgICAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3RhcnQgIT0gLTEpCi0gICAgICAgICAgICAvLyBXZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVxdWVzdFRpbWluZ1ZpZXcuanMgYXNzdW1lcwotICAgICAg
ICAgICAgLy8gdGhhdCBETlMgdGltZSBpcyBpbmNsdWRlZCBpbiBjb25uZWN0aW9uIHRpbWUgc28g
bXVzdAotICAgICAgICAgICAgLy8gc3Vic3RyYWN0IGhlcmUgdGhlIEROUyBkZWx0YSB0aGF0IHdp
bGwgYmUgYWRkZWQgbGF0ZXIgKHNlZQotICAgICAgICAgICAgLy8gV2ViSW5zcGVjdG9yLlJlcXVl
c3RUaW1pbmdWaWV3LmNyZWF0ZVRpbWluZ1RhYmxlIGluIHRoZQotICAgICAgICAgICAgLy8gZmls
ZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzKS4KLSAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RTdGFydCAtPQotICAgICAgICAgICAgICAgIGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc0VuZCAtIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPmRuc1N0YXJ0OworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5zZXRDb25uZWN0U3RhcnRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfQ09O
TkVDVEVEOgogICAgICAgICAvLyBXZWIgVGltaW5nIGNvbnNpZGVycyB0aGF0IGNvbm5lY3Rpb24g
dGltZSBpbnZvbHZlcyBkbnMsIHByb3h5ICYgVExTIG5lZ290aWF0aW9uLi4uCiAgICAgICAgIC8v
IHNvIHdlIGJldHRlciBwaWNrIEdfU09DS0VUX0NMSUVOVF9DT01QTEVURSBmb3IgY29ubmVjdEVu
ZAogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9QUk9YWV9ORUdPVElB
VElORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cHJveHlT
dGFydCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElF
TlRfUFJPWFlfTkVHT1RJQVRFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKS0+cHJveHlFbmQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
R19TT0NLRVRfQ0xJRU5UX1RMU19IQU5EU0hBS0lORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5y
ZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQgPSBkZWx0YVRpbWU7CisgICAgICAgIGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydFRp
bWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEdfU09DS0VUX0NMSUVOVF9UTFNfSEFORFNIQUtFRDoKLSAgICAgICAgZC0+bV9yZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsRW5kID0gZGVsdGFUaW1lOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9DT01QTEVURToKLSAgICAgICAgZC0+bV9yZXNw
b25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+Y29ubmVjdEVuZCA9IGRlbHRhVGltZTsKKyAgICAg
ICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2V0Q29ubmVjdEVuZFRpbWUo
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogICAgICAgICBicmVhazsKICAgICBkZWZh
dWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTk4MCw3ICs5MzMsNiBAQCBz
dGF0aWMgYm9vbCBjcmVhdGVTb3VwTWVzc2FnZUZvckhhbmRsZUFuCiAgICAgZC0+bV9yZXNwb25z
ZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7CiAg
ICAgZ19zaWduYWxfY29ubmVjdChkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCAibmV0d29yay1ldmVu
dCIsIEdfQ0FMTEJBQ0sobmV0d29ya0V2ZW50Q2FsbGJhY2spLCBoYW5kbGUpOwogICAgIGdfc2ln
bmFsX2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgInJlc3RhcnRlZCIsIEdfQ0FMTEJB
Q0socmVzdGFydGVkQ2FsbGJhY2spLCBoYW5kbGUpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+
bV9zb3VwTWVzc2FnZS5nZXQoKSwgIndyb3RlLWJvZHkiLCBHX0NBTExCQUNLKHdyb3RlQm9keUNh
bGxiYWNrKSwgaGFuZGxlKTsKICNlbmRpZgogCiAjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDQz
LCAxKQpAQCAtMTA1NCw3ICsxMDA2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRp
bmdSZXF1ZXN0KAogewogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgIGlmIChkLT5tX3Jlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpKQotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZXRSZXF1ZXN0
U3RhcnRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKICNlbmRpZgogCiAgICAg
aWYgKGQtPm1fZmlyc3RSZXF1ZXN0LnRpbWVvdXRJbnRlcnZhbCgpID4gMCkgewpJbmRleDogU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDUtMDcgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcm9ncmVzcyBvbiB3ZWIgdGlt
aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMy
NTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGVjb2RlKToKKyAgICAgICAgVHJhbnNmZXIgd2ViIHRp
bWluZyBkYXRhLgorCiAyMDE0LTA1LTA2ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtpT1NdW1dLMl0gQWRkIHRhcCBoaWdobGlnaHQgb24gdGhlIHNp
bXBsZSBVSVRhcEdlc3R1cmVSZWNvZ25pemVyCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTY4OCw2ICs2ODgsMTkgQEAgdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9u
c2U+OjplbgogICAgICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVzcG9uc2UuaHR0cFN0YXR1c1Rl
eHQoKTsKICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlc3BvbnNlLnN1Z2dlc3RlZEZpbGVu
YW1lKCk7CiAgICAgfQorICAgIAorICAgIFJlc291cmNlTG9hZFRpbWluZyogdGltaW5nID0gcmVz
b3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICBib29sIGhhc1Jlc291cmNl
TG9hZFRpbWluZyA9IHRpbWluZzsKKyAgICBlbmNvZGVyIDw8IGhhc1Jlc291cmNlTG9hZFRpbWlu
ZzsKKyAgICBpZiAoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSB7CisgICAgICAgIGVuY29kZXIgPDwg
dGltaW5nLT5kb21haW5Mb29rdXBTdGFydFRpbWUoKTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1p
bmctPmRvbWFpbkxvb2t1cEVuZFRpbWUoKTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPmNv
bm5lY3RTdGFydFRpbWUoKTsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPmNvbm5lY3RFbmRU
aW1lKCk7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnRU
aW1lKCk7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5yZXF1ZXN0U3RhcnRUaW1lKCk7Cisg
ICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5yZXNwb25zZVN0YXJ0VGltZSgpOworICAgIH0KIH0K
IAogYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNlKQpAQCAt
NzU2LDYgKzc2OSwzNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRl
CiAgICAgICAgIHJlc3BvbnNlLnNldFN1Z2dlc3RlZEZpbGVuYW1lKHN1Z2dlc3RlZEZpbGVuYW1l
KTsKICAgICB9CiAKKyAgICBib29sIGhhc1Jlc291cmNlTG9hZFRpbWluZzsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGhhc1Jlc291cmNlTG9hZFRpbWluZykpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSB7CisgICAgICAgIGRvdWJsZSBkb21h
aW5Mb29rdXBTdGFydFRpbWU7CisgICAgICAgIGRvdWJsZSBkb21haW5Mb29rdXBFbmRUaW1lOwor
ICAgICAgICBkb3VibGUgY29ubmVjdFN0YXJ0VGltZTsKKyAgICAgICAgZG91YmxlIGNvbm5lY3RF
bmRUaW1lOworICAgICAgICBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZTsKKyAgICAg
ICAgZG91YmxlIHJlcXVlc3RTdGFydFRpbWU7CisgICAgICAgIGRvdWJsZSByZXNwb25zZVN0YXJ0
VGltZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkb21haW5Mb29rdXBTdGFydFRpbWUp
CisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoZG9tYWluTG9va3VwRW5kVGltZSkKKyAg
ICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShjb25uZWN0U3RhcnRUaW1lKQorICAgICAgICAg
ICAgfHwgIWRlY29kZXIuZGVjb2RlKGNvbm5lY3RFbmRUaW1lKQorICAgICAgICAgICAgfHwgIWRl
Y29kZXIuZGVjb2RlKHNlY3VyZUNvbm5lY3Rpb25TdGFydFRpbWUpCisgICAgICAgICAgICB8fCAh
ZGVjb2Rlci5kZWNvZGUocmVxdWVzdFN0YXJ0VGltZSkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVy
LmRlY29kZShyZXNwb25zZVN0YXJ0VGltZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIHJlc3BvbnNlLnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6
OmNyZWF0ZSgpKTsKKyAgICAgICAgUmVzb3VyY2VMb2FkVGltaW5nKiB0aW1pbmcgPSByZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICAgICAgdGltaW5nLT5zZXREb21haW5Mb29rdXBT
dGFydFRpbWUoZG9tYWluTG9va3VwU3RhcnRUaW1lKTsKKyAgICAgICAgdGltaW5nLT5zZXREb21h
aW5Mb29rdXBFbmRUaW1lKGRvbWFpbkxvb2t1cEVuZFRpbWUpOworICAgICAgICB0aW1pbmctPnNl
dENvbm5lY3RTdGFydFRpbWUoY29ubmVjdFN0YXJ0VGltZSk7CisgICAgICAgIHRpbWluZy0+c2V0
Q29ubmVjdEVuZFRpbWUoY29ubmVjdEVuZFRpbWUpOworICAgICAgICB0aW1pbmctPnNldFNlY3Vy
ZUNvbm5lY3Rpb25TdGFydFRpbWUoc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSk7CisgICAgICAg
IHRpbWluZy0+c2V0UmVxdWVzdFN0YXJ0VGltZShyZXF1ZXN0U3RhcnRUaW1lKTsKKyAgICAgICAg
dGltaW5nLT5zZXRSZXNwb25zZVN0YXJ0VGltZShyZXNwb25zZVN0YXJ0VGltZSk7CisgICAgfQor
ICAgIAogICAgIHJlc291cmNlUmVzcG9uc2UgPSByZXNwb25zZTsKIAogICAgIHJldHVybiB0cnVl
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231161</attachid>
            <date>2014-05-09 10:23:06 -0700</date>
            <delta_ts>2014-05-09 10:40:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140509102243.patch</filename>
            <type>text/plain</type>
            <size>46158</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODUzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc2IEBACisyMDE0LTA1LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
b24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRkZWQgbGlua2Vy
IHN5bWJvbHMgZm9yIFJlc291cmNlTG9hZFRpbWluZy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGltaW5n
LmNwcC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgICogaW5zcGVj
dG9yL3Byb3RvY29sL05ldHdvcmsuanNvbjoKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZVRpbWlu
ZyBzdHJ1Y3R1cmUuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6
CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICAgRGVsZXRl
ZCB1bnVzZWQgc2V0TmF2aWdhdGlvblN0YXJ0IGZ1bmN0aW9uLgorICAgICAgICAqIHBhZ2UvUGVy
Zm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgVVJMLgorICAgICAgICAqIHBhZ2Uv
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25T
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNw
b25zZUVuZCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJp
YWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6
OnJlc3BvbnNlU3RhcnQpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6CisgICAg
ICAgIERlbGV0ZWQgcmVzcG9uc2VTdGFydCBiZWNhdXNlIGl0IGlzIG5vdCBpbiB0aGUgc3BlYy4K
KyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBl
cmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUpOgorICAg
ICAgICBVc2UgbmF2aWdhdGlvblN0YXJ0IGFzIGJhc2UgZm9yIHJlc291cmNlIGxvYWQgdGltZXMu
CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGw6CisgICAgICAgIFVwZGF0ZWQg
c3BlYyBVUkwuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oOgorICAg
ICAgICBSZW1vdmVkIHVudXNlZCBjbGFzcyBkZWNsYXJhdGlvbnMuCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICBNb3ZlZCBzb3VwIHJlcXVlc3Qg
dGltZSBmcm9tIFJlc291cmNlTG9hZFRpbWluZyB0byBSZXNvdXJjZUhhbmRsZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6ZGVlcENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6UmVzb3VyY2VMb2FkVGltaW5nKToKKyAgICAgICAgVXBkYXRlZCBSZXNv
dXJjZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbik6CisgICAgICAgIENvbGxlY3QgdGlt
aW5nIGRhdGEuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZl
UmVzcG9uc2U6XSk6CisgICAgICAgIFNhdmUgdGltaW5nIGRhdGEgdG8gYSBSZXNvdXJjZUxvYWRU
aW1pbmcgb24gdGhlIFJlc291cmNlUmVzcG9uc2UuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFk
ZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6bWlsaXNlY29uZHNTaW5jZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmRpZFN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpu
ZXR3b3JrRXZlbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3VwTWVzc2Fn
ZUZvckhhbmRsZUFuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnNlbmRQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5n
IG1lbWJlciB2YXJpYWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxi
YWNrKTogRGVsZXRlZC4KKwogMjAxNC0wNS0wOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTVNFXVtNYWNdIERlc3Ryb3kgdGhlIEFWU3RyZWFtRGF0YVBhcnNl
ciB3aGVuIHRoZSBTb3VyY2VCdWZmZXIgaXMgcmVtb3ZlZCBmcm9tIGl0cyBNZWRpYVNvdXJjZS4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE5MSw3ICsyMTkxLDYgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJh
c2UuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmNwcAotICAgIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNzcxLDYgKzc3MSw3IEBAIF9fWk43
V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkOGFkZFR5cGUKIF9fWk43V2ViQ29yZTE4UGxhdGZv
cm1QYXN0ZWJvYXJkOGdldFR5cGVzRVJOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8x
NUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQ4c2V0
VHlwZXNFUktOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxv
d0VFRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmRDMUVSS04zV1RGNlN0cmluZ0UK
K19fWk43V2ViQ29yZTE4UmVzb3VyY2VMb2FkVGltaW5nQzFFdgogX19aTjdXZWJDb3JlMThTdHls
ZVNoZWV0Q29udGVudHMxMXBhcnNlU3RyaW5nRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MThTdHlsZVNoZWV0Q29udGVudHNDMUVQTlNfMTVTdHlsZVJ1bGVJbXBvcnRFUktOM1dURjZTdHJp
bmdFUktOU18xNkNTU1BhcnNlckNvbnRleHRFCiBfX1pON1dlYkNvcmUxOFN0eWxlU2hlZXRDb250
ZW50c0QxRXYKQEAgLTg0NCw2ICs4NDUsNyBAQCBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9u
c2VCYXNlMTdzZXRICiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzZXRIVFRQ
U3RhdHVzVGV4dEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25z
ZUJhc2UxOHNldEhUVFBIZWFkZXJGaWVsZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFUktOUzFfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxOXNldFRleHRFbmNvZGlu
Z05hbWVFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MjFzZXRSZXNvdXJjZUxvYWRUaW1pbmdFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMThSZXNvdXJjZUxv
YWRUaW1pbmdFRUUKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dl
c3RlZEZpbGVuYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTI0c2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoRXgKIF9fWk43V2ViQ29yZTIwUmVzb3Vy
Y2VSZXNwb25zZUJhc2U2c2V0VVJMRVJLTlNfM1VSTEUKQEAgLTE3NTUsNiArMTc1Nyw3IEBAIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTVodHQKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTZodHRwSGVhZGVyRmllbGRzRXYKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTZ0ZXh0RW5jb2RpbmdOYW1lRXYKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTdzdWdnZXN0ZWRGaWxlbmFtZUV2CitfX1pOSzdXZWJDb3JlMjBS
ZXNvdXJjZVJlc3BvbnNlQmFzZTE4cmVzb3VyY2VMb2FkVGltaW5nRXYKIF9fWk5LN1dlYkNvcmUy
MFJlc291cmNlUmVzcG9uc2VCYXNlMjFleHBlY3RlZENvbnRlbnRMZW5ndGhFdgogX19aTks3V2Vi
Q29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UzdXJsRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNl
UmVzcG9uc2VCYXNlNmlzSFRUUEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTI5NzksNyArMjk3OSw2IEBACiAJCTg1RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovOyB9
OwogCQk4NUZGMzE1QjBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU5MEFBRkJG
Q0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tICovOyB9OwogCQk4NjFDMkVBNDEzRkI0
RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBE
b2N1bWVudExvYWRUaW1pbmcuY3BwICovOyB9OwotCQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIg
LyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2MUMyRUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRU
aW1pbmcuY3BwICovOyB9OwogCQk4NjJGMTI5RTE4QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVz
ZXJBY3Rpdml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODYyRjEyOUQxOEMxNTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjJGMTJBMDE4
QzFERDAyMDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyog
SHlzdGVyZXNpc0FjdGl2aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODY1MTJFREUxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuY3BwICovOyB9OwpAQCAtOTk4OSw3ICs5OTg4LDYgQEAKIAkJODVGRjMxNTgwQUFGQkZDQjAw
Mzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUtleWJvYXJkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERv
Y3VtZW50TG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEb2N1bWVudExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4
NjFDMkVBNTEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFRpbWluZy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBD
b3VudGVkVXNlckFjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
dW50ZWRVc2VyQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYyRjEy
OUYxOEMxRENFNDAwNUM1NEFGIC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIeXN0ZXJlc2lzQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNjEwNiw3ICsxNjEwNCw2IEBACiAJCQkJNTE0Qzc2NjYwQ0U5MjNBMTAwN0VGM0NEIC8qIFJl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCAqLywKIAkJCQk1MUU0MTQzMjE2QTY1OTUxMDBDNjMzQzcg
LyogUmVzb3VyY2VIYW5kbGVUeXBlcy5oICovLAogCQkJCUU0Mjk1RkEzMTJCMDYxNEUwMEQxQUNF
MCAvKiBSZXNvdXJjZUxvYWRQcmlvcml0eS5oICovLAotCQkJCTg2MUMyRUE1MTNGQjRGRkYwMDA2
MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovLAogCQkJCThBODFCRjg0MTFEQ0ZEOTAw
MERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLywKIAkJCQk1MTRDNzY2NzBDRTkyM0Ex
MDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAgKi8sCiAJCQkJNTE0Qzc2NjgwQ0U5
MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuaCAqLywKQEAgLTI4ODMzLDcgKzI4
ODMwLDYgQEAKIAkJCQk1MUFBM0Y2RjBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5NzNFMzI1NjEwODgzQjdDMDA1QkM0OTMgLyogUmVz
b3VyY2VMb2FkTm90aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDBDRTU4RjgxMjVFNEND
MjAwRjNGMTk5IC8qIFJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxNEM3NjdDMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVl
c3RCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDZFMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY1MzBD
RTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMywxOCArMjAz
LDE0IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKIHN0YXRpYyBQ
YXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5n
PiBidWlsZE9iamVjdEZvclRpbWluZyhjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZywg
RG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsKICAgICByZXR1cm4gSW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRSZXF1
ZXN0VGltZShsb2FkZXItPnRpbWluZygpLT5tb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZSh0
aW1pbmcuY29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoMCkpKQotICAgICAg
ICAuc2V0UHJveHlTdGFydCh0aW1pbmcucHJveHlTdGFydCkKLSAgICAgICAgLnNldFByb3h5RW5k
KHRpbWluZy5wcm94eUVuZCkKLSAgICAgICAgLnNldERuc1N0YXJ0KHRpbWluZy5kbnNTdGFydCkK
LSAgICAgICAgLnNldERuc0VuZCh0aW1pbmcuZG5zRW5kKQorICAgICAgICAuc2V0TmF2aWdhdGlv
blN0YXJ0KGxvYWRlci0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFydCgpKQorICAgICAgICAuc2V0
RG9tYWluTG9va3VwU3RhcnQodGltaW5nLmRvbWFpbkxvb2t1cFN0YXJ0KQorICAgICAgICAuc2V0
RG9tYWluTG9va3VwRW5kKHRpbWluZy5kb21haW5Mb29rdXBFbmQpCiAgICAgICAgIC5zZXRDb25u
ZWN0U3RhcnQodGltaW5nLmNvbm5lY3RTdGFydCkKICAgICAgICAgLnNldENvbm5lY3RFbmQodGlt
aW5nLmNvbm5lY3RFbmQpCi0gICAgICAgIC5zZXRTc2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0g
ICAgICAgIC5zZXRTc2xFbmQodGltaW5nLnNzbEVuZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0
aW1pbmcuc2VuZFN0YXJ0KQotICAgICAgICAuc2V0U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAg
ICAgICAgLnNldFJlY2VpdmVIZWFkZXJzRW5kKHRpbWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAg
ICAgICAgLnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydCh0aW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0
YXJ0KQorICAgICAgICAuc2V0UmVxdWVzdFN0YXJ0KHRpbWluZy5yZXF1ZXN0U3RhcnQpCisgICAg
ICAgIC5zZXRSZXNwb25zZVN0YXJ0KHRpbWluZy5yZXNwb25zZVN0YXJ0KQogICAgICAgICAucmVs
ZWFzZSgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0
d29yay5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9OZXR3b3JrLmpzb24JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTMyLDE4ICszMiwx
NCBAQAogICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJUaW1pbmcgaW5mb3JtYXRpb24gZm9yIHRoZSByZXF1ZXN0LiIsCiAgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RUaW1l
IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRpbWluZydzIHJlcXVlc3RUaW1l
IGlzIGEgYmFzZWxpbmUgaW4gc2Vjb25kcywgd2hpbGUgdGhlIG90aGVyIG51bWJlcnMgYXJlIHRp
Y2tzIGluIG1pbGxpc2Vjb25kcyByZWxhdGl2ZWx5IHRvIHRoaXMgcmVxdWVzdFRpbWUuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJveHlTdGFydCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlc29sdmluZyBwcm94eS4iIH0sCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJwcm94eUVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJGaW5pc2hlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiZG5zU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRl
ZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRu
c0VuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRk
cmVzcyByZXNvbHZlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hdmlnYXRpb25T
dGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyBuYXZpZ2F0
aW9uU3RhcnQgaXMgYSBiYXNlbGluZSBpbiBzZWNvbmRzLCB3aGlsZSB0aGUgb3RoZXIgbnVtYmVy
cyBhcmUgdGlja3MgaW4gbWlsbGlzZWNvbmRzIHJlbGF0aXZlbHkgdG8gdGhpcyBuYXZpZ2F0aW9u
U3RhcnQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9tYWluTG9va3VwU3RhcnQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBETlMgYWRkcmVzcyBy
ZXNvbHZlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cEVuZCIs
ICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRkcmVzcyBy
ZXNvbHZlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RTdGFydCIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5lY3RpbmcgdG8gdGhl
IHJlbW90ZSBob3N0LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RFbmQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29ubmVjdGVkIHRvIHRoZSByZW1v
dGUgaG9zdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzc2xTdGFydCIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRl
c2NyaXB0aW9uIjogIkZpbmlzaGVkIFNTTCBoYW5kc2hha2UuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAic2VuZFN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjog
IlN0YXJ0ZWQgc2VuZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNlbmRFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgc2Vu
ZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlY2VpdmVIZWFk
ZXJzRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHJlY2Vp
dmluZyByZXNwb25zZSBoZWFkZXJzLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Vj
dXJlQ29ubmVjdGlvblN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0
YXJ0ZWQgU1NMIGhhbmRzaGFrZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1
ZXN0U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBzZW5k
aW5nIHJlcXVlc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzcG9uc2VTdGFy
dCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlY2VpdmluZyBy
ZXNwb25zZSBoZWFkZXJzLiIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LAogICAgICAgICB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRp
bWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDEyICs3Niw2IEBAIHZvaWQgRG9jdW1lbnRM
b2FkVGltaW5nOjptYXJrTmF2aWdhdGlvblMKICAgICBtX3JlZmVyZW5jZVdhbGxUaW1lID0gY3Vy
cmVudFRpbWUoKTsKIH0KIAotdm9pZCBEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25T
dGFydChkb3VibGUgbmF2aWdhdGlvblN0YXJ0KQotewotICAgIEFTU0VSVChtX3JlZmVyZW5jZU1v
bm90b25pY1RpbWUgJiYgbV9yZWZlcmVuY2VXYWxsVGltZSk7Ci0gICAgbV9uYXZpZ2F0aW9uU3Rh
cnQgPSBuYXZpZ2F0aW9uU3RhcnQ7Ci19Ci0KIHZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjphZGRS
ZWRpcmVjdChjb25zdCBVUkwmIHJlZGlyZWN0aW5nVXJsLCBjb25zdCBVUkwmIHJlZGlyZWN0ZWRV
cmwpCiB7CiAgICAgbV9yZWRpcmVjdENvdW50Kys7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcg
KzQxLDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBtb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGlt
ZShkb3VibGUpIGNvbnN0OwogCiAgICAgdm9pZCBtYXJrTmF2aWdhdGlvblN0YXJ0KCk7Ci0gICAg
dm9pZCBzZXROYXZpZ2F0aW9uU3RhcnQoZG91YmxlKTsKICAgICB2b2lkIGFkZFJlZGlyZWN0KGNv
bnN0IFVSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVkaXJlY3RlZFVybCk7CiAKICAg
ICB2b2lkIG1hcmtVbmxvYWRFdmVudFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZS5pZGwJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLS8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViVGltaW5n
LworLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3JnL2hnL3dlYnBlcmYvcmF3LWZpbGUvdGlwL3Nw
ZWNzL05hdmlnYXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRtbAogWwogICAgIENvbmRpdGlvbmFsPVdF
Ql9USU1JTkcsCiAgICAgRXZlbnRUYXJnZXQsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyMCwxMCArMTIwLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nOjpkb21haW4KICAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKICAgICAgICAg
cmV0dXJuIDAuMDsKIAotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRuc1N0YXJ0IDwg
MCkKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA8IDAp
CiAgICAgICAgIHJldHVybiBmZXRjaFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1l
VG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+ZG5zU3RhcnQpOworICAgIHJldHVybiBy
ZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5Mb29rdXBT
dGFydCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29r
dXBFbmQoKSBjb25zdApAQCAtMTMxLDEwICsxMzEsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmRvbWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAg
ICAgICByZXR1cm4gMC4wOwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zRW5k
IDwgMCkKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPCAw
KQogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNv
dXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNFbmQpOworICAgIHJl
dHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5M
b29rdXBFbmQpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVj
dFN0YXJ0KCkgY29uc3QKQEAgLTE0OSw3ICsxNDksNyBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6Y29ubmVjCiAgICAgLy8gY29ubmVjdFN0YXJ0IGluY2x1ZGVzIGFueSBETlMg
dGltZSwgc28gd2UgbWF5IG5lZWQgdG8gdHJpbSB0aGF0IG9mZi4KICAgICBpbnQgY29ubmVjdFN0
YXJ0ID0gbV90aW1pbmctPmNvbm5lY3RTdGFydDsKICAgICBpZiAobV90aW1pbmctPmRuc0VuZCA+
PSAwKQotICAgICAgICBjb25uZWN0U3RhcnQgPSBtX3RpbWluZy0+ZG5zRW5kOworICAgICAgICBj
b25uZWN0U3RhcnQgPSBtX3RpbWluZy0+ZG9tYWluTG9va3VwRW5kOwogCiAgICAgcmV0dXJuIHJl
c291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoY29ubmVjdFN0YXJ0KTsKIH0KQEAgLTE3
MSwxMCArMTcxLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpzZWN1cmUK
ICAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKICAgICAgICAgcmV0dXJuIDAuMDsKIAot
ICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNzbFN0YXJ0IDwgMCkgLy8gU2VjdXJlIGNv
bm5lY3Rpb24gbm90IG5lZ290aWF0ZWQuCisgICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+
c2VjdXJlQ29ubmVjdGlvblN0YXJ0IDwgMCkgLy8gU2VjdXJlIGNvbm5lY3Rpb24gbm90IG5lZ290
aWF0ZWQuCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9E
b2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+c3NsU3RhcnQpOworICAgIHJldHVybiByZXNv
dXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5zZWN1cmVDb25uZWN0aW9u
U3RhcnQpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0
YXJ0KCkgY29uc3QKQEAgLTE4OCwyMiArMTg4LDggQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmc6OnJlcXVlcwogICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlz
ZWNvbmRzKG1fdGltaW5nLT5zZW5kU3RhcnQpOwogfQogCi1kb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3Nob3VsZFJl
cG9ydERldGFpbHMpCi0gICAgICAgIHJldHVybiAwLjA7Ci0KLSAgICBpZiAoIW1fdGltaW5nKQot
ICAgICAgICByZXR1cm4gcmVxdWVzdFN0YXJ0KCk7Ci0gICAgLy8gRklYTUU6IFRoaXMgbnVtYmVy
IGlzbid0IGV4YWN0bHkgY29ycmVjdC4gU2VlIHRoZSBub3RlcyBpbiBQZXJmb3JtYW5jZVRpbWlu
Zzo6cmVzcG9uc2VTdGFydCgpLgotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWls
bGlzZWNvbmRzKG1fdGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCk7Ci19Ci0KIGRvdWJsZSBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFt
X2ZpbmlzaFRpbWUpCi0gICAgICAgIHJldHVybiByZXNwb25zZVN0YXJ0KCk7Ci0KICAgICByZXR1
cm4gbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV9yZXF1ZXN0aW5nRG9jdW1l
bnQuZ2V0KCksIG1fZmluaXNoVGltZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAkod29ya2luZyBj
b3B5KQpAQCAtNjUsNyArNjUsNiBAQCBwdWJsaWM6CiAgICAgZG91YmxlIGNvbm5lY3RFbmQoKSBj
b25zdDsKICAgICBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0KCkgY29uc3Q7CiAgICAgZG91
YmxlIHJlcXVlc3RTdGFydCgpIGNvbnN0OwotICAgIGRvdWJsZSByZXNwb25zZVN0YXJ0KCkgY29u
c3Q7CiAgICAgZG91YmxlIHJlc3BvbnNlRW5kKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wg
aXNSZXNvdXJjZSgpIHsgcmV0dXJuIHRydWU7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlkbAkocmV2aXNpb24gMTY4MzkyKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNSBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZG91YmxlIGNvbm5lY3RFbmQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVz
dHJpY3RlZCBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0OwogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHJlcXVlc3RTdGFydDsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSByZXNwb25zZVN0YXJ0OwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHJlc3BvbnNlRW5kOwogfTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTMwLDExICsxMzAsMTEgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGlt
aW5nOjpkbwogCiAgICAgLy8gVGhpcyB3aWxsIGJlIC0xIHdoZW4gYSBETlMgcmVxdWVzdCBpcyBu
b3QgcGVyZm9ybWVkLgogICAgIC8vIFJhdGhlciB0aGFuIGV4cG9zaW5nIGEgc3BlY2lhbCB2YWx1
ZSB0aGF0IGluZGljYXRlcyBubyBETlMsIHdlICJiYWNrZmlsbCIgd2l0aCBmZXRjaFN0YXJ0Lgot
ICAgIGludCBkbnNTdGFydCA9IHRpbWluZy0+ZG5zU3RhcnQ7Ci0gICAgaWYgKGRuc1N0YXJ0IDwg
MCkKKyAgICBpbnQgZG9tYWluTG9va3VwU3RhcnQgPSB0aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0
OworICAgIGlmIChkb21haW5Mb29rdXBTdGFydCA8IDApCiAgICAgICAgIHJldHVybiBmZXRjaFN0
YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShk
bnNTdGFydCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUo
ZG9tYWluTG9va3VwU3RhcnQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xNDUsMTEgKzE0NSwxMSBAQCB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBUaGlzIHdpbGwg
YmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAgLy8gUmF0aGVy
IHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIEROUywgd2Ug
ImJhY2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1cFN0YXJ0LgotICAgIGludCBkbnNFbmQgPSB0aW1p
bmctPmRuc0VuZDsKLSAgICBpZiAoZG5zRW5kIDwgMCkKKyAgICBpbnQgZG9tYWluTG9va3VwRW5k
ID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmQ7CisgICAgaWYgKGRvbWFpbkxvb2t1cEVuZCA8IDAp
CiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291
cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoZG5zRW5kKTsKKyAgICByZXR1cm4gcmVzb3Vy
Y2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShkb21haW5Mb29rdXBFbmQpOwogfQogCiB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RTdGFydCgpIGNvbnN0CkBA
IC0xNzAsOCArMTcwLDggQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpj
bwogCiAgICAgLy8gUmVzb3VyY2VMb2FkVGltaW5nJ3MgY29ubmVjdCBwaGFzZSBpbmNsdWRlcyBE
TlMsIGhvd2V2ZXIgTmF2aWdhdGlvbiBUaW1pbmcncwogICAgIC8vIGNvbm5lY3QgcGhhc2Ugc2hv
dWxkIG5vdC4gU28gaWYgdGhlcmUgaXMgRE5TIHRpbWUsIHRyaW0gaXQgZnJvbSB0aGUgc3RhcnQu
Ci0gICAgaWYgKHRpbWluZy0+ZG5zRW5kID49IDAgJiYgdGltaW5nLT5kbnNFbmQgPiBjb25uZWN0
U3RhcnQpCi0gICAgICAgIGNvbm5lY3RTdGFydCA9IHRpbWluZy0+ZG5zRW5kOworICAgIGlmICh0
aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA+PSAwICYmIHRpbWluZy0+ZG9tYWluTG9va3VwRW5kID4g
Y29ubmVjdFN0YXJ0KQorICAgICAgICBjb25uZWN0U3RhcnQgPSB0aW1pbmctPmRvbWFpbkxvb2t1
cEVuZDsKIAogICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGNv
bm5lY3RTdGFydCk7CiB9CkBAIC0yMDUsMTEgKzIwNSwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcg
UGVyZm9ybWFuY2VUaW1pbmc6OnNlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgaW50IHNzbFN0YXJ0ID0gdGltaW5nLT5zc2xTdGFydDsKLSAgICBpZiAoc3NsU3Rh
cnQgPCAwKQorICAgIGludCBzZWN1cmVDb25uZWN0aW9uU3RhcnQgPSB0aW1pbmctPnNlY3VyZUNv
bm5lY3Rpb25TdGFydDsKKyAgICBpZiAoc2VjdXJlQ29ubmVjdGlvblN0YXJ0IDwgMCkKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNv
bHV0ZShzc2xTdGFydCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJz
b2x1dGUoc2VjdXJlQ29ubmVjdGlvblN0YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBl
cmZvcm1hbmNlVGltaW5nOjpyZXF1ZXN0U3RhcnQoKSBjb25zdApAQCAtMjE4LDggKzIxOCw4IEBA
IHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAoIXRpbWlu
ZykKICAgICAgICAgcmV0dXJuIGNvbm5lY3RFbmQoKTsKIAotICAgIEFTU0VSVCh0aW1pbmctPnNl
bmRTdGFydCA+PSAwKTsKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNv
bHV0ZSh0aW1pbmctPnNlbmRTdGFydCk7CisgICAgQVNTRVJUKHRpbWluZy0+cmVxdWVzdFN0YXJ0
ID49IDApOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHRp
bWluZy0+cmVxdWVzdFN0YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNl
VGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKQEAgLTIyOCwxNCArMjI4LDggQEAgdW5zaWdu
ZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZQogICAgIGlmICghdGltaW5nKQogICAg
ICAgICByZXR1cm4gcmVxdWVzdFN0YXJ0KCk7CiAKLSAgICAvLyBGSVhNRTogUmVzcG9uc2Ugc3Rh
cnQgbmVlZHMgdG8gYmUgdGhlIHRpbWUgb2YgdGhlIGZpcnN0IHJlY2VpdmVkIGJ5dGUuCi0gICAg
Ly8gSG93ZXZlciwgdGhlIFJlc291cmNlTG9hZFRpbWluZyBBUEkgY3VycmVudGx5IG9ubHkgc3Vw
cG9ydHMgdGhlIHRpbWUKLSAgICAvLyB0aGUgbGFzdCBoZWFkZXIgYnl0ZSB3YXMgcmVjZWl2ZWQu
IEZvciBtYW55IHJlc3BvbnNlcyB3aXRoIHJlYXNvbmFibGUKLSAgICAvLyBzaXplZCBjb29raWVz
LCB0aGUgSFRUUCBoZWFkZXJzIGZpdCBpbnRvIGEgc2luZ2xlIHBhY2tldCBzbyB0aGlzIHRpbWUK
LSAgICAvLyBpcyBiYXNpY2FsbHkgZXF1aXZhbGVudC4gQnV0IGZvciBzb21lIHJlc3BvbnNlcywg
cGFydGljdWxhcmx5IHRob3NlIHdpdGgKLSAgICAvLyBoZWFkZXJzIGxhcmdlciB0aGFuIGEgc2lu
Z2xlIHBhY2tldCwgdGhpcyB0aW1lIHdpbGwgYmUgdG9vIGxhdGUuCi0gICAgQVNTRVJUKHRpbWlu
Zy0+cmVjZWl2ZUhlYWRlcnNFbmQgPj0gMCk7Ci0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVS
ZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCk7CisgICAgQVNTRVJU
KHRpbWluZy0+cmVzcG9uc2VTdGFydCA+PSAwKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGlt
ZVJlbGF0aXZlVG9BYnNvbHV0ZSh0aW1pbmctPnJlc3BvbnNlU3RhcnQpOwogfQogCiB1bnNpZ25l
ZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKQEAgLTM1
Myw3ICszNDcsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlCiAg
ICAgQVNTRVJUKHJlbGF0aXZlTWlsbGlzZWNvbmRzID49IDApOwogICAgIFJlc291cmNlTG9hZFRp
bWluZyogcmVzb3VyY2VUaW1pbmcgPSByZXNvdXJjZUxvYWRUaW1pbmcoKTsKICAgICBBU1NFUlQo
cmVzb3VyY2VUaW1pbmcpOwotICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlz
ZWNvbmRzKHJlc291cmNlVGltaW5nLT5jb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3Rvbmlj
VGltZShyZWxhdGl2ZU1pbGxpc2Vjb25kcykpOworICAgIHJldHVybiBuYXZpZ2F0aW9uU3RhcnQo
KSArIHJlbGF0aXZlTWlsbGlzZWNvbmRzOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9y
bWFuY2VUaW1pbmc6Om1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoZG91YmxlIG1v
bm90b25pY1NlY29uZHMpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlVGltaW5nLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlVGltaW5nLmlkbAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZVRpbWluZy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotLy8gU2VlOiBodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFw
aS9XZWJUaW1pbmcvCisvLyBTZWU6IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvd2VicGVyZi9yYXct
ZmlsZS90aXAvc3BlY3MvTmF2aWdhdGlvblRpbWluZy9PdmVydmlldy5odG1sCiBbCiAgICAgQ29u
ZGl0aW9uYWw9V0VCX1RJTUlORywKIF0gaW50ZXJmYWNlIFBlcmZvcm1hbmNlVGltaW5nIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgJKHJl
dmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBh
cnNlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsOSArMzcsNiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIEhUVFBIZWFkZXJNYXA7Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFz
ZTsKLQogZW51bSBDb250ZW50RGlzcG9zaXRpb25UeXBlIHsKICAgICBDb250ZW50RGlzcG9zaXRp
b25Ob25lLAogICAgIENvbnRlbnREaXNwb3NpdGlvbklubGluZSwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlzaW9uIDE2
ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDYgKzE5MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dm9pZCBzZXRIb3N0QWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcmKTsKICAg
ICBzdGF0aWMgdm9pZCBzZXRDbGllbnRDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcmIGhvc3QsIEdU
bHNDZXJ0aWZpY2F0ZSopOwogICAgIHN0YXRpYyB2b2lkIHNldElnbm9yZVNTTEVycm9ycyhib29s
KTsKKyAgICBkb3VibGUgbV9yZXF1ZXN0VGltZTsKICNlbmRpZgogCiAgICAgLy8gVXNlZCB0byB3
b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0IHlvdSBkb24ndCBnZXQgYW55IG1vcmUgTlNVUkxDb25u
ZWN0aW9uIGNhbGxiYWNrcyB1bnRpbCB5b3UgcmV0dXJuIGZyb20gdGhlIG9uZSB5b3UncmUgaW4u
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWlu
Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUxvYWRUaW1pbmcuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsMzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUsIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWRvdWJsZSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNv
bnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25k
cykgY29uc3QKLXsKLSAgICByZXR1cm4gcmVxdWVzdFRpbWUgKyBkZWx0YU1pbGxpc2Vjb25kcyAv
IDEwMDAuMDsKLX0KLQotfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUxvYWRUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NCw3NiArNDQsNTAgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmVzb3Vy
Y2VMb2FkVGltaW5nPiBkZWVwQ29weSgpCiAgICAgewogICAgICAgICBSZWZQdHI8UmVzb3VyY2VM
b2FkVGltaW5nPiB0aW1pbmcgPSBjcmVhdGUoKTsKLSAgICAgICAgdGltaW5nLT5yZXF1ZXN0VGlt
ZSA9IHJlcXVlc3RUaW1lOwotICAgICAgICB0aW1pbmctPnByb3h5U3RhcnQgPSBwcm94eVN0YXJ0
OwotICAgICAgICB0aW1pbmctPnByb3h5RW5kID0gcHJveHlFbmQ7Ci0gICAgICAgIHRpbWluZy0+
ZG5zU3RhcnQgPSBkbnNTdGFydDsKLSAgICAgICAgdGltaW5nLT5kbnNFbmQgPSBkbnNFbmQ7Cisg
ICAgICAgIHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQgPSBkb21haW5Mb29rdXBTdGFydDsKKyAg
ICAgICAgdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPSBkb21haW5Mb29rdXBFbmQ7CiAgICAgICAg
IHRpbWluZy0+Y29ubmVjdFN0YXJ0ID0gY29ubmVjdFN0YXJ0OwogICAgICAgICB0aW1pbmctPmNv
bm5lY3RFbmQgPSBjb25uZWN0RW5kOwotICAgICAgICB0aW1pbmctPnNlbmRTdGFydCA9IHNlbmRT
dGFydDsKLSAgICAgICAgdGltaW5nLT5zZW5kRW5kID0gc2VuZEVuZDsKLSAgICAgICAgdGltaW5n
LT5yZWNlaXZlSGVhZGVyc0VuZCA9IHJlY2VpdmVIZWFkZXJzRW5kOwotICAgICAgICB0aW1pbmct
PnNzbFN0YXJ0ID0gc3NsU3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+c3NsRW5kID0gc3NsRW5kOwor
ICAgICAgICB0aW1pbmctPnJlcXVlc3RTdGFydCA9IHJlcXVlc3RTdGFydDsKKyAgICAgICAgdGlt
aW5nLT5yZXNwb25zZVN0YXJ0ID0gcmVzcG9uc2VTdGFydDsKKyAgICAgICAgdGltaW5nLT5zZWN1
cmVDb25uZWN0aW9uU3RhcnQgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7CiAgICAgICAgIHJldHVy
biB0aW1pbmcucmVsZWFzZSgpOwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBS
ZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHJl
cXVlc3RUaW1lID09IG90aGVyLnJlcXVlc3RUaW1lCi0gICAgICAgICAgICAmJiBwcm94eVN0YXJ0
ID09IG90aGVyLnByb3h5U3RhcnQKLSAgICAgICAgICAgICYmIHByb3h5RW5kID09IG90aGVyLnBy
b3h5RW5kCi0gICAgICAgICAgICAmJiBkbnNTdGFydCA9PSBvdGhlci5kbnNTdGFydAotICAgICAg
ICAgICAgJiYgZG5zRW5kID09IG90aGVyLmRuc0VuZAorICAgICAgICByZXR1cm4gZG9tYWluTG9v
a3VwU3RhcnQgPT0gb3RoZXIuZG9tYWluTG9va3VwU3RhcnQKKyAgICAgICAgICAgICYmIGRvbWFp
bkxvb2t1cEVuZCA9PSBvdGhlci5kb21haW5Mb29rdXBFbmQKICAgICAgICAgICAgICYmIGNvbm5l
Y3RTdGFydCA9PSBvdGhlci5jb25uZWN0U3RhcnQKICAgICAgICAgICAgICYmIGNvbm5lY3RFbmQg
PT0gb3RoZXIuY29ubmVjdEVuZAotICAgICAgICAgICAgJiYgc2VuZFN0YXJ0ID09IG90aGVyLnNl
bmRTdGFydAotICAgICAgICAgICAgJiYgc2VuZEVuZCA9PSBvdGhlci5zZW5kRW5kCi0gICAgICAg
ICAgICAmJiByZWNlaXZlSGVhZGVyc0VuZCA9PSBvdGhlci5yZWNlaXZlSGVhZGVyc0VuZAotICAg
ICAgICAgICAgJiYgc3NsU3RhcnQgPT0gb3RoZXIuc3NsU3RhcnQKLSAgICAgICAgICAgICYmIHNz
bEVuZCA9PSBvdGhlci5zc2xFbmQ7CisgICAgICAgICAgICAmJiByZXF1ZXN0U3RhcnQgPT0gb3Ro
ZXIucmVxdWVzdFN0YXJ0CisgICAgICAgICAgICAmJiByZXNwb25zZVN0YXJ0ID09IG90aGVyLnJl
c3BvbnNlU3RhcnQKKyAgICAgICAgICAgICYmIHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9PSBvdGhl
ci5zZWN1cmVDb25uZWN0aW9uU3RhcnQ7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1
cm4gISgqdGhpcyA9PSBvdGhlcik7CiAgICAgfQotCi0gICAgLy8gV2Ugd2FudCB0byBwcmVzZW50
IGEgdW5pZmllZCB0aW1lbGluZSB0byBKYXZhc2NyaXB0LiBVc2luZyB3YWxsdGltZSBpcyBwcm9i
bGVtYXRpYywgYmVjYXVzZSB0aGUgY2xvY2sgbWF5IHNrZXcgd2hpbGUgcmVzb3VyY2VzCi0gICAg
Ly8gbG9hZC4gVG8gcHJldmVudCB0aGF0IHNrZXcsIHdlIHJlY29yZCBhIHNpbmdsZSByZWZlcmVu
Y2Ugd2FsbHRpbWUgd2hlbiByb290IGRvY3VtZW50IG5hdmlnYXRpb24gYmVnaW5zLiBBbGwgb3Ro
ZXIgdGltZXMgYXJlCi0gICAgLy8gcmVjb3JkZWQgdXNpbmcgbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCkuIFdoZW4gYSB0aW1lIG5lZWRzIHRvIGJlIHByZXNlbnRlZCB0byBKYXZhc2NyaXB0
LCB3ZSBidWlsZCBhIHBzZXVkby13YWxsdGltZQotICAgIC8vIHVzaW5nIHRoZSBmb2xsb3dpbmcg
ZXF1YXRpb246Ci0gICAgLy8gICBwc2V1ZG8gdGltZSA9IGRvY3VtZW50IHdhbGwgcmVmZXJlbmNl
ICsgKHJlc291cmNlIHJlcXVlc3QgdGltZSAtIGRvY3VtZW50IG1vbm90b25pYyByZWZlcmVuY2Up
ICsgZGVsdGFNaWxsaXNlY29uZHMgLyAxMDAwLjAuCi0gICAgZG91YmxlIGNvbnZlcnRSZXNvdXJj
ZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7Ci0K
LSAgICBkb3VibGUgcmVxdWVzdFRpbWU7IC8vIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
IHdoZW4gdGhlIHBvcnQgc3RhcnRlZCBoYW5kbGluZyB0aGlzIHJlcXVlc3QuCi0gICAgaW50IHBy
b3h5U3RhcnQ7IC8vIFRoZSByZXN0IG9mIHRoZXNlIGFyZSBtaWxsaXNlY29uZCBkZWx0YXMsIHVz
aW5nIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBmcm9tIHJlcXVlc3RUaW1lLgotICAg
IGludCBwcm94eUVuZDsKLSAgICBpbnQgZG5zU3RhcnQ7Ci0gICAgaW50IGRuc0VuZDsKKyAgICAK
KyAgICAvLyBUaGVzZSBhcmUgbWlsbGlzZWNvbmQgZGVsdGFzIGZyb20gdGhlIG5hdmlnYXRpb24g
c3RhcnQuCisgICAgaW50IGRvbWFpbkxvb2t1cFN0YXJ0OworICAgIGludCBkb21haW5Mb29rdXBF
bmQ7CiAgICAgaW50IGNvbm5lY3RTdGFydDsKICAgICBpbnQgY29ubmVjdEVuZDsKLSAgICBpbnQg
c2VuZFN0YXJ0OwotICAgIGludCBzZW5kRW5kOwotICAgIGludCByZWNlaXZlSGVhZGVyc0VuZDsK
LSAgICBpbnQgc3NsU3RhcnQ7Ci0gICAgaW50IHNzbEVuZDsKLQorICAgIGludCByZXF1ZXN0U3Rh
cnQ7CisgICAgaW50IHJlc3BvbnNlU3RhcnQ7CisgICAgaW50IHNlY3VyZUNvbm5lY3Rpb25TdGFy
dDsKKyAgICAKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VMb2FkVGltaW5nKCkKLSAgICAgICAgOiBy
ZXF1ZXN0VGltZSgwKQotICAgICAgICAsIHByb3h5U3RhcnQoLTEpCi0gICAgICAgICwgcHJveHlF
bmQoLTEpCi0gICAgICAgICwgZG5zU3RhcnQoLTEpCi0gICAgICAgICwgZG5zRW5kKC0xKQorICAg
ICAgICA6IGRvbWFpbkxvb2t1cFN0YXJ0KC0xKQorICAgICAgICAsIGRvbWFpbkxvb2t1cEVuZCgt
MSkKICAgICAgICAgLCBjb25uZWN0U3RhcnQoLTEpCiAgICAgICAgICwgY29ubmVjdEVuZCgtMSkK
LSAgICAgICAgLCBzZW5kU3RhcnQoMCkKLSAgICAgICAgLCBzZW5kRW5kKDApCi0gICAgICAgICwg
cmVjZWl2ZUhlYWRlcnNFbmQoMCkKLSAgICAgICAgLCBzc2xTdGFydCgtMSkKLSAgICAgICAgLCBz
c2xFbmQoLTEpCisgICAgICAgICwgcmVxdWVzdFN0YXJ0KDApCisgICAgICAgICwgcmVzcG9uc2VT
dGFydCgwKQorICAgICAgICAsIHNlY3VyZUNvbm5lY3Rpb25TdGFydCgtMSkKICAgICB7CiAgICAg
fQogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNTYsNiArNTYsMTQgQEAKICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgog
I2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8Rm91bmRh
dGlvbi9OU1VSTENvbm5lY3Rpb25Qcml2YXRlLmg+KQorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VS
TENvbm5lY3Rpb25Qcml2YXRlLmg+CisjZWxzZQorQGludGVyZmFjZSBOU1VSTENvbm5lY3Rpb24g
KFRpbWluZ0RhdGEpCisrICh2b2lkKV9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6KEJPT0wpY29sbGVj
dDsKK0BlbmQKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCA8Q0ZOZXR3b3Jr
L0NGVVJMUmVxdWVzdC5oPgogCkBAIC0yMDAsNiArMjA4LDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlTlNVUkxDb25uZWN0aQogICAgIGNvbnN0IGJvb2wgdXNlc0NhY2hlID0gdHJ1ZTsK
ICNlbmRpZgogICAgIGQtPm1fY29ubmVjdGlvbiA9IGFkb3B0TlMoW1tOU1VSTENvbm5lY3Rpb24g
YWxsb2NdIF9pbml0V2l0aFJlcXVlc3Q6bnNSZXF1ZXN0IGRlbGVnYXRlOmRlbGVnYXRlIHVzZXND
YWNoZTp1c2VzQ2FjaGUgbWF4Q29udGVudExlbmd0aDowIHN0YXJ0SW1tZWRpYXRlbHk6Tk8gY29u
bmVjdGlvblByb3BlcnRpZXM6cHJvcGVydHlEaWN0aW9uYXJ5XSk7CisjaWYgRU5BQkxFKFdFQl9U
SU1JTkcpCisgICAgW05TVVJMQ29ubmVjdGlvbiBfc2V0Q29sbGVjdHNUaW1pbmdEYXRhOllFU107
CisjZW5kaWYKIH0KIAogYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVy
YXRpb25RdWV1ZURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxl
Z2F0ZS5tbQkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxNCBAQAogI2ltcG9ydCAiV2ViQ29yZVVSTFJl
c3BvbnNlLmgiCiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogCisjaWYgX19oYXNfaW5jbHVk
ZSg8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9uLmg+KQorI2ltcG9ydCA8Q0ZOZXR3b3JrL0NG
TlNVUkxDb25uZWN0aW9uLmg+CisjZWxzZQorQGludGVyZmFjZSBOU1VSTENvbm5lY3Rpb24gKFRp
bWluZ0RhdGEpCistIChOU0RpY3Rpb25hcnkgKilfdGltaW5nRGF0YTsKK0BlbmQKKyNlbmRpZgor
CiBAaW50ZXJmYWNlIE5TVVJMUmVxdWVzdCAoRGV0YWlscykKIC0gKGlkKV9wcm9wZXJ0eUZvcktl
eTooTlNTdHJpbmcgKilrZXk7CiBAZW5kCkBAIC0xOTMsNyArMjAxLDYgQEAgLSAoQk9PTCljb25u
ZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENv
bm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAq
KXIKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBVTlVTRURfUEFSQU0oY29u
bmVjdGlvbik7CiAKICAgICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0
aW9uOiVwIGRpZFJlY2VpdmVSZXNwb25zZTolcCAoSFRUUCBzdGF0dXMgJWQsIHJlcG9ydGVkIE1J
TUVUeXBlICclcycpIiwgbV9oYW5kbGUsIGNvbm5lY3Rpb24sIHIsIFtyIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3Ioc3RhdHVzQ29kZSldID8gWyhpZClyIHN0YXR1c0NvZGVdIDogMCwgW1ty
IE1JTUVUeXBlXSBVVEY4U3RyaW5nXSk7CiAKQEAgLTIxMiw4ICsyMTksMzggQEAgLSAodm9pZClj
b25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogCiAgICAgICAgIGlmIChbbV9oYW5kbGUt
PmZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSBfcHJvcGVy
dHlGb3JLZXk6QCJGb3JjZUhUTUxNSU1FVHlwZSJdKQogICAgICAgICAgICAgW3IgX3NldE1JTUVU
eXBlOkAidGV4dC9odG1sIl07Ci0KLSAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNl
aXZlUmVzcG9uc2VBc3luYyhtX2hhbmRsZSwgcik7CisgICAgICAgIAorICAgICAgICBSZXNvdXJj
ZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2Uocik7CisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisg
ICAgICAgIE5TRGljdGlvbmFyeSogdGltaW5nRGF0YSA9IFtjb25uZWN0aW9uIF90aW1pbmdEYXRh
XTsKKyAgICAgICAgaWYgKHRpbWluZ0RhdGEpIHsKKyAgICAgICAgICAgIHJlc291cmNlUmVzcG9u
c2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpOwor
ICAgICAgICAgICAgUmVzb3VyY2VMb2FkVGltaW5nKiB0aW1pbmcgPSByZXNvdXJjZVJlc3BvbnNl
LnJlc291cmNlTG9hZFRpbWluZygpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBUaGlz
IGlzIG5vdCB0aGUgbmF2aWdhdGlvblN0YXJ0IHRpbWUgaW4gbW9ub3RvbmljIHRpbWUsIGJ1dCB0
aGUgb3RoZXIgdGltZXMgYXJlIHJlbGF0aXZlIHRvIHRoaXMgdGltZQorICAgICAgICAgICAgLy8g
YW5kIG9ubHkgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGltZXMgYXJlIHN0b3JlZC4KKyAgICAg
ICAgICAgIGRvdWJsZSByZWZlcmVuY2VTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpA
Il9rQ0ZOVGltaW5nRGF0YVRpbWluZ0RhdGFJbml0Il0gZG91YmxlVmFsdWVdOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBkb3VibGUgZG9tYWluTG9va3VwU3RhcnQgPSBbW3RpbWluZ0RhdGEg
dmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBTdGFydCJdIGRvdWJsZVZh
bHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSBkb21haW5Mb29rdXBFbmQgPSBbW3RpbWluZ0RhdGEg
dmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBFbmQiXSBkb3VibGVWYWx1
ZV07CisgICAgICAgICAgICBkb3VibGUgY29ubmVjdFN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVl
Rm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhQ29ubmVjdFN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAg
ICAgICAgICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1
ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVNlY3VyZUNvbm5lY3Rpb25TdGFydCJdIGRvdWJsZVZh
bHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSBjb25uZWN0RW5kID0gW1t0aW1pbmdEYXRhIHZhbHVl
Rm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhQ29ubmVjdEVuZCJdIGRvdWJsZVZhbHVlXTsKKyAgICAg
ICAgICAgIGRvdWJsZSByZXF1ZXN0U3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJf
a0NGTlRpbWluZ0RhdGFSZXF1ZXN0U3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICBk
b3VibGUgcmVzcG9uc2VTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGlt
aW5nRGF0YVJlc3BvbnNlU3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQgPSBkb21haW5Mb29rdXBTdGFydCA8PSAw
LjAgPyAtMSA6IChkb21haW5Mb29rdXBTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7Cisg
ICAgICAgICAgICB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA9IGRvbWFpbkxvb2t1cEVuZCA8PSAw
LjAgPyAtMSA6IChkb21haW5Mb29rdXBFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAg
ICAgICAgICAgdGltaW5nLT5jb25uZWN0U3RhcnQgPSBjb25uZWN0U3RhcnQgPD0gMC4wID8gLTEg
OiAoY29ubmVjdFN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRp
bWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gc2VjdXJlQ29ubmVjdGlvblN0YXJ0IDw9IDAu
MCA/IC0xIDogKHNlY3VyZUNvbm5lY3Rpb25TdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7
CisgICAgICAgICAgICB0aW1pbmctPmNvbm5lY3RFbmQgPSBjb25uZWN0RW5kIDw9IDAuMCA/IC0x
IDogKGNvbm5lY3RFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGlt
aW5nLT5yZXF1ZXN0U3RhcnQgPSByZXF1ZXN0U3RhcnQgPD0gMC4wID8gLTEgOiAocmVxdWVzdFN0
YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+cmVzcG9u
c2VTdGFydCA9IHJlc3BvbnNlU3RhcnQgPD0gMC4wID8gLTEgOiAocmVzcG9uc2VTdGFydCAtIHJl
ZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAgIFVOVVNFRF9Q
QVJBTShjb25uZWN0aW9uKTsKKyNlbmRpZgorICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRp
ZFJlY2VpdmVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCByZXNvdXJjZVJlc3BvbnNlKTsKICAgICB9
KTsKIAogICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9U
SU1FX0ZPUkVWRVIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHJldmlzaW9uIDE2ODM5
MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsNyArMjM1LDcgQEAgc3RhdGljIHZvaWQg
c2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0Kgogc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdP
YmplY3QqLCBHQXN5bmNSZXN1bHQqLCBncG9pbnRlcik7CiBzdGF0aWMgZ2Jvb2xlYW4gcmVxdWVz
dFRpbWVvdXRDYWxsYmFjayh2b2lkKik7CiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCi1zdGF0aWMg
aW50ICBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkb3VibGUgcmVxdWVzdFRpbWUpOworc3RhdGlj
IGludCAgbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoKTsKICNlbmRpZgogc3RhdGljIHZvaWQgY29u
dGludWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSopOwogCkBAIC0zMTYs
MTEgKzMxNiw2IEBAIHN0YXRpYyB2b2lkIGdvdEhlYWRlcnNDYWxsYmFjayhTb3VwTWVzc2EKIAog
ICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAK
LSNpZiBFTkFCTEUoV0VCX1RJTUlORykKLSAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxv
YWRUaW1pbmcoKSkKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
cmVjZWl2ZUhlYWRlcnNFbmQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNl
LnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7Ci0jZW5kaWYKLQogI2lmIFBMQVRG
T1JNKEdUSykKICAgICAvLyBXZSBhcmUgYSBiaXQgbW9yZSBjb25zZXJ2YXRpdmUgd2l0aCB0aGUg
cGVyc2lzdGVudCBjcmVkZW50aWFsIHN0b3JhZ2UgdGhhbiB0aGUgc2Vzc2lvbiBzdG9yZSwKICAg
ICAvLyBzaW5jZSB3ZSBhcmUgd2FpdGluZyB1bnRpbCB3ZSBrbm93IHRoYXQgdGhpcyBhdXRoZW50
aWNhdGlvbiBzdWNjZWVkZWQgYmVmb3JlIGFjdHVhbGx5IHN0b3JpbmcuCkBAIC0zOTAsNyArMzg1
LDcgQEAgc3RhdGljIHZvaWQgcmVzdGFydGVkQ2FsbGJhY2soU291cE1lc3NhZwogICAgIFJlc291
cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAgICAgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSA9IGQtPm1fcmVzcG9uc2U7CiAgICAgcmVkaXJl
Y3RSZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVh
dGUoKSk7Ci0gICAgcmVkaXJlY3RSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVz
dFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICBtX3JlcXVlc3RUaW1l
ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiB9CiAjZW5kaWYKIApAQCAtODM5LDIy
ICs4MzQsOSBAQCBzdGF0aWMgYm9vbCBhZGRGb3JtRWxlbWVudHNUb1NvdXBNZXNzYWdlCiB9CiAK
ICNpZiBFTkFCTEUoV0VCX1RJTUlORykKLXN0YXRpYyBpbnQgbWlsaXNlY29uZHNTaW5jZVJlcXVl
c3QoZG91YmxlIHJlcXVlc3RUaW1lKQorc3RhdGljIGludCBtaWxpc2Vjb25kc1NpbmNlUmVxdWVz
dCgpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oKG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpIC0gcmVxdWVzdFRpbWUpICogMTAwMC4wKTsKLX0KLQotc3RhdGljIHZvaWQgd3Jv
dGVCb2R5Q2FsbGJhY2soU291cE1lc3NhZ2UqLCBncG9pbnRlciBkYXRhKQotewotICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihk
YXRhKTsKLSAgICBpZiAoIWhhbmRsZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpZiAoIWQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNlbmRFbmQgPSBtaWxpc2Vjb25kc1Np
bmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGlt
ZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oKG1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgpIC0gbV9yZXF1ZXN0VGltZSkgKiAxMDAwLjApOwogfQogCiB2b2lkIFJlc291cmNlSGFu
ZGxlOjpkaWRTdGFydFJlcXVlc3QoKQpAQCAtODYzLDE1ICs4NDUsMTUgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6ZGlkU3RhcnRSZXF1ZXN0KCkKICAgICBpZiAoIWQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnNlbmRTdGFydCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKLSAgICBpZiAo
ZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQgIT0gLTEpIHsKKyAg
ICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZW5kU3RhcnQgPSBtaWxpc2Vj
b25kc1NpbmNlUmVxdWVzdCgpOworICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQgIT0gLTEpIHsKICAgICAgICAgLy8gV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlcXVlc3RUaW1pbmdWaWV3LmpzIGFzc3VtZXMKICAgICAg
ICAgLy8gdGhhdCBTU0wgdGltZSBpcyBpbmNsdWRlZCBpbiBjb25uZWN0aW9uIHRpbWUgc28gbXVz
dAogICAgICAgICAvLyBzdWJzdHJhY3QgaGVyZSB0aGUgU1NMIGRlbHRhIHRoYXQgd2lsbCBiZSBh
ZGRlZCBsYXRlciAoc2VlCiAgICAgICAgIC8vIFdlYkluc3BlY3Rvci5SZXF1ZXN0VGltaW5nVmll
dy5jcmVhdGVUaW1pbmdUYWJsZSBpbiB0aGUKICAgICAgICAgLy8gZmlsZSBhYm92ZSBmb3IgbW9y
ZSBkZXRhaWxzKS4KICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
c2VuZFN0YXJ0IC09Ci0gICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWlu
ZygpLT5zc2xFbmQgLSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xTdGFy
dDsKKyAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNlY3Vy
ZUNvbm5lY3Rpb25FbmQgLSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZWN1
cmVDb25uZWN0aW9uU3RhcnQ7CiAgICAgfQogfQogCkBAIC04ODUsMjQgKzg2NywyNSBAQCBzdGF0
aWMgdm9pZCBuZXR3b3JrRXZlbnRDYWxsYmFjayhTb3VwTWVzCiAgICAgICAgIHJldHVybjsKIAog
ICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0g
ICAgaW50IGRlbHRhVGltZSA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKKyAgICBpbnQgZGVsdGFUaW1lID0g
bWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoKTsKICAgICBzd2l0Y2ggKGV2ZW50KSB7CiAgICAgY2Fz
ZSBHX1NPQ0tFVF9DTElFTlRfUkVTT0xWSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5kbnNTdGFydCA9IGRlbHRhVGltZTsKKyAgICAgICAgZC0+bV9yZXNw
b25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG9tYWluTG9va3VwU3RhcnQgPSBkZWx0YVRpbWU7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1JFU09MVkVEOgotICAg
ICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNFbmQgPSBkZWx0YVRp
bWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxv
b2t1cEVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9D
TElFTlRfQ09OTkVDVElORzoKICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS0+Y29ubmVjdFN0YXJ0ID0gZGVsdGFUaW1lOwotICAgICAgICBpZiAoZC0+bV9yZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3RhcnQgIT0gLTEpCisgICAgICAgIGlmIChkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kb21haW5Mb29rdXBTdGFydCAhPSAtMSkg
ewogICAgICAgICAgICAgLy8gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlcXVlc3RUaW1p
bmdWaWV3LmpzIGFzc3VtZXMKICAgICAgICAgICAgIC8vIHRoYXQgRE5TIHRpbWUgaXMgaW5jbHVk
ZWQgaW4gY29ubmVjdGlvbiB0aW1lIHNvIG11c3QKICAgICAgICAgICAgIC8vIHN1YnN0cmFjdCBo
ZXJlIHRoZSBETlMgZGVsdGEgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVyIChzZWUKICAgICAgICAg
ICAgIC8vIFdlYkluc3BlY3Rvci5SZXF1ZXN0VGltaW5nVmlldy5jcmVhdGVUaW1pbmdUYWJsZSBp
biB0aGUKICAgICAgICAgICAgIC8vIGZpbGUgYWJvdmUgZm9yIG1vcmUgZGV0YWlscykuCiAgICAg
ICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5jb25uZWN0U3RhcnQg
LT0KLSAgICAgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5k
bnNFbmQgLSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNTdGFydDsKKyAg
ICAgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kb21haW5M
b29rdXBFbmQgLSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kb21haW5Mb29r
dXBTdGFydDsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NM
SUVOVF9DT05ORUNURUQ6CiAgICAgICAgIC8vIFdlYiBUaW1pbmcgY29uc2lkZXJzIHRoYXQgY29u
bmVjdGlvbiB0aW1lIGludm9sdmVzIGRucywgcHJveHkgJiBUTFMgbmVnb3RpYXRpb24uLi4KQEAg
LTkxNSwxMCArODk4LDEwIEBAIHN0YXRpYyB2b2lkIG5ldHdvcmtFdmVudENhbGxiYWNrKFNvdXBN
ZXMKICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cHJveHlFbmQg
PSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1RM
U19IQU5EU0hBS0lORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+c3NsU3RhcnQgPSBkZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCktPnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IGRlbHRhVGltZTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfVExTX0hBTkRTSEFLRUQ6Ci0gICAgICAg
IGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbEVuZCA9IGRlbHRhVGltZTsK
KyAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VjdXJlQ29ubmVj
dGlvbkVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9D
TElFTlRfQ09NUExFVEU6CiAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCktPmNvbm5lY3RFbmQgPSBkZWx0YVRpbWU7CkBAIC05ODAsNyArOTYzLDYgQEAgc3RhdGljIGJv
b2wgY3JlYXRlU291cE1lc3NhZ2VGb3JIYW5kbGVBbgogICAgIGQtPm1fcmVzcG9uc2Uuc2V0UmVz
b3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpOwogICAgIGdfc2ln
bmFsX2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgIm5ldHdvcmstZXZlbnQiLCBHX0NB
TExCQUNLKG5ldHdvcmtFdmVudENhbGxiYWNrKSwgaGFuZGxlKTsKICAgICBnX3NpZ25hbF9jb25u
ZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksICJyZXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHJlc3Rh
cnRlZENhbGxiYWNrKSwgaGFuZGxlKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fc291cE1l
c3NhZ2UuZ2V0KCksICJ3cm90ZS1ib2R5IiwgR19DQUxMQkFDSyh3cm90ZUJvZHlDYWxsYmFjayks
IGhhbmRsZSk7CiAjZW5kaWYKIAogI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA0MywgMSkKQEAg
LTEwNTQsNyArMTAzNiw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnNlbmRQZW5kaW5nUmVxdWVz
dCgKIHsKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKICAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS0+cmVxdWVzdFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICAg
ICAgbV9yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogI2VuZGlm
CiAKICAgICBpZiAoZC0+bV9maXJzdFJlcXVlc3QudGltZW91dEludGVydmFsKCkgPiAwKSB7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjg1MzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wNS0wOSAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFByb2dyZXNzIG9u
IHdlYiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZWNvZGUpOgorICAgICAgICBUcmFuc2Zl
ciBSZXNvdXJjZUxvYWRUaW1pbmcgdmFsdWVzIGlmIHRoZXkgZXhpc3QuCisKIDIwMTQtMDUtMDkg
IE1hcnRpbiBIb2RvdmFuICA8bWhvZG92YW4udS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4K
IAogICAgICAgICBbV0syXSBNYWtlIGdlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbCB3b3Jr
IGFmdGVyIFdlYktpdDIuZnJhbWV3b3JrIC0+IFdlYktpdC5mcmFtZXdvcmsgcmVuYW1lCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4OCw2ICs2ODgsMTggQEAgdm9pZCBBcmd1
bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjplbgogICAgICAgICBlbmNvZGVyIDw8IHJlc291
cmNlUmVzcG9uc2UuaHR0cFN0YXR1c1RleHQoKTsKICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJj
ZVJlc3BvbnNlLnN1Z2dlc3RlZEZpbGVuYW1lKCk7CiAgICAgfQorICAgIFJlc291cmNlTG9hZFRp
bWluZyogdGltaW5nID0gcmVzb3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAg
ICBib29sIGhhc1Jlc291cmNlTG9hZFRpbWluZyA9IHRpbWluZzsKKyAgICBlbmNvZGVyIDw8IGhh
c1Jlc291cmNlTG9hZFRpbWluZzsKKyAgICBpZiAoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSB7Cisg
ICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5kb21haW5Mb29rdXBTdGFydDsKKyAgICAgICAgZW5j
b2RlciA8PCB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1p
bmctPmNvbm5lY3RTdGFydDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPmNvbm5lY3RFbmQ7
CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5yZXF1ZXN0U3RhcnQ7CisgICAgICAgIGVuY29k
ZXIgPDwgdGltaW5nLT5yZXNwb25zZVN0YXJ0OworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+
c2VjdXJlQ29ubmVjdGlvblN0YXJ0OworICAgIH0KIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPFJl
c291cmNlUmVzcG9uc2U+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNlKQpAQCAtNzU1LDcgKzc2NywyMyBAQCBib29sIEFy
Z3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIHJlc3BvbnNlLnNldFN1Z2dlc3RlZEZpbGVuYW1lKHN1Z2dlc3RlZEZpbGVu
YW1lKTsKICAgICB9Ci0KKyAgICAKKyAgICBib29sIGhhc1Jlc291cmNlTG9hZFRpbWluZzsKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1Jlc291cmNlTG9hZFRpbWluZykpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBpZiAoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSB7CisgICAgICAgIHJl
c3BvbnNlLnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgp
KTsKKyAgICAgICAgUmVzb3VyY2VMb2FkVGltaW5nKiB0aW1pbmcgPSByZXNwb25zZS5yZXNvdXJj
ZUxvYWRUaW1pbmcoKTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0aW1pbmctPmRvbWFp
bkxvb2t1cFN0YXJ0KQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+ZG9t
YWluTG9va3VwRW5kKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+Y29u
bmVjdFN0YXJ0KQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+Y29ubmVj
dEVuZCkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPnJlcXVlc3RTdGFy
dCkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPnJlc3BvbnNlU3RhcnQp
CisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5nLT5zZWN1cmVDb25uZWN0aW9u
U3RhcnQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKICAgICByZXNv
dXJjZVJlc3BvbnNlID0gcmVzcG9uc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231164</attachid>
            <date>2014-05-09 10:40:31 -0700</date>
            <delta_ts>2014-05-09 11:08:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140509104008.patch</filename>
            <type>text/plain</type>
            <size>46310</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODUzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc2IEBACisyMDE0LTA1LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
b24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRkZWQgbGlua2Vy
IHN5bWJvbHMgZm9yIFJlc291cmNlTG9hZFRpbWluZy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGltaW5n
LmNwcC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgICogaW5zcGVj
dG9yL3Byb3RvY29sL05ldHdvcmsuanNvbjoKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZVRpbWlu
ZyBzdHJ1Y3R1cmUuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6
CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICAgRGVsZXRl
ZCB1bnVzZWQgc2V0TmF2aWdhdGlvblN0YXJ0IGZ1bmN0aW9uLgorICAgICAgICAqIHBhZ2UvUGVy
Zm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgVVJMLgorICAgICAgICAqIHBhZ2Uv
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25T
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNw
b25zZUVuZCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJp
YWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6
OnJlc3BvbnNlU3RhcnQpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6CisgICAg
ICAgIERlbGV0ZWQgcmVzcG9uc2VTdGFydCBiZWNhdXNlIGl0IGlzIG5vdCBpbiB0aGUgc3BlYy4K
KyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBl
cmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUpOgorICAg
ICAgICBVc2UgbmF2aWdhdGlvblN0YXJ0IGFzIGJhc2UgZm9yIHJlc291cmNlIGxvYWQgdGltZXMu
CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGw6CisgICAgICAgIFVwZGF0ZWQg
c3BlYyBVUkwuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oOgorICAg
ICAgICBSZW1vdmVkIHVudXNlZCBjbGFzcyBkZWNsYXJhdGlvbnMuCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICBNb3ZlZCBzb3VwIHJlcXVlc3Qg
dGltZSBmcm9tIFJlc291cmNlTG9hZFRpbWluZyB0byBSZXNvdXJjZUhhbmRsZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6ZGVlcENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6UmVzb3VyY2VMb2FkVGltaW5nKToKKyAgICAgICAgVXBkYXRlZCBSZXNv
dXJjZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbik6CisgICAgICAgIENvbGxlY3QgdGlt
aW5nIGRhdGEuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZl
UmVzcG9uc2U6XSk6CisgICAgICAgIFNhdmUgdGltaW5nIGRhdGEgdG8gYSBSZXNvdXJjZUxvYWRU
aW1pbmcgb24gdGhlIFJlc291cmNlUmVzcG9uc2UuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFk
ZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6bWlsaXNlY29uZHNTaW5jZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmRpZFN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpu
ZXR3b3JrRXZlbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3VwTWVzc2Fn
ZUZvckhhbmRsZUFuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnNlbmRQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5n
IG1lbWJlciB2YXJpYWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxi
YWNrKTogRGVsZXRlZC4KKwogMjAxNC0wNS0wOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTVNFXVtNYWNdIERlc3Ryb3kgdGhlIEFWU3RyZWFtRGF0YVBhcnNl
ciB3aGVuIHRoZSBTb3VyY2VCdWZmZXIgaXMgcmVtb3ZlZCBmcm9tIGl0cyBNZWRpYVNvdXJjZS4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE5MSw3ICsyMTkxLDYgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJh
c2UuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmNwcAotICAgIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNzcxLDYgKzc3MSw3IEBAIF9fWk43
V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkOGFkZFR5cGUKIF9fWk43V2ViQ29yZTE4UGxhdGZv
cm1QYXN0ZWJvYXJkOGdldFR5cGVzRVJOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8x
NUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQ4c2V0
VHlwZXNFUktOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxv
d0VFRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmRDMUVSS04zV1RGNlN0cmluZ0UK
K19fWk43V2ViQ29yZTE4UmVzb3VyY2VMb2FkVGltaW5nQzFFdgogX19aTjdXZWJDb3JlMThTdHls
ZVNoZWV0Q29udGVudHMxMXBhcnNlU3RyaW5nRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MThTdHlsZVNoZWV0Q29udGVudHNDMUVQTlNfMTVTdHlsZVJ1bGVJbXBvcnRFUktOM1dURjZTdHJp
bmdFUktOU18xNkNTU1BhcnNlckNvbnRleHRFCiBfX1pON1dlYkNvcmUxOFN0eWxlU2hlZXRDb250
ZW50c0QxRXYKQEAgLTg0NCw2ICs4NDUsNyBAQCBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9u
c2VCYXNlMTdzZXRICiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzZXRIVFRQ
U3RhdHVzVGV4dEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25z
ZUJhc2UxOHNldEhUVFBIZWFkZXJGaWVsZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFUktOUzFfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxOXNldFRleHRFbmNvZGlu
Z05hbWVFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MjFzZXRSZXNvdXJjZUxvYWRUaW1pbmdFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMThSZXNvdXJjZUxv
YWRUaW1pbmdFRUUKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dl
c3RlZEZpbGVuYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTI0c2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoRXgKIF9fWk43V2ViQ29yZTIwUmVzb3Vy
Y2VSZXNwb25zZUJhc2U2c2V0VVJMRVJLTlNfM1VSTEUKQEAgLTE3NTUsNiArMTc1Nyw3IEBAIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTVodHQKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTZodHRwSGVhZGVyRmllbGRzRXYKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTZ0ZXh0RW5jb2RpbmdOYW1lRXYKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTdzdWdnZXN0ZWRGaWxlbmFtZUV2CitfX1pOSzdXZWJDb3JlMjBS
ZXNvdXJjZVJlc3BvbnNlQmFzZTE4cmVzb3VyY2VMb2FkVGltaW5nRXYKIF9fWk5LN1dlYkNvcmUy
MFJlc291cmNlUmVzcG9uc2VCYXNlMjFleHBlY3RlZENvbnRlbnRMZW5ndGhFdgogX19aTks3V2Vi
Q29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UzdXJsRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNl
UmVzcG9uc2VCYXNlNmlzSFRUUEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTI5NzksNyArMjk3OSw2IEBACiAJCTg1RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovOyB9
OwogCQk4NUZGMzE1QjBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU5MEFBRkJG
Q0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tICovOyB9OwogCQk4NjFDMkVBNDEzRkI0
RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBE
b2N1bWVudExvYWRUaW1pbmcuY3BwICovOyB9OwotCQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIg
LyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2MUMyRUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRU
aW1pbmcuY3BwICovOyB9OwogCQk4NjJGMTI5RTE4QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVz
ZXJBY3Rpdml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODYyRjEyOUQxOEMxNTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjJGMTJBMDE4
QzFERDAyMDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyog
SHlzdGVyZXNpc0FjdGl2aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODY1MTJFREUxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuY3BwICovOyB9OwpAQCAtOTk4OSw3ICs5OTg4LDYgQEAKIAkJODVGRjMxNTgwQUFGQkZDQjAw
Mzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUtleWJvYXJkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERv
Y3VtZW50TG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEb2N1bWVudExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4
NjFDMkVBNTEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFRpbWluZy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBD
b3VudGVkVXNlckFjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
dW50ZWRVc2VyQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYyRjEy
OUYxOEMxRENFNDAwNUM1NEFGIC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIeXN0ZXJlc2lzQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNjEwNiw3ICsxNjEwNCw2IEBACiAJCQkJNTE0Qzc2NjYwQ0U5MjNBMTAwN0VGM0NEIC8qIFJl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCAqLywKIAkJCQk1MUU0MTQzMjE2QTY1OTUxMDBDNjMzQzcg
LyogUmVzb3VyY2VIYW5kbGVUeXBlcy5oICovLAogCQkJCUU0Mjk1RkEzMTJCMDYxNEUwMEQxQUNF
MCAvKiBSZXNvdXJjZUxvYWRQcmlvcml0eS5oICovLAotCQkJCTg2MUMyRUE1MTNGQjRGRkYwMDA2
MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovLAogCQkJCThBODFCRjg0MTFEQ0ZEOTAw
MERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLywKIAkJCQk1MTRDNzY2NzBDRTkyM0Ex
MDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAgKi8sCiAJCQkJNTE0Qzc2NjgwQ0U5
MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuaCAqLywKQEAgLTI4ODMzLDcgKzI4
ODMwLDYgQEAKIAkJCQk1MUFBM0Y2RjBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5NzNFMzI1NjEwODgzQjdDMDA1QkM0OTMgLyogUmVz
b3VyY2VMb2FkTm90aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDBDRTU4RjgxMjVFNEND
MjAwRjNGMTk5IC8qIFJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxNEM3NjdDMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVl
c3RCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDZFMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY1MzBD
RTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMywxOCArMjAz
LDE0IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKIHN0YXRpYyBQ
YXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5n
PiBidWlsZE9iamVjdEZvclRpbWluZyhjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZywg
RG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsKICAgICByZXR1cm4gSW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRSZXF1
ZXN0VGltZShsb2FkZXItPnRpbWluZygpLT5tb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZSh0
aW1pbmcuY29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoMCkpKQotICAgICAg
ICAuc2V0UHJveHlTdGFydCh0aW1pbmcucHJveHlTdGFydCkKLSAgICAgICAgLnNldFByb3h5RW5k
KHRpbWluZy5wcm94eUVuZCkKLSAgICAgICAgLnNldERuc1N0YXJ0KHRpbWluZy5kbnNTdGFydCkK
LSAgICAgICAgLnNldERuc0VuZCh0aW1pbmcuZG5zRW5kKQorICAgICAgICAuc2V0TmF2aWdhdGlv
blN0YXJ0KGxvYWRlci0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFydCgpKQorICAgICAgICAuc2V0
RG9tYWluTG9va3VwU3RhcnQodGltaW5nLmRvbWFpbkxvb2t1cFN0YXJ0KQorICAgICAgICAuc2V0
RG9tYWluTG9va3VwRW5kKHRpbWluZy5kb21haW5Mb29rdXBFbmQpCiAgICAgICAgIC5zZXRDb25u
ZWN0U3RhcnQodGltaW5nLmNvbm5lY3RTdGFydCkKICAgICAgICAgLnNldENvbm5lY3RFbmQodGlt
aW5nLmNvbm5lY3RFbmQpCi0gICAgICAgIC5zZXRTc2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0g
ICAgICAgIC5zZXRTc2xFbmQodGltaW5nLnNzbEVuZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0
aW1pbmcuc2VuZFN0YXJ0KQotICAgICAgICAuc2V0U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAg
ICAgICAgLnNldFJlY2VpdmVIZWFkZXJzRW5kKHRpbWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAg
ICAgICAgLnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydCh0aW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0
YXJ0KQorICAgICAgICAuc2V0UmVxdWVzdFN0YXJ0KHRpbWluZy5yZXF1ZXN0U3RhcnQpCisgICAg
ICAgIC5zZXRSZXNwb25zZVN0YXJ0KHRpbWluZy5yZXNwb25zZVN0YXJ0KQogICAgICAgICAucmVs
ZWFzZSgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0
d29yay5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9OZXR3b3JrLmpzb24JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTMyLDE4ICszMiwx
NCBAQAogICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJUaW1pbmcgaW5mb3JtYXRpb24gZm9yIHRoZSByZXF1ZXN0LiIsCiAgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RUaW1l
IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRpbWluZydzIHJlcXVlc3RUaW1l
IGlzIGEgYmFzZWxpbmUgaW4gc2Vjb25kcywgd2hpbGUgdGhlIG90aGVyIG51bWJlcnMgYXJlIHRp
Y2tzIGluIG1pbGxpc2Vjb25kcyByZWxhdGl2ZWx5IHRvIHRoaXMgcmVxdWVzdFRpbWUuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJveHlTdGFydCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlc29sdmluZyBwcm94eS4iIH0sCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJwcm94eUVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJGaW5pc2hlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiZG5zU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRl
ZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRu
c0VuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRk
cmVzcyByZXNvbHZlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hdmlnYXRpb25T
dGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyBuYXZpZ2F0
aW9uU3RhcnQgaXMgYSBiYXNlbGluZSBpbiBzZWNvbmRzLCB3aGlsZSB0aGUgb3RoZXIgbnVtYmVy
cyBhcmUgdGlja3MgaW4gbWlsbGlzZWNvbmRzIHJlbGF0aXZlbHkgdG8gdGhpcyBuYXZpZ2F0aW9u
U3RhcnQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9tYWluTG9va3VwU3RhcnQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBETlMgYWRkcmVzcyBy
ZXNvbHZlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cEVuZCIs
ICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRkcmVzcyBy
ZXNvbHZlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RTdGFydCIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5lY3RpbmcgdG8gdGhl
IHJlbW90ZSBob3N0LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RFbmQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29ubmVjdGVkIHRvIHRoZSByZW1v
dGUgaG9zdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzc2xTdGFydCIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRl
c2NyaXB0aW9uIjogIkZpbmlzaGVkIFNTTCBoYW5kc2hha2UuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAic2VuZFN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjog
IlN0YXJ0ZWQgc2VuZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNlbmRFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgc2Vu
ZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlY2VpdmVIZWFk
ZXJzRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHJlY2Vp
dmluZyByZXNwb25zZSBoZWFkZXJzLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Vj
dXJlQ29ubmVjdGlvblN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0
YXJ0ZWQgU1NMIGhhbmRzaGFrZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1
ZXN0U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBzZW5k
aW5nIHJlcXVlc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzcG9uc2VTdGFy
dCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlY2VpdmluZyBy
ZXNwb25zZSBoZWFkZXJzLiIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LAogICAgICAgICB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRp
bWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDEyICs3Niw2IEBAIHZvaWQgRG9jdW1lbnRM
b2FkVGltaW5nOjptYXJrTmF2aWdhdGlvblMKICAgICBtX3JlZmVyZW5jZVdhbGxUaW1lID0gY3Vy
cmVudFRpbWUoKTsKIH0KIAotdm9pZCBEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25T
dGFydChkb3VibGUgbmF2aWdhdGlvblN0YXJ0KQotewotICAgIEFTU0VSVChtX3JlZmVyZW5jZU1v
bm90b25pY1RpbWUgJiYgbV9yZWZlcmVuY2VXYWxsVGltZSk7Ci0gICAgbV9uYXZpZ2F0aW9uU3Rh
cnQgPSBuYXZpZ2F0aW9uU3RhcnQ7Ci19Ci0KIHZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjphZGRS
ZWRpcmVjdChjb25zdCBVUkwmIHJlZGlyZWN0aW5nVXJsLCBjb25zdCBVUkwmIHJlZGlyZWN0ZWRV
cmwpCiB7CiAgICAgbV9yZWRpcmVjdENvdW50Kys7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcg
KzQxLDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBtb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGlt
ZShkb3VibGUpIGNvbnN0OwogCiAgICAgdm9pZCBtYXJrTmF2aWdhdGlvblN0YXJ0KCk7Ci0gICAg
dm9pZCBzZXROYXZpZ2F0aW9uU3RhcnQoZG91YmxlKTsKICAgICB2b2lkIGFkZFJlZGlyZWN0KGNv
bnN0IFVSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVkaXJlY3RlZFVybCk7CiAKICAg
ICB2b2lkIG1hcmtVbmxvYWRFdmVudFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZS5pZGwJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLS8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViVGltaW5n
LworLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3JnL2hnL3dlYnBlcmYvcmF3LWZpbGUvdGlwL3Nw
ZWNzL05hdmlnYXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRtbAogWwogICAgIENvbmRpdGlvbmFsPVdF
Ql9USU1JTkcsCiAgICAgRXZlbnRUYXJnZXQsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyMCwxMCArMTIwLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nOjpkb21haW4KICAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKICAgICAgICAg
cmV0dXJuIDAuMDsKIAotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRuc1N0YXJ0IDwg
MCkKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA8IDAp
CiAgICAgICAgIHJldHVybiBmZXRjaFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1l
VG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+ZG5zU3RhcnQpOworICAgIHJldHVybiBy
ZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5Mb29rdXBT
dGFydCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29r
dXBFbmQoKSBjb25zdApAQCAtMTMxLDEwICsxMzEsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmRvbWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAg
ICAgICByZXR1cm4gMC4wOwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zRW5k
IDwgMCkKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPCAw
KQogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNv
dXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNFbmQpOworICAgIHJl
dHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5M
b29rdXBFbmQpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVj
dFN0YXJ0KCkgY29uc3QKQEAgLTE0OCw4ICsxNDgsOCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6Y29ubmVjCiAKICAgICAvLyBjb25uZWN0U3RhcnQgaW5jbHVkZXMgYW55IERO
UyB0aW1lLCBzbyB3ZSBtYXkgbmVlZCB0byB0cmltIHRoYXQgb2ZmLgogICAgIGludCBjb25uZWN0
U3RhcnQgPSBtX3RpbWluZy0+Y29ubmVjdFN0YXJ0OwotICAgIGlmIChtX3RpbWluZy0+ZG5zRW5k
ID49IDApCi0gICAgICAgIGNvbm5lY3RTdGFydCA9IG1fdGltaW5nLT5kbnNFbmQ7CisgICAgaWYg
KG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPj0gMCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0g
bV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZDsKIAogICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0Rv
Y3VtZW50TWlsbGlzZWNvbmRzKGNvbm5lY3RTdGFydCk7CiB9CkBAIC0xNzEsMTAgKzE3MSwxMCBA
QCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6c2VjdXJlCiAgICAgaWYgKCFtX3No
b3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGlt
aW5nIHx8IG1fdGltaW5nLT5zc2xTdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBu
ZWdvdGlhdGVkLgorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNlY3VyZUNvbm5lY3Rp
b25TdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBuZWdvdGlhdGVkLgogICAgICAg
ICByZXR1cm4gMC4wOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNl
Y29uZHMobV90aW1pbmctPnNzbFN0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1
bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0KTsKIH0KIAog
ZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CkBA
IC0xODgsMjIgKzE4OCw4IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXF1
ZXMKICAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWlu
Zy0+c2VuZFN0YXJ0KTsKIH0KIAotZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJl
c3BvbnNlU3RhcnQoKSBjb25zdAotewotICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQot
ICAgICAgICByZXR1cm4gMC4wOwotCi0gICAgaWYgKCFtX3RpbWluZykKLSAgICAgICAgcmV0dXJu
IHJlcXVlc3RTdGFydCgpOwotICAgIC8vIEZJWE1FOiBUaGlzIG51bWJlciBpc24ndCBleGFjdGx5
IGNvcnJlY3QuIFNlZSB0aGUgbm90ZXMgaW4gUGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNlU3Rh
cnQoKS4KLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3Rp
bWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQpOwotfQotCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6cmVzcG9uc2VFbmQoKSBjb25zdAogewotICAgIGlmICghbV9maW5pc2hUaW1lKQot
ICAgICAgICByZXR1cm4gcmVzcG9uc2VTdGFydCgpOwotCiAgICAgcmV0dXJuIG1vbm90b25pY1Rp
bWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3VtZW50LmdldCgpLCBtX2Zp
bmlzaFRpbWUpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcuaAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcg
KzY1LDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBjb25uZWN0RW5kKCkgY29uc3Q7CiAgICAgZG91
YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNvbnN0OwogICAgIGRvdWJsZSByZXF1ZXN0U3Rh
cnQoKSBjb25zdDsKLSAgICBkb3VibGUgcmVzcG9uc2VTdGFydCgpIGNvbnN0OwogICAgIGRvdWJs
ZSByZXNwb25zZUVuZCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIGlzUmVzb3VyY2UoKSB7
IHJldHVybiB0cnVlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZy5pZGwJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTQzLDYgKzQzLDUgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSBjb25uZWN0RW5kOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91Ymxl
IHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmlj
dGVkIGRvdWJsZSByZXF1ZXN0U3RhcnQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJp
Y3RlZCBkb3VibGUgcmVzcG9uc2VTdGFydDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZSByZXNwb25zZUVuZDsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlVGltaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMCwxMSAr
MTMwLDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG8KIAogICAg
IC8vIFRoaXMgd2lsbCBiZSAtMSB3aGVuIGEgRE5TIHJlcXVlc3QgaXMgbm90IHBlcmZvcm1lZC4K
ICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRpY2F0
ZXMgbm8gRE5TLCB3ZSAiYmFja2ZpbGwiIHdpdGggZmV0Y2hTdGFydC4KLSAgICBpbnQgZG5zU3Rh
cnQgPSB0aW1pbmctPmRuc1N0YXJ0OwotICAgIGlmIChkbnNTdGFydCA8IDApCisgICAgaW50IGRv
bWFpbkxvb2t1cFN0YXJ0ID0gdGltaW5nLT5kb21haW5Mb29rdXBTdGFydDsKKyAgICBpZiAoZG9t
YWluTG9va3VwU3RhcnQgPCAwKQogICAgICAgICByZXR1cm4gZmV0Y2hTdGFydCgpOwogCi0gICAg
cmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoZG5zU3RhcnQpOworICAg
IHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGRvbWFpbkxvb2t1cFN0
YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5M
b29rdXBFbmQoKSBjb25zdApAQCAtMTQ1LDExICsxNDUsMTEgQEAgdW5zaWduZWQgbG9uZyBsb25n
IFBlcmZvcm1hbmNlVGltaW5nOjpkbwogCiAgICAgLy8gVGhpcyB3aWxsIGJlIC0xIHdoZW4gYSBE
TlMgcmVxdWVzdCBpcyBub3QgcGVyZm9ybWVkLgogICAgIC8vIFJhdGhlciB0aGFuIGV4cG9zaW5n
IGEgc3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBETlMsIHdlICJiYWNrZmlsbCIgd2l0
aCBkb21haW5Mb29rdXBTdGFydC4KLSAgICBpbnQgZG5zRW5kID0gdGltaW5nLT5kbnNFbmQ7Ci0g
ICAgaWYgKGRuc0VuZCA8IDApCisgICAgaW50IGRvbWFpbkxvb2t1cEVuZCA9IHRpbWluZy0+ZG9t
YWluTG9va3VwRW5kOworICAgIGlmIChkb21haW5Mb29rdXBFbmQgPCAwKQogICAgICAgICByZXR1
cm4gZG9tYWluTG9va3VwU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVs
YXRpdmVUb0Fic29sdXRlKGRuc0VuZCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxh
dGl2ZVRvQWJzb2x1dGUoZG9tYWluTG9va3VwRW5kKTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25n
IFBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQoKSBjb25zdApAQCAtMTcwLDggKzE3MCw4
IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6Y28KIAogICAgIC8vIFJl
c291cmNlTG9hZFRpbWluZydzIGNvbm5lY3QgcGhhc2UgaW5jbHVkZXMgRE5TLCBob3dldmVyIE5h
dmlnYXRpb24gVGltaW5nJ3MKICAgICAvLyBjb25uZWN0IHBoYXNlIHNob3VsZCBub3QuIFNvIGlm
IHRoZXJlIGlzIEROUyB0aW1lLCB0cmltIGl0IGZyb20gdGhlIHN0YXJ0LgotICAgIGlmICh0aW1p
bmctPmRuc0VuZCA+PSAwICYmIHRpbWluZy0+ZG5zRW5kID4gY29ubmVjdFN0YXJ0KQotICAgICAg
ICBjb25uZWN0U3RhcnQgPSB0aW1pbmctPmRuc0VuZDsKKyAgICBpZiAodGltaW5nLT5kb21haW5M
b29rdXBFbmQgPj0gMCAmJiB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA+IGNvbm5lY3RTdGFydCkK
KyAgICAgICAgY29ubmVjdFN0YXJ0ID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmQ7CiAKICAgICBy
ZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShjb25uZWN0U3RhcnQpOwog
fQpAQCAtMjA1LDExICsyMDUsMTEgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGlt
aW5nOjpzZQogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGludCBz
c2xTdGFydCA9IHRpbWluZy0+c3NsU3RhcnQ7Ci0gICAgaWYgKHNzbFN0YXJ0IDwgMCkKKyAgICBp
bnQgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQ7
CisgICAgaWYgKHNlY3VyZUNvbm5lY3Rpb25TdGFydCA8IDApCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoc3NsU3RhcnQp
OworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHNlY3VyZUNv
bm5lY3Rpb25TdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWlu
Zzo6cmVxdWVzdFN0YXJ0KCkgY29uc3QKQEAgLTIxOCw4ICsyMTgsOCBAQCB1bnNpZ25lZCBsb25n
IGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJl
dHVybiBjb25uZWN0RW5kKCk7CiAKLSAgICBBU1NFUlQodGltaW5nLT5zZW5kU3RhcnQgPj0gMCk7
Ci0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5z
ZW5kU3RhcnQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlcXVlc3RTdGFydCA+PSAwKTsKKyAgICBy
ZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZSh0aW1pbmctPnJlcXVlc3RT
dGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9u
c2VTdGFydCgpIGNvbnN0CkBAIC0yMjgsMTQgKzIyOCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQ
ZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIHJl
cXVlc3RTdGFydCgpOwogCi0gICAgLy8gRklYTUU6IFJlc3BvbnNlIHN0YXJ0IG5lZWRzIHRvIGJl
IHRoZSB0aW1lIG9mIHRoZSBmaXJzdCByZWNlaXZlZCBieXRlLgotICAgIC8vIEhvd2V2ZXIsIHRo
ZSBSZXNvdXJjZUxvYWRUaW1pbmcgQVBJIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHRoZSB0aW1l
Ci0gICAgLy8gdGhlIGxhc3QgaGVhZGVyIGJ5dGUgd2FzIHJlY2VpdmVkLiBGb3IgbWFueSByZXNw
b25zZXMgd2l0aCByZWFzb25hYmxlCi0gICAgLy8gc2l6ZWQgY29va2llcywgdGhlIEhUVFAgaGVh
ZGVycyBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQgc28gdGhpcyB0aW1lCi0gICAgLy8gaXMgYmFz
aWNhbGx5IGVxdWl2YWxlbnQuIEJ1dCBmb3Igc29tZSByZXNwb25zZXMsIHBhcnRpY3VsYXJseSB0
aG9zZSB3aXRoCi0gICAgLy8gaGVhZGVycyBsYXJnZXIgdGhhbiBhIHNpbmdsZSBwYWNrZXQsIHRo
aXMgdGltZSB3aWxsIGJlIHRvbyBsYXRlLgotICAgIEFTU0VSVCh0aW1pbmctPnJlY2VpdmVIZWFk
ZXJzRW5kID49IDApOwotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29s
dXRlKHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlc3Bv
bnNlU3RhcnQgPj0gMCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJz
b2x1dGUodGltaW5nLT5yZXNwb25zZVN0YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBl
cmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0CkBAIC0zNTEsOSArMzQ1LDcgQEAg
UmVzb3VyY2VMb2FkVGltaW5nKiBQZXJmb3JtYW5jZVRpbWluZzo6cgogdW5zaWduZWQgbG9uZyBs
b25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRl
KGludCByZWxhdGl2ZU1pbGxpc2Vjb25kcykgY29uc3QKIHsKICAgICBBU1NFUlQocmVsYXRpdmVN
aWxsaXNlY29uZHMgPj0gMCk7Ci0gICAgUmVzb3VyY2VMb2FkVGltaW5nKiByZXNvdXJjZVRpbWlu
ZyA9IHJlc291cmNlTG9hZFRpbWluZygpOwotICAgIEFTU0VSVChyZXNvdXJjZVRpbWluZyk7Ci0g
ICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMocmVzb3VyY2VUaW1p
bmctPmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKHJlbGF0aXZlTWlsbGlz
ZWNvbmRzKSk7CisgICAgcmV0dXJuIG5hdmlnYXRpb25TdGFydCgpICsgcmVsYXRpdmVNaWxsaXNl
Y29uZHM7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bW9ub3Rv
bmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUgbW9ub3RvbmljU2Vjb25kcykgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsCShyZXZp
c2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci0vLyBTZWU6IGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBpL1dlYlRpbWluZy8KKy8vIFNl
ZTogaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy93ZWJwZXJmL3Jhdy1maWxlL3RpcC9zcGVjcy9OYXZp
Z2F0aW9uVGltaW5nL092ZXJ2aWV3Lmh0bWwKIFsKICAgICBDb25kaXRpb25hbD1XRUJfVElNSU5H
LAogXSBpbnRlcmZhY2UgUGVyZm9ybWFuY2VUaW1pbmcgewpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAkocmV2aXNpb24gMTY4MzkyKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw5ICszNyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSFRU
UEhlYWRlck1hcDsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2VCYXNlOwotCiBlbnVtIENvbnRlbnRE
aXNwb3NpdGlvblR5cGUgewogICAgIENvbnRlbnREaXNwb3NpdGlvbk5vbmUsCiAgICAgQ29udGVu
dERpc3Bvc2l0aW9uSW5saW5lLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTAsNiArMTkwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldEhvc3RBbGxvd3NB
bnlIVFRQU0NlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyB2b2lkIHNldENs
aWVudENlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYgaG9zdCwgR1Rsc0NlcnRpZmljYXRlKik7CiAg
ICAgc3RhdGljIHZvaWQgc2V0SWdub3JlU1NMRXJyb3JzKGJvb2wpOworICAgIGRvdWJsZSBtX3Jl
cXVlc3RUaW1lOwogI2VuZGlmCiAKICAgICAvLyBVc2VkIHRvIHdvcmsgYXJvdW5kIHRoZSBmYWN0
IHRoYXQgeW91IGRvbid0IGdldCBhbnkgbW9yZSBOU1VSTENvbm5lY3Rpb24gY2FsbGJhY2tzIHVu
dGlsIHlvdSByZXR1cm4gZnJvbSB0aGUgb25lIHlvdSdyZSBpbi4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAJ
KHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VMb2FkVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwzNiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VMb2FkVGltaW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotZG91YmxlIFJlc291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9hZFRp
bWVUb01vbm90b25pY1RpbWUoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdAotewotICAgIHJl
dHVybiByZXF1ZXN0VGltZSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wOwotfQotCi19Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VM
b2FkVGltaW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDc2ICs0
NCw1MCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IGRlZXBD
b3B5KCkKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IHRpbWluZyA9
IGNyZWF0ZSgpOwotICAgICAgICB0aW1pbmctPnJlcXVlc3RUaW1lID0gcmVxdWVzdFRpbWU7Ci0g
ICAgICAgIHRpbWluZy0+cHJveHlTdGFydCA9IHByb3h5U3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+
cHJveHlFbmQgPSBwcm94eUVuZDsKLSAgICAgICAgdGltaW5nLT5kbnNTdGFydCA9IGRuc1N0YXJ0
OwotICAgICAgICB0aW1pbmctPmRuc0VuZCA9IGRuc0VuZDsKKyAgICAgICAgdGltaW5nLT5kb21h
aW5Mb29rdXBTdGFydCA9IGRvbWFpbkxvb2t1cFN0YXJ0OworICAgICAgICB0aW1pbmctPmRvbWFp
bkxvb2t1cEVuZCA9IGRvbWFpbkxvb2t1cEVuZDsKICAgICAgICAgdGltaW5nLT5jb25uZWN0U3Rh
cnQgPSBjb25uZWN0U3RhcnQ7CiAgICAgICAgIHRpbWluZy0+Y29ubmVjdEVuZCA9IGNvbm5lY3RF
bmQ7Ci0gICAgICAgIHRpbWluZy0+c2VuZFN0YXJ0ID0gc2VuZFN0YXJ0OwotICAgICAgICB0aW1p
bmctPnNlbmRFbmQgPSBzZW5kRW5kOwotICAgICAgICB0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5k
ID0gcmVjZWl2ZUhlYWRlcnNFbmQ7Ci0gICAgICAgIHRpbWluZy0+c3NsU3RhcnQgPSBzc2xTdGFy
dDsKLSAgICAgICAgdGltaW5nLT5zc2xFbmQgPSBzc2xFbmQ7CisgICAgICAgIHRpbWluZy0+cmVx
dWVzdFN0YXJ0ID0gcmVxdWVzdFN0YXJ0OworICAgICAgICB0aW1pbmctPnJlc3BvbnNlU3RhcnQg
PSByZXNwb25zZVN0YXJ0OworICAgICAgICB0aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9
IHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKICAgICAgICAgcmV0dXJuIHRpbWluZy5yZWxlYXNlKCk7
CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYg
b3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gcmVxdWVzdFRpbWUgPT0gb3RoZXIu
cmVxdWVzdFRpbWUKLSAgICAgICAgICAgICYmIHByb3h5U3RhcnQgPT0gb3RoZXIucHJveHlTdGFy
dAotICAgICAgICAgICAgJiYgcHJveHlFbmQgPT0gb3RoZXIucHJveHlFbmQKLSAgICAgICAgICAg
ICYmIGRuc1N0YXJ0ID09IG90aGVyLmRuc1N0YXJ0Ci0gICAgICAgICAgICAmJiBkbnNFbmQgPT0g
b3RoZXIuZG5zRW5kCisgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBTdGFydCA9PSBvdGhlci5k
b21haW5Mb29rdXBTdGFydAorICAgICAgICAgICAgJiYgZG9tYWluTG9va3VwRW5kID09IG90aGVy
LmRvbWFpbkxvb2t1cEVuZAogICAgICAgICAgICAgJiYgY29ubmVjdFN0YXJ0ID09IG90aGVyLmNv
bm5lY3RTdGFydAogICAgICAgICAgICAgJiYgY29ubmVjdEVuZCA9PSBvdGhlci5jb25uZWN0RW5k
Ci0gICAgICAgICAgICAmJiBzZW5kU3RhcnQgPT0gb3RoZXIuc2VuZFN0YXJ0Ci0gICAgICAgICAg
ICAmJiBzZW5kRW5kID09IG90aGVyLnNlbmRFbmQKLSAgICAgICAgICAgICYmIHJlY2VpdmVIZWFk
ZXJzRW5kID09IG90aGVyLnJlY2VpdmVIZWFkZXJzRW5kCi0gICAgICAgICAgICAmJiBzc2xTdGFy
dCA9PSBvdGhlci5zc2xTdGFydAotICAgICAgICAgICAgJiYgc3NsRW5kID09IG90aGVyLnNzbEVu
ZDsKKyAgICAgICAgICAgICYmIHJlcXVlc3RTdGFydCA9PSBvdGhlci5yZXF1ZXN0U3RhcnQKKyAg
ICAgICAgICAgICYmIHJlc3BvbnNlU3RhcnQgPT0gb3RoZXIucmVzcG9uc2VTdGFydAorICAgICAg
ICAgICAgJiYgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID09IG90aGVyLnNlY3VyZUNvbm5lY3Rpb25T
dGFydDsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgUmVzb3VyY2VMb2FkVGlt
aW5nJiBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVy
KTsKICAgICB9Ci0KLSAgICAvLyBXZSB3YW50IHRvIHByZXNlbnQgYSB1bmlmaWVkIHRpbWVsaW5l
IHRvIEphdmFzY3JpcHQuIFVzaW5nIHdhbGx0aW1lIGlzIHByb2JsZW1hdGljLCBiZWNhdXNlIHRo
ZSBjbG9jayBtYXkgc2tldyB3aGlsZSByZXNvdXJjZXMKLSAgICAvLyBsb2FkLiBUbyBwcmV2ZW50
IHRoYXQgc2tldywgd2UgcmVjb3JkIGEgc2luZ2xlIHJlZmVyZW5jZSB3YWxsdGltZSB3aGVuIHJv
b3QgZG9jdW1lbnQgbmF2aWdhdGlvbiBiZWdpbnMuIEFsbCBvdGhlciB0aW1lcyBhcmUKLSAgICAv
LyByZWNvcmRlZCB1c2luZyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKS4gV2hlbiBhIHRp
bWUgbmVlZHMgdG8gYmUgcHJlc2VudGVkIHRvIEphdmFzY3JpcHQsIHdlIGJ1aWxkIGEgcHNldWRv
LXdhbGx0aW1lCi0gICAgLy8gdXNpbmcgdGhlIGZvbGxvd2luZyBlcXVhdGlvbjoKLSAgICAvLyAg
IHBzZXVkbyB0aW1lID0gZG9jdW1lbnQgd2FsbCByZWZlcmVuY2UgKyAocmVzb3VyY2UgcmVxdWVz
dCB0aW1lIC0gZG9jdW1lbnQgbW9ub3RvbmljIHJlZmVyZW5jZSkgKyBkZWx0YU1pbGxpc2Vjb25k
cyAvIDEwMDAuMC4KLSAgICBkb3VibGUgY29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25p
Y1RpbWUoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdDsKLQotICAgIGRvdWJsZSByZXF1ZXN0
VGltZTsgLy8gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgd2hlbiB0aGUgcG9ydCBzdGFy
dGVkIGhhbmRsaW5nIHRoaXMgcmVxdWVzdC4KLSAgICBpbnQgcHJveHlTdGFydDsgLy8gVGhlIHJl
c3Qgb2YgdGhlc2UgYXJlIG1pbGxpc2Vjb25kIGRlbHRhcywgdXNpbmcgbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCksIGZyb20gcmVxdWVzdFRpbWUuCi0gICAgaW50IHByb3h5RW5kOwotICAg
IGludCBkbnNTdGFydDsKLSAgICBpbnQgZG5zRW5kOworICAgIAorICAgIC8vIFRoZXNlIGFyZSBt
aWxsaXNlY29uZCBkZWx0YXMgZnJvbSB0aGUgbmF2aWdhdGlvbiBzdGFydC4KKyAgICBpbnQgZG9t
YWluTG9va3VwU3RhcnQ7CisgICAgaW50IGRvbWFpbkxvb2t1cEVuZDsKICAgICBpbnQgY29ubmVj
dFN0YXJ0OwogICAgIGludCBjb25uZWN0RW5kOwotICAgIGludCBzZW5kU3RhcnQ7Ci0gICAgaW50
IHNlbmRFbmQ7Ci0gICAgaW50IHJlY2VpdmVIZWFkZXJzRW5kOwotICAgIGludCBzc2xTdGFydDsK
LSAgICBpbnQgc3NsRW5kOwotCisgICAgaW50IHJlcXVlc3RTdGFydDsKKyAgICBpbnQgcmVzcG9u
c2VTdGFydDsKKyAgICBpbnQgc2VjdXJlQ29ubmVjdGlvblN0YXJ0OworICAgIAogcHJpdmF0ZToK
ICAgICBSZXNvdXJjZUxvYWRUaW1pbmcoKQotICAgICAgICA6IHJlcXVlc3RUaW1lKDApCi0gICAg
ICAgICwgcHJveHlTdGFydCgtMSkKLSAgICAgICAgLCBwcm94eUVuZCgtMSkKLSAgICAgICAgLCBk
bnNTdGFydCgtMSkKLSAgICAgICAgLCBkbnNFbmQoLTEpCisgICAgICAgIDogZG9tYWluTG9va3Vw
U3RhcnQoLTEpCisgICAgICAgICwgZG9tYWluTG9va3VwRW5kKC0xKQogICAgICAgICAsIGNvbm5l
Y3RTdGFydCgtMSkKICAgICAgICAgLCBjb25uZWN0RW5kKC0xKQotICAgICAgICAsIHNlbmRTdGFy
dCgwKQotICAgICAgICAsIHNlbmRFbmQoMCkKLSAgICAgICAgLCByZWNlaXZlSGVhZGVyc0VuZCgw
KQotICAgICAgICAsIHNzbFN0YXJ0KC0xKQotICAgICAgICAsIHNzbEVuZCgtMSkKKyAgICAgICAg
LCByZXF1ZXN0U3RhcnQoMCkKKyAgICAgICAgLCByZXNwb25zZVN0YXJ0KDApCisgICAgICAgICwg
c2VjdXJlQ29ubmVjdGlvblN0YXJ0KC0xKQogICAgIHsKICAgICB9CiB9OwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW0JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1
NiwxNCBAQAogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxGb3VuZGF0aW9uL05TVVJMQ29ubmVjdGlv
blByaXZhdGUuaD4pCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMQ29ubmVjdGlvblByaXZhdGUu
aD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMQ29ubmVjdGlvbiAoVGltaW5nRGF0YSkKKysgKHZv
aWQpX3NldENvbGxlY3RzVGltaW5nRGF0YTooQk9PTCljb2xsZWN0OworQGVuZAorI2VuZGlmCisK
ICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZVUkxSZXF1ZXN0Lmg+CiAK
QEAgLTIwMCw2ICsyMDgsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5l
Y3RpCiAgICAgY29uc3QgYm9vbCB1c2VzQ2FjaGUgPSB0cnVlOwogI2VuZGlmCiAgICAgZC0+bV9j
b25uZWN0aW9uID0gYWRvcHROUyhbW05TVVJMQ29ubmVjdGlvbiBhbGxvY10gX2luaXRXaXRoUmVx
dWVzdDpuc1JlcXVlc3QgZGVsZWdhdGU6ZGVsZWdhdGUgdXNlc0NhY2hlOnVzZXNDYWNoZSBtYXhD
b250ZW50TGVuZ3RoOjAgc3RhcnRJbW1lZGlhdGVseTpOTyBjb25uZWN0aW9uUHJvcGVydGllczpw
cm9wZXJ0eURpY3Rpb25hcnldKTsKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAgICBbTlNVUkxD
b25uZWN0aW9uIF9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6WUVTXTsKKyNlbmRpZgogfQogCiBib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCShyZXZpc2lvbiAx
NjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAg
LTM5LDYgKzM5LDE0IEBACiAjaW1wb3J0ICJXZWJDb3JlVVJMUmVzcG9uc2UuaCIKICNpbXBvcnQg
PHd0Zi9NYWluVGhyZWFkLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxDRk5ldHdvcmsvQ0ZOU1VS
TENvbm5lY3Rpb24uaD4pCisjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4K
KyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMQ29ubmVjdGlvbiAoVGltaW5nRGF0YSkKKy0gKE5TRGlj
dGlvbmFyeSAqKV90aW1pbmdEYXRhOworQGVuZAorI2VuZGlmCisKIEBpbnRlcmZhY2UgTlNVUkxS
ZXF1ZXN0IChEZXRhaWxzKQogLSAoaWQpX3Byb3BlcnR5Rm9yS2V5OihOU1N0cmluZyAqKWtleTsK
IEBlbmQKQEAgLTE5Myw3ICsyMDEsNiBAQCAtIChCT09MKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVj
dGlvbiAqKWNvCiAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rp
b24gZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcgogewogICAgIEFTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOwotICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKIAogICAgIExP
RyhOZXR3b3JrLCAiSGFuZGxlICVwIGRlbGVnYXRlIGNvbm5lY3Rpb246JXAgZGlkUmVjZWl2ZVJl
c3BvbnNlOiVwIChIVFRQIHN0YXR1cyAlZCwgcmVwb3J0ZWQgTUlNRVR5cGUgJyVzJykiLCBtX2hh
bmRsZSwgY29ubmVjdGlvbiwgciwgW3IgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzdGF0
dXNDb2RlKV0gPyBbKGlkKXIgc3RhdHVzQ29kZV0gOiAwLCBbW3IgTUlNRVR5cGVdIFVURjhTdHJp
bmddKTsKIApAQCAtMjEyLDggKzIxOSwzOCBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29u
bmVjdGlvbiAqKWNvCiAKICAgICAgICAgaWYgKFttX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkubnNV
UkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpIF9wcm9wZXJ0eUZvcktleTpAIkZvcmNlSFRN
TE1JTUVUeXBlIl0pCiAgICAgICAgICAgICBbciBfc2V0TUlNRVR5cGU6QCJ0ZXh0L2h0bWwiXTsK
LQotICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKG1f
aGFuZGxlLCByKTsKKyAgICAgICAgCisgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VS
ZXNwb25zZShyKTsKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAgICAgICAgTlNEaWN0aW9uYXJ5
KiB0aW1pbmdEYXRhID0gW2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFdOworICAgICAgICBpZiAodGlt
aW5nRGF0YSkgeworICAgICAgICAgICAgcmVzb3VyY2VSZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRU
aW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7CisgICAgICAgICAgICBSZXNvdXJj
ZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgbm90IHRoZSBuYXZpZ2F0
aW9uU3RhcnQgdGltZSBpbiBtb25vdG9uaWMgdGltZSwgYnV0IHRoZSBvdGhlciB0aW1lcyBhcmUg
cmVsYXRpdmUgdG8gdGhpcyB0aW1lCisgICAgICAgICAgICAvLyBhbmQgb25seSB0aGUgZGlmZmVy
ZW5jZXMgYmV0d2VlbiB0aW1lcyBhcmUgc3RvcmVkLgorICAgICAgICAgICAgZG91YmxlIHJlZmVy
ZW5jZVN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhVGlt
aW5nRGF0YUluaXQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRv
dWJsZSBkb21haW5Mb29rdXBTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZO
VGltaW5nRGF0YURvbWFpbkxvb2t1cFN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAg
ZG91YmxlIGRvbWFpbkxvb2t1cEVuZCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZO
VGltaW5nRGF0YURvbWFpbkxvb2t1cEVuZCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIGRv
dWJsZSBjb25uZWN0U3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWlu
Z0RhdGFDb25uZWN0U3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICBkb3VibGUgc2Vj
dXJlQ29ubmVjdGlvblN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1p
bmdEYXRhU2VjdXJlQ29ubmVjdGlvblN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAg
ZG91YmxlIGNvbm5lY3RFbmQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWlu
Z0RhdGFDb25uZWN0RW5kIl0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAgZG91YmxlIHJlcXVl
c3RTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVJlcXVl
c3RTdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSByZXNwb25zZVN0YXJ0
ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVzcG9uc2VTdGFy
dCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGltaW5nLT5kb21h
aW5Mb29rdXBTdGFydCA9IGRvbWFpbkxvb2t1cFN0YXJ0IDw9IDAuMCA/IC0xIDogKGRvbWFpbkxv
b2t1cFN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+
ZG9tYWluTG9va3VwRW5kID0gZG9tYWluTG9va3VwRW5kIDw9IDAuMCA/IC0xIDogKGRvbWFpbkxv
b2t1cEVuZCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0aW1pbmctPmNv
bm5lY3RTdGFydCA9IGNvbm5lY3RTdGFydCA8PSAwLjAgPyAtMSA6IChjb25uZWN0U3RhcnQgLSBy
ZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5nLT5zZWN1cmVDb25uZWN0
aW9uU3RhcnQgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnQgPD0gMC4wID8gLTEgOiAoc2VjdXJlQ29u
bmVjdGlvblN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWlu
Zy0+Y29ubmVjdEVuZCA9IGNvbm5lY3RFbmQgPD0gMC4wID8gLTEgOiAoY29ubmVjdEVuZCAtIHJl
ZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0aW1pbmctPnJlcXVlc3RTdGFydCA9
IHJlcXVlc3RTdGFydCA8PSAwLjAgPyAtMSA6IChyZXF1ZXN0U3RhcnQgLSByZWZlcmVuY2VTdGFy
dCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5nLT5yZXNwb25zZVN0YXJ0ID0gcmVzcG9uc2VT
dGFydCA8PSAwLjAgPyAtMSA6IChyZXNwb25zZVN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAw
MDsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwor
I2VuZGlmCisgICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5
bmMobV9oYW5kbGUsIHJlc291cmNlUmVzcG9uc2UpOwogICAgIH0pOwogCiAgICAgZGlzcGF0Y2hf
c2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIzNSw3ICsyMzUsNyBAQCBzdGF0aWMgdm9pZCBzZW5kUmVxdWVzdENhbGxiYWNr
KEdPYmplY3QqCiBzdGF0aWMgdm9pZCByZWFkQ2FsbGJhY2soR09iamVjdCosIEdBc3luY1Jlc3Vs
dCosIGdwb2ludGVyKTsKIHN0YXRpYyBnYm9vbGVhbiByZXF1ZXN0VGltZW91dENhbGxiYWNrKHZv
aWQqKTsKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKLXN0YXRpYyBpbnQgIG1pbGlzZWNvbmRzU2lu
Y2VSZXF1ZXN0KGRvdWJsZSByZXF1ZXN0VGltZSk7CitzdGF0aWMgaW50ICBtaWxpc2Vjb25kc1Np
bmNlUmVxdWVzdCgpOwogI2VuZGlmCiBzdGF0aWMgdm9pZCBjb250aW51ZUFmdGVyRGlkUmVjZWl2
ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKik7CiAKQEAgLTMxNiwxMSArMzE2LDYgQEAgc3RhdGlj
IHZvaWQgZ290SGVhZGVyc0NhbGxiYWNrKFNvdXBNZXNzYQogCiAgICAgUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIAotI2lmIEVOQUJMRShXRUJfVElN
SU5HKQotICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQotICAgICAg
ICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZWNlaXZlSGVhZGVyc0VuZCA9
IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCktPnJlcXVlc3RUaW1lKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIC8vIFdl
IGFyZSBhIGJpdCBtb3JlIGNvbnNlcnZhdGl2ZSB3aXRoIHRoZSBwZXJzaXN0ZW50IGNyZWRlbnRp
YWwgc3RvcmFnZSB0aGFuIHRoZSBzZXNzaW9uIHN0b3JlLAogICAgIC8vIHNpbmNlIHdlIGFyZSB3
YWl0aW5nIHVudGlsIHdlIGtub3cgdGhhdCB0aGlzIGF1dGhlbnRpY2F0aW9uIHN1Y2NlZWRlZCBi
ZWZvcmUgYWN0dWFsbHkgc3RvcmluZy4KQEAgLTM5MCw3ICszODUsNyBAQCBzdGF0aWMgdm9pZCBy
ZXN0YXJ0ZWRDYWxsYmFjayhTb3VwTWVzc2FnCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCog
ZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlID0gZC0+bV9yZXNwb25zZTsKICAgICByZWRpcmVjdFJlc3BvbnNlLnNldFJlc291
cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKTsKLSAgICByZWRpcmVj
dFJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSA9IG1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgpOworICAgIG1fcmVxdWVzdFRpbWUgPSBtb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUoKTsKIH0KICNlbmRpZgogCkBAIC04MzksMjIgKzgzNCw5IEBAIHN0YXRpYyBi
b29sIGFkZEZvcm1FbGVtZW50c1RvU291cE1lc3NhZ2UKIH0KIAogI2lmIEVOQUJMRShXRUJfVElN
SU5HKQotc3RhdGljIGludCBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkb3VibGUgcmVxdWVzdFRp
bWUpCitzdGF0aWMgaW50IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KCkKIHsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8aW50PigobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSByZXF1ZXN0
VGltZSkgKiAxMDAwLjApOwotfQotCi1zdGF0aWMgdm9pZCB3cm90ZUJvZHlDYWxsYmFjayhTb3Vw
TWVzc2FnZSosIGdwb2ludGVyIGRhdGEpCi17Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBo
YW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwotICAgIGlmICghaGFu
ZGxlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0g
aGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIGlmICghZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxv
YWRUaW1pbmcoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZC0+bV9yZXNwb25zZS5yZXNvdXJj
ZUxvYWRUaW1pbmcoKS0+c2VuZEVuZCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVz
cG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8aW50PigobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBtX3JlcXVlc3RU
aW1lKSAqIDEwMDAuMCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFN0YXJ0UmVxdWVz
dCgpCkBAIC04NjMsMTUgKzg0NSwxNSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRTdGFydFJl
cXVlc3QoKQogICAgIGlmICghZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
c2VuZFN0YXJ0ID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJj
ZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUpOwotICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5zc2xTdGFydCAhPSAtMSkgeworICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnNlbmRTdGFydCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KCk7
CisgICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNlY3VyZUNvbm5l
Y3Rpb25TdGFydCAhPSAtMSkgewogICAgICAgICAvLyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVxdWVzdFRpbWluZ1ZpZXcuanMgYXNzdW1lcwogICAgICAgICAvLyB0aGF0IFNTTCB0aW1l
IGlzIGluY2x1ZGVkIGluIGNvbm5lY3Rpb24gdGltZSBzbyBtdXN0CiAgICAgICAgIC8vIHN1YnN0
cmFjdCBoZXJlIHRoZSBTU0wgZGVsdGEgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVyIChzZWUKICAg
ICAgICAgLy8gV2ViSW5zcGVjdG9yLlJlcXVlc3RUaW1pbmdWaWV3LmNyZWF0ZVRpbWluZ1RhYmxl
IGluIHRoZQogICAgICAgICAvLyBmaWxlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMpLgogICAgICAg
ICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZW5kU3RhcnQgLT0KLSAgICAg
ICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbEVuZCAtIGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0OworICAgICAgICAgICAgZC0+
bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VjdXJlQ29ubmVjdGlvbkVuZCAtIGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNlY3VyZUNvbm5lY3Rpb25TdGFydDsK
ICAgICB9CiB9CiAKQEAgLTg4NSwyNCArODY3LDI1IEBAIHN0YXRpYyB2b2lkIG5ldHdvcmtFdmVu
dENhbGxiYWNrKFNvdXBNZXMKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpbnQgZGVsdGFUaW1lID0g
bWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+cmVxdWVzdFRpbWUpOworICAgIGludCBkZWx0YVRpbWUgPSBtaWxpc2Vjb25kc1NpbmNlUmVx
dWVzdCgpOwogICAgIHN3aXRjaCAoZXZlbnQpIHsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9S
RVNPTFZJTkc6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRu
c1N0YXJ0ID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5kb21haW5Mb29rdXBTdGFydCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUkVTT0xWRUQ6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc0VuZCA9IGRlbHRhVGltZTsKKyAgICAgICAgZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG9tYWluTG9va3VwRW5kID0gZGVsdGFUaW1l
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9DT05ORUNUSU5HOgog
ICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5jb25uZWN0U3RhcnQg
PSBkZWx0YVRpbWU7Ci0gICAgICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWlu
ZygpLT5kbnNTdGFydCAhPSAtMSkKKyAgICAgICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCktPmRvbWFpbkxvb2t1cFN0YXJ0ICE9IC0xKSB7CiAgICAgICAgICAgICAvLyBX
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVxdWVzdFRpbWluZ1ZpZXcuanMgYXNzdW1lcwog
ICAgICAgICAgICAgLy8gdGhhdCBETlMgdGltZSBpcyBpbmNsdWRlZCBpbiBjb25uZWN0aW9uIHRp
bWUgc28gbXVzdAogICAgICAgICAgICAgLy8gc3Vic3RyYWN0IGhlcmUgdGhlIEROUyBkZWx0YSB0
aGF0IHdpbGwgYmUgYWRkZWQgbGF0ZXIgKHNlZQogICAgICAgICAgICAgLy8gV2ViSW5zcGVjdG9y
LlJlcXVlc3RUaW1pbmdWaWV3LmNyZWF0ZVRpbWluZ1RhYmxlIGluIHRoZQogICAgICAgICAgICAg
Ly8gZmlsZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzKS4KICAgICAgICAgICAgIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RTdGFydCAtPQotICAgICAgICAgICAgICAg
IGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc0VuZCAtIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc1N0YXJ0OworICAgICAgICAgICAgICAgIGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxvb2t1cEVuZCAtIGQtPm1fcmVz
cG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxvb2t1cFN0YXJ0OworICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX0NPTk5FQ1RFRDoKICAg
ICAgICAgLy8gV2ViIFRpbWluZyBjb25zaWRlcnMgdGhhdCBjb25uZWN0aW9uIHRpbWUgaW52b2x2
ZXMgZG5zLCBwcm94eSAmIFRMUyBuZWdvdGlhdGlvbi4uLgpAQCAtOTE1LDEwICs4OTgsMTAgQEAg
c3RhdGljIHZvaWQgbmV0d29ya0V2ZW50Q2FsbGJhY2soU291cE1lcwogICAgICAgICBkLT5tX3Jl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5wcm94eUVuZCA9IGRlbHRhVGltZTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfVExTX0hBTkRTSEFLSU5HOgotICAg
ICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xTdGFydCA9IGRlbHRh
VGltZTsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VjdXJl
Q29ubmVjdGlvblN0YXJ0ID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdf
U09DS0VUX0NMSUVOVF9UTFNfSEFORFNIQUtFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKS0+c3NsRW5kID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZWN1cmVDb25uZWN0aW9uRW5kID0gZGVsdGFUaW1l
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9DT01QTEVURToKICAg
ICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+Y29ubmVjdEVuZCA9IGRl
bHRhVGltZTsKQEAgLTk4MCw3ICs5NjMsNiBAQCBzdGF0aWMgYm9vbCBjcmVhdGVTb3VwTWVzc2Fn
ZUZvckhhbmRsZUFuCiAgICAgZC0+bV9yZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVz
b3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7CiAgICAgZ19zaWduYWxfY29ubmVjdChkLT5tX3Nv
dXBNZXNzYWdlLmdldCgpLCAibmV0d29yay1ldmVudCIsIEdfQ0FMTEJBQ0sobmV0d29ya0V2ZW50
Q2FsbGJhY2spLCBoYW5kbGUpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2Fn
ZS5nZXQoKSwgInJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVzdGFydGVkQ2FsbGJhY2spLCBoYW5k
bGUpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgIndyb3Rl
LWJvZHkiLCBHX0NBTExCQUNLKHdyb3RlQm9keUNhbGxiYWNrKSwgaGFuZGxlKTsKICNlbmRpZgog
CiAjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDQzLCAxKQpAQCAtMTA1NCw3ICsxMDM2LDcgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdSZXF1ZXN0KAogewogI2lmIEVOQUJMRShX
RUJfVElNSU5HKQogICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQot
ICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgICAgICBtX3JlcXVlc3RUaW1lID0g
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAjZW5kaWYKIAogICAgIGlmIChkLT5tX2Zp
cnN0UmVxdWVzdC50aW1lb3V0SW50ZXJ2YWwoKSA+IDApIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlz
aW9uIDE2ODUzNykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDE0LTA1LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mgb24gd2ViIHRpbWluZy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjU3NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3Vy
Y2VSZXNwb25zZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3Vy
Y2VSZXNwb25zZT46OmRlY29kZSk6CisgICAgICAgIFRyYW5zZmVyIFJlc291cmNlTG9hZFRpbWlu
ZyB2YWx1ZXMgaWYgdGhleSBleGlzdC4KKwogMjAxNC0wNS0wOSAgTWFydGluIEhvZG92YW4gIDxt
aG9kb3Zhbi51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFtXSzJdIE1h
a2UgZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIHdvcmsgYWZ0ZXIgV2ViS2l0Mi5mcmFt
ZXdvcmsgLT4gV2ViS2l0LmZyYW1ld29yayByZW5hbWUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjg4LDYgKzY4OCwxOCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VS
ZXNwb25zZT46OmVuCiAgICAgICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXNwb25zZS5odHRwU3Rh
dHVzVGV4dCgpOwogICAgICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVzcG9uc2Uuc3VnZ2VzdGVk
RmlsZW5hbWUoKTsKICAgICB9CisgICAgUmVzb3VyY2VMb2FkVGltaW5nKiB0aW1pbmcgPSByZXNv
dXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpOworICAgIGJvb2wgaGFzUmVzb3VyY2VM
b2FkVGltaW5nID0gdGltaW5nOworICAgIGVuY29kZXIgPDwgaGFzUmVzb3VyY2VMb2FkVGltaW5n
OworICAgIGlmIChoYXNSZXNvdXJjZUxvYWRUaW1pbmcpIHsKKyAgICAgICAgZW5jb2RlciA8PCB0
aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0OworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+ZG9t
YWluTG9va3VwRW5kOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+Y29ubmVjdFN0YXJ0Owor
ICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+Y29ubmVjdEVuZDsKKyAgICAgICAgZW5jb2RlciA8
PCB0aW1pbmctPnJlcXVlc3RTdGFydDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPnJlc3Bv
bnNlU3RhcnQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3Rh
cnQ7CisgICAgfQogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlc291cmNlUmVzcG9uc2UmIHJlc291cmNl
UmVzcG9uc2UpCkBAIC03NTUsNyArNzY3LDIzIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJj
ZVJlc3BvbnNlPjo6ZGUKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzcG9u
c2Uuc2V0U3VnZ2VzdGVkRmlsZW5hbWUoc3VnZ2VzdGVkRmlsZW5hbWUpOwogICAgIH0KLQorICAg
IAorICAgIGJvb2wgaGFzUmVzb3VyY2VMb2FkVGltaW5nOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
IChoYXNSZXNvdXJjZUxvYWRUaW1pbmcpIHsKKyAgICAgICAgcmVzcG9uc2Uuc2V0UmVzb3VyY2VM
b2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpOworICAgICAgICBSZXNvdXJj
ZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpOworICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQpCisgICAg
ICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5nLT5kb21haW5Mb29rdXBFbmQpCisgICAg
ICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5nLT5jb25uZWN0U3RhcnQpCisgICAgICAg
ICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5nLT5jb25uZWN0RW5kKQorICAgICAgICAgICAg
fHwgIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+cmVxdWVzdFN0YXJ0KQorICAgICAgICAgICAgfHwg
IWRlY29kZXIuZGVjb2RlKHRpbWluZy0+cmVzcG9uc2VTdGFydCkKKyAgICAgICAgICAgIHx8ICFk
ZWNvZGVyLmRlY29kZSh0aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydCkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAogICAgIHJlc291cmNlUmVzcG9uc2UgPSByZXNw
b25zZTsKIAogICAgIHJldHVybiB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231167</attachid>
            <date>2014-05-09 11:08:20 -0700</date>
            <delta_ts>2014-05-09 11:24:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140509110756.patch</filename>
            <type>text/plain</type>
            <size>46847</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODUzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc2IEBACisyMDE0LTA1LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
b24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRkZWQgbGlua2Vy
IHN5bWJvbHMgZm9yIFJlc291cmNlTG9hZFRpbWluZy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGltaW5n
LmNwcC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgICogaW5zcGVj
dG9yL3Byb3RvY29sL05ldHdvcmsuanNvbjoKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZVRpbWlu
ZyBzdHJ1Y3R1cmUuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6
CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICAgRGVsZXRl
ZCB1bnVzZWQgc2V0TmF2aWdhdGlvblN0YXJ0IGZ1bmN0aW9uLgorICAgICAgICAqIHBhZ2UvUGVy
Zm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgVVJMLgorICAgICAgICAqIHBhZ2Uv
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25T
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNw
b25zZUVuZCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJp
YWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6
OnJlc3BvbnNlU3RhcnQpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6CisgICAg
ICAgIERlbGV0ZWQgcmVzcG9uc2VTdGFydCBiZWNhdXNlIGl0IGlzIG5vdCBpbiB0aGUgc3BlYy4K
KyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBl
cmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUpOgorICAg
ICAgICBVc2UgbmF2aWdhdGlvblN0YXJ0IGFzIGJhc2UgZm9yIHJlc291cmNlIGxvYWQgdGltZXMu
CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGw6CisgICAgICAgIFVwZGF0ZWQg
c3BlYyBVUkwuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oOgorICAg
ICAgICBSZW1vdmVkIHVudXNlZCBjbGFzcyBkZWNsYXJhdGlvbnMuCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICBNb3ZlZCBzb3VwIHJlcXVlc3Qg
dGltZSBmcm9tIFJlc291cmNlTG9hZFRpbWluZyB0byBSZXNvdXJjZUhhbmRsZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6ZGVlcENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6UmVzb3VyY2VMb2FkVGltaW5nKToKKyAgICAgICAgVXBkYXRlZCBSZXNv
dXJjZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbik6CisgICAgICAgIENvbGxlY3QgdGlt
aW5nIGRhdGEuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZl
UmVzcG9uc2U6XSk6CisgICAgICAgIFNhdmUgdGltaW5nIGRhdGEgdG8gYSBSZXNvdXJjZUxvYWRU
aW1pbmcgb24gdGhlIFJlc291cmNlUmVzcG9uc2UuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFk
ZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6bWlsaXNlY29uZHNTaW5jZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmRpZFN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpu
ZXR3b3JrRXZlbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3VwTWVzc2Fn
ZUZvckhhbmRsZUFuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnNlbmRQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5n
IG1lbWJlciB2YXJpYWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxi
YWNrKTogRGVsZXRlZC4KKwogMjAxNC0wNS0wOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTVNFXVtNYWNdIERlc3Ryb3kgdGhlIEFWU3RyZWFtRGF0YVBhcnNl
ciB3aGVuIHRoZSBTb3VyY2VCdWZmZXIgaXMgcmVtb3ZlZCBmcm9tIGl0cyBNZWRpYVNvdXJjZS4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE5MSw3ICsyMTkxLDYgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJh
c2UuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmNwcAotICAgIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNzcxLDYgKzc3MSw3IEBAIF9fWk43
V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkOGFkZFR5cGUKIF9fWk43V2ViQ29yZTE4UGxhdGZv
cm1QYXN0ZWJvYXJkOGdldFR5cGVzRVJOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8x
NUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQ4c2V0
VHlwZXNFUktOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxv
d0VFRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmRDMUVSS04zV1RGNlN0cmluZ0UK
K19fWk43V2ViQ29yZTE4UmVzb3VyY2VMb2FkVGltaW5nQzFFdgogX19aTjdXZWJDb3JlMThTdHls
ZVNoZWV0Q29udGVudHMxMXBhcnNlU3RyaW5nRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MThTdHlsZVNoZWV0Q29udGVudHNDMUVQTlNfMTVTdHlsZVJ1bGVJbXBvcnRFUktOM1dURjZTdHJp
bmdFUktOU18xNkNTU1BhcnNlckNvbnRleHRFCiBfX1pON1dlYkNvcmUxOFN0eWxlU2hlZXRDb250
ZW50c0QxRXYKQEAgLTg0NCw2ICs4NDUsNyBAQCBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9u
c2VCYXNlMTdzZXRICiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzZXRIVFRQ
U3RhdHVzVGV4dEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25z
ZUJhc2UxOHNldEhUVFBIZWFkZXJGaWVsZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFUktOUzFfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxOXNldFRleHRFbmNvZGlu
Z05hbWVFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MjFzZXRSZXNvdXJjZUxvYWRUaW1pbmdFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMThSZXNvdXJjZUxv
YWRUaW1pbmdFRUUKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dl
c3RlZEZpbGVuYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTI0c2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoRXgKIF9fWk43V2ViQ29yZTIwUmVzb3Vy
Y2VSZXNwb25zZUJhc2U2c2V0VVJMRVJLTlNfM1VSTEUKQEAgLTE3NTUsNiArMTc1Nyw3IEBAIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTVodHQKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTZodHRwSGVhZGVyRmllbGRzRXYKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTZ0ZXh0RW5jb2RpbmdOYW1lRXYKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTdzdWdnZXN0ZWRGaWxlbmFtZUV2CitfX1pOSzdXZWJDb3JlMjBS
ZXNvdXJjZVJlc3BvbnNlQmFzZTE4cmVzb3VyY2VMb2FkVGltaW5nRXYKIF9fWk5LN1dlYkNvcmUy
MFJlc291cmNlUmVzcG9uc2VCYXNlMjFleHBlY3RlZENvbnRlbnRMZW5ndGhFdgogX19aTks3V2Vi
Q29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UzdXJsRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNl
UmVzcG9uc2VCYXNlNmlzSFRUUEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTI5NzksNyArMjk3OSw2IEBACiAJCTg1RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovOyB9
OwogCQk4NUZGMzE1QjBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU5MEFBRkJG
Q0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tICovOyB9OwogCQk4NjFDMkVBNDEzRkI0
RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBE
b2N1bWVudExvYWRUaW1pbmcuY3BwICovOyB9OwotCQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIg
LyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2MUMyRUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRU
aW1pbmcuY3BwICovOyB9OwogCQk4NjJGMTI5RTE4QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVz
ZXJBY3Rpdml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODYyRjEyOUQxOEMxNTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjJGMTJBMDE4
QzFERDAyMDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyog
SHlzdGVyZXNpc0FjdGl2aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODY1MTJFREUxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuY3BwICovOyB9OwpAQCAtOTk4OSw3ICs5OTg4LDYgQEAKIAkJODVGRjMxNTgwQUFGQkZDQjAw
Mzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUtleWJvYXJkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERv
Y3VtZW50TG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEb2N1bWVudExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4
NjFDMkVBNTEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFRpbWluZy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBD
b3VudGVkVXNlckFjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
dW50ZWRVc2VyQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYyRjEy
OUYxOEMxRENFNDAwNUM1NEFGIC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIeXN0ZXJlc2lzQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNjEwNiw3ICsxNjEwNCw2IEBACiAJCQkJNTE0Qzc2NjYwQ0U5MjNBMTAwN0VGM0NEIC8qIFJl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCAqLywKIAkJCQk1MUU0MTQzMjE2QTY1OTUxMDBDNjMzQzcg
LyogUmVzb3VyY2VIYW5kbGVUeXBlcy5oICovLAogCQkJCUU0Mjk1RkEzMTJCMDYxNEUwMEQxQUNF
MCAvKiBSZXNvdXJjZUxvYWRQcmlvcml0eS5oICovLAotCQkJCTg2MUMyRUE1MTNGQjRGRkYwMDA2
MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovLAogCQkJCThBODFCRjg0MTFEQ0ZEOTAw
MERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLywKIAkJCQk1MTRDNzY2NzBDRTkyM0Ex
MDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAgKi8sCiAJCQkJNTE0Qzc2NjgwQ0U5
MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuaCAqLywKQEAgLTI4ODMzLDcgKzI4
ODMwLDYgQEAKIAkJCQk1MUFBM0Y2RjBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5NzNFMzI1NjEwODgzQjdDMDA1QkM0OTMgLyogUmVz
b3VyY2VMb2FkTm90aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDBDRTU4RjgxMjVFNEND
MjAwRjNGMTk5IC8qIFJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxNEM3NjdDMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVl
c3RCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDZFMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY1MzBD
RTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMywxOCArMjAz
LDE0IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKIHN0YXRpYyBQ
YXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5n
PiBidWlsZE9iamVjdEZvclRpbWluZyhjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZywg
RG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsKICAgICByZXR1cm4gSW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRSZXF1
ZXN0VGltZShsb2FkZXItPnRpbWluZygpLT5tb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZSh0
aW1pbmcuY29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoMCkpKQotICAgICAg
ICAuc2V0UHJveHlTdGFydCh0aW1pbmcucHJveHlTdGFydCkKLSAgICAgICAgLnNldFByb3h5RW5k
KHRpbWluZy5wcm94eUVuZCkKLSAgICAgICAgLnNldERuc1N0YXJ0KHRpbWluZy5kbnNTdGFydCkK
LSAgICAgICAgLnNldERuc0VuZCh0aW1pbmcuZG5zRW5kKQorICAgICAgICAuc2V0TmF2aWdhdGlv
blN0YXJ0KGxvYWRlci0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFydCgpKQorICAgICAgICAuc2V0
RG9tYWluTG9va3VwU3RhcnQodGltaW5nLmRvbWFpbkxvb2t1cFN0YXJ0KQorICAgICAgICAuc2V0
RG9tYWluTG9va3VwRW5kKHRpbWluZy5kb21haW5Mb29rdXBFbmQpCiAgICAgICAgIC5zZXRDb25u
ZWN0U3RhcnQodGltaW5nLmNvbm5lY3RTdGFydCkKICAgICAgICAgLnNldENvbm5lY3RFbmQodGlt
aW5nLmNvbm5lY3RFbmQpCi0gICAgICAgIC5zZXRTc2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0g
ICAgICAgIC5zZXRTc2xFbmQodGltaW5nLnNzbEVuZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0
aW1pbmcuc2VuZFN0YXJ0KQotICAgICAgICAuc2V0U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAg
ICAgICAgLnNldFJlY2VpdmVIZWFkZXJzRW5kKHRpbWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAg
ICAgICAgLnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydCh0aW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0
YXJ0KQorICAgICAgICAuc2V0UmVxdWVzdFN0YXJ0KHRpbWluZy5yZXF1ZXN0U3RhcnQpCisgICAg
ICAgIC5zZXRSZXNwb25zZVN0YXJ0KHRpbWluZy5yZXNwb25zZVN0YXJ0KQogICAgICAgICAucmVs
ZWFzZSgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0
d29yay5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9OZXR3b3JrLmpzb24JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTMyLDE4ICszMiwx
NCBAQAogICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJUaW1pbmcgaW5mb3JtYXRpb24gZm9yIHRoZSByZXF1ZXN0LiIsCiAgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RUaW1l
IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRpbWluZydzIHJlcXVlc3RUaW1l
IGlzIGEgYmFzZWxpbmUgaW4gc2Vjb25kcywgd2hpbGUgdGhlIG90aGVyIG51bWJlcnMgYXJlIHRp
Y2tzIGluIG1pbGxpc2Vjb25kcyByZWxhdGl2ZWx5IHRvIHRoaXMgcmVxdWVzdFRpbWUuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJveHlTdGFydCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlc29sdmluZyBwcm94eS4iIH0sCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJwcm94eUVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJGaW5pc2hlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiZG5zU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRl
ZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRu
c0VuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRk
cmVzcyByZXNvbHZlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hdmlnYXRpb25T
dGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyBuYXZpZ2F0
aW9uU3RhcnQgaXMgYSBiYXNlbGluZSBpbiBzZWNvbmRzLCB3aGlsZSB0aGUgb3RoZXIgbnVtYmVy
cyBhcmUgdGlja3MgaW4gbWlsbGlzZWNvbmRzIHJlbGF0aXZlbHkgdG8gdGhpcyBuYXZpZ2F0aW9u
U3RhcnQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9tYWluTG9va3VwU3RhcnQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBETlMgYWRkcmVzcyBy
ZXNvbHZlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cEVuZCIs
ICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRkcmVzcyBy
ZXNvbHZlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RTdGFydCIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5lY3RpbmcgdG8gdGhl
IHJlbW90ZSBob3N0LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RFbmQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29ubmVjdGVkIHRvIHRoZSByZW1v
dGUgaG9zdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzc2xTdGFydCIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRl
c2NyaXB0aW9uIjogIkZpbmlzaGVkIFNTTCBoYW5kc2hha2UuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAic2VuZFN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjog
IlN0YXJ0ZWQgc2VuZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNlbmRFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgc2Vu
ZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlY2VpdmVIZWFk
ZXJzRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHJlY2Vp
dmluZyByZXNwb25zZSBoZWFkZXJzLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Vj
dXJlQ29ubmVjdGlvblN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0
YXJ0ZWQgU1NMIGhhbmRzaGFrZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1
ZXN0U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBzZW5k
aW5nIHJlcXVlc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzcG9uc2VTdGFy
dCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlY2VpdmluZyBy
ZXNwb25zZSBoZWFkZXJzLiIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LAogICAgICAgICB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRp
bWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDEyICs3Niw2IEBAIHZvaWQgRG9jdW1lbnRM
b2FkVGltaW5nOjptYXJrTmF2aWdhdGlvblMKICAgICBtX3JlZmVyZW5jZVdhbGxUaW1lID0gY3Vy
cmVudFRpbWUoKTsKIH0KIAotdm9pZCBEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25T
dGFydChkb3VibGUgbmF2aWdhdGlvblN0YXJ0KQotewotICAgIEFTU0VSVChtX3JlZmVyZW5jZU1v
bm90b25pY1RpbWUgJiYgbV9yZWZlcmVuY2VXYWxsVGltZSk7Ci0gICAgbV9uYXZpZ2F0aW9uU3Rh
cnQgPSBuYXZpZ2F0aW9uU3RhcnQ7Ci19Ci0KIHZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjphZGRS
ZWRpcmVjdChjb25zdCBVUkwmIHJlZGlyZWN0aW5nVXJsLCBjb25zdCBVUkwmIHJlZGlyZWN0ZWRV
cmwpCiB7CiAgICAgbV9yZWRpcmVjdENvdW50Kys7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcg
KzQxLDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBtb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGlt
ZShkb3VibGUpIGNvbnN0OwogCiAgICAgdm9pZCBtYXJrTmF2aWdhdGlvblN0YXJ0KCk7Ci0gICAg
dm9pZCBzZXROYXZpZ2F0aW9uU3RhcnQoZG91YmxlKTsKICAgICB2b2lkIGFkZFJlZGlyZWN0KGNv
bnN0IFVSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVkaXJlY3RlZFVybCk7CiAKICAg
ICB2b2lkIG1hcmtVbmxvYWRFdmVudFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZS5pZGwJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLS8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViVGltaW5n
LworLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3JnL2hnL3dlYnBlcmYvcmF3LWZpbGUvdGlwL3Nw
ZWNzL05hdmlnYXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRtbAogWwogICAgIENvbmRpdGlvbmFsPVdF
Ql9USU1JTkcsCiAgICAgRXZlbnRUYXJnZXQsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyMCwxMCArMTIwLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nOjpkb21haW4KICAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKICAgICAgICAg
cmV0dXJuIDAuMDsKIAotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRuc1N0YXJ0IDwg
MCkKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA8IDAp
CiAgICAgICAgIHJldHVybiBmZXRjaFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1l
VG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+ZG5zU3RhcnQpOworICAgIHJldHVybiBy
ZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5Mb29rdXBT
dGFydCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29r
dXBFbmQoKSBjb25zdApAQCAtMTMxLDEwICsxMzEsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmRvbWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAg
ICAgICByZXR1cm4gMC4wOwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zRW5k
IDwgMCkKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPCAw
KQogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNv
dXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNFbmQpOworICAgIHJl
dHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5M
b29rdXBFbmQpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVj
dFN0YXJ0KCkgY29uc3QKQEAgLTE0OCw4ICsxNDgsOCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6Y29ubmVjCiAKICAgICAvLyBjb25uZWN0U3RhcnQgaW5jbHVkZXMgYW55IERO
UyB0aW1lLCBzbyB3ZSBtYXkgbmVlZCB0byB0cmltIHRoYXQgb2ZmLgogICAgIGludCBjb25uZWN0
U3RhcnQgPSBtX3RpbWluZy0+Y29ubmVjdFN0YXJ0OwotICAgIGlmIChtX3RpbWluZy0+ZG5zRW5k
ID49IDApCi0gICAgICAgIGNvbm5lY3RTdGFydCA9IG1fdGltaW5nLT5kbnNFbmQ7CisgICAgaWYg
KG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPj0gMCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0g
bV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZDsKIAogICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0Rv
Y3VtZW50TWlsbGlzZWNvbmRzKGNvbm5lY3RTdGFydCk7CiB9CkBAIC0xNzEsMTAgKzE3MSwxMCBA
QCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6c2VjdXJlCiAgICAgaWYgKCFtX3No
b3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGlt
aW5nIHx8IG1fdGltaW5nLT5zc2xTdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBu
ZWdvdGlhdGVkLgorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNlY3VyZUNvbm5lY3Rp
b25TdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBuZWdvdGlhdGVkLgogICAgICAg
ICByZXR1cm4gMC4wOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNl
Y29uZHMobV90aW1pbmctPnNzbFN0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1
bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0KTsKIH0KIAog
ZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CkBA
IC0xODUsMjUgKzE4NSwxMSBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVx
dWVzCiAgICAgaWYgKCFtX3RpbWluZykKICAgICAgICAgcmV0dXJuIGNvbm5lY3RFbmQoKTsKIAot
ICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5z
ZW5kU3RhcnQpOwotfQotCi1kb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzcG9u
c2VTdGFydCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCi0gICAg
ICAgIHJldHVybiAwLjA7Ci0KLSAgICBpZiAoIW1fdGltaW5nKQotICAgICAgICByZXR1cm4gcmVx
dWVzdFN0YXJ0KCk7Ci0gICAgLy8gRklYTUU6IFRoaXMgbnVtYmVyIGlzbid0IGV4YWN0bHkgY29y
cmVjdC4gU2VlIHRoZSBub3RlcyBpbiBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgp
LgotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5n
LT5yZWNlaXZlSGVhZGVyc0VuZCk7CisgICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRN
aWxsaXNlY29uZHMobV90aW1pbmctPnJlcXVlc3RTdGFydFRpbWUpOwogfQogCiBkb3VibGUgUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzcG9uc2VFbmQoKSBjb25zdAogewotICAgIGlmICgh
bV9maW5pc2hUaW1lKQotICAgICAgICByZXR1cm4gcmVzcG9uc2VTdGFydCgpOwotCiAgICAgcmV0
dXJuIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3Vt
ZW50LmdldCgpLCBtX2ZpbmlzaFRpbWUpOwogfQogCkBAIC0yMTEsNyArMTk3LDcgQEAgZG91Ymxl
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc291cgogewogICAgIGlmICghZGVsdGFNaWxs
aXNlY29uZHMpCiAgICAgICAgIHJldHVybiAwLjA7Ci0gICAgcmV0dXJuIG1vbm90b25pY1RpbWVU
b0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3VtZW50LmdldCgpLCBtX3RpbWlu
Zy0+cmVxdWVzdFRpbWUpICsgZGVsdGFNaWxsaXNlY29uZHM7CisgICAgcmV0dXJuIG1vbm90b25p
Y1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3VtZW50LmdldCgpLCBt
X3RpbWluZy0+cmVxdWVzdFN0YXJ0VGltZSkgKyBkZWx0YU1pbGxpc2Vjb25kczsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw3ICs2NSw2IEBAIHB1YmxpYzoKICAgICBkb3VibGUgY29ubmVjdEVuZCgpIGNvbnN0OwogICAg
IGRvdWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVxdWVz
dFN0YXJ0KCkgY29uc3Q7Ci0gICAgZG91YmxlIHJlc3BvbnNlU3RhcnQoKSBjb25zdDsKICAgICBk
b3VibGUgcmVzcG9uc2VFbmQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Jlc291cmNl
KCkgeyByZXR1cm4gdHJ1ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC00Myw2ICs0Myw1IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBk
b3VibGUgY29ubmVjdEVuZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVz
dHJpY3RlZCBkb3VibGUgcmVxdWVzdFN0YXJ0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZG91YmxlIHJlc3BvbnNlU3RhcnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
cmVzdHJpY3RlZCBkb3VibGUgcmVzcG9uc2VFbmQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAs
MTEgKzEzMCwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAK
ICAgICAvLyBUaGlzIHdpbGwgYmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3Jt
ZWQuCiAgICAgLy8gUmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5k
aWNhdGVzIG5vIEROUywgd2UgImJhY2tmaWxsIiB3aXRoIGZldGNoU3RhcnQuCi0gICAgaW50IGRu
c1N0YXJ0ID0gdGltaW5nLT5kbnNTdGFydDsKLSAgICBpZiAoZG5zU3RhcnQgPCAwKQorICAgIGlu
dCBkb21haW5Mb29rdXBTdGFydCA9IHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQ7CisgICAgaWYg
KGRvbWFpbkxvb2t1cFN0YXJ0IDwgMCkKICAgICAgICAgcmV0dXJuIGZldGNoU3RhcnQoKTsKIAot
ICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGRuc1N0YXJ0KTsK
KyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShkb21haW5Mb29r
dXBTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG9t
YWluTG9va3VwRW5kKCkgY29uc3QKQEAgLTE0NSwxMSArMTQ1LDExIEBAIHVuc2lnbmVkIGxvbmcg
bG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG8KIAogICAgIC8vIFRoaXMgd2lsbCBiZSAtMSB3aGVu
IGEgRE5TIHJlcXVlc3QgaXMgbm90IHBlcmZvcm1lZC4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBv
c2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8gRE5TLCB3ZSAiYmFja2ZpbGwi
IHdpdGggZG9tYWluTG9va3VwU3RhcnQuCi0gICAgaW50IGRuc0VuZCA9IHRpbWluZy0+ZG5zRW5k
OwotICAgIGlmIChkbnNFbmQgPCAwKQorICAgIGludCBkb21haW5Mb29rdXBFbmQgPSB0aW1pbmct
PmRvbWFpbkxvb2t1cEVuZDsKKyAgICBpZiAoZG9tYWluTG9va3VwRW5kIDwgMCkKICAgICAgICAg
cmV0dXJuIGRvbWFpbkxvb2t1cFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGlt
ZVJlbGF0aXZlVG9BYnNvbHV0ZShkbnNFbmQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1l
UmVsYXRpdmVUb0Fic29sdXRlKGRvbWFpbkxvb2t1cEVuZCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcg
bG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6Y29ubmVjdFN0YXJ0KCkgY29uc3QKQEAgLTE3MCw4ICsx
NzAsOCBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvCiAKICAgICAv
LyBSZXNvdXJjZUxvYWRUaW1pbmcncyBjb25uZWN0IHBoYXNlIGluY2x1ZGVzIEROUywgaG93ZXZl
ciBOYXZpZ2F0aW9uIFRpbWluZydzCiAgICAgLy8gY29ubmVjdCBwaGFzZSBzaG91bGQgbm90LiBT
byBpZiB0aGVyZSBpcyBETlMgdGltZSwgdHJpbSBpdCBmcm9tIHRoZSBzdGFydC4KLSAgICBpZiAo
dGltaW5nLT5kbnNFbmQgPj0gMCAmJiB0aW1pbmctPmRuc0VuZCA+IGNvbm5lY3RTdGFydCkKLSAg
ICAgICAgY29ubmVjdFN0YXJ0ID0gdGltaW5nLT5kbnNFbmQ7CisgICAgaWYgKHRpbWluZy0+ZG9t
YWluTG9va3VwRW5kID49IDAgJiYgdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPiBjb25uZWN0U3Rh
cnQpCisgICAgICAgIGNvbm5lY3RTdGFydCA9IHRpbWluZy0+ZG9tYWluTG9va3VwRW5kOwogCiAg
ICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoY29ubmVjdFN0YXJ0
KTsKIH0KQEAgLTIwNSwxMSArMjA1LDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5j
ZVRpbWluZzo6c2UKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBp
bnQgc3NsU3RhcnQgPSB0aW1pbmctPnNzbFN0YXJ0OwotICAgIGlmIChzc2xTdGFydCA8IDApCisg
ICAgaW50IHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0
YXJ0OworICAgIGlmIChzZWN1cmVDb25uZWN0aW9uU3RhcnQgPCAwKQogICAgICAgICByZXR1cm4g
MDsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHNzbFN0
YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShzZWN1
cmVDb25uZWN0aW9uU3RhcnQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CkBAIC0yMTgsOCArMjE4LDggQEAgdW5zaWduZWQg
bG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZQogICAgIGlmICghdGltaW5nKQogICAgICAg
ICByZXR1cm4gY29ubmVjdEVuZCgpOwogCi0gICAgQVNTRVJUKHRpbWluZy0+c2VuZFN0YXJ0ID49
IDApOwotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWlu
Zy0+c2VuZFN0YXJ0KTsKKyAgICBBU1NFUlQodGltaW5nLT5yZXF1ZXN0U3RhcnQgPj0gMCk7Cisg
ICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5yZXF1
ZXN0U3RhcnQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJl
c3BvbnNlU3RhcnQoKSBjb25zdApAQCAtMjI4LDE0ICsyMjgsOCBAQCB1bnNpZ25lZCBsb25nIGxv
bmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVy
biByZXF1ZXN0U3RhcnQoKTsKIAotICAgIC8vIEZJWE1FOiBSZXNwb25zZSBzdGFydCBuZWVkcyB0
byBiZSB0aGUgdGltZSBvZiB0aGUgZmlyc3QgcmVjZWl2ZWQgYnl0ZS4KLSAgICAvLyBIb3dldmVy
LCB0aGUgUmVzb3VyY2VMb2FkVGltaW5nIEFQSSBjdXJyZW50bHkgb25seSBzdXBwb3J0cyB0aGUg
dGltZQotICAgIC8vIHRoZSBsYXN0IGhlYWRlciBieXRlIHdhcyByZWNlaXZlZC4gRm9yIG1hbnkg
cmVzcG9uc2VzIHdpdGggcmVhc29uYWJsZQotICAgIC8vIHNpemVkIGNvb2tpZXMsIHRoZSBIVFRQ
IGhlYWRlcnMgZml0IGludG8gYSBzaW5nbGUgcGFja2V0IHNvIHRoaXMgdGltZQotICAgIC8vIGlz
IGJhc2ljYWxseSBlcXVpdmFsZW50LiBCdXQgZm9yIHNvbWUgcmVzcG9uc2VzLCBwYXJ0aWN1bGFy
bHkgdGhvc2Ugd2l0aAotICAgIC8vIGhlYWRlcnMgbGFyZ2VyIHRoYW4gYSBzaW5nbGUgcGFja2V0
LCB0aGlzIHRpbWUgd2lsbCBiZSB0b28gbGF0ZS4KLSAgICBBU1NFUlQodGltaW5nLT5yZWNlaXZl
SGVhZGVyc0VuZCA+PSAwKTsKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9B
YnNvbHV0ZSh0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kKTsKKyAgICBBU1NFUlQodGltaW5nLT5y
ZXNwb25zZVN0YXJ0ID49IDApOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVU
b0Fic29sdXRlKHRpbWluZy0+cmVzcG9uc2VTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9u
ZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VFbmQoKSBjb25zdApAQCAtMzUxLDkgKzM0NSw3
IEBAIFJlc291cmNlTG9hZFRpbWluZyogUGVyZm9ybWFuY2VUaW1pbmc6OnIKIHVuc2lnbmVkIGxv
bmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNv
bHV0ZShpbnQgcmVsYXRpdmVNaWxsaXNlY29uZHMpIGNvbnN0CiB7CiAgICAgQVNTRVJUKHJlbGF0
aXZlTWlsbGlzZWNvbmRzID49IDApOwotICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVzb3VyY2VU
aW1pbmcgPSByZXNvdXJjZUxvYWRUaW1pbmcoKTsKLSAgICBBU1NFUlQocmVzb3VyY2VUaW1pbmcp
OwotICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHJlc291cmNl
VGltaW5nLT5jb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZShyZWxhdGl2ZU1p
bGxpc2Vjb25kcykpOworICAgIHJldHVybiBuYXZpZ2F0aW9uU3RhcnQoKSArIHJlbGF0aXZlTWls
bGlzZWNvbmRzOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om1v
bm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoZG91YmxlIG1vbm90b25pY1NlY29uZHMp
IGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWlu
Zy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotLy8gU2VlOiBodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisv
LyBTZWU6IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3Mv
TmF2aWdhdGlvblRpbWluZy9PdmVydmlldy5odG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJ
TUlORywKIF0gaW50ZXJmYWNlIFBlcmZvcm1hbmNlVGltaW5nIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgJKHJldmlzaW9uIDE2ODM5MikK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsOSArMzcsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IEhUVFBIZWFkZXJNYXA7Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKLQogZW51bSBDb250
ZW50RGlzcG9zaXRpb25UeXBlIHsKICAgICBDb250ZW50RGlzcG9zaXRpb25Ob25lLAogICAgIENv
bnRlbnREaXNwb3NpdGlvbklubGluZSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMTkwLDYgKzE5MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRIb3N0QWxs
b3dzQW55SFRUUFNDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgdm9pZCBz
ZXRDbGllbnRDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcmIGhvc3QsIEdUbHNDZXJ0aWZpY2F0ZSop
OwogICAgIHN0YXRpYyB2b2lkIHNldElnbm9yZVNTTEVycm9ycyhib29sKTsKKyAgICBkb3VibGUg
bV9yZXF1ZXN0VGltZTsKICNlbmRpZgogCiAgICAgLy8gVXNlZCB0byB3b3JrIGFyb3VuZCB0aGUg
ZmFjdCB0aGF0IHlvdSBkb24ndCBnZXQgYW55IG1vcmUgTlNVUkxDb25uZWN0aW9uIGNhbGxiYWNr
cyB1bnRpbCB5b3UgcmV0dXJuIGZyb20gdGhlIG9uZSB5b3UncmUgaW4uCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcu
Y3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlTG9hZFRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMzYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWRvdWJsZSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZlcnRSZXNvdXJjZUxv
YWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3QKLXsKLSAg
ICByZXR1cm4gcmVxdWVzdFRpbWUgKyBkZWx0YU1pbGxpc2Vjb25kcyAvIDEwMDAuMDsKLX0KLQot
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1p
bmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlTG9hZFRpbWluZy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3
NiArNDQsNTAgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBk
ZWVwQ29weSgpCiAgICAgewogICAgICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiB0aW1p
bmcgPSBjcmVhdGUoKTsKLSAgICAgICAgdGltaW5nLT5yZXF1ZXN0VGltZSA9IHJlcXVlc3RUaW1l
OwotICAgICAgICB0aW1pbmctPnByb3h5U3RhcnQgPSBwcm94eVN0YXJ0OwotICAgICAgICB0aW1p
bmctPnByb3h5RW5kID0gcHJveHlFbmQ7Ci0gICAgICAgIHRpbWluZy0+ZG5zU3RhcnQgPSBkbnNT
dGFydDsKLSAgICAgICAgdGltaW5nLT5kbnNFbmQgPSBkbnNFbmQ7CisgICAgICAgIHRpbWluZy0+
ZG9tYWluTG9va3VwU3RhcnQgPSBkb21haW5Mb29rdXBTdGFydDsKKyAgICAgICAgdGltaW5nLT5k
b21haW5Mb29rdXBFbmQgPSBkb21haW5Mb29rdXBFbmQ7CiAgICAgICAgIHRpbWluZy0+Y29ubmVj
dFN0YXJ0ID0gY29ubmVjdFN0YXJ0OwogICAgICAgICB0aW1pbmctPmNvbm5lY3RFbmQgPSBjb25u
ZWN0RW5kOwotICAgICAgICB0aW1pbmctPnNlbmRTdGFydCA9IHNlbmRTdGFydDsKLSAgICAgICAg
dGltaW5nLT5zZW5kRW5kID0gc2VuZEVuZDsKLSAgICAgICAgdGltaW5nLT5yZWNlaXZlSGVhZGVy
c0VuZCA9IHJlY2VpdmVIZWFkZXJzRW5kOwotICAgICAgICB0aW1pbmctPnNzbFN0YXJ0ID0gc3Ns
U3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+c3NsRW5kID0gc3NsRW5kOworICAgICAgICB0aW1pbmct
PnJlcXVlc3RTdGFydCA9IHJlcXVlc3RTdGFydDsKKyAgICAgICAgdGltaW5nLT5yZXNwb25zZVN0
YXJ0ID0gcmVzcG9uc2VTdGFydDsKKyAgICAgICAgdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3Rh
cnQgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7CiAgICAgICAgIHJldHVybiB0aW1pbmcucmVsZWFz
ZSgpOwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZUxvYWRUaW1p
bmcmIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHJlcXVlc3RUaW1lID09IG90
aGVyLnJlcXVlc3RUaW1lCi0gICAgICAgICAgICAmJiBwcm94eVN0YXJ0ID09IG90aGVyLnByb3h5
U3RhcnQKLSAgICAgICAgICAgICYmIHByb3h5RW5kID09IG90aGVyLnByb3h5RW5kCi0gICAgICAg
ICAgICAmJiBkbnNTdGFydCA9PSBvdGhlci5kbnNTdGFydAotICAgICAgICAgICAgJiYgZG5zRW5k
ID09IG90aGVyLmRuc0VuZAorICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQgPT0gb3Ro
ZXIuZG9tYWluTG9va3VwU3RhcnQKKyAgICAgICAgICAgICYmIGRvbWFpbkxvb2t1cEVuZCA9PSBv
dGhlci5kb21haW5Mb29rdXBFbmQKICAgICAgICAgICAgICYmIGNvbm5lY3RTdGFydCA9PSBvdGhl
ci5jb25uZWN0U3RhcnQKICAgICAgICAgICAgICYmIGNvbm5lY3RFbmQgPT0gb3RoZXIuY29ubmVj
dEVuZAotICAgICAgICAgICAgJiYgc2VuZFN0YXJ0ID09IG90aGVyLnNlbmRTdGFydAotICAgICAg
ICAgICAgJiYgc2VuZEVuZCA9PSBvdGhlci5zZW5kRW5kCi0gICAgICAgICAgICAmJiByZWNlaXZl
SGVhZGVyc0VuZCA9PSBvdGhlci5yZWNlaXZlSGVhZGVyc0VuZAotICAgICAgICAgICAgJiYgc3Ns
U3RhcnQgPT0gb3RoZXIuc3NsU3RhcnQKLSAgICAgICAgICAgICYmIHNzbEVuZCA9PSBvdGhlci5z
c2xFbmQ7CisgICAgICAgICAgICAmJiByZXF1ZXN0U3RhcnQgPT0gb3RoZXIucmVxdWVzdFN0YXJ0
CisgICAgICAgICAgICAmJiByZXNwb25zZVN0YXJ0ID09IG90aGVyLnJlc3BvbnNlU3RhcnQKKyAg
ICAgICAgICAgICYmIHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9PSBvdGhlci5zZWN1cmVDb25uZWN0
aW9uU3RhcnQ7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlTG9h
ZFRpbWluZyYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBv
dGhlcik7CiAgICAgfQotCi0gICAgLy8gV2Ugd2FudCB0byBwcmVzZW50IGEgdW5pZmllZCB0aW1l
bGluZSB0byBKYXZhc2NyaXB0LiBVc2luZyB3YWxsdGltZSBpcyBwcm9ibGVtYXRpYywgYmVjYXVz
ZSB0aGUgY2xvY2sgbWF5IHNrZXcgd2hpbGUgcmVzb3VyY2VzCi0gICAgLy8gbG9hZC4gVG8gcHJl
dmVudCB0aGF0IHNrZXcsIHdlIHJlY29yZCBhIHNpbmdsZSByZWZlcmVuY2Ugd2FsbHRpbWUgd2hl
biByb290IGRvY3VtZW50IG5hdmlnYXRpb24gYmVnaW5zLiBBbGwgb3RoZXIgdGltZXMgYXJlCi0g
ICAgLy8gcmVjb3JkZWQgdXNpbmcgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkuIFdoZW4g
YSB0aW1lIG5lZWRzIHRvIGJlIHByZXNlbnRlZCB0byBKYXZhc2NyaXB0LCB3ZSBidWlsZCBhIHBz
ZXVkby13YWxsdGltZQotICAgIC8vIHVzaW5nIHRoZSBmb2xsb3dpbmcgZXF1YXRpb246Ci0gICAg
Ly8gICBwc2V1ZG8gdGltZSA9IGRvY3VtZW50IHdhbGwgcmVmZXJlbmNlICsgKHJlc291cmNlIHJl
cXVlc3QgdGltZSAtIGRvY3VtZW50IG1vbm90b25pYyByZWZlcmVuY2UpICsgZGVsdGFNaWxsaXNl
Y29uZHMgLyAxMDAwLjAuCi0gICAgZG91YmxlIGNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25v
dG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7Ci0KLSAgICBkb3VibGUgcmVx
dWVzdFRpbWU7IC8vIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIHdoZW4gdGhlIHBvcnQg
c3RhcnRlZCBoYW5kbGluZyB0aGlzIHJlcXVlc3QuCi0gICAgaW50IHByb3h5U3RhcnQ7IC8vIFRo
ZSByZXN0IG9mIHRoZXNlIGFyZSBtaWxsaXNlY29uZCBkZWx0YXMsIHVzaW5nIG1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgpLCBmcm9tIHJlcXVlc3RUaW1lLgotICAgIGludCBwcm94eUVuZDsK
LSAgICBpbnQgZG5zU3RhcnQ7Ci0gICAgaW50IGRuc0VuZDsKKyAgICAKKyAgICAvLyBUaGVzZSBh
cmUgbWlsbGlzZWNvbmQgZGVsdGFzIGZyb20gdGhlIG5hdmlnYXRpb24gc3RhcnQuCisgICAgaW50
IGRvbWFpbkxvb2t1cFN0YXJ0OworICAgIGludCBkb21haW5Mb29rdXBFbmQ7CiAgICAgaW50IGNv
bm5lY3RTdGFydDsKICAgICBpbnQgY29ubmVjdEVuZDsKLSAgICBpbnQgc2VuZFN0YXJ0OwotICAg
IGludCBzZW5kRW5kOwotICAgIGludCByZWNlaXZlSGVhZGVyc0VuZDsKLSAgICBpbnQgc3NsU3Rh
cnQ7Ci0gICAgaW50IHNzbEVuZDsKLQorICAgIGludCByZXF1ZXN0U3RhcnQ7CisgICAgaW50IHJl
c3BvbnNlU3RhcnQ7CisgICAgaW50IHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKKyAgICAKIHByaXZh
dGU6CiAgICAgUmVzb3VyY2VMb2FkVGltaW5nKCkKLSAgICAgICAgOiByZXF1ZXN0VGltZSgwKQot
ICAgICAgICAsIHByb3h5U3RhcnQoLTEpCi0gICAgICAgICwgcHJveHlFbmQoLTEpCi0gICAgICAg
ICwgZG5zU3RhcnQoLTEpCi0gICAgICAgICwgZG5zRW5kKC0xKQorICAgICAgICA6IGRvbWFpbkxv
b2t1cFN0YXJ0KC0xKQorICAgICAgICAsIGRvbWFpbkxvb2t1cEVuZCgtMSkKICAgICAgICAgLCBj
b25uZWN0U3RhcnQoLTEpCiAgICAgICAgICwgY29ubmVjdEVuZCgtMSkKLSAgICAgICAgLCBzZW5k
U3RhcnQoMCkKLSAgICAgICAgLCBzZW5kRW5kKDApCi0gICAgICAgICwgcmVjZWl2ZUhlYWRlcnNF
bmQoMCkKLSAgICAgICAgLCBzc2xTdGFydCgtMSkKLSAgICAgICAgLCBzc2xFbmQoLTEpCisgICAg
ICAgICwgcmVxdWVzdFN0YXJ0KDApCisgICAgICAgICwgcmVzcG9uc2VTdGFydCgwKQorICAgICAg
ICAsIHNlY3VyZUNvbm5lY3Rpb25TdGFydCgtMSkKICAgICB7CiAgICAgfQogfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTYs
NiArNTYsMTQgQEAKICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8Rm91bmRhdGlvbi9OU1VSTENvbm5l
Y3Rpb25Qcml2YXRlLmg+KQorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VSTENvbm5lY3Rpb25Qcml2
YXRlLmg+CisjZWxzZQorQGludGVyZmFjZSBOU1VSTENvbm5lY3Rpb24gKFRpbWluZ0RhdGEpCisr
ICh2b2lkKV9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6KEJPT0wpY29sbGVjdDsKK0BlbmQKKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGVVJMUmVxdWVzdC5o
PgogCkBAIC0yMDAsNiArMjA4LDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxD
b25uZWN0aQogICAgIGNvbnN0IGJvb2wgdXNlc0NhY2hlID0gdHJ1ZTsKICNlbmRpZgogICAgIGQt
Pm1fY29ubmVjdGlvbiA9IGFkb3B0TlMoW1tOU1VSTENvbm5lY3Rpb24gYWxsb2NdIF9pbml0V2l0
aFJlcXVlc3Q6bnNSZXF1ZXN0IGRlbGVnYXRlOmRlbGVnYXRlIHVzZXNDYWNoZTp1c2VzQ2FjaGUg
bWF4Q29udGVudExlbmd0aDowIHN0YXJ0SW1tZWRpYXRlbHk6Tk8gY29ubmVjdGlvblByb3BlcnRp
ZXM6cHJvcGVydHlEaWN0aW9uYXJ5XSk7CisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgW05T
VVJMQ29ubmVjdGlvbiBfc2V0Q29sbGVjdHNUaW1pbmdEYXRhOllFU107CisjZW5kaWYKIH0KIAog
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkocmV2aXNp
b24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw2ICszOSwxNCBAQAogI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNlLmgiCiAjaW1w
b3J0IDx3dGYvTWFpblRocmVhZC5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8Q0ZOZXR3b3JrL0NG
TlNVUkxDb25uZWN0aW9uLmg+KQorI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9u
Lmg+CisjZWxzZQorQGludGVyZmFjZSBOU1VSTENvbm5lY3Rpb24gKFRpbWluZ0RhdGEpCistIChO
U0RpY3Rpb25hcnkgKilfdGltaW5nRGF0YTsKK0BlbmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIE5T
VVJMUmVxdWVzdCAoRGV0YWlscykKIC0gKGlkKV9wcm9wZXJ0eUZvcktleTooTlNTdHJpbmcgKilr
ZXk7CiBAZW5kCkBAIC0xOTMsNyArMjAxLDYgQEAgLSAoQk9PTCljb25uZWN0aW9uOihOU1VSTENv
bm5lY3Rpb24gKiljbwogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25u
ZWN0aW9uIGRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXIKIHsKICAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAKICAg
ICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0aW9uOiVwIGRpZFJlY2Vp
dmVSZXNwb25zZTolcCAoSFRUUCBzdGF0dXMgJWQsIHJlcG9ydGVkIE1JTUVUeXBlICclcycpIiwg
bV9oYW5kbGUsIGNvbm5lY3Rpb24sIHIsIFtyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
c3RhdHVzQ29kZSldID8gWyhpZClyIHN0YXR1c0NvZGVdIDogMCwgW1tyIE1JTUVUeXBlXSBVVEY4
U3RyaW5nXSk7CiAKQEAgLTIxMiw4ICsyMTksMzggQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VS
TENvbm5lY3Rpb24gKiljbwogCiAgICAgICAgIGlmIChbbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgp
Lm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSBfcHJvcGVydHlGb3JLZXk6QCJGb3Jj
ZUhUTUxNSU1FVHlwZSJdKQogICAgICAgICAgICAgW3IgX3NldE1JTUVUeXBlOkAidGV4dC9odG1s
Il07Ci0KLSAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3lu
YyhtX2hhbmRsZSwgcik7CisgICAgICAgIAorICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291
cmNlUmVzcG9uc2Uocik7CisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgICAgIE5TRGljdGlv
bmFyeSogdGltaW5nRGF0YSA9IFtjb25uZWN0aW9uIF90aW1pbmdEYXRhXTsKKyAgICAgICAgaWYg
KHRpbWluZ0RhdGEpIHsKKyAgICAgICAgICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0UmVzb3VyY2VM
b2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpOworICAgICAgICAgICAgUmVz
b3VyY2VMb2FkVGltaW5nKiB0aW1pbmcgPSByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBUaGlzIGlzIG5vdCB0aGUgbmF2
aWdhdGlvblN0YXJ0IHRpbWUgaW4gbW9ub3RvbmljIHRpbWUsIGJ1dCB0aGUgb3RoZXIgdGltZXMg
YXJlIHJlbGF0aXZlIHRvIHRoaXMgdGltZQorICAgICAgICAgICAgLy8gYW5kIG9ubHkgdGhlIGRp
ZmZlcmVuY2VzIGJldHdlZW4gdGltZXMgYXJlIHN0b3JlZC4KKyAgICAgICAgICAgIGRvdWJsZSBy
ZWZlcmVuY2VTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0
YVRpbWluZ0RhdGFJbml0Il0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBkb3VibGUgZG9tYWluTG9va3VwU3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJf
a0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBTdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAg
ICAgIGRvdWJsZSBkb21haW5Mb29rdXBFbmQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJf
a0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBFbmQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAg
ICBkb3VibGUgY29ubmVjdFN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5U
aW1pbmdEYXRhQ29ubmVjdFN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAgZG91Ymxl
IHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZO
VGltaW5nRGF0YVNlY3VyZUNvbm5lY3Rpb25TdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAg
ICAgIGRvdWJsZSBjb25uZWN0RW5kID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5U
aW1pbmdEYXRhQ29ubmVjdEVuZCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSBy
ZXF1ZXN0U3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFS
ZXF1ZXN0U3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICBkb3VibGUgcmVzcG9uc2VT
dGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVJlc3BvbnNl
U3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRpbWluZy0+
ZG9tYWluTG9va3VwU3RhcnQgPSBkb21haW5Mb29rdXBTdGFydCA8PSAwLjAgPyAtMSA6IChkb21h
aW5Mb29rdXBTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0aW1p
bmctPmRvbWFpbkxvb2t1cEVuZCA9IGRvbWFpbkxvb2t1cEVuZCA8PSAwLjAgPyAtMSA6IChkb21h
aW5Mb29rdXBFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5n
LT5jb25uZWN0U3RhcnQgPSBjb25uZWN0U3RhcnQgPD0gMC4wID8gLTEgOiAoY29ubmVjdFN0YXJ0
IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+c2VjdXJlQ29u
bmVjdGlvblN0YXJ0ID0gc2VjdXJlQ29ubmVjdGlvblN0YXJ0IDw9IDAuMCA/IC0xIDogKHNlY3Vy
ZUNvbm5lY3Rpb25TdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0
aW1pbmctPmNvbm5lY3RFbmQgPSBjb25uZWN0RW5kIDw9IDAuMCA/IC0xIDogKGNvbm5lY3RFbmQg
LSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5nLT5yZXF1ZXN0U3Rh
cnQgPSByZXF1ZXN0U3RhcnQgPD0gMC4wID8gLTEgOiAocmVxdWVzdFN0YXJ0IC0gcmVmZXJlbmNl
U3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+cmVzcG9uc2VTdGFydCA9IHJlc3Bv
bnNlU3RhcnQgPD0gMC4wID8gLTEgOiAocmVzcG9uc2VTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAq
IDEwMDA7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9u
KTsKKyNlbmRpZgorICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25z
ZUFzeW5jKG1faGFuZGxlLCByZXNvdXJjZVJlc3BvbnNlKTsKICAgICB9KTsKIAogICAgIGRpc3Bh
dGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzUsNyArMjM1LDcgQEAgc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxs
YmFjayhHT2JqZWN0Kgogc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqLCBHQXN5bmNS
ZXN1bHQqLCBncG9pbnRlcik7CiBzdGF0aWMgZ2Jvb2xlYW4gcmVxdWVzdFRpbWVvdXRDYWxsYmFj
ayh2b2lkKik7CiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCi1zdGF0aWMgaW50ICBtaWxpc2Vjb25k
c1NpbmNlUmVxdWVzdChkb3VibGUgcmVxdWVzdFRpbWUpOworc3RhdGljIGludCAgbWlsaXNlY29u
ZHNTaW5jZVJlcXVlc3QoKTsKICNlbmRpZgogc3RhdGljIHZvaWQgY29udGludWVBZnRlckRpZFJl
Y2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSopOwogCkBAIC0zMTYsMTEgKzMxNiw2IEBAIHN0
YXRpYyB2b2lkIGdvdEhlYWRlcnNDYWxsYmFjayhTb3VwTWVzc2EKIAogICAgIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAKLSNpZiBFTkFCTEUoV0VC
X1RJTUlORykKLSAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAg
ICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVjZWl2ZUhlYWRlcnNF
bmQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5yZXF1ZXN0VGltZSk7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKEdUSykKICAgICAv
LyBXZSBhcmUgYSBiaXQgbW9yZSBjb25zZXJ2YXRpdmUgd2l0aCB0aGUgcGVyc2lzdGVudCBjcmVk
ZW50aWFsIHN0b3JhZ2UgdGhhbiB0aGUgc2Vzc2lvbiBzdG9yZSwKICAgICAvLyBzaW5jZSB3ZSBh
cmUgd2FpdGluZyB1bnRpbCB3ZSBrbm93IHRoYXQgdGhpcyBhdXRoZW50aWNhdGlvbiBzdWNjZWVk
ZWQgYmVmb3JlIGFjdHVhbGx5IHN0b3JpbmcuCkBAIC0zOTAsNyArMzg1LDcgQEAgc3RhdGljIHZv
aWQgcmVzdGFydGVkQ2FsbGJhY2soU291cE1lc3NhZwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJu
YWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAgICAgUmVzb3VyY2VSZXNwb25zZSYgcmVk
aXJlY3RSZXNwb25zZSA9IGQtPm1fcmVzcG9uc2U7CiAgICAgcmVkaXJlY3RSZXNwb25zZS5zZXRS
ZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7Ci0gICAgcmVk
aXJlY3RSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUgPSBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICBtX3JlcXVlc3RUaW1lID0gbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCk7CiB9CiAjZW5kaWYKIApAQCAtODM5LDIyICs4MzQsOSBAQCBzdGF0
aWMgYm9vbCBhZGRGb3JtRWxlbWVudHNUb1NvdXBNZXNzYWdlCiB9CiAKICNpZiBFTkFCTEUoV0VC
X1RJTUlORykKLXN0YXRpYyBpbnQgbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZG91YmxlIHJlcXVl
c3RUaW1lKQorc3RhdGljIGludCBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdCgpCiB7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PGludD4oKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gcmVx
dWVzdFRpbWUpICogMTAwMC4wKTsKLX0KLQotc3RhdGljIHZvaWQgd3JvdGVCb2R5Q2FsbGJhY2so
U291cE1lc3NhZ2UqLCBncG9pbnRlciBkYXRhKQotewotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKLSAgICBpZiAo
IWhhbmRsZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCog
ZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpZiAoIWQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnNlbmRFbmQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGludD4oKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gbV9yZXF1
ZXN0VGltZSkgKiAxMDAwLjApOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRTdGFydFJl
cXVlc3QoKQpAQCAtODYzLDE2ICs4NDUsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRTdGFy
dFJlcXVlc3QoKQogICAgIGlmICghZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+c2VuZFN0YXJ0ID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUpOwotICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpLT5zc2xTdGFydCAhPSAtMSkgewotICAgICAgICAvLyBXZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVxdWVzdFRpbWluZ1ZpZXcuanMgYXNzdW1lcwotICAgICAg
ICAvLyB0aGF0IFNTTCB0aW1lIGlzIGluY2x1ZGVkIGluIGNvbm5lY3Rpb24gdGltZSBzbyBtdXN0
Ci0gICAgICAgIC8vIHN1YnN0cmFjdCBoZXJlIHRoZSBTU0wgZGVsdGEgdGhhdCB3aWxsIGJlIGFk
ZGVkIGxhdGVyIChzZWUKLSAgICAgICAgLy8gV2ViSW5zcGVjdG9yLlJlcXVlc3RUaW1pbmdWaWV3
LmNyZWF0ZVRpbWluZ1RhYmxlIGluIHRoZQotICAgICAgICAvLyBmaWxlIGFib3ZlIGZvciBtb3Jl
IGRldGFpbHMpLgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5z
ZW5kU3RhcnQgLT0KLSAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCktPnNzbEVuZCAtIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0
OwotICAgIH0KKyAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0
U3RhcnRUaW1lID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoKTsKIH0KIAogc3RhdGljIHZvaWQg
bmV0d29ya0V2ZW50Q2FsbGJhY2soU291cE1lc3NhZ2UqLCBHU29ja2V0Q2xpZW50RXZlbnQgZXZl
bnQsIEdJT1N0cmVhbSosIGdwb2ludGVyIGRhdGEpCkBAIC04ODUsNDAgKzg1OCwzOCBAQCBzdGF0
aWMgdm9pZCBuZXR3b3JrRXZlbnRDYWxsYmFjayhTb3VwTWVzCiAgICAgICAgIHJldHVybjsKIAog
ICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0g
ICAgaW50IGRlbHRhVGltZSA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKKyAgICBpbnQgZGVsdGFUaW1lID0g
bWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoKTsKICAgICBzd2l0Y2ggKGV2ZW50KSB7CiAgICAgY2Fz
ZSBHX1NPQ0tFVF9DTElFTlRfUkVTT0xWSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5kbnNTdGFydCA9IGRlbHRhVGltZTsKKyAgICAgICAgZC0+bV9yZXNw
b25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG9tYWluTG9va3VwU3RhcnQgPSBkZWx0YVRpbWU7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1JFU09MVkVEOgotICAg
ICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNFbmQgPSBkZWx0YVRp
bWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxv
b2t1cEVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9D
TElFTlRfQ09OTkVDVElORzoKICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS0+Y29ubmVjdFN0YXJ0ID0gZGVsdGFUaW1lOwotICAgICAgICBpZiAoZC0+bV9yZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3RhcnQgIT0gLTEpCisgICAgICAgIGlmIChkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kb21haW5Mb29rdXBTdGFydCAhPSAtMSkg
ewogICAgICAgICAgICAgLy8gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlcXVlc3RUaW1p
bmdWaWV3LmpzIGFzc3VtZXMKICAgICAgICAgICAgIC8vIHRoYXQgRE5TIHRpbWUgaXMgaW5jbHVk
ZWQgaW4gY29ubmVjdGlvbiB0aW1lIHNvIG11c3QKICAgICAgICAgICAgIC8vIHN1YnN0cmFjdCBo
ZXJlIHRoZSBETlMgZGVsdGEgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVyIChzZWUKICAgICAgICAg
ICAgIC8vIFdlYkluc3BlY3Rvci5SZXF1ZXN0VGltaW5nVmlldy5jcmVhdGVUaW1pbmdUYWJsZSBp
biB0aGUKICAgICAgICAgICAgIC8vIGZpbGUgYWJvdmUgZm9yIG1vcmUgZGV0YWlscykuCiAgICAg
ICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5jb25uZWN0U3RhcnQg
LT0KLSAgICAgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5k
bnNFbmQgLSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNTdGFydDsKKyAg
ICAgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kb21haW5M
b29rdXBFbmQgLSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kb21haW5Mb29r
dXBTdGFydDsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NM
SUVOVF9DT05ORUNURUQ6CiAgICAgICAgIC8vIFdlYiBUaW1pbmcgY29uc2lkZXJzIHRoYXQgY29u
bmVjdGlvbiB0aW1lIGludm9sdmVzIGRucywgcHJveHkgJiBUTFMgbmVnb3RpYXRpb24uLi4KICAg
ICAgICAgLy8gc28gd2UgYmV0dGVyIHBpY2sgR19TT0NLRVRfQ0xJRU5UX0NPTVBMRVRFIGZvciBj
b25uZWN0RW5kCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1BST1hZ
X05FR09USUFUSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygp
LT5wcm94eVN0YXJ0ID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09D
S0VUX0NMSUVOVF9QUk9YWV9ORUdPVElBVEVEOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5wcm94eUVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfVExTX0hBTkRTSEFLSU5HOgotICAgICAgICBkLT5tX3Jl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xTdGFydCA9IGRlbHRhVGltZTsKKyAgICAg
ICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VjdXJlQ29ubmVjdGlvblN0
YXJ0ID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVO
VF9UTFNfSEFORFNIQUtFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS0+c3NsRW5kID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09D
S0VUX0NMSUVOVF9DT01QTEVURToKICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKS0+Y29ubmVjdEVuZCA9IGRlbHRhVGltZTsKQEAgLTk4MCw3ICs5NTEsNiBAQCBzdGF0
aWMgYm9vbCBjcmVhdGVTb3VwTWVzc2FnZUZvckhhbmRsZUFuCiAgICAgZC0+bV9yZXNwb25zZS5z
ZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7CiAgICAg
Z19zaWduYWxfY29ubmVjdChkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCAibmV0d29yay1ldmVudCIs
IEdfQ0FMTEJBQ0sobmV0d29ya0V2ZW50Q2FsbGJhY2spLCBoYW5kbGUpOwogICAgIGdfc2lnbmFs
X2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgInJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0so
cmVzdGFydGVkQ2FsbGJhY2spLCBoYW5kbGUpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9z
b3VwTWVzc2FnZS5nZXQoKSwgIndyb3RlLWJvZHkiLCBHX0NBTExCQUNLKHdyb3RlQm9keUNhbGxi
YWNrKSwgaGFuZGxlKTsKICNlbmRpZgogCiAjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDQzLCAx
KQpAQCAtMTA1NCw3ICsxMDI0LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdS
ZXF1ZXN0KAogewogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgIGlmIChkLT5tX3Jlc3BvbnNl
LnJlc291cmNlTG9hZFRpbWluZygpKQotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9h
ZFRpbWluZygpLT5yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwor
ICAgICAgICBtX3JlcXVlc3RUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAj
ZW5kaWYKIAogICAgIGlmIChkLT5tX2ZpcnN0UmVxdWVzdC50aW1lb3V0SW50ZXJ2YWwoKSA+IDAp
IHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODUzNykKKysrIFNvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE0LTA1LTA5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jl
c3Mgb24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlY29kZSk6CisgICAgICAgIFRy
YW5zZmVyIFJlc291cmNlTG9hZFRpbWluZyB2YWx1ZXMgaWYgdGhleSBleGlzdC4KKwogMjAxNC0w
NS0wOSAgTWFydGluIEhvZG92YW4gIDxtaG9kb3Zhbi51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcu
Y29tPgogCiAgICAgICAgIFtXSzJdIE1ha2UgZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBs
IHdvcmsgYWZ0ZXIgV2ViS2l0Mi5mcmFtZXdvcmsgLT4gV2ViS2l0LmZyYW1ld29yayByZW5hbWUK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjg4LDYgKzY4OCwxOCBAQCB2b2lk
IEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmVuCiAgICAgICAgIGVuY29kZXIgPDwg
cmVzb3VyY2VSZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpOwogICAgICAgICBlbmNvZGVyIDw8IHJl
c291cmNlUmVzcG9uc2Uuc3VnZ2VzdGVkRmlsZW5hbWUoKTsKICAgICB9CisgICAgUmVzb3VyY2VM
b2FkVGltaW5nKiB0aW1pbmcgPSByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygp
OworICAgIGJvb2wgaGFzUmVzb3VyY2VMb2FkVGltaW5nID0gdGltaW5nOworICAgIGVuY29kZXIg
PDwgaGFzUmVzb3VyY2VMb2FkVGltaW5nOworICAgIGlmIChoYXNSZXNvdXJjZUxvYWRUaW1pbmcp
IHsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0OworICAgICAg
ICBlbmNvZGVyIDw8IHRpbWluZy0+ZG9tYWluTG9va3VwRW5kOworICAgICAgICBlbmNvZGVyIDw8
IHRpbWluZy0+Y29ubmVjdFN0YXJ0OworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+Y29ubmVj
dEVuZDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPnJlcXVlc3RTdGFydDsKKyAgICAgICAg
ZW5jb2RlciA8PCB0aW1pbmctPnJlc3BvbnNlU3RhcnQ7CisgICAgICAgIGVuY29kZXIgPDwgdGlt
aW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQ7CisgICAgfQogfQogCiBib29sIEFyZ3VtZW50Q29k
ZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJl
c291cmNlUmVzcG9uc2UmIHJlc291cmNlUmVzcG9uc2UpCkBAIC03NTUsNyArNzY3LDIzIEBAIGJv
b2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGUKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgcmVzcG9uc2Uuc2V0U3VnZ2VzdGVkRmlsZW5hbWUoc3VnZ2VzdGVk
RmlsZW5hbWUpOwogICAgIH0KLQorICAgIAorICAgIGJvb2wgaGFzUmVzb3VyY2VMb2FkVGltaW5n
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChoYXNSZXNvdXJjZUxvYWRUaW1pbmcpIHsKKyAgICAg
ICAgcmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3Jl
YXRlKCkpOworICAgICAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+
ZG9tYWluTG9va3VwU3RhcnQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5n
LT5kb21haW5Mb29rdXBFbmQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5n
LT5jb25uZWN0U3RhcnQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5nLT5j
b25uZWN0RW5kKQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+cmVxdWVz
dFN0YXJ0KQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+cmVzcG9uc2VT
dGFydCkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPnNlY3VyZUNvbm5l
Y3Rpb25TdGFydCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAogICAg
IHJlc291cmNlUmVzcG9uc2UgPSByZXNwb25zZTsKIAogICAgIHJldHVybiB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231170</attachid>
            <date>2014-05-09 11:24:53 -0700</date>
            <delta_ts>2014-05-09 11:40:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140509112430.patch</filename>
            <type>text/plain</type>
            <size>46293</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODUzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc2IEBACisyMDE0LTA1LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
b24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRkZWQgbGlua2Vy
IHN5bWJvbHMgZm9yIFJlc291cmNlTG9hZFRpbWluZy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGltaW5n
LmNwcC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgICogaW5zcGVj
dG9yL3Byb3RvY29sL05ldHdvcmsuanNvbjoKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZVRpbWlu
ZyBzdHJ1Y3R1cmUuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6
CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICAgRGVsZXRl
ZCB1bnVzZWQgc2V0TmF2aWdhdGlvblN0YXJ0IGZ1bmN0aW9uLgorICAgICAgICAqIHBhZ2UvUGVy
Zm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgVVJMLgorICAgICAgICAqIHBhZ2Uv
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25T
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNw
b25zZUVuZCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJp
YWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6
OnJlc3BvbnNlU3RhcnQpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6CisgICAg
ICAgIERlbGV0ZWQgcmVzcG9uc2VTdGFydCBiZWNhdXNlIGl0IGlzIG5vdCBpbiB0aGUgc3BlYy4K
KyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBl
cmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUpOgorICAg
ICAgICBVc2UgbmF2aWdhdGlvblN0YXJ0IGFzIGJhc2UgZm9yIHJlc291cmNlIGxvYWQgdGltZXMu
CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGw6CisgICAgICAgIFVwZGF0ZWQg
c3BlYyBVUkwuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oOgorICAg
ICAgICBSZW1vdmVkIHVudXNlZCBjbGFzcyBkZWNsYXJhdGlvbnMuCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICBNb3ZlZCBzb3VwIHJlcXVlc3Qg
dGltZSBmcm9tIFJlc291cmNlTG9hZFRpbWluZyB0byBSZXNvdXJjZUhhbmRsZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6ZGVlcENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6UmVzb3VyY2VMb2FkVGltaW5nKToKKyAgICAgICAgVXBkYXRlZCBSZXNv
dXJjZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbik6CisgICAgICAgIENvbGxlY3QgdGlt
aW5nIGRhdGEuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZl
UmVzcG9uc2U6XSk6CisgICAgICAgIFNhdmUgdGltaW5nIGRhdGEgdG8gYSBSZXNvdXJjZUxvYWRU
aW1pbmcgb24gdGhlIFJlc291cmNlUmVzcG9uc2UuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFk
ZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6bWlsaXNlY29uZHNTaW5jZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmRpZFN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpu
ZXR3b3JrRXZlbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3VwTWVzc2Fn
ZUZvckhhbmRsZUFuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnNlbmRQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5n
IG1lbWJlciB2YXJpYWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxi
YWNrKTogRGVsZXRlZC4KKwogMjAxNC0wNS0wOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTVNFXVtNYWNdIERlc3Ryb3kgdGhlIEFWU3RyZWFtRGF0YVBhcnNl
ciB3aGVuIHRoZSBTb3VyY2VCdWZmZXIgaXMgcmVtb3ZlZCBmcm9tIGl0cyBNZWRpYVNvdXJjZS4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE5MSw3ICsyMTkxLDYgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJh
c2UuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmNwcAotICAgIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNzcxLDYgKzc3MSw3IEBAIF9fWk43
V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkOGFkZFR5cGUKIF9fWk43V2ViQ29yZTE4UGxhdGZv
cm1QYXN0ZWJvYXJkOGdldFR5cGVzRVJOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8x
NUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQ4c2V0
VHlwZXNFUktOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxv
d0VFRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmRDMUVSS04zV1RGNlN0cmluZ0UK
K19fWk43V2ViQ29yZTE4UmVzb3VyY2VMb2FkVGltaW5nQzFFdgogX19aTjdXZWJDb3JlMThTdHls
ZVNoZWV0Q29udGVudHMxMXBhcnNlU3RyaW5nRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MThTdHlsZVNoZWV0Q29udGVudHNDMUVQTlNfMTVTdHlsZVJ1bGVJbXBvcnRFUktOM1dURjZTdHJp
bmdFUktOU18xNkNTU1BhcnNlckNvbnRleHRFCiBfX1pON1dlYkNvcmUxOFN0eWxlU2hlZXRDb250
ZW50c0QxRXYKQEAgLTg0NCw2ICs4NDUsNyBAQCBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9u
c2VCYXNlMTdzZXRICiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzZXRIVFRQ
U3RhdHVzVGV4dEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25z
ZUJhc2UxOHNldEhUVFBIZWFkZXJGaWVsZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFUktOUzFfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxOXNldFRleHRFbmNvZGlu
Z05hbWVFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MjFzZXRSZXNvdXJjZUxvYWRUaW1pbmdFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMThSZXNvdXJjZUxv
YWRUaW1pbmdFRUUKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dl
c3RlZEZpbGVuYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTI0c2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoRXgKIF9fWk43V2ViQ29yZTIwUmVzb3Vy
Y2VSZXNwb25zZUJhc2U2c2V0VVJMRVJLTlNfM1VSTEUKQEAgLTE3NTUsNiArMTc1Nyw3IEBAIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTVodHQKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTZodHRwSGVhZGVyRmllbGRzRXYKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTZ0ZXh0RW5jb2RpbmdOYW1lRXYKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTdzdWdnZXN0ZWRGaWxlbmFtZUV2CitfX1pOSzdXZWJDb3JlMjBS
ZXNvdXJjZVJlc3BvbnNlQmFzZTE4cmVzb3VyY2VMb2FkVGltaW5nRXYKIF9fWk5LN1dlYkNvcmUy
MFJlc291cmNlUmVzcG9uc2VCYXNlMjFleHBlY3RlZENvbnRlbnRMZW5ndGhFdgogX19aTks3V2Vi
Q29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UzdXJsRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNl
UmVzcG9uc2VCYXNlNmlzSFRUUEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTI5NzksNyArMjk3OSw2IEBACiAJCTg1RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovOyB9
OwogCQk4NUZGMzE1QjBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU5MEFBRkJG
Q0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tICovOyB9OwogCQk4NjFDMkVBNDEzRkI0
RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBE
b2N1bWVudExvYWRUaW1pbmcuY3BwICovOyB9OwotCQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIg
LyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2MUMyRUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRU
aW1pbmcuY3BwICovOyB9OwogCQk4NjJGMTI5RTE4QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVz
ZXJBY3Rpdml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODYyRjEyOUQxOEMxNTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjJGMTJBMDE4
QzFERDAyMDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyog
SHlzdGVyZXNpc0FjdGl2aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODY1MTJFREUxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuY3BwICovOyB9OwpAQCAtOTk4OSw3ICs5OTg4LDYgQEAKIAkJODVGRjMxNTgwQUFGQkZDQjAw
Mzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUtleWJvYXJkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERv
Y3VtZW50TG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEb2N1bWVudExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4
NjFDMkVBNTEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFRpbWluZy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBD
b3VudGVkVXNlckFjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
dW50ZWRVc2VyQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYyRjEy
OUYxOEMxRENFNDAwNUM1NEFGIC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIeXN0ZXJlc2lzQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNjEwNiw3ICsxNjEwNCw2IEBACiAJCQkJNTE0Qzc2NjYwQ0U5MjNBMTAwN0VGM0NEIC8qIFJl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCAqLywKIAkJCQk1MUU0MTQzMjE2QTY1OTUxMDBDNjMzQzcg
LyogUmVzb3VyY2VIYW5kbGVUeXBlcy5oICovLAogCQkJCUU0Mjk1RkEzMTJCMDYxNEUwMEQxQUNF
MCAvKiBSZXNvdXJjZUxvYWRQcmlvcml0eS5oICovLAotCQkJCTg2MUMyRUE1MTNGQjRGRkYwMDA2
MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovLAogCQkJCThBODFCRjg0MTFEQ0ZEOTAw
MERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLywKIAkJCQk1MTRDNzY2NzBDRTkyM0Ex
MDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAgKi8sCiAJCQkJNTE0Qzc2NjgwQ0U5
MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuaCAqLywKQEAgLTI4ODMzLDcgKzI4
ODMwLDYgQEAKIAkJCQk1MUFBM0Y2RjBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5NzNFMzI1NjEwODgzQjdDMDA1QkM0OTMgLyogUmVz
b3VyY2VMb2FkTm90aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDBDRTU4RjgxMjVFNEND
MjAwRjNGMTk5IC8qIFJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxNEM3NjdDMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVl
c3RCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDZFMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY1MzBD
RTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMywxOCArMjAz
LDE0IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKIHN0YXRpYyBQ
YXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5n
PiBidWlsZE9iamVjdEZvclRpbWluZyhjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZywg
RG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsKICAgICByZXR1cm4gSW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRSZXF1
ZXN0VGltZShsb2FkZXItPnRpbWluZygpLT5tb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZSh0
aW1pbmcuY29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoMCkpKQotICAgICAg
ICAuc2V0UHJveHlTdGFydCh0aW1pbmcucHJveHlTdGFydCkKLSAgICAgICAgLnNldFByb3h5RW5k
KHRpbWluZy5wcm94eUVuZCkKLSAgICAgICAgLnNldERuc1N0YXJ0KHRpbWluZy5kbnNTdGFydCkK
LSAgICAgICAgLnNldERuc0VuZCh0aW1pbmcuZG5zRW5kKQorICAgICAgICAuc2V0TmF2aWdhdGlv
blN0YXJ0KGxvYWRlci0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFydCgpKQorICAgICAgICAuc2V0
RG9tYWluTG9va3VwU3RhcnQodGltaW5nLmRvbWFpbkxvb2t1cFN0YXJ0KQorICAgICAgICAuc2V0
RG9tYWluTG9va3VwRW5kKHRpbWluZy5kb21haW5Mb29rdXBFbmQpCiAgICAgICAgIC5zZXRDb25u
ZWN0U3RhcnQodGltaW5nLmNvbm5lY3RTdGFydCkKICAgICAgICAgLnNldENvbm5lY3RFbmQodGlt
aW5nLmNvbm5lY3RFbmQpCi0gICAgICAgIC5zZXRTc2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0g
ICAgICAgIC5zZXRTc2xFbmQodGltaW5nLnNzbEVuZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0
aW1pbmcuc2VuZFN0YXJ0KQotICAgICAgICAuc2V0U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAg
ICAgICAgLnNldFJlY2VpdmVIZWFkZXJzRW5kKHRpbWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAg
ICAgICAgLnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydCh0aW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0
YXJ0KQorICAgICAgICAuc2V0UmVxdWVzdFN0YXJ0KHRpbWluZy5yZXF1ZXN0U3RhcnQpCisgICAg
ICAgIC5zZXRSZXNwb25zZVN0YXJ0KHRpbWluZy5yZXNwb25zZVN0YXJ0KQogICAgICAgICAucmVs
ZWFzZSgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0
d29yay5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9OZXR3b3JrLmpzb24JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTMyLDE4ICszMiwx
NCBAQAogICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJUaW1pbmcgaW5mb3JtYXRpb24gZm9yIHRoZSByZXF1ZXN0LiIsCiAgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RUaW1l
IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRpbWluZydzIHJlcXVlc3RUaW1l
IGlzIGEgYmFzZWxpbmUgaW4gc2Vjb25kcywgd2hpbGUgdGhlIG90aGVyIG51bWJlcnMgYXJlIHRp
Y2tzIGluIG1pbGxpc2Vjb25kcyByZWxhdGl2ZWx5IHRvIHRoaXMgcmVxdWVzdFRpbWUuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJveHlTdGFydCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlc29sdmluZyBwcm94eS4iIH0sCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJwcm94eUVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJGaW5pc2hlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiZG5zU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRl
ZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRu
c0VuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRk
cmVzcyByZXNvbHZlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hdmlnYXRpb25T
dGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyBuYXZpZ2F0
aW9uU3RhcnQgaXMgYSBiYXNlbGluZSBpbiBzZWNvbmRzLCB3aGlsZSB0aGUgb3RoZXIgbnVtYmVy
cyBhcmUgdGlja3MgaW4gbWlsbGlzZWNvbmRzIHJlbGF0aXZlbHkgdG8gdGhpcyBuYXZpZ2F0aW9u
U3RhcnQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9tYWluTG9va3VwU3RhcnQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBETlMgYWRkcmVzcyBy
ZXNvbHZlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cEVuZCIs
ICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRkcmVzcyBy
ZXNvbHZlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RTdGFydCIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5lY3RpbmcgdG8gdGhl
IHJlbW90ZSBob3N0LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RFbmQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29ubmVjdGVkIHRvIHRoZSByZW1v
dGUgaG9zdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzc2xTdGFydCIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRl
c2NyaXB0aW9uIjogIkZpbmlzaGVkIFNTTCBoYW5kc2hha2UuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAic2VuZFN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjog
IlN0YXJ0ZWQgc2VuZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNlbmRFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgc2Vu
ZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlY2VpdmVIZWFk
ZXJzRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHJlY2Vp
dmluZyByZXNwb25zZSBoZWFkZXJzLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Vj
dXJlQ29ubmVjdGlvblN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0
YXJ0ZWQgU1NMIGhhbmRzaGFrZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1
ZXN0U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBzZW5k
aW5nIHJlcXVlc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzcG9uc2VTdGFy
dCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlY2VpdmluZyBy
ZXNwb25zZSBoZWFkZXJzLiIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LAogICAgICAgICB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRp
bWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDEyICs3Niw2IEBAIHZvaWQgRG9jdW1lbnRM
b2FkVGltaW5nOjptYXJrTmF2aWdhdGlvblMKICAgICBtX3JlZmVyZW5jZVdhbGxUaW1lID0gY3Vy
cmVudFRpbWUoKTsKIH0KIAotdm9pZCBEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25T
dGFydChkb3VibGUgbmF2aWdhdGlvblN0YXJ0KQotewotICAgIEFTU0VSVChtX3JlZmVyZW5jZU1v
bm90b25pY1RpbWUgJiYgbV9yZWZlcmVuY2VXYWxsVGltZSk7Ci0gICAgbV9uYXZpZ2F0aW9uU3Rh
cnQgPSBuYXZpZ2F0aW9uU3RhcnQ7Ci19Ci0KIHZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjphZGRS
ZWRpcmVjdChjb25zdCBVUkwmIHJlZGlyZWN0aW5nVXJsLCBjb25zdCBVUkwmIHJlZGlyZWN0ZWRV
cmwpCiB7CiAgICAgbV9yZWRpcmVjdENvdW50Kys7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcg
KzQxLDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBtb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGlt
ZShkb3VibGUpIGNvbnN0OwogCiAgICAgdm9pZCBtYXJrTmF2aWdhdGlvblN0YXJ0KCk7Ci0gICAg
dm9pZCBzZXROYXZpZ2F0aW9uU3RhcnQoZG91YmxlKTsKICAgICB2b2lkIGFkZFJlZGlyZWN0KGNv
bnN0IFVSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVkaXJlY3RlZFVybCk7CiAKICAg
ICB2b2lkIG1hcmtVbmxvYWRFdmVudFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZS5pZGwJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLS8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViVGltaW5n
LworLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3JnL2hnL3dlYnBlcmYvcmF3LWZpbGUvdGlwL3Nw
ZWNzL05hdmlnYXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRtbAogWwogICAgIENvbmRpdGlvbmFsPVdF
Ql9USU1JTkcsCiAgICAgRXZlbnRUYXJnZXQsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyMCwxMCArMTIwLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nOjpkb21haW4KICAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKICAgICAgICAg
cmV0dXJuIDAuMDsKIAotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRuc1N0YXJ0IDwg
MCkKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA8IDAp
CiAgICAgICAgIHJldHVybiBmZXRjaFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1l
VG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+ZG5zU3RhcnQpOworICAgIHJldHVybiBy
ZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5Mb29rdXBT
dGFydCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29r
dXBFbmQoKSBjb25zdApAQCAtMTMxLDEwICsxMzEsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmRvbWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAg
ICAgICByZXR1cm4gMC4wOwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zRW5k
IDwgMCkKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPCAw
KQogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNv
dXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNFbmQpOworICAgIHJl
dHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5M
b29rdXBFbmQpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVj
dFN0YXJ0KCkgY29uc3QKQEAgLTE0OCw4ICsxNDgsOCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6Y29ubmVjCiAKICAgICAvLyBjb25uZWN0U3RhcnQgaW5jbHVkZXMgYW55IERO
UyB0aW1lLCBzbyB3ZSBtYXkgbmVlZCB0byB0cmltIHRoYXQgb2ZmLgogICAgIGludCBjb25uZWN0
U3RhcnQgPSBtX3RpbWluZy0+Y29ubmVjdFN0YXJ0OwotICAgIGlmIChtX3RpbWluZy0+ZG5zRW5k
ID49IDApCi0gICAgICAgIGNvbm5lY3RTdGFydCA9IG1fdGltaW5nLT5kbnNFbmQ7CisgICAgaWYg
KG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPj0gMCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0g
bV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZDsKIAogICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0Rv
Y3VtZW50TWlsbGlzZWNvbmRzKGNvbm5lY3RTdGFydCk7CiB9CkBAIC0xNzEsMTAgKzE3MSwxMCBA
QCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6c2VjdXJlCiAgICAgaWYgKCFtX3No
b3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGlt
aW5nIHx8IG1fdGltaW5nLT5zc2xTdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBu
ZWdvdGlhdGVkLgorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNlY3VyZUNvbm5lY3Rp
b25TdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBuZWdvdGlhdGVkLgogICAgICAg
ICByZXR1cm4gMC4wOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNl
Y29uZHMobV90aW1pbmctPnNzbFN0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1
bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0KTsKIH0KIAog
ZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CkBA
IC0xODUsMjUgKzE4NSwxMSBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVx
dWVzCiAgICAgaWYgKCFtX3RpbWluZykKICAgICAgICAgcmV0dXJuIGNvbm5lY3RFbmQoKTsKIAot
ICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5z
ZW5kU3RhcnQpOwotfQotCi1kb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzcG9u
c2VTdGFydCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCi0gICAg
ICAgIHJldHVybiAwLjA7Ci0KLSAgICBpZiAoIW1fdGltaW5nKQotICAgICAgICByZXR1cm4gcmVx
dWVzdFN0YXJ0KCk7Ci0gICAgLy8gRklYTUU6IFRoaXMgbnVtYmVyIGlzbid0IGV4YWN0bHkgY29y
cmVjdC4gU2VlIHRoZSBub3RlcyBpbiBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgp
LgotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5n
LT5yZWNlaXZlSGVhZGVyc0VuZCk7CisgICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRN
aWxsaXNlY29uZHMobV90aW1pbmctPnJlcXVlc3RTdGFydFRpbWUpOwogfQogCiBkb3VibGUgUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzcG9uc2VFbmQoKSBjb25zdAogewotICAgIGlmICgh
bV9maW5pc2hUaW1lKQotICAgICAgICByZXR1cm4gcmVzcG9uc2VTdGFydCgpOwotCiAgICAgcmV0
dXJuIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3Vt
ZW50LmdldCgpLCBtX2ZpbmlzaFRpbWUpOwogfQogCkBAIC0yMTEsNyArMTk3LDcgQEAgZG91Ymxl
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc291cgogewogICAgIGlmICghZGVsdGFNaWxs
aXNlY29uZHMpCiAgICAgICAgIHJldHVybiAwLjA7Ci0gICAgcmV0dXJuIG1vbm90b25pY1RpbWVU
b0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3VtZW50LmdldCgpLCBtX3RpbWlu
Zy0+cmVxdWVzdFRpbWUpICsgZGVsdGFNaWxsaXNlY29uZHM7CisgICAgcmV0dXJuIG1vbm90b25p
Y1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3VtZW50LmdldCgpLCBt
X3RpbWluZy0+cmVxdWVzdFN0YXJ0VGltZSkgKyBkZWx0YU1pbGxpc2Vjb25kczsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw3ICs2NSw2IEBAIHB1YmxpYzoKICAgICBkb3VibGUgY29ubmVjdEVuZCgpIGNvbnN0OwogICAg
IGRvdWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVxdWVz
dFN0YXJ0KCkgY29uc3Q7Ci0gICAgZG91YmxlIHJlc3BvbnNlU3RhcnQoKSBjb25zdDsKICAgICBk
b3VibGUgcmVzcG9uc2VFbmQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Jlc291cmNl
KCkgeyByZXR1cm4gdHJ1ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC00Myw2ICs0Myw1IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBk
b3VibGUgY29ubmVjdEVuZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZSBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVz
dHJpY3RlZCBkb3VibGUgcmVxdWVzdFN0YXJ0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZG91YmxlIHJlc3BvbnNlU3RhcnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
cmVzdHJpY3RlZCBkb3VibGUgcmVzcG9uc2VFbmQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAs
MTEgKzEzMCwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAK
ICAgICAvLyBUaGlzIHdpbGwgYmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3Jt
ZWQuCiAgICAgLy8gUmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5k
aWNhdGVzIG5vIEROUywgd2UgImJhY2tmaWxsIiB3aXRoIGZldGNoU3RhcnQuCi0gICAgaW50IGRu
c1N0YXJ0ID0gdGltaW5nLT5kbnNTdGFydDsKLSAgICBpZiAoZG5zU3RhcnQgPCAwKQorICAgIGlu
dCBkb21haW5Mb29rdXBTdGFydCA9IHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQ7CisgICAgaWYg
KGRvbWFpbkxvb2t1cFN0YXJ0IDwgMCkKICAgICAgICAgcmV0dXJuIGZldGNoU3RhcnQoKTsKIAot
ICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGRuc1N0YXJ0KTsK
KyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShkb21haW5Mb29r
dXBTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG9t
YWluTG9va3VwRW5kKCkgY29uc3QKQEAgLTE0NSwxMSArMTQ1LDExIEBAIHVuc2lnbmVkIGxvbmcg
bG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG8KIAogICAgIC8vIFRoaXMgd2lsbCBiZSAtMSB3aGVu
IGEgRE5TIHJlcXVlc3QgaXMgbm90IHBlcmZvcm1lZC4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBv
c2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8gRE5TLCB3ZSAiYmFja2ZpbGwi
IHdpdGggZG9tYWluTG9va3VwU3RhcnQuCi0gICAgaW50IGRuc0VuZCA9IHRpbWluZy0+ZG5zRW5k
OwotICAgIGlmIChkbnNFbmQgPCAwKQorICAgIGludCBkb21haW5Mb29rdXBFbmQgPSB0aW1pbmct
PmRvbWFpbkxvb2t1cEVuZDsKKyAgICBpZiAoZG9tYWluTG9va3VwRW5kIDwgMCkKICAgICAgICAg
cmV0dXJuIGRvbWFpbkxvb2t1cFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGlt
ZVJlbGF0aXZlVG9BYnNvbHV0ZShkbnNFbmQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1l
UmVsYXRpdmVUb0Fic29sdXRlKGRvbWFpbkxvb2t1cEVuZCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcg
bG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6Y29ubmVjdFN0YXJ0KCkgY29uc3QKQEAgLTE3MCw4ICsx
NzAsOCBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvCiAKICAgICAv
LyBSZXNvdXJjZUxvYWRUaW1pbmcncyBjb25uZWN0IHBoYXNlIGluY2x1ZGVzIEROUywgaG93ZXZl
ciBOYXZpZ2F0aW9uIFRpbWluZydzCiAgICAgLy8gY29ubmVjdCBwaGFzZSBzaG91bGQgbm90LiBT
byBpZiB0aGVyZSBpcyBETlMgdGltZSwgdHJpbSBpdCBmcm9tIHRoZSBzdGFydC4KLSAgICBpZiAo
dGltaW5nLT5kbnNFbmQgPj0gMCAmJiB0aW1pbmctPmRuc0VuZCA+IGNvbm5lY3RTdGFydCkKLSAg
ICAgICAgY29ubmVjdFN0YXJ0ID0gdGltaW5nLT5kbnNFbmQ7CisgICAgaWYgKHRpbWluZy0+ZG9t
YWluTG9va3VwRW5kID49IDAgJiYgdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPiBjb25uZWN0U3Rh
cnQpCisgICAgICAgIGNvbm5lY3RTdGFydCA9IHRpbWluZy0+ZG9tYWluTG9va3VwRW5kOwogCiAg
ICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoY29ubmVjdFN0YXJ0
KTsKIH0KQEAgLTIwNSwxMSArMjA1LDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5j
ZVRpbWluZzo6c2UKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBp
bnQgc3NsU3RhcnQgPSB0aW1pbmctPnNzbFN0YXJ0OwotICAgIGlmIChzc2xTdGFydCA8IDApCisg
ICAgaW50IHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0
YXJ0OworICAgIGlmIChzZWN1cmVDb25uZWN0aW9uU3RhcnQgPCAwKQogICAgICAgICByZXR1cm4g
MDsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHNzbFN0
YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShzZWN1
cmVDb25uZWN0aW9uU3RhcnQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CkBAIC0yMTgsOCArMjE4LDggQEAgdW5zaWduZWQg
bG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZQogICAgIGlmICghdGltaW5nKQogICAgICAg
ICByZXR1cm4gY29ubmVjdEVuZCgpOwogCi0gICAgQVNTRVJUKHRpbWluZy0+c2VuZFN0YXJ0ID49
IDApOwotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWlu
Zy0+c2VuZFN0YXJ0KTsKKyAgICBBU1NFUlQodGltaW5nLT5yZXF1ZXN0U3RhcnQgPj0gMCk7Cisg
ICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5yZXF1
ZXN0U3RhcnQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJl
c3BvbnNlU3RhcnQoKSBjb25zdApAQCAtMjI4LDE0ICsyMjgsOCBAQCB1bnNpZ25lZCBsb25nIGxv
bmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVy
biByZXF1ZXN0U3RhcnQoKTsKIAotICAgIC8vIEZJWE1FOiBSZXNwb25zZSBzdGFydCBuZWVkcyB0
byBiZSB0aGUgdGltZSBvZiB0aGUgZmlyc3QgcmVjZWl2ZWQgYnl0ZS4KLSAgICAvLyBIb3dldmVy
LCB0aGUgUmVzb3VyY2VMb2FkVGltaW5nIEFQSSBjdXJyZW50bHkgb25seSBzdXBwb3J0cyB0aGUg
dGltZQotICAgIC8vIHRoZSBsYXN0IGhlYWRlciBieXRlIHdhcyByZWNlaXZlZC4gRm9yIG1hbnkg
cmVzcG9uc2VzIHdpdGggcmVhc29uYWJsZQotICAgIC8vIHNpemVkIGNvb2tpZXMsIHRoZSBIVFRQ
IGhlYWRlcnMgZml0IGludG8gYSBzaW5nbGUgcGFja2V0IHNvIHRoaXMgdGltZQotICAgIC8vIGlz
IGJhc2ljYWxseSBlcXVpdmFsZW50LiBCdXQgZm9yIHNvbWUgcmVzcG9uc2VzLCBwYXJ0aWN1bGFy
bHkgdGhvc2Ugd2l0aAotICAgIC8vIGhlYWRlcnMgbGFyZ2VyIHRoYW4gYSBzaW5nbGUgcGFja2V0
LCB0aGlzIHRpbWUgd2lsbCBiZSB0b28gbGF0ZS4KLSAgICBBU1NFUlQodGltaW5nLT5yZWNlaXZl
SGVhZGVyc0VuZCA+PSAwKTsKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9B
YnNvbHV0ZSh0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kKTsKKyAgICBBU1NFUlQodGltaW5nLT5y
ZXNwb25zZVN0YXJ0ID49IDApOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVU
b0Fic29sdXRlKHRpbWluZy0+cmVzcG9uc2VTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9u
ZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VFbmQoKSBjb25zdApAQCAtMzUxLDkgKzM0NSw3
IEBAIFJlc291cmNlTG9hZFRpbWluZyogUGVyZm9ybWFuY2VUaW1pbmc6OnIKIHVuc2lnbmVkIGxv
bmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNv
bHV0ZShpbnQgcmVsYXRpdmVNaWxsaXNlY29uZHMpIGNvbnN0CiB7CiAgICAgQVNTRVJUKHJlbGF0
aXZlTWlsbGlzZWNvbmRzID49IDApOwotICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVzb3VyY2VU
aW1pbmcgPSByZXNvdXJjZUxvYWRUaW1pbmcoKTsKLSAgICBBU1NFUlQocmVzb3VyY2VUaW1pbmcp
OwotICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHJlc291cmNl
VGltaW5nLT5jb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZShyZWxhdGl2ZU1p
bGxpc2Vjb25kcykpOworICAgIHJldHVybiBuYXZpZ2F0aW9uU3RhcnQoKSArIHJlbGF0aXZlTWls
bGlzZWNvbmRzOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om1v
bm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoZG91YmxlIG1vbm90b25pY1NlY29uZHMp
IGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWlu
Zy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotLy8gU2VlOiBodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisv
LyBTZWU6IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3Mv
TmF2aWdhdGlvblRpbWluZy9PdmVydmlldy5odG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJ
TUlORywKIF0gaW50ZXJmYWNlIFBlcmZvcm1hbmNlVGltaW5nIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgJKHJldmlzaW9uIDE2ODM5MikK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsOSArMzcsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IEhUVFBIZWFkZXJNYXA7Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKLQogZW51bSBDb250
ZW50RGlzcG9zaXRpb25UeXBlIHsKICAgICBDb250ZW50RGlzcG9zaXRpb25Ob25lLAogICAgIENv
bnRlbnREaXNwb3NpdGlvbklubGluZSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMTkwLDYgKzE5MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRIb3N0QWxs
b3dzQW55SFRUUFNDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgdm9pZCBz
ZXRDbGllbnRDZXJ0aWZpY2F0ZShjb25zdCBTdHJpbmcmIGhvc3QsIEdUbHNDZXJ0aWZpY2F0ZSop
OwogICAgIHN0YXRpYyB2b2lkIHNldElnbm9yZVNTTEVycm9ycyhib29sKTsKKyAgICBkb3VibGUg
bV9yZXF1ZXN0VGltZTsKICNlbmRpZgogCiAgICAgLy8gVXNlZCB0byB3b3JrIGFyb3VuZCB0aGUg
ZmFjdCB0aGF0IHlvdSBkb24ndCBnZXQgYW55IG1vcmUgTlNVUkxDb25uZWN0aW9uIGNhbGxiYWNr
cyB1bnRpbCB5b3UgcmV0dXJuIGZyb20gdGhlIG9uZSB5b3UncmUgaW4uCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcu
Y3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlTG9hZFRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMzYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWRvdWJsZSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZlcnRSZXNvdXJjZUxv
YWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3QKLXsKLSAg
ICByZXR1cm4gcmVxdWVzdFRpbWUgKyBkZWx0YU1pbGxpc2Vjb25kcyAvIDEwMDAuMDsKLX0KLQot
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1p
bmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlTG9hZFRpbWluZy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3
NiArNDQsNTAgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBk
ZWVwQ29weSgpCiAgICAgewogICAgICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiB0aW1p
bmcgPSBjcmVhdGUoKTsKLSAgICAgICAgdGltaW5nLT5yZXF1ZXN0VGltZSA9IHJlcXVlc3RUaW1l
OwotICAgICAgICB0aW1pbmctPnByb3h5U3RhcnQgPSBwcm94eVN0YXJ0OwotICAgICAgICB0aW1p
bmctPnByb3h5RW5kID0gcHJveHlFbmQ7Ci0gICAgICAgIHRpbWluZy0+ZG5zU3RhcnQgPSBkbnNT
dGFydDsKLSAgICAgICAgdGltaW5nLT5kbnNFbmQgPSBkbnNFbmQ7CisgICAgICAgIHRpbWluZy0+
ZG9tYWluTG9va3VwU3RhcnQgPSBkb21haW5Mb29rdXBTdGFydDsKKyAgICAgICAgdGltaW5nLT5k
b21haW5Mb29rdXBFbmQgPSBkb21haW5Mb29rdXBFbmQ7CiAgICAgICAgIHRpbWluZy0+Y29ubmVj
dFN0YXJ0ID0gY29ubmVjdFN0YXJ0OwogICAgICAgICB0aW1pbmctPmNvbm5lY3RFbmQgPSBjb25u
ZWN0RW5kOwotICAgICAgICB0aW1pbmctPnNlbmRTdGFydCA9IHNlbmRTdGFydDsKLSAgICAgICAg
dGltaW5nLT5zZW5kRW5kID0gc2VuZEVuZDsKLSAgICAgICAgdGltaW5nLT5yZWNlaXZlSGVhZGVy
c0VuZCA9IHJlY2VpdmVIZWFkZXJzRW5kOwotICAgICAgICB0aW1pbmctPnNzbFN0YXJ0ID0gc3Ns
U3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+c3NsRW5kID0gc3NsRW5kOworICAgICAgICB0aW1pbmct
PnJlcXVlc3RTdGFydCA9IHJlcXVlc3RTdGFydDsKKyAgICAgICAgdGltaW5nLT5yZXNwb25zZVN0
YXJ0ID0gcmVzcG9uc2VTdGFydDsKKyAgICAgICAgdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3Rh
cnQgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7CiAgICAgICAgIHJldHVybiB0aW1pbmcucmVsZWFz
ZSgpOwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZUxvYWRUaW1p
bmcmIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHJlcXVlc3RUaW1lID09IG90
aGVyLnJlcXVlc3RUaW1lCi0gICAgICAgICAgICAmJiBwcm94eVN0YXJ0ID09IG90aGVyLnByb3h5
U3RhcnQKLSAgICAgICAgICAgICYmIHByb3h5RW5kID09IG90aGVyLnByb3h5RW5kCi0gICAgICAg
ICAgICAmJiBkbnNTdGFydCA9PSBvdGhlci5kbnNTdGFydAotICAgICAgICAgICAgJiYgZG5zRW5k
ID09IG90aGVyLmRuc0VuZAorICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQgPT0gb3Ro
ZXIuZG9tYWluTG9va3VwU3RhcnQKKyAgICAgICAgICAgICYmIGRvbWFpbkxvb2t1cEVuZCA9PSBv
dGhlci5kb21haW5Mb29rdXBFbmQKICAgICAgICAgICAgICYmIGNvbm5lY3RTdGFydCA9PSBvdGhl
ci5jb25uZWN0U3RhcnQKICAgICAgICAgICAgICYmIGNvbm5lY3RFbmQgPT0gb3RoZXIuY29ubmVj
dEVuZAotICAgICAgICAgICAgJiYgc2VuZFN0YXJ0ID09IG90aGVyLnNlbmRTdGFydAotICAgICAg
ICAgICAgJiYgc2VuZEVuZCA9PSBvdGhlci5zZW5kRW5kCi0gICAgICAgICAgICAmJiByZWNlaXZl
SGVhZGVyc0VuZCA9PSBvdGhlci5yZWNlaXZlSGVhZGVyc0VuZAotICAgICAgICAgICAgJiYgc3Ns
U3RhcnQgPT0gb3RoZXIuc3NsU3RhcnQKLSAgICAgICAgICAgICYmIHNzbEVuZCA9PSBvdGhlci5z
c2xFbmQ7CisgICAgICAgICAgICAmJiByZXF1ZXN0U3RhcnQgPT0gb3RoZXIucmVxdWVzdFN0YXJ0
CisgICAgICAgICAgICAmJiByZXNwb25zZVN0YXJ0ID09IG90aGVyLnJlc3BvbnNlU3RhcnQKKyAg
ICAgICAgICAgICYmIHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9PSBvdGhlci5zZWN1cmVDb25uZWN0
aW9uU3RhcnQ7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlTG9h
ZFRpbWluZyYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBv
dGhlcik7CiAgICAgfQotCi0gICAgLy8gV2Ugd2FudCB0byBwcmVzZW50IGEgdW5pZmllZCB0aW1l
bGluZSB0byBKYXZhc2NyaXB0LiBVc2luZyB3YWxsdGltZSBpcyBwcm9ibGVtYXRpYywgYmVjYXVz
ZSB0aGUgY2xvY2sgbWF5IHNrZXcgd2hpbGUgcmVzb3VyY2VzCi0gICAgLy8gbG9hZC4gVG8gcHJl
dmVudCB0aGF0IHNrZXcsIHdlIHJlY29yZCBhIHNpbmdsZSByZWZlcmVuY2Ugd2FsbHRpbWUgd2hl
biByb290IGRvY3VtZW50IG5hdmlnYXRpb24gYmVnaW5zLiBBbGwgb3RoZXIgdGltZXMgYXJlCi0g
ICAgLy8gcmVjb3JkZWQgdXNpbmcgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkuIFdoZW4g
YSB0aW1lIG5lZWRzIHRvIGJlIHByZXNlbnRlZCB0byBKYXZhc2NyaXB0LCB3ZSBidWlsZCBhIHBz
ZXVkby13YWxsdGltZQotICAgIC8vIHVzaW5nIHRoZSBmb2xsb3dpbmcgZXF1YXRpb246Ci0gICAg
Ly8gICBwc2V1ZG8gdGltZSA9IGRvY3VtZW50IHdhbGwgcmVmZXJlbmNlICsgKHJlc291cmNlIHJl
cXVlc3QgdGltZSAtIGRvY3VtZW50IG1vbm90b25pYyByZWZlcmVuY2UpICsgZGVsdGFNaWxsaXNl
Y29uZHMgLyAxMDAwLjAuCi0gICAgZG91YmxlIGNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25v
dG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7Ci0KLSAgICBkb3VibGUgcmVx
dWVzdFRpbWU7IC8vIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIHdoZW4gdGhlIHBvcnQg
c3RhcnRlZCBoYW5kbGluZyB0aGlzIHJlcXVlc3QuCi0gICAgaW50IHByb3h5U3RhcnQ7IC8vIFRo
ZSByZXN0IG9mIHRoZXNlIGFyZSBtaWxsaXNlY29uZCBkZWx0YXMsIHVzaW5nIG1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgpLCBmcm9tIHJlcXVlc3RUaW1lLgotICAgIGludCBwcm94eUVuZDsK
LSAgICBpbnQgZG5zU3RhcnQ7Ci0gICAgaW50IGRuc0VuZDsKKyAgICAKKyAgICAvLyBUaGVzZSBh
cmUgbWlsbGlzZWNvbmQgZGVsdGFzIGZyb20gdGhlIG5hdmlnYXRpb24gc3RhcnQuCisgICAgaW50
IGRvbWFpbkxvb2t1cFN0YXJ0OworICAgIGludCBkb21haW5Mb29rdXBFbmQ7CiAgICAgaW50IGNv
bm5lY3RTdGFydDsKICAgICBpbnQgY29ubmVjdEVuZDsKLSAgICBpbnQgc2VuZFN0YXJ0OwotICAg
IGludCBzZW5kRW5kOwotICAgIGludCByZWNlaXZlSGVhZGVyc0VuZDsKLSAgICBpbnQgc3NsU3Rh
cnQ7Ci0gICAgaW50IHNzbEVuZDsKLQorICAgIGludCByZXF1ZXN0U3RhcnQ7CisgICAgaW50IHJl
c3BvbnNlU3RhcnQ7CisgICAgaW50IHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKKyAgICAKIHByaXZh
dGU6CiAgICAgUmVzb3VyY2VMb2FkVGltaW5nKCkKLSAgICAgICAgOiByZXF1ZXN0VGltZSgwKQot
ICAgICAgICAsIHByb3h5U3RhcnQoLTEpCi0gICAgICAgICwgcHJveHlFbmQoLTEpCi0gICAgICAg
ICwgZG5zU3RhcnQoLTEpCi0gICAgICAgICwgZG5zRW5kKC0xKQorICAgICAgICA6IGRvbWFpbkxv
b2t1cFN0YXJ0KC0xKQorICAgICAgICAsIGRvbWFpbkxvb2t1cEVuZCgtMSkKICAgICAgICAgLCBj
b25uZWN0U3RhcnQoLTEpCiAgICAgICAgICwgY29ubmVjdEVuZCgtMSkKLSAgICAgICAgLCBzZW5k
U3RhcnQoMCkKLSAgICAgICAgLCBzZW5kRW5kKDApCi0gICAgICAgICwgcmVjZWl2ZUhlYWRlcnNF
bmQoMCkKLSAgICAgICAgLCBzc2xTdGFydCgtMSkKLSAgICAgICAgLCBzc2xFbmQoLTEpCisgICAg
ICAgICwgcmVxdWVzdFN0YXJ0KDApCisgICAgICAgICwgcmVzcG9uc2VTdGFydCgwKQorICAgICAg
ICAsIHNlY3VyZUNvbm5lY3Rpb25TdGFydCgtMSkKICAgICB7CiAgICAgfQogfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTYs
NiArNTYsMTQgQEAKICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8Rm91bmRhdGlvbi9OU1VSTENvbm5l
Y3Rpb25Qcml2YXRlLmg+KQorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VSTENvbm5lY3Rpb25Qcml2
YXRlLmg+CisjZWxzZQorQGludGVyZmFjZSBOU1VSTENvbm5lY3Rpb24gKFRpbWluZ0RhdGEpCisr
ICh2b2lkKV9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6KEJPT0wpY29sbGVjdDsKK0BlbmQKKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGVVJMUmVxdWVzdC5o
PgogCkBAIC0yMDAsNiArMjA4LDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxD
b25uZWN0aQogICAgIGNvbnN0IGJvb2wgdXNlc0NhY2hlID0gdHJ1ZTsKICNlbmRpZgogICAgIGQt
Pm1fY29ubmVjdGlvbiA9IGFkb3B0TlMoW1tOU1VSTENvbm5lY3Rpb24gYWxsb2NdIF9pbml0V2l0
aFJlcXVlc3Q6bnNSZXF1ZXN0IGRlbGVnYXRlOmRlbGVnYXRlIHVzZXNDYWNoZTp1c2VzQ2FjaGUg
bWF4Q29udGVudExlbmd0aDowIHN0YXJ0SW1tZWRpYXRlbHk6Tk8gY29ubmVjdGlvblByb3BlcnRp
ZXM6cHJvcGVydHlEaWN0aW9uYXJ5XSk7CisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgW05T
VVJMQ29ubmVjdGlvbiBfc2V0Q29sbGVjdHNUaW1pbmdEYXRhOllFU107CisjZW5kaWYKIH0KIAog
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkocmV2aXNp
b24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw2ICszOSwxNCBAQAogI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNlLmgiCiAjaW1w
b3J0IDx3dGYvTWFpblRocmVhZC5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8Q0ZOZXR3b3JrL0NG
TlNVUkxDb25uZWN0aW9uLmg+KQorI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9u
Lmg+CisjZWxzZQorQGludGVyZmFjZSBOU1VSTENvbm5lY3Rpb24gKFRpbWluZ0RhdGEpCistIChO
U0RpY3Rpb25hcnkgKilfdGltaW5nRGF0YTsKK0BlbmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIE5T
VVJMUmVxdWVzdCAoRGV0YWlscykKIC0gKGlkKV9wcm9wZXJ0eUZvcktleTooTlNTdHJpbmcgKilr
ZXk7CiBAZW5kCkBAIC0xOTMsNyArMjAxLDYgQEAgLSAoQk9PTCljb25uZWN0aW9uOihOU1VSTENv
bm5lY3Rpb24gKiljbwogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25u
ZWN0aW9uIGRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXIKIHsKICAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAKICAg
ICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0aW9uOiVwIGRpZFJlY2Vp
dmVSZXNwb25zZTolcCAoSFRUUCBzdGF0dXMgJWQsIHJlcG9ydGVkIE1JTUVUeXBlICclcycpIiwg
bV9oYW5kbGUsIGNvbm5lY3Rpb24sIHIsIFtyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
c3RhdHVzQ29kZSldID8gWyhpZClyIHN0YXR1c0NvZGVdIDogMCwgW1tyIE1JTUVUeXBlXSBVVEY4
U3RyaW5nXSk7CiAKQEAgLTIxMiw4ICsyMTksMzggQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VS
TENvbm5lY3Rpb24gKiljbwogCiAgICAgICAgIGlmIChbbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgp
Lm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSBfcHJvcGVydHlGb3JLZXk6QCJGb3Jj
ZUhUTUxNSU1FVHlwZSJdKQogICAgICAgICAgICAgW3IgX3NldE1JTUVUeXBlOkAidGV4dC9odG1s
Il07Ci0KLSAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3lu
YyhtX2hhbmRsZSwgcik7CisgICAgICAgIAorICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291
cmNlUmVzcG9uc2Uocik7CisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgICAgIE5TRGljdGlv
bmFyeSogdGltaW5nRGF0YSA9IFtjb25uZWN0aW9uIF90aW1pbmdEYXRhXTsKKyAgICAgICAgaWYg
KHRpbWluZ0RhdGEpIHsKKyAgICAgICAgICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0UmVzb3VyY2VM
b2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpOworICAgICAgICAgICAgUmVz
b3VyY2VMb2FkVGltaW5nKiB0aW1pbmcgPSByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBUaGlzIGlzIG5vdCB0aGUgbmF2
aWdhdGlvblN0YXJ0IHRpbWUgaW4gbW9ub3RvbmljIHRpbWUsIGJ1dCB0aGUgb3RoZXIgdGltZXMg
YXJlIHJlbGF0aXZlIHRvIHRoaXMgdGltZQorICAgICAgICAgICAgLy8gYW5kIG9ubHkgdGhlIGRp
ZmZlcmVuY2VzIGJldHdlZW4gdGltZXMgYXJlIHN0b3JlZC4KKyAgICAgICAgICAgIGRvdWJsZSBy
ZWZlcmVuY2VTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0
YVRpbWluZ0RhdGFJbml0Il0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBkb3VibGUgZG9tYWluTG9va3VwU3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJf
a0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBTdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAg
ICAgIGRvdWJsZSBkb21haW5Mb29rdXBFbmQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJf
a0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBFbmQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAg
ICBkb3VibGUgY29ubmVjdFN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5U
aW1pbmdEYXRhQ29ubmVjdFN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAgZG91Ymxl
IHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZO
VGltaW5nRGF0YVNlY3VyZUNvbm5lY3Rpb25TdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAg
ICAgIGRvdWJsZSBjb25uZWN0RW5kID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5U
aW1pbmdEYXRhQ29ubmVjdEVuZCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSBy
ZXF1ZXN0U3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFS
ZXF1ZXN0U3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICBkb3VibGUgcmVzcG9uc2VT
dGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVJlc3BvbnNl
U3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRpbWluZy0+
ZG9tYWluTG9va3VwU3RhcnQgPSBkb21haW5Mb29rdXBTdGFydCA8PSAwLjAgPyAtMSA6IChkb21h
aW5Mb29rdXBTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0aW1p
bmctPmRvbWFpbkxvb2t1cEVuZCA9IGRvbWFpbkxvb2t1cEVuZCA8PSAwLjAgPyAtMSA6IChkb21h
aW5Mb29rdXBFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5n
LT5jb25uZWN0U3RhcnQgPSBjb25uZWN0U3RhcnQgPD0gMC4wID8gLTEgOiAoY29ubmVjdFN0YXJ0
IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+c2VjdXJlQ29u
bmVjdGlvblN0YXJ0ID0gc2VjdXJlQ29ubmVjdGlvblN0YXJ0IDw9IDAuMCA/IC0xIDogKHNlY3Vy
ZUNvbm5lY3Rpb25TdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0
aW1pbmctPmNvbm5lY3RFbmQgPSBjb25uZWN0RW5kIDw9IDAuMCA/IC0xIDogKGNvbm5lY3RFbmQg
LSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5nLT5yZXF1ZXN0U3Rh
cnQgPSByZXF1ZXN0U3RhcnQgPD0gMC4wID8gLTEgOiAocmVxdWVzdFN0YXJ0IC0gcmVmZXJlbmNl
U3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+cmVzcG9uc2VTdGFydCA9IHJlc3Bv
bnNlU3RhcnQgPD0gMC4wID8gLTEgOiAocmVzcG9uc2VTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAq
IDEwMDA7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9u
KTsKKyNlbmRpZgorICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25z
ZUFzeW5jKG1faGFuZGxlLCByZXNvdXJjZVJlc3BvbnNlKTsKICAgICB9KTsKIAogICAgIGRpc3Bh
dGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMTYsMTEgKzMxNiw2IEBAIHN0YXRpYyB2b2lkIGdvdEhlYWRlcnNDYWxs
YmFjayhTb3VwTWVzc2EKIAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUt
PmdldEludGVybmFsKCk7CiAKLSNpZiBFTkFCTEUoV0VCX1RJTUlORykKLSAgICBpZiAoZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKS0+cmVjZWl2ZUhlYWRlcnNFbmQgPSBtaWxpc2Vjb25kc1NpbmNlUmVx
dWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7Ci0j
ZW5kaWYKLQogI2lmIFBMQVRGT1JNKEdUSykKICAgICAvLyBXZSBhcmUgYSBiaXQgbW9yZSBjb25z
ZXJ2YXRpdmUgd2l0aCB0aGUgcGVyc2lzdGVudCBjcmVkZW50aWFsIHN0b3JhZ2UgdGhhbiB0aGUg
c2Vzc2lvbiBzdG9yZSwKICAgICAvLyBzaW5jZSB3ZSBhcmUgd2FpdGluZyB1bnRpbCB3ZSBrbm93
IHRoYXQgdGhpcyBhdXRoZW50aWNhdGlvbiBzdWNjZWVkZWQgYmVmb3JlIGFjdHVhbGx5IHN0b3Jp
bmcuCkBAIC0zOTAsNyArMzg1LDcgQEAgc3RhdGljIHZvaWQgcmVzdGFydGVkQ2FsbGJhY2soU291
cE1lc3NhZwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVy
bmFsKCk7CiAgICAgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSA9IGQtPm1fcmVz
cG9uc2U7CiAgICAgcmVkaXJlY3RSZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3Vy
Y2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7Ci0gICAgcmVkaXJlY3RSZXNwb25zZS5yZXNvdXJjZUxv
YWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsK
KyAgICBtX3JlcXVlc3RUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiB9CiAj
ZW5kaWYKIApAQCAtODQ0LDM1ICs4MzksMTMgQEAgc3RhdGljIGludCBtaWxpc2Vjb25kc1NpbmNl
UmVxdWVzdChkb3VibAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KChtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKSAtIHJlcXVlc3RUaW1lKSAqIDEwMDAuMCk7CiB9CiAKLXN0YXRpYyB2
b2lkIHdyb3RlQm9keUNhbGxiYWNrKFNvdXBNZXNzYWdlKiwgZ3BvaW50ZXIgZGF0YSkKLXsKLSAg
ICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFu
ZGxlKj4oZGF0YSk7Ci0gICAgaWYgKCFoYW5kbGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJl
c291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0gICAgaWYg
KCFkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZW5kRW5kID0gbWlsaXNl
Y29uZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVx
dWVzdFRpbWUpOwotfQotCiB2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRTdGFydFJlcXVlc3QoKQog
ewogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBnZXRJbnRlcm5hbCgpOwogICAgIGlm
ICghZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VuZFN0YXJ0ID0gbWls
aXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
cmVxdWVzdFRpbWUpOwotICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygp
LT5zc2xTdGFydCAhPSAtMSkgewotICAgICAgICAvLyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVxdWVzdFRpbWluZ1ZpZXcuanMgYXNzdW1lcwotICAgICAgICAvLyB0aGF0IFNTTCB0aW1l
IGlzIGluY2x1ZGVkIGluIGNvbm5lY3Rpb24gdGltZSBzbyBtdXN0Ci0gICAgICAgIC8vIHN1YnN0
cmFjdCBoZXJlIHRoZSBTU0wgZGVsdGEgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVyIChzZWUKLSAg
ICAgICAgLy8gV2ViSW5zcGVjdG9yLlJlcXVlc3RUaW1pbmdWaWV3LmNyZWF0ZVRpbWluZ1RhYmxl
IGluIHRoZQotICAgICAgICAvLyBmaWxlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMpLgotICAgICAg
ICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZW5kU3RhcnQgLT0KLSAgICAg
ICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbEVuZCAtIGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0OwotICAgIH0KKyAgICBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0U3RhcnRUaW1lID0gbWlsaXNl
Y29uZHNTaW5jZVJlcXVlc3QobV9yZXF1ZXN0VGltZSk7CiB9CiAKIHN0YXRpYyB2b2lkIG5ldHdv
cmtFdmVudENhbGxiYWNrKFNvdXBNZXNzYWdlKiwgR1NvY2tldENsaWVudEV2ZW50IGV2ZW50LCBH
SU9TdHJlYW0qLCBncG9pbnRlciBkYXRhKQpAQCAtODg1LDQwICs4NTgsMzggQEAgc3RhdGljIHZv
aWQgbmV0d29ya0V2ZW50Q2FsbGJhY2soU291cE1lcwogICAgICAgICByZXR1cm47CiAKICAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIGlu
dCBkZWx0YVRpbWUgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7CisgICAgaW50IGRlbHRhVGltZSA9IG1pbGlz
ZWNvbmRzU2luY2VSZXF1ZXN0KGhhbmRsZS0+bV9yZXF1ZXN0VGltZSk7CiAgICAgc3dpdGNoIChl
dmVudCkgewogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1JFU09MVklORzoKLSAgICAgICAgZC0+
bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3RhcnQgPSBkZWx0YVRpbWU7Cisg
ICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxvb2t1cFN0
YXJ0ID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVO
VF9SRVNPTFZFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
ZG5zRW5kID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5kb21haW5Mb29rdXBFbmQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgR19TT0NLRVRfQ0xJRU5UX0NPTk5FQ1RJTkc6CiAgICAgICAgIGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RTdGFydCA9IGRlbHRhVGltZTsKLSAgICAgICAg
aWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc1N0YXJ0ICE9IC0xKQor
ICAgICAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG9tYWluTG9v
a3VwU3RhcnQgIT0gLTEpIHsKICAgICAgICAgICAgIC8vIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXF1ZXN0VGltaW5nVmlldy5qcyBhc3N1bWVzCiAgICAgICAgICAgICAvLyB0aGF0IERO
UyB0aW1lIGlzIGluY2x1ZGVkIGluIGNvbm5lY3Rpb24gdGltZSBzbyBtdXN0CiAgICAgICAgICAg
ICAvLyBzdWJzdHJhY3QgaGVyZSB0aGUgRE5TIGRlbHRhIHRoYXQgd2lsbCBiZSBhZGRlZCBsYXRl
ciAoc2VlCiAgICAgICAgICAgICAvLyBXZWJJbnNwZWN0b3IuUmVxdWVzdFRpbWluZ1ZpZXcuY3Jl
YXRlVGltaW5nVGFibGUgaW4gdGhlCiAgICAgICAgICAgICAvLyBmaWxlIGFib3ZlIGZvciBtb3Jl
IGRldGFpbHMpLgogICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+Y29ubmVjdFN0YXJ0IC09Ci0gICAgICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJj
ZUxvYWRUaW1pbmcoKS0+ZG5zRW5kIC0gZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+ZG5zU3RhcnQ7CisgICAgICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKS0+ZG9tYWluTG9va3VwRW5kIC0gZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS0+ZG9tYWluTG9va3VwU3RhcnQ7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBHX1NPQ0tFVF9DTElFTlRfQ09OTkVDVEVEOgogICAgICAgICAvLyBXZWIgVGltaW5nIGNv
bnNpZGVycyB0aGF0IGNvbm5lY3Rpb24gdGltZSBpbnZvbHZlcyBkbnMsIHByb3h5ICYgVExTIG5l
Z290aWF0aW9uLi4uCiAgICAgICAgIC8vIHNvIHdlIGJldHRlciBwaWNrIEdfU09DS0VUX0NMSUVO
VF9DT01QTEVURSBmb3IgY29ubmVjdEVuZAogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09D
S0VUX0NMSUVOVF9QUk9YWV9ORUdPVElBVElORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKS0+cHJveHlTdGFydCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUFJPWFlfTkVHT1RJQVRFRDoKLSAgICAgICAgZC0+
bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cHJveHlFbmQgPSBkZWx0YVRpbWU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1RMU19IQU5EU0hBS0lORzoK
LSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQgPSBk
ZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNl
Y3VyZUNvbm5lY3Rpb25TdGFydCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBHX1NPQ0tFVF9DTElFTlRfVExTX0hBTkRTSEFLRUQ6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbEVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfQ09NUExFVEU6CiAgICAgICAgIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RFbmQgPSBkZWx0YVRpbWU7CkBAIC05ODAs
NyArOTUxLDYgQEAgc3RhdGljIGJvb2wgY3JlYXRlU291cE1lc3NhZ2VGb3JIYW5kbGVBbgogICAg
IGQtPm1fcmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6
Y3JlYXRlKCkpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwg
Im5ldHdvcmstZXZlbnQiLCBHX0NBTExCQUNLKG5ldHdvcmtFdmVudENhbGxiYWNrKSwgaGFuZGxl
KTsKICAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksICJyZXN0YXJ0
ZWQiLCBHX0NBTExCQUNLKHJlc3RhcnRlZENhbGxiYWNrKSwgaGFuZGxlKTsKLSAgICBnX3NpZ25h
bF9jb25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksICJ3cm90ZS1ib2R5IiwgR19DQUxMQkFD
Syh3cm90ZUJvZHlDYWxsYmFjayksIGhhbmRsZSk7CiAjZW5kaWYKIAogI2lmIFNPVVBfQ0hFQ0tf
VkVSU0lPTigyLCA0MywgMSkKQEAgLTEwNTQsNyArMTAyNCw3IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OnNlbmRQZW5kaW5nUmVxdWVzdCgKIHsKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKICAgICBp
ZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAgZC0+bV9yZXNw
b25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUgPSBtb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUoKTsKKyAgICAgICAgbV9yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOwogI2VuZGlmCiAKICAgICBpZiAoZC0+bV9maXJzdFJlcXVlc3QudGltZW91
dEludGVydmFsKCkgPiAwKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjg1MzcpCisrKyBT
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAor
MjAxNC0wNS0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgor
CisgICAgICAgIFByb2dyZXNzIG9uIHdlYiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjplbmNv
ZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZWNv
ZGUpOgorICAgICAgICBUcmFuc2ZlciBSZXNvdXJjZUxvYWRUaW1pbmcgdmFsdWVzIGlmIHRoZXkg
ZXhpc3QuCisKIDIwMTQtMDUtMDkgIE1hcnRpbiBIb2RvdmFuICA8bWhvZG92YW4udS1zemVnZWRA
cGFydG5lci5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbV0syXSBNYWtlIGdlbmVyYXRlLWZvcndh
cmRpbmctaGVhZGVycy5wbCB3b3JrIGFmdGVyIFdlYktpdDIuZnJhbWV3b3JrIC0+IFdlYktpdC5m
cmFtZXdvcmsgcmVuYW1lCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4OCw2
ICs2ODgsMTggQEAgdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjplbgogICAg
ICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVzcG9uc2UuaHR0cFN0YXR1c1RleHQoKTsKICAgICAg
ICAgZW5jb2RlciA8PCByZXNvdXJjZVJlc3BvbnNlLnN1Z2dlc3RlZEZpbGVuYW1lKCk7CiAgICAg
fQorICAgIFJlc291cmNlTG9hZFRpbWluZyogdGltaW5nID0gcmVzb3VyY2VSZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKTsKKyAgICBib29sIGhhc1Jlc291cmNlTG9hZFRpbWluZyA9IHRpbWlu
ZzsKKyAgICBlbmNvZGVyIDw8IGhhc1Jlc291cmNlTG9hZFRpbWluZzsKKyAgICBpZiAoaGFzUmVz
b3VyY2VMb2FkVGltaW5nKSB7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5kb21haW5Mb29r
dXBTdGFydDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZDsKKyAg
ICAgICAgZW5jb2RlciA8PCB0aW1pbmctPmNvbm5lY3RTdGFydDsKKyAgICAgICAgZW5jb2RlciA8
PCB0aW1pbmctPmNvbm5lY3RFbmQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5yZXF1ZXN0
U3RhcnQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5yZXNwb25zZVN0YXJ0OworICAgICAg
ICBlbmNvZGVyIDw8IHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0OworICAgIH0KIH0KIAog
Ym9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNlKQpAQCAtNzU1
LDcgKzc2NywyMyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3BvbnNlLnNldFN1Z2dlc3RlZEZp
bGVuYW1lKHN1Z2dlc3RlZEZpbGVuYW1lKTsKICAgICB9Ci0KKyAgICAKKyAgICBib29sIGhhc1Jl
c291cmNlTG9hZFRpbWluZzsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1Jlc291cmNlTG9h
ZFRpbWluZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoaGFzUmVzb3VyY2VMb2Fk
VGltaW5nKSB7CisgICAgICAgIHJlc3BvbnNlLnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNvdXJj
ZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKTsKKyAgICAgICAgUmVzb3VyY2VMb2FkVGltaW5nKiB0aW1p
bmcgPSByZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZSh0aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0KQorICAgICAgICAgICAgfHwgIWRlY29k
ZXIuZGVjb2RlKHRpbWluZy0+ZG9tYWluTG9va3VwRW5kKQorICAgICAgICAgICAgfHwgIWRlY29k
ZXIuZGVjb2RlKHRpbWluZy0+Y29ubmVjdFN0YXJ0KQorICAgICAgICAgICAgfHwgIWRlY29kZXIu
ZGVjb2RlKHRpbWluZy0+Y29ubmVjdEVuZCkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29k
ZSh0aW1pbmctPnJlcXVlc3RTdGFydCkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZSh0
aW1pbmctPnJlc3BvbnNlU3RhcnQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGlt
aW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICAKICAgICByZXNvdXJjZVJlc3BvbnNlID0gcmVzcG9uc2U7CiAKICAgICByZXR1
cm4gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231171</attachid>
            <date>2014-05-09 11:41:05 -0700</date>
            <delta_ts>2014-05-09 13:10:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140509114042.patch</filename>
            <type>text/plain</type>
            <size>46310</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODUzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc2IEBACisyMDE0LTA1LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
b24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRkZWQgbGlua2Vy
IHN5bWJvbHMgZm9yIFJlc291cmNlTG9hZFRpbWluZy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGltaW5n
LmNwcC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgICogaW5zcGVj
dG9yL3Byb3RvY29sL05ldHdvcmsuanNvbjoKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZVRpbWlu
ZyBzdHJ1Y3R1cmUuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6
CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICAgRGVsZXRl
ZCB1bnVzZWQgc2V0TmF2aWdhdGlvblN0YXJ0IGZ1bmN0aW9uLgorICAgICAgICAqIHBhZ2UvUGVy
Zm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgVVJMLgorICAgICAgICAqIHBhZ2Uv
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25T
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNw
b25zZUVuZCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJp
YWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6
OnJlc3BvbnNlU3RhcnQpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6CisgICAg
ICAgIERlbGV0ZWQgcmVzcG9uc2VTdGFydCBiZWNhdXNlIGl0IGlzIG5vdCBpbiB0aGUgc3BlYy4K
KyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBl
cmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUpOgorICAg
ICAgICBVc2UgbmF2aWdhdGlvblN0YXJ0IGFzIGJhc2UgZm9yIHJlc291cmNlIGxvYWQgdGltZXMu
CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGw6CisgICAgICAgIFVwZGF0ZWQg
c3BlYyBVUkwuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oOgorICAg
ICAgICBSZW1vdmVkIHVudXNlZCBjbGFzcyBkZWNsYXJhdGlvbnMuCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICBNb3ZlZCBzb3VwIHJlcXVlc3Qg
dGltZSBmcm9tIFJlc291cmNlTG9hZFRpbWluZyB0byBSZXNvdXJjZUhhbmRsZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6ZGVlcENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6UmVzb3VyY2VMb2FkVGltaW5nKToKKyAgICAgICAgVXBkYXRlZCBSZXNv
dXJjZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbik6CisgICAgICAgIENvbGxlY3QgdGlt
aW5nIGRhdGEuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZl
UmVzcG9uc2U6XSk6CisgICAgICAgIFNhdmUgdGltaW5nIGRhdGEgdG8gYSBSZXNvdXJjZUxvYWRU
aW1pbmcgb24gdGhlIFJlc291cmNlUmVzcG9uc2UuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFk
ZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6bWlsaXNlY29uZHNTaW5jZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmRpZFN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpu
ZXR3b3JrRXZlbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3VwTWVzc2Fn
ZUZvckhhbmRsZUFuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnNlbmRQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5n
IG1lbWJlciB2YXJpYWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxi
YWNrKTogRGVsZXRlZC4KKwogMjAxNC0wNS0wOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTVNFXVtNYWNdIERlc3Ryb3kgdGhlIEFWU3RyZWFtRGF0YVBhcnNl
ciB3aGVuIHRoZSBTb3VyY2VCdWZmZXIgaXMgcmVtb3ZlZCBmcm9tIGl0cyBNZWRpYVNvdXJjZS4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE5MSw3ICsyMTkxLDYgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJh
c2UuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmNwcAotICAgIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNzcxLDYgKzc3MSw3IEBAIF9fWk43
V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkOGFkZFR5cGUKIF9fWk43V2ViQ29yZTE4UGxhdGZv
cm1QYXN0ZWJvYXJkOGdldFR5cGVzRVJOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8x
NUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQ4c2V0
VHlwZXNFUktOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxv
d0VFRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmRDMUVSS04zV1RGNlN0cmluZ0UK
K19fWk43V2ViQ29yZTE4UmVzb3VyY2VMb2FkVGltaW5nQzFFdgogX19aTjdXZWJDb3JlMThTdHls
ZVNoZWV0Q29udGVudHMxMXBhcnNlU3RyaW5nRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MThTdHlsZVNoZWV0Q29udGVudHNDMUVQTlNfMTVTdHlsZVJ1bGVJbXBvcnRFUktOM1dURjZTdHJp
bmdFUktOU18xNkNTU1BhcnNlckNvbnRleHRFCiBfX1pON1dlYkNvcmUxOFN0eWxlU2hlZXRDb250
ZW50c0QxRXYKQEAgLTg0NCw2ICs4NDUsNyBAQCBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9u
c2VCYXNlMTdzZXRICiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzZXRIVFRQ
U3RhdHVzVGV4dEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25z
ZUJhc2UxOHNldEhUVFBIZWFkZXJGaWVsZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFUktOUzFfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxOXNldFRleHRFbmNvZGlu
Z05hbWVFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MjFzZXRSZXNvdXJjZUxvYWRUaW1pbmdFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMThSZXNvdXJjZUxv
YWRUaW1pbmdFRUUKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dl
c3RlZEZpbGVuYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTI0c2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoRXgKIF9fWk43V2ViQ29yZTIwUmVzb3Vy
Y2VSZXNwb25zZUJhc2U2c2V0VVJMRVJLTlNfM1VSTEUKQEAgLTE3NTUsNiArMTc1Nyw3IEBAIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTVodHQKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTZodHRwSGVhZGVyRmllbGRzRXYKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTZ0ZXh0RW5jb2RpbmdOYW1lRXYKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTdzdWdnZXN0ZWRGaWxlbmFtZUV2CitfX1pOSzdXZWJDb3JlMjBS
ZXNvdXJjZVJlc3BvbnNlQmFzZTE4cmVzb3VyY2VMb2FkVGltaW5nRXYKIF9fWk5LN1dlYkNvcmUy
MFJlc291cmNlUmVzcG9uc2VCYXNlMjFleHBlY3RlZENvbnRlbnRMZW5ndGhFdgogX19aTks3V2Vi
Q29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UzdXJsRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNl
UmVzcG9uc2VCYXNlNmlzSFRUUEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTI5NzksNyArMjk3OSw2IEBACiAJCTg1RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovOyB9
OwogCQk4NUZGMzE1QjBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU5MEFBRkJG
Q0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tICovOyB9OwogCQk4NjFDMkVBNDEzRkI0
RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBE
b2N1bWVudExvYWRUaW1pbmcuY3BwICovOyB9OwotCQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIg
LyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2MUMyRUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRU
aW1pbmcuY3BwICovOyB9OwogCQk4NjJGMTI5RTE4QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVz
ZXJBY3Rpdml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODYyRjEyOUQxOEMxNTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjJGMTJBMDE4
QzFERDAyMDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyog
SHlzdGVyZXNpc0FjdGl2aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODY1MTJFREUxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuY3BwICovOyB9OwpAQCAtOTk4OSw3ICs5OTg4LDYgQEAKIAkJODVGRjMxNTgwQUFGQkZDQjAw
Mzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUtleWJvYXJkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERv
Y3VtZW50TG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEb2N1bWVudExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4
NjFDMkVBNTEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFRpbWluZy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBD
b3VudGVkVXNlckFjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
dW50ZWRVc2VyQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYyRjEy
OUYxOEMxRENFNDAwNUM1NEFGIC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIeXN0ZXJlc2lzQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNjEwNiw3ICsxNjEwNCw2IEBACiAJCQkJNTE0Qzc2NjYwQ0U5MjNBMTAwN0VGM0NEIC8qIFJl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCAqLywKIAkJCQk1MUU0MTQzMjE2QTY1OTUxMDBDNjMzQzcg
LyogUmVzb3VyY2VIYW5kbGVUeXBlcy5oICovLAogCQkJCUU0Mjk1RkEzMTJCMDYxNEUwMEQxQUNF
MCAvKiBSZXNvdXJjZUxvYWRQcmlvcml0eS5oICovLAotCQkJCTg2MUMyRUE1MTNGQjRGRkYwMDA2
MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovLAogCQkJCThBODFCRjg0MTFEQ0ZEOTAw
MERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLywKIAkJCQk1MTRDNzY2NzBDRTkyM0Ex
MDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAgKi8sCiAJCQkJNTE0Qzc2NjgwQ0U5
MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuaCAqLywKQEAgLTI4ODMzLDcgKzI4
ODMwLDYgQEAKIAkJCQk1MUFBM0Y2RjBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5NzNFMzI1NjEwODgzQjdDMDA1QkM0OTMgLyogUmVz
b3VyY2VMb2FkTm90aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDBDRTU4RjgxMjVFNEND
MjAwRjNGMTk5IC8qIFJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxNEM3NjdDMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVl
c3RCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDZFMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY1MzBD
RTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMywxOCArMjAz
LDE0IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKIHN0YXRpYyBQ
YXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5n
PiBidWlsZE9iamVjdEZvclRpbWluZyhjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZywg
RG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsKICAgICByZXR1cm4gSW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRSZXF1
ZXN0VGltZShsb2FkZXItPnRpbWluZygpLT5tb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZSh0
aW1pbmcuY29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoMCkpKQotICAgICAg
ICAuc2V0UHJveHlTdGFydCh0aW1pbmcucHJveHlTdGFydCkKLSAgICAgICAgLnNldFByb3h5RW5k
KHRpbWluZy5wcm94eUVuZCkKLSAgICAgICAgLnNldERuc1N0YXJ0KHRpbWluZy5kbnNTdGFydCkK
LSAgICAgICAgLnNldERuc0VuZCh0aW1pbmcuZG5zRW5kKQorICAgICAgICAuc2V0TmF2aWdhdGlv
blN0YXJ0KGxvYWRlci0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFydCgpKQorICAgICAgICAuc2V0
RG9tYWluTG9va3VwU3RhcnQodGltaW5nLmRvbWFpbkxvb2t1cFN0YXJ0KQorICAgICAgICAuc2V0
RG9tYWluTG9va3VwRW5kKHRpbWluZy5kb21haW5Mb29rdXBFbmQpCiAgICAgICAgIC5zZXRDb25u
ZWN0U3RhcnQodGltaW5nLmNvbm5lY3RTdGFydCkKICAgICAgICAgLnNldENvbm5lY3RFbmQodGlt
aW5nLmNvbm5lY3RFbmQpCi0gICAgICAgIC5zZXRTc2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0g
ICAgICAgIC5zZXRTc2xFbmQodGltaW5nLnNzbEVuZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0
aW1pbmcuc2VuZFN0YXJ0KQotICAgICAgICAuc2V0U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAg
ICAgICAgLnNldFJlY2VpdmVIZWFkZXJzRW5kKHRpbWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAg
ICAgICAgLnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydCh0aW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0
YXJ0KQorICAgICAgICAuc2V0UmVxdWVzdFN0YXJ0KHRpbWluZy5yZXF1ZXN0U3RhcnQpCisgICAg
ICAgIC5zZXRSZXNwb25zZVN0YXJ0KHRpbWluZy5yZXNwb25zZVN0YXJ0KQogICAgICAgICAucmVs
ZWFzZSgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0
d29yay5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9OZXR3b3JrLmpzb24JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTMyLDE4ICszMiwx
NCBAQAogICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJUaW1pbmcgaW5mb3JtYXRpb24gZm9yIHRoZSByZXF1ZXN0LiIsCiAgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RUaW1l
IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRpbWluZydzIHJlcXVlc3RUaW1l
IGlzIGEgYmFzZWxpbmUgaW4gc2Vjb25kcywgd2hpbGUgdGhlIG90aGVyIG51bWJlcnMgYXJlIHRp
Y2tzIGluIG1pbGxpc2Vjb25kcyByZWxhdGl2ZWx5IHRvIHRoaXMgcmVxdWVzdFRpbWUuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJveHlTdGFydCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlc29sdmluZyBwcm94eS4iIH0sCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJwcm94eUVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJGaW5pc2hlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiZG5zU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRl
ZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRu
c0VuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRk
cmVzcyByZXNvbHZlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hdmlnYXRpb25T
dGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyBuYXZpZ2F0
aW9uU3RhcnQgaXMgYSBiYXNlbGluZSBpbiBzZWNvbmRzLCB3aGlsZSB0aGUgb3RoZXIgbnVtYmVy
cyBhcmUgdGlja3MgaW4gbWlsbGlzZWNvbmRzIHJlbGF0aXZlbHkgdG8gdGhpcyBuYXZpZ2F0aW9u
U3RhcnQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9tYWluTG9va3VwU3RhcnQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBETlMgYWRkcmVzcyBy
ZXNvbHZlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cEVuZCIs
ICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRkcmVzcyBy
ZXNvbHZlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RTdGFydCIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5lY3RpbmcgdG8gdGhl
IHJlbW90ZSBob3N0LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RFbmQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29ubmVjdGVkIHRvIHRoZSByZW1v
dGUgaG9zdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzc2xTdGFydCIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRl
c2NyaXB0aW9uIjogIkZpbmlzaGVkIFNTTCBoYW5kc2hha2UuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAic2VuZFN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjog
IlN0YXJ0ZWQgc2VuZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNlbmRFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgc2Vu
ZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlY2VpdmVIZWFk
ZXJzRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHJlY2Vp
dmluZyByZXNwb25zZSBoZWFkZXJzLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Vj
dXJlQ29ubmVjdGlvblN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0
YXJ0ZWQgU1NMIGhhbmRzaGFrZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1
ZXN0U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBzZW5k
aW5nIHJlcXVlc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzcG9uc2VTdGFy
dCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlY2VpdmluZyBy
ZXNwb25zZSBoZWFkZXJzLiIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LAogICAgICAgICB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRp
bWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDEyICs3Niw2IEBAIHZvaWQgRG9jdW1lbnRM
b2FkVGltaW5nOjptYXJrTmF2aWdhdGlvblMKICAgICBtX3JlZmVyZW5jZVdhbGxUaW1lID0gY3Vy
cmVudFRpbWUoKTsKIH0KIAotdm9pZCBEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25T
dGFydChkb3VibGUgbmF2aWdhdGlvblN0YXJ0KQotewotICAgIEFTU0VSVChtX3JlZmVyZW5jZU1v
bm90b25pY1RpbWUgJiYgbV9yZWZlcmVuY2VXYWxsVGltZSk7Ci0gICAgbV9uYXZpZ2F0aW9uU3Rh
cnQgPSBuYXZpZ2F0aW9uU3RhcnQ7Ci19Ci0KIHZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjphZGRS
ZWRpcmVjdChjb25zdCBVUkwmIHJlZGlyZWN0aW5nVXJsLCBjb25zdCBVUkwmIHJlZGlyZWN0ZWRV
cmwpCiB7CiAgICAgbV9yZWRpcmVjdENvdW50Kys7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcg
KzQxLDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBtb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGlt
ZShkb3VibGUpIGNvbnN0OwogCiAgICAgdm9pZCBtYXJrTmF2aWdhdGlvblN0YXJ0KCk7Ci0gICAg
dm9pZCBzZXROYXZpZ2F0aW9uU3RhcnQoZG91YmxlKTsKICAgICB2b2lkIGFkZFJlZGlyZWN0KGNv
bnN0IFVSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVkaXJlY3RlZFVybCk7CiAKICAg
ICB2b2lkIG1hcmtVbmxvYWRFdmVudFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZS5pZGwJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLS8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViVGltaW5n
LworLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3JnL2hnL3dlYnBlcmYvcmF3LWZpbGUvdGlwL3Nw
ZWNzL05hdmlnYXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRtbAogWwogICAgIENvbmRpdGlvbmFsPVdF
Ql9USU1JTkcsCiAgICAgRXZlbnRUYXJnZXQsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyMCwxMCArMTIwLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nOjpkb21haW4KICAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKICAgICAgICAg
cmV0dXJuIDAuMDsKIAotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRuc1N0YXJ0IDwg
MCkKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA8IDAp
CiAgICAgICAgIHJldHVybiBmZXRjaFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1l
VG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+ZG5zU3RhcnQpOworICAgIHJldHVybiBy
ZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5Mb29rdXBT
dGFydCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29r
dXBFbmQoKSBjb25zdApAQCAtMTMxLDEwICsxMzEsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmRvbWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAg
ICAgICByZXR1cm4gMC4wOwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zRW5k
IDwgMCkKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPCAw
KQogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNv
dXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNFbmQpOworICAgIHJl
dHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5M
b29rdXBFbmQpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVj
dFN0YXJ0KCkgY29uc3QKQEAgLTE0OCw4ICsxNDgsOCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6Y29ubmVjCiAKICAgICAvLyBjb25uZWN0U3RhcnQgaW5jbHVkZXMgYW55IERO
UyB0aW1lLCBzbyB3ZSBtYXkgbmVlZCB0byB0cmltIHRoYXQgb2ZmLgogICAgIGludCBjb25uZWN0
U3RhcnQgPSBtX3RpbWluZy0+Y29ubmVjdFN0YXJ0OwotICAgIGlmIChtX3RpbWluZy0+ZG5zRW5k
ID49IDApCi0gICAgICAgIGNvbm5lY3RTdGFydCA9IG1fdGltaW5nLT5kbnNFbmQ7CisgICAgaWYg
KG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPj0gMCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0g
bV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZDsKIAogICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0Rv
Y3VtZW50TWlsbGlzZWNvbmRzKGNvbm5lY3RTdGFydCk7CiB9CkBAIC0xNzEsMTAgKzE3MSwxMCBA
QCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6c2VjdXJlCiAgICAgaWYgKCFtX3No
b3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGlt
aW5nIHx8IG1fdGltaW5nLT5zc2xTdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBu
ZWdvdGlhdGVkLgorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNlY3VyZUNvbm5lY3Rp
b25TdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBuZWdvdGlhdGVkLgogICAgICAg
ICByZXR1cm4gMC4wOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNl
Y29uZHMobV90aW1pbmctPnNzbFN0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1
bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0KTsKIH0KIAog
ZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CkBA
IC0xODUsMjUgKzE4NSwxMSBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVx
dWVzCiAgICAgaWYgKCFtX3RpbWluZykKICAgICAgICAgcmV0dXJuIGNvbm5lY3RFbmQoKTsKIAot
ICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5z
ZW5kU3RhcnQpOwotfQotCi1kb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzcG9u
c2VTdGFydCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCi0gICAg
ICAgIHJldHVybiAwLjA7Ci0KLSAgICBpZiAoIW1fdGltaW5nKQotICAgICAgICByZXR1cm4gcmVx
dWVzdFN0YXJ0KCk7Ci0gICAgLy8gRklYTUU6IFRoaXMgbnVtYmVyIGlzbid0IGV4YWN0bHkgY29y
cmVjdC4gU2VlIHRoZSBub3RlcyBpbiBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgp
LgotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5n
LT5yZWNlaXZlSGVhZGVyc0VuZCk7CisgICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRN
aWxsaXNlY29uZHMobV90aW1pbmctPnJlcXVlc3RTdGFydCk7CiB9CiAKIGRvdWJsZSBQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2Zp
bmlzaFRpbWUpCi0gICAgICAgIHJldHVybiByZXNwb25zZVN0YXJ0KCk7Ci0KICAgICByZXR1cm4g
bW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQu
Z2V0KCksIG1fZmluaXNoVGltZSk7CiB9CiAKQEAgLTIxMSw3ICsxOTcsNyBAQCBkb3VibGUgUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzb3VyCiB7CiAgICAgaWYgKCFkZWx0YU1pbGxpc2Vj
b25kcykKICAgICAgICAgcmV0dXJuIDAuMDsKLSAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvRG9j
dW1lbnRNaWxsaXNlY29uZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCksIG1fdGltaW5nLT5y
ZXF1ZXN0VGltZSkgKyBkZWx0YU1pbGxpc2Vjb25kczsKKyAgICByZXR1cm4gbW9ub3RvbmljVGlt
ZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCksIGRvY3Vt
ZW50LT5sb2FkZXIoKS0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFydCgpKSArIGRlbHRhTWlsbGlz
ZWNvbmRzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAkocmV2aXNpb24gMTY4Mzky
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgJKHdv
cmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBjb25uZWN0
RW5kKCkgY29uc3Q7CiAgICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNvbnN0Owog
ICAgIGRvdWJsZSByZXF1ZXN0U3RhcnQoKSBjb25zdDsKLSAgICBkb3VibGUgcmVzcG9uc2VTdGFy
dCgpIGNvbnN0OwogICAgIGRvdWJsZSByZXNwb25zZUVuZCgpIGNvbnN0OwogCiAgICAgdmlydHVh
bCBib29sIGlzUmVzb3VyY2UoKSB7IHJldHVybiB0cnVlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGwJKHJldmlzaW9uIDE2
ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDUgQEAKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBjb25uZWN0RW5kOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSByZXF1ZXN0U3RhcnQ7Ci0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgcmVzcG9uc2VTdGFydDsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSByZXNwb25zZUVuZDsKIH07CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4
MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzMCwxMSArMTMwLDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6ZG8KIAogICAgIC8vIFRoaXMgd2lsbCBiZSAtMSB3aGVuIGEgRE5TIHJlcXVl
c3QgaXMgbm90IHBlcmZvcm1lZC4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNp
YWwgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8gRE5TLCB3ZSAiYmFja2ZpbGwiIHdpdGggZmV0Y2hT
dGFydC4KLSAgICBpbnQgZG5zU3RhcnQgPSB0aW1pbmctPmRuc1N0YXJ0OwotICAgIGlmIChkbnNT
dGFydCA8IDApCisgICAgaW50IGRvbWFpbkxvb2t1cFN0YXJ0ID0gdGltaW5nLT5kb21haW5Mb29r
dXBTdGFydDsKKyAgICBpZiAoZG9tYWluTG9va3VwU3RhcnQgPCAwKQogICAgICAgICByZXR1cm4g
ZmV0Y2hTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJz
b2x1dGUoZG5zU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fi
c29sdXRlKGRvbWFpbkxvb2t1cFN0YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZv
cm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQoKSBjb25zdApAQCAtMTQ1LDExICsxNDUsMTEg
QEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpkbwogCiAgICAgLy8gVGhp
cyB3aWxsIGJlIC0xIHdoZW4gYSBETlMgcmVxdWVzdCBpcyBub3QgcGVyZm9ybWVkLgogICAgIC8v
IFJhdGhlciB0aGFuIGV4cG9zaW5nIGEgc3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBE
TlMsIHdlICJiYWNrZmlsbCIgd2l0aCBkb21haW5Mb29rdXBTdGFydC4KLSAgICBpbnQgZG5zRW5k
ID0gdGltaW5nLT5kbnNFbmQ7Ci0gICAgaWYgKGRuc0VuZCA8IDApCisgICAgaW50IGRvbWFpbkxv
b2t1cEVuZCA9IHRpbWluZy0+ZG9tYWluTG9va3VwRW5kOworICAgIGlmIChkb21haW5Mb29rdXBF
bmQgPCAwKQogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQoKTsKIAotICAgIHJldHVy
biByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGRuc0VuZCk7CisgICAgcmV0dXJu
IHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoZG9tYWluTG9va3VwRW5kKTsKIH0K
IAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQoKSBj
b25zdApAQCAtMTcwLDggKzE3MCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6Y28KIAogICAgIC8vIFJlc291cmNlTG9hZFRpbWluZydzIGNvbm5lY3QgcGhhc2UgaW5j
bHVkZXMgRE5TLCBob3dldmVyIE5hdmlnYXRpb24gVGltaW5nJ3MKICAgICAvLyBjb25uZWN0IHBo
YXNlIHNob3VsZCBub3QuIFNvIGlmIHRoZXJlIGlzIEROUyB0aW1lLCB0cmltIGl0IGZyb20gdGhl
IHN0YXJ0LgotICAgIGlmICh0aW1pbmctPmRuc0VuZCA+PSAwICYmIHRpbWluZy0+ZG5zRW5kID4g
Y29ubmVjdFN0YXJ0KQotICAgICAgICBjb25uZWN0U3RhcnQgPSB0aW1pbmctPmRuc0VuZDsKKyAg
ICBpZiAodGltaW5nLT5kb21haW5Mb29rdXBFbmQgPj0gMCAmJiB0aW1pbmctPmRvbWFpbkxvb2t1
cEVuZCA+IGNvbm5lY3RTdGFydCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0gdGltaW5nLT5kb21h
aW5Mb29rdXBFbmQ7CiAKICAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNv
bHV0ZShjb25uZWN0U3RhcnQpOwogfQpAQCAtMjA1LDExICsyMDUsMTEgQEAgdW5zaWduZWQgbG9u
ZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpzZQogICAgIGlmICghdGltaW5nKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIGludCBzc2xTdGFydCA9IHRpbWluZy0+c3NsU3RhcnQ7Ci0gICAgaWYg
KHNzbFN0YXJ0IDwgMCkKKyAgICBpbnQgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gdGltaW5nLT5z
ZWN1cmVDb25uZWN0aW9uU3RhcnQ7CisgICAgaWYgKHNlY3VyZUNvbm5lY3Rpb25TdGFydCA8IDAp
CiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2
ZVRvQWJzb2x1dGUoc3NsU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRp
dmVUb0Fic29sdXRlKHNlY3VyZUNvbm5lY3Rpb25TdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcg
bG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KCkgY29uc3QKQEAgLTIxOCw4ICsy
MTgsOCBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlCiAgICAgaWYg
KCF0aW1pbmcpCiAgICAgICAgIHJldHVybiBjb25uZWN0RW5kKCk7CiAKLSAgICBBU1NFUlQodGlt
aW5nLT5zZW5kU3RhcnQgPj0gMCk7Ci0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2
ZVRvQWJzb2x1dGUodGltaW5nLT5zZW5kU3RhcnQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlcXVl
c3RTdGFydCA+PSAwKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNv
bHV0ZSh0aW1pbmctPnJlcXVlc3RTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJm
b3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0CkBAIC0yMjgsMTQgKzIyOCw4IEBA
IHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAoIXRpbWlu
ZykKICAgICAgICAgcmV0dXJuIHJlcXVlc3RTdGFydCgpOwogCi0gICAgLy8gRklYTUU6IFJlc3Bv
bnNlIHN0YXJ0IG5lZWRzIHRvIGJlIHRoZSB0aW1lIG9mIHRoZSBmaXJzdCByZWNlaXZlZCBieXRl
LgotICAgIC8vIEhvd2V2ZXIsIHRoZSBSZXNvdXJjZUxvYWRUaW1pbmcgQVBJIGN1cnJlbnRseSBv
bmx5IHN1cHBvcnRzIHRoZSB0aW1lCi0gICAgLy8gdGhlIGxhc3QgaGVhZGVyIGJ5dGUgd2FzIHJl
Y2VpdmVkLiBGb3IgbWFueSByZXNwb25zZXMgd2l0aCByZWFzb25hYmxlCi0gICAgLy8gc2l6ZWQg
Y29va2llcywgdGhlIEhUVFAgaGVhZGVycyBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQgc28gdGhp
cyB0aW1lCi0gICAgLy8gaXMgYmFzaWNhbGx5IGVxdWl2YWxlbnQuIEJ1dCBmb3Igc29tZSByZXNw
b25zZXMsIHBhcnRpY3VsYXJseSB0aG9zZSB3aXRoCi0gICAgLy8gaGVhZGVycyBsYXJnZXIgdGhh
biBhIHNpbmdsZSBwYWNrZXQsIHRoaXMgdGltZSB3aWxsIGJlIHRvbyBsYXRlLgotICAgIEFTU0VS
VCh0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kID49IDApOwotICAgIHJldHVybiByZXNvdXJjZUxv
YWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQpOworICAg
IEFTU0VSVCh0aW1pbmctPnJlc3BvbnNlU3RhcnQgPj0gMCk7CisgICAgcmV0dXJuIHJlc291cmNl
TG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5yZXNwb25zZVN0YXJ0KTsKIH0KIAog
dW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0
CkBAIC0zNTEsOSArMzQ1LDcgQEAgUmVzb3VyY2VMb2FkVGltaW5nKiBQZXJmb3JtYW5jZVRpbWlu
Zzo6cgogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRU
aW1lUmVsYXRpdmVUb0Fic29sdXRlKGludCByZWxhdGl2ZU1pbGxpc2Vjb25kcykgY29uc3QKIHsK
ICAgICBBU1NFUlQocmVsYXRpdmVNaWxsaXNlY29uZHMgPj0gMCk7Ci0gICAgUmVzb3VyY2VMb2Fk
VGltaW5nKiByZXNvdXJjZVRpbWluZyA9IHJlc291cmNlTG9hZFRpbWluZygpOwotICAgIEFTU0VS
VChyZXNvdXJjZVRpbWluZyk7Ci0gICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxs
aXNlY29uZHMocmVzb3VyY2VUaW1pbmctPmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9u
aWNUaW1lKHJlbGF0aXZlTWlsbGlzZWNvbmRzKSk7CisgICAgcmV0dXJuIG5hdmlnYXRpb25TdGFy
dCgpICsgcmVsYXRpdmVNaWxsaXNlY29uZHM7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJm
b3JtYW5jZVRpbWluZzo6bW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUg
bW9ub3RvbmljU2Vjb25kcykgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VUaW1pbmcuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VUaW1pbmcuaWRsCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlVGltaW5nLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0vLyBTZWU6IGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2Vi
YXBpL1dlYlRpbWluZy8KKy8vIFNlZTogaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy93ZWJwZXJmL3Jh
dy1maWxlL3RpcC9zcGVjcy9OYXZpZ2F0aW9uVGltaW5nL092ZXJ2aWV3Lmh0bWwKIFsKICAgICBD
b25kaXRpb25hbD1XRUJfVElNSU5HLAogXSBpbnRlcmZhY2UgUGVyZm9ybWFuY2VUaW1pbmcgewpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQ
UGFyc2Vycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw5ICszNyw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgSFRUUEhlYWRlck1hcDsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2VC
YXNlOwotCiBlbnVtIENvbnRlbnREaXNwb3NpdGlvblR5cGUgewogICAgIENvbnRlbnREaXNwb3Np
dGlvbk5vbmUsCiAgICAgQ29udGVudERpc3Bvc2l0aW9uSW5saW5lLApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkocmV2aXNpb24g
MTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTAsNiArMTkwLDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIHNldEhvc3RBbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYpOwog
ICAgIHN0YXRpYyB2b2lkIHNldENsaWVudENlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYgaG9zdCwg
R1Rsc0NlcnRpZmljYXRlKik7CiAgICAgc3RhdGljIHZvaWQgc2V0SWdub3JlU1NMRXJyb3JzKGJv
b2wpOworICAgIGRvdWJsZSBtX3JlcXVlc3RUaW1lOwogI2VuZGlmCiAKICAgICAvLyBVc2VkIHRv
IHdvcmsgYXJvdW5kIHRoZSBmYWN0IHRoYXQgeW91IGRvbid0IGdldCBhbnkgbW9yZSBOU1VSTENv
bm5lY3Rpb24gY2FsbGJhY2tzIHVudGlsIHlvdSByZXR1cm4gZnJvbSB0aGUgb25lIHlvdSdyZSBp
bi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlTG9hZFRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VMb2FkVGltaW5n
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZG91YmxlIFJlc291cmNlTG9hZFRpbWluZzo6
Y29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoaW50IGRlbHRhTWlsbGlzZWNv
bmRzKSBjb25zdAotewotICAgIHJldHVybiByZXF1ZXN0VGltZSArIGRlbHRhTWlsbGlzZWNvbmRz
IC8gMTAwMC4wOwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlTG9hZFRpbWluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ0LDc2ICs0NCw1MCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxSZXNv
dXJjZUxvYWRUaW1pbmc+IGRlZXBDb3B5KCkKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZXNvdXJj
ZUxvYWRUaW1pbmc+IHRpbWluZyA9IGNyZWF0ZSgpOwotICAgICAgICB0aW1pbmctPnJlcXVlc3RU
aW1lID0gcmVxdWVzdFRpbWU7Ci0gICAgICAgIHRpbWluZy0+cHJveHlTdGFydCA9IHByb3h5U3Rh
cnQ7Ci0gICAgICAgIHRpbWluZy0+cHJveHlFbmQgPSBwcm94eUVuZDsKLSAgICAgICAgdGltaW5n
LT5kbnNTdGFydCA9IGRuc1N0YXJ0OwotICAgICAgICB0aW1pbmctPmRuc0VuZCA9IGRuc0VuZDsK
KyAgICAgICAgdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA9IGRvbWFpbkxvb2t1cFN0YXJ0Owor
ICAgICAgICB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA9IGRvbWFpbkxvb2t1cEVuZDsKICAgICAg
ICAgdGltaW5nLT5jb25uZWN0U3RhcnQgPSBjb25uZWN0U3RhcnQ7CiAgICAgICAgIHRpbWluZy0+
Y29ubmVjdEVuZCA9IGNvbm5lY3RFbmQ7Ci0gICAgICAgIHRpbWluZy0+c2VuZFN0YXJ0ID0gc2Vu
ZFN0YXJ0OwotICAgICAgICB0aW1pbmctPnNlbmRFbmQgPSBzZW5kRW5kOwotICAgICAgICB0aW1p
bmctPnJlY2VpdmVIZWFkZXJzRW5kID0gcmVjZWl2ZUhlYWRlcnNFbmQ7Ci0gICAgICAgIHRpbWlu
Zy0+c3NsU3RhcnQgPSBzc2xTdGFydDsKLSAgICAgICAgdGltaW5nLT5zc2xFbmQgPSBzc2xFbmQ7
CisgICAgICAgIHRpbWluZy0+cmVxdWVzdFN0YXJ0ID0gcmVxdWVzdFN0YXJ0OworICAgICAgICB0
aW1pbmctPnJlc3BvbnNlU3RhcnQgPSByZXNwb25zZVN0YXJ0OworICAgICAgICB0aW1pbmctPnNl
Y3VyZUNvbm5lY3Rpb25TdGFydCA9IHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKICAgICAgICAgcmV0
dXJuIHRpbWluZy5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4g
cmVxdWVzdFRpbWUgPT0gb3RoZXIucmVxdWVzdFRpbWUKLSAgICAgICAgICAgICYmIHByb3h5U3Rh
cnQgPT0gb3RoZXIucHJveHlTdGFydAotICAgICAgICAgICAgJiYgcHJveHlFbmQgPT0gb3RoZXIu
cHJveHlFbmQKLSAgICAgICAgICAgICYmIGRuc1N0YXJ0ID09IG90aGVyLmRuc1N0YXJ0Ci0gICAg
ICAgICAgICAmJiBkbnNFbmQgPT0gb3RoZXIuZG5zRW5kCisgICAgICAgIHJldHVybiBkb21haW5M
b29rdXBTdGFydCA9PSBvdGhlci5kb21haW5Mb29rdXBTdGFydAorICAgICAgICAgICAgJiYgZG9t
YWluTG9va3VwRW5kID09IG90aGVyLmRvbWFpbkxvb2t1cEVuZAogICAgICAgICAgICAgJiYgY29u
bmVjdFN0YXJ0ID09IG90aGVyLmNvbm5lY3RTdGFydAogICAgICAgICAgICAgJiYgY29ubmVjdEVu
ZCA9PSBvdGhlci5jb25uZWN0RW5kCi0gICAgICAgICAgICAmJiBzZW5kU3RhcnQgPT0gb3RoZXIu
c2VuZFN0YXJ0Ci0gICAgICAgICAgICAmJiBzZW5kRW5kID09IG90aGVyLnNlbmRFbmQKLSAgICAg
ICAgICAgICYmIHJlY2VpdmVIZWFkZXJzRW5kID09IG90aGVyLnJlY2VpdmVIZWFkZXJzRW5kCi0g
ICAgICAgICAgICAmJiBzc2xTdGFydCA9PSBvdGhlci5zc2xTdGFydAotICAgICAgICAgICAgJiYg
c3NsRW5kID09IG90aGVyLnNzbEVuZDsKKyAgICAgICAgICAgICYmIHJlcXVlc3RTdGFydCA9PSBv
dGhlci5yZXF1ZXN0U3RhcnQKKyAgICAgICAgICAgICYmIHJlc3BvbnNlU3RhcnQgPT0gb3RoZXIu
cmVzcG9uc2VTdGFydAorICAgICAgICAgICAgJiYgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID09IG90
aGVyLnNlY3VyZUNvbm5lY3Rpb25TdGFydDsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yIT0o
Y29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJl
dHVybiAhKCp0aGlzID09IG90aGVyKTsKICAgICB9Ci0KLSAgICAvLyBXZSB3YW50IHRvIHByZXNl
bnQgYSB1bmlmaWVkIHRpbWVsaW5lIHRvIEphdmFzY3JpcHQuIFVzaW5nIHdhbGx0aW1lIGlzIHBy
b2JsZW1hdGljLCBiZWNhdXNlIHRoZSBjbG9jayBtYXkgc2tldyB3aGlsZSByZXNvdXJjZXMKLSAg
ICAvLyBsb2FkLiBUbyBwcmV2ZW50IHRoYXQgc2tldywgd2UgcmVjb3JkIGEgc2luZ2xlIHJlZmVy
ZW5jZSB3YWxsdGltZSB3aGVuIHJvb3QgZG9jdW1lbnQgbmF2aWdhdGlvbiBiZWdpbnMuIEFsbCBv
dGhlciB0aW1lcyBhcmUKLSAgICAvLyByZWNvcmRlZCB1c2luZyBtb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKS4gV2hlbiBhIHRpbWUgbmVlZHMgdG8gYmUgcHJlc2VudGVkIHRvIEphdmFzY3Jp
cHQsIHdlIGJ1aWxkIGEgcHNldWRvLXdhbGx0aW1lCi0gICAgLy8gdXNpbmcgdGhlIGZvbGxvd2lu
ZyBlcXVhdGlvbjoKLSAgICAvLyAgIHBzZXVkbyB0aW1lID0gZG9jdW1lbnQgd2FsbCByZWZlcmVu
Y2UgKyAocmVzb3VyY2UgcmVxdWVzdCB0aW1lIC0gZG9jdW1lbnQgbW9ub3RvbmljIHJlZmVyZW5j
ZSkgKyBkZWx0YU1pbGxpc2Vjb25kcyAvIDEwMDAuMC4KLSAgICBkb3VibGUgY29udmVydFJlc291
cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdDsK
LQotICAgIGRvdWJsZSByZXF1ZXN0VGltZTsgLy8gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkgd2hlbiB0aGUgcG9ydCBzdGFydGVkIGhhbmRsaW5nIHRoaXMgcmVxdWVzdC4KLSAgICBpbnQg
cHJveHlTdGFydDsgLy8gVGhlIHJlc3Qgb2YgdGhlc2UgYXJlIG1pbGxpc2Vjb25kIGRlbHRhcywg
dXNpbmcgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIGZyb20gcmVxdWVzdFRpbWUuCi0g
ICAgaW50IHByb3h5RW5kOwotICAgIGludCBkbnNTdGFydDsKLSAgICBpbnQgZG5zRW5kOworICAg
IAorICAgIC8vIFRoZXNlIGFyZSBtaWxsaXNlY29uZCBkZWx0YXMgZnJvbSB0aGUgbmF2aWdhdGlv
biBzdGFydC4KKyAgICBpbnQgZG9tYWluTG9va3VwU3RhcnQ7CisgICAgaW50IGRvbWFpbkxvb2t1
cEVuZDsKICAgICBpbnQgY29ubmVjdFN0YXJ0OwogICAgIGludCBjb25uZWN0RW5kOwotICAgIGlu
dCBzZW5kU3RhcnQ7Ci0gICAgaW50IHNlbmRFbmQ7Ci0gICAgaW50IHJlY2VpdmVIZWFkZXJzRW5k
OwotICAgIGludCBzc2xTdGFydDsKLSAgICBpbnQgc3NsRW5kOwotCisgICAgaW50IHJlcXVlc3RT
dGFydDsKKyAgICBpbnQgcmVzcG9uc2VTdGFydDsKKyAgICBpbnQgc2VjdXJlQ29ubmVjdGlvblN0
YXJ0OworICAgIAogcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRUaW1pbmcoKQotICAgICAgICA6
IHJlcXVlc3RUaW1lKDApCi0gICAgICAgICwgcHJveHlTdGFydCgtMSkKLSAgICAgICAgLCBwcm94
eUVuZCgtMSkKLSAgICAgICAgLCBkbnNTdGFydCgtMSkKLSAgICAgICAgLCBkbnNFbmQoLTEpCisg
ICAgICAgIDogZG9tYWluTG9va3VwU3RhcnQoLTEpCisgICAgICAgICwgZG9tYWluTG9va3VwRW5k
KC0xKQogICAgICAgICAsIGNvbm5lY3RTdGFydCgtMSkKICAgICAgICAgLCBjb25uZWN0RW5kKC0x
KQotICAgICAgICAsIHNlbmRTdGFydCgwKQotICAgICAgICAsIHNlbmRFbmQoMCkKLSAgICAgICAg
LCByZWNlaXZlSGVhZGVyc0VuZCgwKQotICAgICAgICAsIHNzbFN0YXJ0KC0xKQotICAgICAgICAs
IHNzbEVuZCgtMSkKKyAgICAgICAgLCByZXF1ZXN0U3RhcnQoMCkKKyAgICAgICAgLCByZXNwb25z
ZVN0YXJ0KDApCisgICAgICAgICwgc2VjdXJlQ29ubmVjdGlvblN0YXJ0KC0xKQogICAgIHsKICAg
ICB9CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Niw2ICs1NiwxNCBAQAogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+
CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxGb3Vu
ZGF0aW9uL05TVVJMQ29ubmVjdGlvblByaXZhdGUuaD4pCisjaW1wb3J0IDxGb3VuZGF0aW9uL05T
VVJMQ29ubmVjdGlvblByaXZhdGUuaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMQ29ubmVjdGlv
biAoVGltaW5nRGF0YSkKKysgKHZvaWQpX3NldENvbGxlY3RzVGltaW5nRGF0YTooQk9PTCljb2xs
ZWN0OworQGVuZAorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxDRk5ldHdv
cmsvQ0ZVUkxSZXF1ZXN0Lmg+CiAKQEAgLTIwMCw2ICsyMDgsOSBAQCB2b2lkIFJlc291cmNlSGFu
ZGxlOjpjcmVhdGVOU1VSTENvbm5lY3RpCiAgICAgY29uc3QgYm9vbCB1c2VzQ2FjaGUgPSB0cnVl
OwogI2VuZGlmCiAgICAgZC0+bV9jb25uZWN0aW9uID0gYWRvcHROUyhbW05TVVJMQ29ubmVjdGlv
biBhbGxvY10gX2luaXRXaXRoUmVxdWVzdDpuc1JlcXVlc3QgZGVsZWdhdGU6ZGVsZWdhdGUgdXNl
c0NhY2hlOnVzZXNDYWNoZSBtYXhDb250ZW50TGVuZ3RoOjAgc3RhcnRJbW1lZGlhdGVseTpOTyBj
b25uZWN0aW9uUHJvcGVydGllczpwcm9wZXJ0eURpY3Rpb25hcnldKTsKKyNpZiBFTkFCTEUoV0VC
X1RJTUlORykKKyAgICBbTlNVUkxDb25uZWN0aW9uIF9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6WUVT
XTsKKyNlbmRpZgogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09w
ZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURl
bGVnYXRlLm1tCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDE0IEBACiAjaW1wb3J0ICJXZWJDb3JlVVJM
UmVzcG9uc2UuaCIKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAKKyNpZiBfX2hhc19pbmNs
dWRlKDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4pCisjaW1wb3J0IDxDRk5ldHdvcmsv
Q0ZOU1VSTENvbm5lY3Rpb24uaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMQ29ubmVjdGlvbiAo
VGltaW5nRGF0YSkKKy0gKE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhOworQGVuZAorI2VuZGlm
CisKIEBpbnRlcmZhY2UgTlNVUkxSZXF1ZXN0IChEZXRhaWxzKQogLSAoaWQpX3Byb3BlcnR5Rm9y
S2V5OihOU1N0cmluZyAqKWtleTsKIEBlbmQKQEAgLTE5Myw3ICsyMDEsNiBAQCAtIChCT09MKWNv
bm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJM
Q29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNl
ICopcgogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIFVOVVNFRF9QQVJBTShj
b25uZWN0aW9uKTsKIAogICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIGRlbGVnYXRlIGNvbm5l
Y3Rpb246JXAgZGlkUmVjZWl2ZVJlc3BvbnNlOiVwIChIVFRQIHN0YXR1cyAlZCwgcmVwb3J0ZWQg
TUlNRVR5cGUgJyVzJykiLCBtX2hhbmRsZSwgY29ubmVjdGlvbiwgciwgW3IgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3RvcihzdGF0dXNDb2RlKV0gPyBbKGlkKXIgc3RhdHVzQ29kZV0gOiAwLCBb
W3IgTUlNRVR5cGVdIFVURjhTdHJpbmddKTsKIApAQCAtMjEyLDggKzIxOSwzOCBAQCAtICh2b2lk
KWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAKICAgICAgICAgaWYgKFttX2hhbmRs
ZS0+Zmlyc3RSZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpIF9wcm9w
ZXJ0eUZvcktleTpAIkZvcmNlSFRNTE1JTUVUeXBlIl0pCiAgICAgICAgICAgICBbciBfc2V0TUlN
RVR5cGU6QCJ0ZXh0L2h0bWwiXTsKLQotICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJl
Y2VpdmVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCByKTsKKyAgICAgICAgCisgICAgICAgIFJlc291
cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShyKTsKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykK
KyAgICAgICAgTlNEaWN0aW9uYXJ5KiB0aW1pbmdEYXRhID0gW2Nvbm5lY3Rpb24gX3RpbWluZ0Rh
dGFdOworICAgICAgICBpZiAodGltaW5nRGF0YSkgeworICAgICAgICAgICAgcmVzb3VyY2VSZXNw
b25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7
CisgICAgICAgICAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc291cmNlUmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRo
aXMgaXMgbm90IHRoZSBuYXZpZ2F0aW9uU3RhcnQgdGltZSBpbiBtb25vdG9uaWMgdGltZSwgYnV0
IHRoZSBvdGhlciB0aW1lcyBhcmUgcmVsYXRpdmUgdG8gdGhpcyB0aW1lCisgICAgICAgICAgICAv
LyBhbmQgb25seSB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aW1lcyBhcmUgc3RvcmVkLgorICAg
ICAgICAgICAgZG91YmxlIHJlZmVyZW5jZVN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5
OkAiX2tDRk5UaW1pbmdEYXRhVGltaW5nRGF0YUluaXQiXSBkb3VibGVWYWx1ZV07CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydCA9IFtbdGltaW5nRGF0
YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cFN0YXJ0Il0gZG91Ymxl
VmFsdWVdOworICAgICAgICAgICAgZG91YmxlIGRvbWFpbkxvb2t1cEVuZCA9IFtbdGltaW5nRGF0
YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cEVuZCJdIGRvdWJsZVZh
bHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSBjb25uZWN0U3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFs
dWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25uZWN0U3RhcnQiXSBkb3VibGVWYWx1ZV07Cisg
ICAgICAgICAgICBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZh
bHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhU2VjdXJlQ29ubmVjdGlvblN0YXJ0Il0gZG91Ymxl
VmFsdWVdOworICAgICAgICAgICAgZG91YmxlIGNvbm5lY3RFbmQgPSBbW3RpbWluZ0RhdGEgdmFs
dWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25uZWN0RW5kIl0gZG91YmxlVmFsdWVdOworICAg
ICAgICAgICAgZG91YmxlIHJlcXVlc3RTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpA
Il9rQ0ZOVGltaW5nRGF0YVJlcXVlc3RTdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAg
IGRvdWJsZSByZXNwb25zZVN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5U
aW1pbmdEYXRhUmVzcG9uc2VTdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA9IGRvbWFpbkxvb2t1cFN0YXJ0IDw9
IDAuMCA/IC0xIDogKGRvbWFpbkxvb2t1cFN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsK
KyAgICAgICAgICAgIHRpbWluZy0+ZG9tYWluTG9va3VwRW5kID0gZG9tYWluTG9va3VwRW5kIDw9
IDAuMCA/IC0xIDogKGRvbWFpbkxvb2t1cEVuZCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7Cisg
ICAgICAgICAgICB0aW1pbmctPmNvbm5lY3RTdGFydCA9IGNvbm5lY3RTdGFydCA8PSAwLjAgPyAt
MSA6IChjb25uZWN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAg
dGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnQgPD0g
MC4wID8gLTEgOiAoc2VjdXJlQ29ubmVjdGlvblN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAw
MDsKKyAgICAgICAgICAgIHRpbWluZy0+Y29ubmVjdEVuZCA9IGNvbm5lY3RFbmQgPD0gMC4wID8g
LTEgOiAoY29ubmVjdEVuZCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0
aW1pbmctPnJlcXVlc3RTdGFydCA9IHJlcXVlc3RTdGFydCA8PSAwLjAgPyAtMSA6IChyZXF1ZXN0
U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5nLT5yZXNw
b25zZVN0YXJ0ID0gcmVzcG9uc2VTdGFydCA8PSAwLjAgPyAtMSA6IChyZXNwb25zZVN0YXJ0IC0g
cmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgVU5VU0VE
X1BBUkFNKGNvbm5lY3Rpb24pOworI2VuZGlmCisgICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+
ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMobV9oYW5kbGUsIHJlc291cmNlUmVzcG9uc2UpOwogICAg
IH0pOwogCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENI
X1RJTUVfRk9SRVZFUik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkocmV2aXNpb24gMTY4
MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNiwxMSArMzE2LDYgQEAgc3RhdGljIHZv
aWQgZ290SGVhZGVyc0NhbGxiYWNrKFNvdXBNZXNzYQogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIAotI2lmIEVOQUJMRShXRUJfVElNSU5H
KQotICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQotICAgICAgICBk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZWNlaXZlSGVhZGVyc0VuZCA9IG1p
bGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkt
PnJlcXVlc3RUaW1lKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIC8vIFdlIGFy
ZSBhIGJpdCBtb3JlIGNvbnNlcnZhdGl2ZSB3aXRoIHRoZSBwZXJzaXN0ZW50IGNyZWRlbnRpYWwg
c3RvcmFnZSB0aGFuIHRoZSBzZXNzaW9uIHN0b3JlLAogICAgIC8vIHNpbmNlIHdlIGFyZSB3YWl0
aW5nIHVudGlsIHdlIGtub3cgdGhhdCB0aGlzIGF1dGhlbnRpY2F0aW9uIHN1Y2NlZWRlZCBiZWZv
cmUgYWN0dWFsbHkgc3RvcmluZy4KQEAgLTM5MCw3ICszODUsNyBAQCBzdGF0aWMgdm9pZCByZXN0
YXJ0ZWRDYWxsYmFjayhTb3VwTWVzc2FnCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9
IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJl
c3BvbnNlID0gZC0+bV9yZXNwb25zZTsKICAgICByZWRpcmVjdFJlc3BvbnNlLnNldFJlc291cmNl
TG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKTsKLSAgICByZWRpcmVjdFJl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpOworICAgIG1fcmVxdWVzdFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKTsKIH0KICNlbmRpZgogCkBAIC04NDQsMzUgKzgzOSwxMyBAQCBzdGF0aWMgaW50
IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGRvdWJsCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGlu
dD4oKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gcmVxdWVzdFRpbWUpICogMTAwMC4w
KTsKIH0KIAotc3RhdGljIHZvaWQgd3JvdGVCb2R5Q2FsbGJhY2soU291cE1lc3NhZ2UqLCBncG9p
bnRlciBkYXRhKQotewotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGlj
X2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKLSAgICBpZiAoIWhhbmRsZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50
ZXJuYWwoKTsKLSAgICBpZiAoIWQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkt
PnNlbmRFbmQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7Ci19Ci0KIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRp
ZFN0YXJ0UmVxdWVzdCgpCiB7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGdldElu
dGVybmFsKCk7CiAgICAgaWYgKCFkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygp
LT5zZW5kU3RhcnQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7Ci0gICAgaWYgKGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0ICE9IC0xKSB7Ci0gICAgICAgIC8vIFdlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXF1ZXN0VGltaW5nVmlldy5qcyBhc3N1bWVzCi0gICAgICAg
IC8vIHRoYXQgU1NMIHRpbWUgaXMgaW5jbHVkZWQgaW4gY29ubmVjdGlvbiB0aW1lIHNvIG11c3QK
LSAgICAgICAgLy8gc3Vic3RyYWN0IGhlcmUgdGhlIFNTTCBkZWx0YSB0aGF0IHdpbGwgYmUgYWRk
ZWQgbGF0ZXIgKHNlZQotICAgICAgICAvLyBXZWJJbnNwZWN0b3IuUmVxdWVzdFRpbWluZ1ZpZXcu
Y3JlYXRlVGltaW5nVGFibGUgaW4gdGhlCi0gICAgICAgIC8vIGZpbGUgYWJvdmUgZm9yIG1vcmUg
ZGV0YWlscykuCi0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNl
bmRTdGFydCAtPQotICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+c3NsRW5kIC0gZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQ7
Ci0gICAgfQorICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RT
dGFydFRpbWUgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChtX3JlcXVlc3RUaW1lKTsKIH0KIAog
c3RhdGljIHZvaWQgbmV0d29ya0V2ZW50Q2FsbGJhY2soU291cE1lc3NhZ2UqLCBHU29ja2V0Q2xp
ZW50RXZlbnQgZXZlbnQsIEdJT1N0cmVhbSosIGdwb2ludGVyIGRhdGEpCkBAIC04ODUsNDAgKzg1
OCwzOCBAQCBzdGF0aWMgdm9pZCBuZXR3b3JrRXZlbnRDYWxsYmFjayhTb3VwTWVzCiAgICAgICAg
IHJldHVybjsKIAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldElu
dGVybmFsKCk7Ci0gICAgaW50IGRlbHRhVGltZSA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKKyAgICBpbnQg
ZGVsdGFUaW1lID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoaGFuZGxlLT5tX3JlcXVlc3RUaW1l
KTsKICAgICBzd2l0Y2ggKGV2ZW50KSB7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUkVTT0xW
SU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNTdGFy
dCA9IGRlbHRhVGltZTsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+ZG9tYWluTG9va3VwU3RhcnQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgR19TT0NLRVRfQ0xJRU5UX1JFU09MVkVEOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5kbnNFbmQgPSBkZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxvb2t1cEVuZCA9IGRlbHRhVGltZTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfQ09OTkVDVElORzoKICAgICAg
ICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+Y29ubmVjdFN0YXJ0ID0gZGVs
dGFUaW1lOwotICAgICAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
ZG5zU3RhcnQgIT0gLTEpCisgICAgICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5kb21haW5Mb29rdXBTdGFydCAhPSAtMSkgewogICAgICAgICAgICAgLy8gV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlcXVlc3RUaW1pbmdWaWV3LmpzIGFzc3VtZXMKICAgICAg
ICAgICAgIC8vIHRoYXQgRE5TIHRpbWUgaXMgaW5jbHVkZWQgaW4gY29ubmVjdGlvbiB0aW1lIHNv
IG11c3QKICAgICAgICAgICAgIC8vIHN1YnN0cmFjdCBoZXJlIHRoZSBETlMgZGVsdGEgdGhhdCB3
aWxsIGJlIGFkZGVkIGxhdGVyIChzZWUKICAgICAgICAgICAgIC8vIFdlYkluc3BlY3Rvci5SZXF1
ZXN0VGltaW5nVmlldy5jcmVhdGVUaW1pbmdUYWJsZSBpbiB0aGUKICAgICAgICAgICAgIC8vIGZp
bGUgYWJvdmUgZm9yIG1vcmUgZGV0YWlscykuCiAgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpLT5jb25uZWN0U3RhcnQgLT0KLSAgICAgICAgICAgICAgICBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNFbmQgLSBkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpLT5kbnNTdGFydDsKKyAgICAgICAgICAgICAgICBkLT5tX3Jlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kb21haW5Mb29rdXBFbmQgLSBkLT5tX3Jlc3BvbnNl
LnJlc291cmNlTG9hZFRpbWluZygpLT5kb21haW5Mb29rdXBTdGFydDsKKyAgICAgICAgfQogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9DT05ORUNURUQ6CiAgICAgICAg
IC8vIFdlYiBUaW1pbmcgY29uc2lkZXJzIHRoYXQgY29ubmVjdGlvbiB0aW1lIGludm9sdmVzIGRu
cywgcHJveHkgJiBUTFMgbmVnb3RpYXRpb24uLi4KICAgICAgICAgLy8gc28gd2UgYmV0dGVyIHBp
Y2sgR19TT0NLRVRfQ0xJRU5UX0NPTVBMRVRFIGZvciBjb25uZWN0RW5kCiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1BST1hZX05FR09USUFUSU5HOgotICAgICAgICBk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5wcm94eVN0YXJ0ID0gZGVsdGFUaW1l
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9QUk9YWV9ORUdPVElB
VEVEOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5wcm94eUVu
ZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRf
VExTX0hBTkRTSEFLSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWlu
ZygpLT5zc2xTdGFydCA9IGRlbHRhVGltZTsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJj
ZUxvYWRUaW1pbmcoKS0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gZGVsdGFUaW1lOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9UTFNfSEFORFNIQUtFRDoKLSAgICAg
ICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsRW5kID0gZGVsdGFUaW1l
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9DT01QTEVURToKICAg
ICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+Y29ubmVjdEVuZCA9IGRl
bHRhVGltZTsKQEAgLTk4MCw3ICs5NTEsNiBAQCBzdGF0aWMgYm9vbCBjcmVhdGVTb3VwTWVzc2Fn
ZUZvckhhbmRsZUFuCiAgICAgZC0+bV9yZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVz
b3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7CiAgICAgZ19zaWduYWxfY29ubmVjdChkLT5tX3Nv
dXBNZXNzYWdlLmdldCgpLCAibmV0d29yay1ldmVudCIsIEdfQ0FMTEJBQ0sobmV0d29ya0V2ZW50
Q2FsbGJhY2spLCBoYW5kbGUpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2Fn
ZS5nZXQoKSwgInJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVzdGFydGVkQ2FsbGJhY2spLCBoYW5k
bGUpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgIndyb3Rl
LWJvZHkiLCBHX0NBTExCQUNLKHdyb3RlQm9keUNhbGxiYWNrKSwgaGFuZGxlKTsKICNlbmRpZgog
CiAjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDQzLCAxKQpAQCAtMTA1NCw3ICsxMDI0LDcgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdSZXF1ZXN0KAogewogI2lmIEVOQUJMRShX
RUJfVElNSU5HKQogICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQot
ICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgICAgICBtX3JlcXVlc3RUaW1lID0g
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAjZW5kaWYKIAogICAgIGlmIChkLT5tX2Zp
cnN0UmVxdWVzdC50aW1lb3V0SW50ZXJ2YWwoKSA+IDApIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlz
aW9uIDE2ODUzNykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDE0LTA1LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mgb24gd2ViIHRpbWluZy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjU3NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3Vy
Y2VSZXNwb25zZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3Vy
Y2VSZXNwb25zZT46OmRlY29kZSk6CisgICAgICAgIFRyYW5zZmVyIFJlc291cmNlTG9hZFRpbWlu
ZyB2YWx1ZXMgaWYgdGhleSBleGlzdC4KKwogMjAxNC0wNS0wOSAgTWFydGluIEhvZG92YW4gIDxt
aG9kb3Zhbi51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFtXSzJdIE1h
a2UgZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIHdvcmsgYWZ0ZXIgV2ViS2l0Mi5mcmFt
ZXdvcmsgLT4gV2ViS2l0LmZyYW1ld29yayByZW5hbWUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjg4LDYgKzY4OCwxOCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VS
ZXNwb25zZT46OmVuCiAgICAgICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXNwb25zZS5odHRwU3Rh
dHVzVGV4dCgpOwogICAgICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVzcG9uc2Uuc3VnZ2VzdGVk
RmlsZW5hbWUoKTsKICAgICB9CisgICAgUmVzb3VyY2VMb2FkVGltaW5nKiB0aW1pbmcgPSByZXNv
dXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpOworICAgIGJvb2wgaGFzUmVzb3VyY2VM
b2FkVGltaW5nID0gdGltaW5nOworICAgIGVuY29kZXIgPDwgaGFzUmVzb3VyY2VMb2FkVGltaW5n
OworICAgIGlmIChoYXNSZXNvdXJjZUxvYWRUaW1pbmcpIHsKKyAgICAgICAgZW5jb2RlciA8PCB0
aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0OworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+ZG9t
YWluTG9va3VwRW5kOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+Y29ubmVjdFN0YXJ0Owor
ICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+Y29ubmVjdEVuZDsKKyAgICAgICAgZW5jb2RlciA8
PCB0aW1pbmctPnJlcXVlc3RTdGFydDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPnJlc3Bv
bnNlU3RhcnQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3Rh
cnQ7CisgICAgfQogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlc291cmNlUmVzcG9uc2UmIHJlc291cmNl
UmVzcG9uc2UpCkBAIC03NTUsNyArNzY3LDIzIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJj
ZVJlc3BvbnNlPjo6ZGUKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzcG9u
c2Uuc2V0U3VnZ2VzdGVkRmlsZW5hbWUoc3VnZ2VzdGVkRmlsZW5hbWUpOwogICAgIH0KLQorICAg
IAorICAgIGJvb2wgaGFzUmVzb3VyY2VMb2FkVGltaW5nOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
IChoYXNSZXNvdXJjZUxvYWRUaW1pbmcpIHsKKyAgICAgICAgcmVzcG9uc2Uuc2V0UmVzb3VyY2VM
b2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpOworICAgICAgICBSZXNvdXJj
ZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpOworICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQpCisgICAg
ICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5nLT5kb21haW5Mb29rdXBFbmQpCisgICAg
ICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5nLT5jb25uZWN0U3RhcnQpCisgICAgICAg
ICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5nLT5jb25uZWN0RW5kKQorICAgICAgICAgICAg
fHwgIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+cmVxdWVzdFN0YXJ0KQorICAgICAgICAgICAgfHwg
IWRlY29kZXIuZGVjb2RlKHRpbWluZy0+cmVzcG9uc2VTdGFydCkKKyAgICAgICAgICAgIHx8ICFk
ZWNvZGVyLmRlY29kZSh0aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydCkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAogICAgIHJlc291cmNlUmVzcG9uc2UgPSByZXNw
b25zZTsKIAogICAgIHJldHVybiB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231181</attachid>
            <date>2014-05-09 13:10:57 -0700</date>
            <delta_ts>2014-05-09 13:16:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140509131033.patch</filename>
            <type>text/plain</type>
            <size>46324</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODUzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc2IEBACisyMDE0LTA1LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
b24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRkZWQgbGlua2Vy
IHN5bWJvbHMgZm9yIFJlc291cmNlTG9hZFRpbWluZy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGltaW5n
LmNwcC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgICogaW5zcGVj
dG9yL3Byb3RvY29sL05ldHdvcmsuanNvbjoKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZVRpbWlu
ZyBzdHJ1Y3R1cmUuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6
CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICAgRGVsZXRl
ZCB1bnVzZWQgc2V0TmF2aWdhdGlvblN0YXJ0IGZ1bmN0aW9uLgorICAgICAgICAqIHBhZ2UvUGVy
Zm9ybWFuY2UuaWRsOgorICAgICAgICBVcGRhdGVkIHNwZWMgVVJMLgorICAgICAgICAqIHBhZ2Uv
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25T
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNw
b25zZUVuZCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJp
YWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6
OnJlc3BvbnNlU3RhcnQpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6CisgICAg
ICAgIERlbGV0ZWQgcmVzcG9uc2VTdGFydCBiZWNhdXNlIGl0IGlzIG5vdCBpbiB0aGUgc3BlYy4K
KyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBl
cmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJj
ZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUpOgorICAg
ICAgICBVc2UgbmF2aWdhdGlvblN0YXJ0IGFzIGJhc2UgZm9yIHJlc291cmNlIGxvYWQgdGltZXMu
CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGw6CisgICAgICAgIFVwZGF0ZWQg
c3BlYyBVUkwuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oOgorICAg
ICAgICBSZW1vdmVkIHVudXNlZCBjbGFzcyBkZWNsYXJhdGlvbnMuCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICBNb3ZlZCBzb3VwIHJlcXVlc3Qg
dGltZSBmcm9tIFJlc291cmNlTG9hZFRpbWluZyB0byBSZXNvdXJjZUhhbmRsZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6ZGVlcENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkVGltaW5nOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6UmVzb3VyY2VMb2FkVGltaW5nKToKKyAgICAgICAgVXBkYXRlZCBSZXNv
dXJjZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbik6CisgICAgICAgIENvbGxlY3QgdGlt
aW5nIGRhdGEuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZl
UmVzcG9uc2U6XSk6CisgICAgICAgIFNhdmUgdGltaW5nIGRhdGEgdG8gYSBSZXNvdXJjZUxvYWRU
aW1pbmcgb24gdGhlIFJlc291cmNlUmVzcG9uc2UuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFk
ZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6bWlsaXNlY29uZHNTaW5jZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmRpZFN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpu
ZXR3b3JrRXZlbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3VwTWVzc2Fn
ZUZvckhhbmRsZUFuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnNlbmRQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5n
IG1lbWJlciB2YXJpYWJsZSBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxi
YWNrKTogRGVsZXRlZC4KKwogMjAxNC0wNS0wOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTVNFXVtNYWNdIERlc3Ryb3kgdGhlIEFWU3RyZWFtRGF0YVBhcnNl
ciB3aGVuIHRoZSBTb3VyY2VCdWZmZXIgaXMgcmVtb3ZlZCBmcm9tIGl0cyBNZWRpYVNvdXJjZS4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE5MSw3ICsyMTkxLDYgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJh
c2UuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmNwcAotICAgIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNzcxLDYgKzc3MSw3IEBAIF9fWk43
V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkOGFkZFR5cGUKIF9fWk43V2ViQ29yZTE4UGxhdGZv
cm1QYXN0ZWJvYXJkOGdldFR5cGVzRVJOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8x
NUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQ4c2V0
VHlwZXNFUktOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxv
d0VFRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmRDMUVSS04zV1RGNlN0cmluZ0UK
K19fWk43V2ViQ29yZTE4UmVzb3VyY2VMb2FkVGltaW5nQzFFdgogX19aTjdXZWJDb3JlMThTdHls
ZVNoZWV0Q29udGVudHMxMXBhcnNlU3RyaW5nRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MThTdHlsZVNoZWV0Q29udGVudHNDMUVQTlNfMTVTdHlsZVJ1bGVJbXBvcnRFUktOM1dURjZTdHJp
bmdFUktOU18xNkNTU1BhcnNlckNvbnRleHRFCiBfX1pON1dlYkNvcmUxOFN0eWxlU2hlZXRDb250
ZW50c0QxRXYKQEAgLTg0NCw2ICs4NDUsNyBAQCBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9u
c2VCYXNlMTdzZXRICiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzZXRIVFRQ
U3RhdHVzVGV4dEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25z
ZUJhc2UxOHNldEhUVFBIZWFkZXJGaWVsZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFUktOUzFfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxOXNldFRleHRFbmNvZGlu
Z05hbWVFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MjFzZXRSZXNvdXJjZUxvYWRUaW1pbmdFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMThSZXNvdXJjZUxv
YWRUaW1pbmdFRUUKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dl
c3RlZEZpbGVuYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTI0c2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoRXgKIF9fWk43V2ViQ29yZTIwUmVzb3Vy
Y2VSZXNwb25zZUJhc2U2c2V0VVJMRVJLTlNfM1VSTEUKQEAgLTE3NTUsNiArMTc1Nyw3IEBAIF9f
Wk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTVodHQKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTZodHRwSGVhZGVyRmllbGRzRXYKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTZ0ZXh0RW5jb2RpbmdOYW1lRXYKIF9fWk5LN1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMTdzdWdnZXN0ZWRGaWxlbmFtZUV2CitfX1pOSzdXZWJDb3JlMjBS
ZXNvdXJjZVJlc3BvbnNlQmFzZTE4cmVzb3VyY2VMb2FkVGltaW5nRXYKIF9fWk5LN1dlYkNvcmUy
MFJlc291cmNlUmVzcG9uc2VCYXNlMjFleHBlY3RlZENvbnRlbnRMZW5ndGhFdgogX19aTks3V2Vi
Q29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UzdXJsRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNl
UmVzcG9uc2VCYXNlNmlzSFRUUEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTI5NzksNyArMjk3OSw2IEBACiAJCTg1RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovOyB9
OwogCQk4NUZGMzE1QjBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU5MEFBRkJG
Q0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tICovOyB9OwogCQk4NjFDMkVBNDEzRkI0
RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBE
b2N1bWVudExvYWRUaW1pbmcuY3BwICovOyB9OwotCQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIg
LyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2MUMyRUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRU
aW1pbmcuY3BwICovOyB9OwogCQk4NjJGMTI5RTE4QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVz
ZXJBY3Rpdml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODYyRjEyOUQxOEMxNTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjJGMTJBMDE4
QzFERDAyMDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyog
SHlzdGVyZXNpc0FjdGl2aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODY1MTJFREUxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuY3BwICovOyB9OwpAQCAtOTk4OSw3ICs5OTg4LDYgQEAKIAkJODVGRjMxNTgwQUFGQkZDQjAw
Mzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUtleWJvYXJkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERv
Y3VtZW50TG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEb2N1bWVudExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4
NjFDMkVBNTEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFRpbWluZy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBD
b3VudGVkVXNlckFjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
dW50ZWRVc2VyQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYyRjEy
OUYxOEMxRENFNDAwNUM1NEFGIC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIeXN0ZXJlc2lzQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNjEwNiw3ICsxNjEwNCw2IEBACiAJCQkJNTE0Qzc2NjYwQ0U5MjNBMTAwN0VGM0NEIC8qIFJl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCAqLywKIAkJCQk1MUU0MTQzMjE2QTY1OTUxMDBDNjMzQzcg
LyogUmVzb3VyY2VIYW5kbGVUeXBlcy5oICovLAogCQkJCUU0Mjk1RkEzMTJCMDYxNEUwMEQxQUNF
MCAvKiBSZXNvdXJjZUxvYWRQcmlvcml0eS5oICovLAotCQkJCTg2MUMyRUE1MTNGQjRGRkYwMDA2
MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovLAogCQkJCThBODFCRjg0MTFEQ0ZEOTAw
MERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLywKIAkJCQk1MTRDNzY2NzBDRTkyM0Ex
MDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAgKi8sCiAJCQkJNTE0Qzc2NjgwQ0U5
MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuaCAqLywKQEAgLTI4ODMzLDcgKzI4
ODMwLDYgQEAKIAkJCQk1MUFBM0Y2RjBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5NzNFMzI1NjEwODgzQjdDMDA1QkM0OTMgLyogUmVz
b3VyY2VMb2FkTm90aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDBDRTU4RjgxMjVFNEND
MjAwRjNGMTk5IC8qIFJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxNEM3NjdDMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVl
c3RCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDZFMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY1MzBD
RTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMywxOCArMjAz
LDE0IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKIHN0YXRpYyBQ
YXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5n
PiBidWlsZE9iamVjdEZvclRpbWluZyhjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZywg
RG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsKICAgICByZXR1cm4gSW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRSZXF1
ZXN0VGltZShsb2FkZXItPnRpbWluZygpLT5tb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZSh0
aW1pbmcuY29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoMCkpKQotICAgICAg
ICAuc2V0UHJveHlTdGFydCh0aW1pbmcucHJveHlTdGFydCkKLSAgICAgICAgLnNldFByb3h5RW5k
KHRpbWluZy5wcm94eUVuZCkKLSAgICAgICAgLnNldERuc1N0YXJ0KHRpbWluZy5kbnNTdGFydCkK
LSAgICAgICAgLnNldERuc0VuZCh0aW1pbmcuZG5zRW5kKQorICAgICAgICAuc2V0TmF2aWdhdGlv
blN0YXJ0KGxvYWRlci0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFydCgpKQorICAgICAgICAuc2V0
RG9tYWluTG9va3VwU3RhcnQodGltaW5nLmRvbWFpbkxvb2t1cFN0YXJ0KQorICAgICAgICAuc2V0
RG9tYWluTG9va3VwRW5kKHRpbWluZy5kb21haW5Mb29rdXBFbmQpCiAgICAgICAgIC5zZXRDb25u
ZWN0U3RhcnQodGltaW5nLmNvbm5lY3RTdGFydCkKICAgICAgICAgLnNldENvbm5lY3RFbmQodGlt
aW5nLmNvbm5lY3RFbmQpCi0gICAgICAgIC5zZXRTc2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0g
ICAgICAgIC5zZXRTc2xFbmQodGltaW5nLnNzbEVuZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0
aW1pbmcuc2VuZFN0YXJ0KQotICAgICAgICAuc2V0U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAg
ICAgICAgLnNldFJlY2VpdmVIZWFkZXJzRW5kKHRpbWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAg
ICAgICAgLnNldFNlY3VyZUNvbm5lY3Rpb25TdGFydCh0aW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0
YXJ0KQorICAgICAgICAuc2V0UmVxdWVzdFN0YXJ0KHRpbWluZy5yZXF1ZXN0U3RhcnQpCisgICAg
ICAgIC5zZXRSZXNwb25zZVN0YXJ0KHRpbWluZy5yZXNwb25zZVN0YXJ0KQogICAgICAgICAucmVs
ZWFzZSgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0
d29yay5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9OZXR3b3JrLmpzb24JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTMyLDE4ICszMiwx
NCBAQAogICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJUaW1pbmcgaW5mb3JtYXRpb24gZm9yIHRoZSByZXF1ZXN0LiIsCiAgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RUaW1l
IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRpbWluZydzIHJlcXVlc3RUaW1l
IGlzIGEgYmFzZWxpbmUgaW4gc2Vjb25kcywgd2hpbGUgdGhlIG90aGVyIG51bWJlcnMgYXJlIHRp
Y2tzIGluIG1pbGxpc2Vjb25kcyByZWxhdGl2ZWx5IHRvIHRoaXMgcmVxdWVzdFRpbWUuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJveHlTdGFydCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlc29sdmluZyBwcm94eS4iIH0sCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJwcm94eUVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJGaW5pc2hlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiZG5zU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRl
ZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRu
c0VuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRk
cmVzcyByZXNvbHZlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hdmlnYXRpb25T
dGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyBuYXZpZ2F0
aW9uU3RhcnQgaXMgYSBiYXNlbGluZSBpbiBzZWNvbmRzLCB3aGlsZSB0aGUgb3RoZXIgbnVtYmVy
cyBhcmUgdGlja3MgaW4gbWlsbGlzZWNvbmRzIHJlbGF0aXZlbHkgdG8gdGhpcyBuYXZpZ2F0aW9u
U3RhcnQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9tYWluTG9va3VwU3RhcnQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBETlMgYWRkcmVzcyBy
ZXNvbHZlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cEVuZCIs
ICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRkcmVzcyBy
ZXNvbHZlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RTdGFydCIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIGNvbm5lY3RpbmcgdG8gdGhl
IHJlbW90ZSBob3N0LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RFbmQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29ubmVjdGVkIHRvIHRoZSByZW1v
dGUgaG9zdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzc2xTdGFydCIsICJ0eXBl
IjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRl
c2NyaXB0aW9uIjogIkZpbmlzaGVkIFNTTCBoYW5kc2hha2UuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAic2VuZFN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjog
IlN0YXJ0ZWQgc2VuZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNlbmRFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgc2Vu
ZGluZyByZXF1ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlY2VpdmVIZWFk
ZXJzRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHJlY2Vp
dmluZyByZXNwb25zZSBoZWFkZXJzLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Vj
dXJlQ29ubmVjdGlvblN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0
YXJ0ZWQgU1NMIGhhbmRzaGFrZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1
ZXN0U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBzZW5k
aW5nIHJlcXVlc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzcG9uc2VTdGFy
dCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlY2VpdmluZyBy
ZXNwb25zZSBoZWFkZXJzLiIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LAogICAgICAgICB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRp
bWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDEyICs3Niw2IEBAIHZvaWQgRG9jdW1lbnRM
b2FkVGltaW5nOjptYXJrTmF2aWdhdGlvblMKICAgICBtX3JlZmVyZW5jZVdhbGxUaW1lID0gY3Vy
cmVudFRpbWUoKTsKIH0KIAotdm9pZCBEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25T
dGFydChkb3VibGUgbmF2aWdhdGlvblN0YXJ0KQotewotICAgIEFTU0VSVChtX3JlZmVyZW5jZU1v
bm90b25pY1RpbWUgJiYgbV9yZWZlcmVuY2VXYWxsVGltZSk7Ci0gICAgbV9uYXZpZ2F0aW9uU3Rh
cnQgPSBuYXZpZ2F0aW9uU3RhcnQ7Ci19Ci0KIHZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjphZGRS
ZWRpcmVjdChjb25zdCBVUkwmIHJlZGlyZWN0aW5nVXJsLCBjb25zdCBVUkwmIHJlZGlyZWN0ZWRV
cmwpCiB7CiAgICAgbV9yZWRpcmVjdENvdW50Kys7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcg
KzQxLDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBtb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGlt
ZShkb3VibGUpIGNvbnN0OwogCiAgICAgdm9pZCBtYXJrTmF2aWdhdGlvblN0YXJ0KCk7Ci0gICAg
dm9pZCBzZXROYXZpZ2F0aW9uU3RhcnQoZG91YmxlKTsKICAgICB2b2lkIGFkZFJlZGlyZWN0KGNv
bnN0IFVSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVkaXJlY3RlZFVybCk7CiAKICAg
ICB2b2lkIG1hcmtVbmxvYWRFdmVudFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZS5pZGwJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLS8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViVGltaW5n
LworLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3JnL2hnL3dlYnBlcmYvcmF3LWZpbGUvdGlwL3Nw
ZWNzL05hdmlnYXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRtbAogWwogICAgIENvbmRpdGlvbmFsPVdF
Ql9USU1JTkcsCiAgICAgRXZlbnRUYXJnZXQsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyMCwxMCArMTIwLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nOjpkb21haW4KICAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKICAgICAgICAg
cmV0dXJuIDAuMDsKIAotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRuc1N0YXJ0IDwg
MCkKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA8IDAp
CiAgICAgICAgIHJldHVybiBmZXRjaFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1l
VG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+ZG5zU3RhcnQpOworICAgIHJldHVybiBy
ZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5Mb29rdXBT
dGFydCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29r
dXBFbmQoKSBjb25zdApAQCAtMTMxLDEwICsxMzEsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmRvbWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAg
ICAgICByZXR1cm4gMC4wOwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zRW5k
IDwgMCkKKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPCAw
KQogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNv
dXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNFbmQpOworICAgIHJl
dHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5M
b29rdXBFbmQpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVj
dFN0YXJ0KCkgY29uc3QKQEAgLTE0OCw4ICsxNDgsOCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6Y29ubmVjCiAKICAgICAvLyBjb25uZWN0U3RhcnQgaW5jbHVkZXMgYW55IERO
UyB0aW1lLCBzbyB3ZSBtYXkgbmVlZCB0byB0cmltIHRoYXQgb2ZmLgogICAgIGludCBjb25uZWN0
U3RhcnQgPSBtX3RpbWluZy0+Y29ubmVjdFN0YXJ0OwotICAgIGlmIChtX3RpbWluZy0+ZG5zRW5k
ID49IDApCi0gICAgICAgIGNvbm5lY3RTdGFydCA9IG1fdGltaW5nLT5kbnNFbmQ7CisgICAgaWYg
KG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPj0gMCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0g
bV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZDsKIAogICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0Rv
Y3VtZW50TWlsbGlzZWNvbmRzKGNvbm5lY3RTdGFydCk7CiB9CkBAIC0xNzEsMTAgKzE3MSwxMCBA
QCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6c2VjdXJlCiAgICAgaWYgKCFtX3No
b3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGlt
aW5nIHx8IG1fdGltaW5nLT5zc2xTdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBu
ZWdvdGlhdGVkLgorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNlY3VyZUNvbm5lY3Rp
b25TdGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBuZWdvdGlhdGVkLgogICAgICAg
ICByZXR1cm4gMC4wOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNl
Y29uZHMobV90aW1pbmctPnNzbFN0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1
bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0KTsKIH0KIAog
ZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CkBA
IC0xODUsMjUgKzE4NSwxMSBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVx
dWVzCiAgICAgaWYgKCFtX3RpbWluZykKICAgICAgICAgcmV0dXJuIGNvbm5lY3RFbmQoKTsKIAot
ICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5z
ZW5kU3RhcnQpOwotfQotCi1kb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzcG9u
c2VTdGFydCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCi0gICAg
ICAgIHJldHVybiAwLjA7Ci0KLSAgICBpZiAoIW1fdGltaW5nKQotICAgICAgICByZXR1cm4gcmVx
dWVzdFN0YXJ0KCk7Ci0gICAgLy8gRklYTUU6IFRoaXMgbnVtYmVyIGlzbid0IGV4YWN0bHkgY29y
cmVjdC4gU2VlIHRoZSBub3RlcyBpbiBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgp
LgotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5n
LT5yZWNlaXZlSGVhZGVyc0VuZCk7CisgICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRN
aWxsaXNlY29uZHMobV90aW1pbmctPnJlcXVlc3RTdGFydCk7CiB9CiAKIGRvdWJsZSBQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2Zp
bmlzaFRpbWUpCi0gICAgICAgIHJldHVybiByZXNwb25zZVN0YXJ0KCk7Ci0KICAgICByZXR1cm4g
bW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQu
Z2V0KCksIG1fZmluaXNoVGltZSk7CiB9CiAKQEAgLTIxMSw3ICsxOTcsNyBAQCBkb3VibGUgUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzb3VyCiB7CiAgICAgaWYgKCFkZWx0YU1pbGxpc2Vj
b25kcykKICAgICAgICAgcmV0dXJuIDAuMDsKLSAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvRG9j
dW1lbnRNaWxsaXNlY29uZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCksIG1fdGltaW5nLT5y
ZXF1ZXN0VGltZSkgKyBkZWx0YU1pbGxpc2Vjb25kczsKKyAgICByZXR1cm4gbW9ub3RvbmljVGlt
ZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCksIG1fcmVx
dWVzdGluZ0RvY3VtZW50LmdldCgpLT5sb2FkZXIoKS0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFy
dCgpKSArIGRlbHRhTWlsbGlzZWNvbmRzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcu
aAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDYgQEAgcHVibGljOgog
ICAgIGRvdWJsZSBjb25uZWN0RW5kKCkgY29uc3Q7CiAgICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rp
b25TdGFydCgpIGNvbnN0OwogICAgIGRvdWJsZSByZXF1ZXN0U3RhcnQoKSBjb25zdDsKLSAgICBk
b3VibGUgcmVzcG9uc2VTdGFydCgpIGNvbnN0OwogICAgIGRvdWJsZSByZXNwb25zZUVuZCgpIGNv
bnN0OwogCiAgICAgdmlydHVhbCBib29sIGlzUmVzb3VyY2UoKSB7IHJldHVybiB0cnVlOyB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5pZGwJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDUgQEAKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBjb25uZWN0RW5kOwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25T
dGFydDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSByZXF1ZXN0
U3RhcnQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgcmVzcG9u
c2VTdGFydDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSByZXNw
b25zZUVuZDsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5n
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5n
LmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZVRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMCwxMSArMTMwLDExIEBAIHVuc2lnbmVk
IGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG8KIAogICAgIC8vIFRoaXMgd2lsbCBiZSAt
MSB3aGVuIGEgRE5TIHJlcXVlc3QgaXMgbm90IHBlcmZvcm1lZC4KICAgICAvLyBSYXRoZXIgdGhh
biBleHBvc2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8gRE5TLCB3ZSAiYmFj
a2ZpbGwiIHdpdGggZmV0Y2hTdGFydC4KLSAgICBpbnQgZG5zU3RhcnQgPSB0aW1pbmctPmRuc1N0
YXJ0OwotICAgIGlmIChkbnNTdGFydCA8IDApCisgICAgaW50IGRvbWFpbkxvb2t1cFN0YXJ0ID0g
dGltaW5nLT5kb21haW5Mb29rdXBTdGFydDsKKyAgICBpZiAoZG9tYWluTG9va3VwU3RhcnQgPCAw
KQogICAgICAgICByZXR1cm4gZmV0Y2hTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9h
ZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoZG5zU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZUxv
YWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGRvbWFpbkxvb2t1cFN0YXJ0KTsKIH0KIAogdW5zaWdu
ZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQoKSBjb25zdApA
QCAtMTQ1LDExICsxNDUsMTEgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5n
OjpkbwogCiAgICAgLy8gVGhpcyB3aWxsIGJlIC0xIHdoZW4gYSBETlMgcmVxdWVzdCBpcyBub3Qg
cGVyZm9ybWVkLgogICAgIC8vIFJhdGhlciB0aGFuIGV4cG9zaW5nIGEgc3BlY2lhbCB2YWx1ZSB0
aGF0IGluZGljYXRlcyBubyBETlMsIHdlICJiYWNrZmlsbCIgd2l0aCBkb21haW5Mb29rdXBTdGFy
dC4KLSAgICBpbnQgZG5zRW5kID0gdGltaW5nLT5kbnNFbmQ7Ci0gICAgaWYgKGRuc0VuZCA8IDAp
CisgICAgaW50IGRvbWFpbkxvb2t1cEVuZCA9IHRpbWluZy0+ZG9tYWluTG9va3VwRW5kOworICAg
IGlmIChkb21haW5Mb29rdXBFbmQgPCAwKQogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3Rh
cnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGRu
c0VuZCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoZG9t
YWluTG9va3VwRW5kKTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5n
Ojpjb25uZWN0U3RhcnQoKSBjb25zdApAQCAtMTcwLDggKzE3MCw4IEBAIHVuc2lnbmVkIGxvbmcg
bG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6Y28KIAogICAgIC8vIFJlc291cmNlTG9hZFRpbWluZydz
IGNvbm5lY3QgcGhhc2UgaW5jbHVkZXMgRE5TLCBob3dldmVyIE5hdmlnYXRpb24gVGltaW5nJ3MK
ICAgICAvLyBjb25uZWN0IHBoYXNlIHNob3VsZCBub3QuIFNvIGlmIHRoZXJlIGlzIEROUyB0aW1l
LCB0cmltIGl0IGZyb20gdGhlIHN0YXJ0LgotICAgIGlmICh0aW1pbmctPmRuc0VuZCA+PSAwICYm
IHRpbWluZy0+ZG5zRW5kID4gY29ubmVjdFN0YXJ0KQotICAgICAgICBjb25uZWN0U3RhcnQgPSB0
aW1pbmctPmRuc0VuZDsKKyAgICBpZiAodGltaW5nLT5kb21haW5Mb29rdXBFbmQgPj0gMCAmJiB0
aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA+IGNvbm5lY3RTdGFydCkKKyAgICAgICAgY29ubmVjdFN0
YXJ0ID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmQ7CiAKICAgICByZXR1cm4gcmVzb3VyY2VMb2Fk
VGltZVJlbGF0aXZlVG9BYnNvbHV0ZShjb25uZWN0U3RhcnQpOwogfQpAQCAtMjA1LDExICsyMDUs
MTEgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpzZQogICAgIGlmICgh
dGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGludCBzc2xTdGFydCA9IHRpbWluZy0+
c3NsU3RhcnQ7Ci0gICAgaWYgKHNzbFN0YXJ0IDwgMCkKKyAgICBpbnQgc2VjdXJlQ29ubmVjdGlv
blN0YXJ0ID0gdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQ7CisgICAgaWYgKHNlY3VyZUNv
bm5lY3Rpb25TdGFydCA8IDApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHJlc291
cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoc3NsU3RhcnQpOworICAgIHJldHVybiByZXNv
dXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHNlY3VyZUNvbm5lY3Rpb25TdGFydCk7CiB9
CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KCkg
Y29uc3QKQEAgLTIxOCw4ICsyMTgsOCBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnJlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiBjb25uZWN0RW5kKCk7
CiAKLSAgICBBU1NFUlQodGltaW5nLT5zZW5kU3RhcnQgPj0gMCk7Ci0gICAgcmV0dXJuIHJlc291
cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5zZW5kU3RhcnQpOworICAgIEFT
U0VSVCh0aW1pbmctPnJlcXVlc3RTdGFydCA+PSAwKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2Fk
VGltZVJlbGF0aXZlVG9BYnNvbHV0ZSh0aW1pbmctPnJlcXVlc3RTdGFydCk7CiB9CiAKIHVuc2ln
bmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0CkBA
IC0yMjgsMTQgKzIyOCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6
cmUKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIHJlcXVlc3RTdGFydCgpOwogCi0g
ICAgLy8gRklYTUU6IFJlc3BvbnNlIHN0YXJ0IG5lZWRzIHRvIGJlIHRoZSB0aW1lIG9mIHRoZSBm
aXJzdCByZWNlaXZlZCBieXRlLgotICAgIC8vIEhvd2V2ZXIsIHRoZSBSZXNvdXJjZUxvYWRUaW1p
bmcgQVBJIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHRoZSB0aW1lCi0gICAgLy8gdGhlIGxhc3Qg
aGVhZGVyIGJ5dGUgd2FzIHJlY2VpdmVkLiBGb3IgbWFueSByZXNwb25zZXMgd2l0aCByZWFzb25h
YmxlCi0gICAgLy8gc2l6ZWQgY29va2llcywgdGhlIEhUVFAgaGVhZGVycyBmaXQgaW50byBhIHNp
bmdsZSBwYWNrZXQgc28gdGhpcyB0aW1lCi0gICAgLy8gaXMgYmFzaWNhbGx5IGVxdWl2YWxlbnQu
IEJ1dCBmb3Igc29tZSByZXNwb25zZXMsIHBhcnRpY3VsYXJseSB0aG9zZSB3aXRoCi0gICAgLy8g
aGVhZGVycyBsYXJnZXIgdGhhbiBhIHNpbmdsZSBwYWNrZXQsIHRoaXMgdGltZSB3aWxsIGJlIHRv
byBsYXRlLgotICAgIEFTU0VSVCh0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kID49IDApOwotICAg
IHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWluZy0+cmVjZWl2
ZUhlYWRlcnNFbmQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlc3BvbnNlU3RhcnQgPj0gMCk7Cisg
ICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5yZXNw
b25zZVN0YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpy
ZXNwb25zZUVuZCgpIGNvbnN0CkBAIC0zNTEsOSArMzQ1LDcgQEAgUmVzb3VyY2VMb2FkVGltaW5n
KiBQZXJmb3JtYW5jZVRpbWluZzo6cgogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGlt
aW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGludCByZWxhdGl2ZU1pbGxp
c2Vjb25kcykgY29uc3QKIHsKICAgICBBU1NFUlQocmVsYXRpdmVNaWxsaXNlY29uZHMgPj0gMCk7
Ci0gICAgUmVzb3VyY2VMb2FkVGltaW5nKiByZXNvdXJjZVRpbWluZyA9IHJlc291cmNlTG9hZFRp
bWluZygpOwotICAgIEFTU0VSVChyZXNvdXJjZVRpbWluZyk7Ci0gICAgcmV0dXJuIG1vbm90b25p
Y1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMocmVzb3VyY2VUaW1pbmctPmNvbnZlcnRSZXNvdXJj
ZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKHJlbGF0aXZlTWlsbGlzZWNvbmRzKSk7CisgICAgcmV0
dXJuIG5hdmlnYXRpb25TdGFydCgpICsgcmVsYXRpdmVNaWxsaXNlY29uZHM7CiB9CiAKIHVuc2ln
bmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bW9ub3RvbmljVGltZVRvSW50ZWdlck1p
bGxpc2Vjb25kcyhkb3VibGUgbW9ub3RvbmljU2Vjb25kcykgY29uc3QKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsCShyZXZpc2lvbiAxNjgzOTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNyArMjgsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0vLyBTZWU6IGh0dHA6Ly9k
ZXYudzMub3JnLzIwMDYvd2ViYXBpL1dlYlRpbWluZy8KKy8vIFNlZTogaHR0cHM6Ly9kdmNzLncz
Lm9yZy9oZy93ZWJwZXJmL3Jhdy1maWxlL3RpcC9zcGVjcy9OYXZpZ2F0aW9uVGltaW5nL092ZXJ2
aWV3Lmh0bWwKIFsKICAgICBDb25kaXRpb25hbD1XRUJfVElNSU5HLAogXSBpbnRlcmZhY2UgUGVy
Zm9ybWFuY2VUaW1pbmcgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9I
VFRQUGFyc2Vycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvSFRUUFBhcnNlcnMuaAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw5ICszNyw2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSFRUUEhlYWRlck1hcDsKLWNsYXNz
IFJlc291cmNlUmVzcG9uc2VCYXNlOwotCiBlbnVtIENvbnRlbnREaXNwb3NpdGlvblR5cGUgewog
ICAgIENvbnRlbnREaXNwb3NpdGlvbk5vbmUsCiAgICAgQ29udGVudERpc3Bvc2l0aW9uSW5saW5l
LApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTAsNiArMTkwLDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldEhvc3RBbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRl
KGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyB2b2lkIHNldENsaWVudENlcnRpZmljYXRlKGNv
bnN0IFN0cmluZyYgaG9zdCwgR1Rsc0NlcnRpZmljYXRlKik7CiAgICAgc3RhdGljIHZvaWQgc2V0
SWdub3JlU1NMRXJyb3JzKGJvb2wpOworICAgIGRvdWJsZSBtX3JlcXVlc3RUaW1lOwogI2VuZGlm
CiAKICAgICAvLyBVc2VkIHRvIHdvcmsgYXJvdW5kIHRoZSBmYWN0IHRoYXQgeW91IGRvbid0IGdl
dCBhbnkgbW9yZSBOU1VSTENvbm5lY3Rpb24gY2FsbGJhY2tzIHVudGlsIHlvdSByZXR1cm4gZnJv
bSB0aGUgb25lIHlvdSdyZSBpbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
UmVzb3VyY2VMb2FkVGltaW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZG91YmxlIFJl
c291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUo
aW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdAotewotICAgIHJldHVybiByZXF1ZXN0VGltZSAr
IGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wOwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgJKHJldmlz
aW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VM
b2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDc2ICs0NCw1MCBAQCBwdWJsaWM6CiAg
ICAgUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IGRlZXBDb3B5KCkKICAgICB7CiAgICAg
ICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IHRpbWluZyA9IGNyZWF0ZSgpOwotICAgICAg
ICB0aW1pbmctPnJlcXVlc3RUaW1lID0gcmVxdWVzdFRpbWU7Ci0gICAgICAgIHRpbWluZy0+cHJv
eHlTdGFydCA9IHByb3h5U3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+cHJveHlFbmQgPSBwcm94eUVu
ZDsKLSAgICAgICAgdGltaW5nLT5kbnNTdGFydCA9IGRuc1N0YXJ0OwotICAgICAgICB0aW1pbmct
PmRuc0VuZCA9IGRuc0VuZDsKKyAgICAgICAgdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA9IGRv
bWFpbkxvb2t1cFN0YXJ0OworICAgICAgICB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA9IGRvbWFp
bkxvb2t1cEVuZDsKICAgICAgICAgdGltaW5nLT5jb25uZWN0U3RhcnQgPSBjb25uZWN0U3RhcnQ7
CiAgICAgICAgIHRpbWluZy0+Y29ubmVjdEVuZCA9IGNvbm5lY3RFbmQ7Ci0gICAgICAgIHRpbWlu
Zy0+c2VuZFN0YXJ0ID0gc2VuZFN0YXJ0OwotICAgICAgICB0aW1pbmctPnNlbmRFbmQgPSBzZW5k
RW5kOwotICAgICAgICB0aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kID0gcmVjZWl2ZUhlYWRlcnNF
bmQ7Ci0gICAgICAgIHRpbWluZy0+c3NsU3RhcnQgPSBzc2xTdGFydDsKLSAgICAgICAgdGltaW5n
LT5zc2xFbmQgPSBzc2xFbmQ7CisgICAgICAgIHRpbWluZy0+cmVxdWVzdFN0YXJ0ID0gcmVxdWVz
dFN0YXJ0OworICAgICAgICB0aW1pbmctPnJlc3BvbnNlU3RhcnQgPSByZXNwb25zZVN0YXJ0Owor
ICAgICAgICB0aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IHNlY3VyZUNvbm5lY3Rpb25T
dGFydDsKICAgICAgICAgcmV0dXJuIHRpbWluZy5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0CiAgICAg
ewotICAgICAgICByZXR1cm4gcmVxdWVzdFRpbWUgPT0gb3RoZXIucmVxdWVzdFRpbWUKLSAgICAg
ICAgICAgICYmIHByb3h5U3RhcnQgPT0gb3RoZXIucHJveHlTdGFydAotICAgICAgICAgICAgJiYg
cHJveHlFbmQgPT0gb3RoZXIucHJveHlFbmQKLSAgICAgICAgICAgICYmIGRuc1N0YXJ0ID09IG90
aGVyLmRuc1N0YXJ0Ci0gICAgICAgICAgICAmJiBkbnNFbmQgPT0gb3RoZXIuZG5zRW5kCisgICAg
ICAgIHJldHVybiBkb21haW5Mb29rdXBTdGFydCA9PSBvdGhlci5kb21haW5Mb29rdXBTdGFydAor
ICAgICAgICAgICAgJiYgZG9tYWluTG9va3VwRW5kID09IG90aGVyLmRvbWFpbkxvb2t1cEVuZAog
ICAgICAgICAgICAgJiYgY29ubmVjdFN0YXJ0ID09IG90aGVyLmNvbm5lY3RTdGFydAogICAgICAg
ICAgICAgJiYgY29ubmVjdEVuZCA9PSBvdGhlci5jb25uZWN0RW5kCi0gICAgICAgICAgICAmJiBz
ZW5kU3RhcnQgPT0gb3RoZXIuc2VuZFN0YXJ0Ci0gICAgICAgICAgICAmJiBzZW5kRW5kID09IG90
aGVyLnNlbmRFbmQKLSAgICAgICAgICAgICYmIHJlY2VpdmVIZWFkZXJzRW5kID09IG90aGVyLnJl
Y2VpdmVIZWFkZXJzRW5kCi0gICAgICAgICAgICAmJiBzc2xTdGFydCA9PSBvdGhlci5zc2xTdGFy
dAotICAgICAgICAgICAgJiYgc3NsRW5kID09IG90aGVyLnNzbEVuZDsKKyAgICAgICAgICAgICYm
IHJlcXVlc3RTdGFydCA9PSBvdGhlci5yZXF1ZXN0U3RhcnQKKyAgICAgICAgICAgICYmIHJlc3Bv
bnNlU3RhcnQgPT0gb3RoZXIucmVzcG9uc2VTdGFydAorICAgICAgICAgICAgJiYgc2VjdXJlQ29u
bmVjdGlvblN0YXJ0ID09IG90aGVyLnNlY3VyZUNvbm5lY3Rpb25TdGFydDsKICAgICB9CiAKICAg
ICBib29sIG9wZXJhdG9yIT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QK
ICAgICB7CiAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKICAgICB9Ci0KLSAgICAv
LyBXZSB3YW50IHRvIHByZXNlbnQgYSB1bmlmaWVkIHRpbWVsaW5lIHRvIEphdmFzY3JpcHQuIFVz
aW5nIHdhbGx0aW1lIGlzIHByb2JsZW1hdGljLCBiZWNhdXNlIHRoZSBjbG9jayBtYXkgc2tldyB3
aGlsZSByZXNvdXJjZXMKLSAgICAvLyBsb2FkLiBUbyBwcmV2ZW50IHRoYXQgc2tldywgd2UgcmVj
b3JkIGEgc2luZ2xlIHJlZmVyZW5jZSB3YWxsdGltZSB3aGVuIHJvb3QgZG9jdW1lbnQgbmF2aWdh
dGlvbiBiZWdpbnMuIEFsbCBvdGhlciB0aW1lcyBhcmUKLSAgICAvLyByZWNvcmRlZCB1c2luZyBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKS4gV2hlbiBhIHRpbWUgbmVlZHMgdG8gYmUgcHJl
c2VudGVkIHRvIEphdmFzY3JpcHQsIHdlIGJ1aWxkIGEgcHNldWRvLXdhbGx0aW1lCi0gICAgLy8g
dXNpbmcgdGhlIGZvbGxvd2luZyBlcXVhdGlvbjoKLSAgICAvLyAgIHBzZXVkbyB0aW1lID0gZG9j
dW1lbnQgd2FsbCByZWZlcmVuY2UgKyAocmVzb3VyY2UgcmVxdWVzdCB0aW1lIC0gZG9jdW1lbnQg
bW9ub3RvbmljIHJlZmVyZW5jZSkgKyBkZWx0YU1pbGxpc2Vjb25kcyAvIDEwMDAuMC4KLSAgICBk
b3VibGUgY29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoaW50IGRlbHRhTWls
bGlzZWNvbmRzKSBjb25zdDsKLQotICAgIGRvdWJsZSByZXF1ZXN0VGltZTsgLy8gbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCkgd2hlbiB0aGUgcG9ydCBzdGFydGVkIGhhbmRsaW5nIHRoaXMg
cmVxdWVzdC4KLSAgICBpbnQgcHJveHlTdGFydDsgLy8gVGhlIHJlc3Qgb2YgdGhlc2UgYXJlIG1p
bGxpc2Vjb25kIGRlbHRhcywgdXNpbmcgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIGZy
b20gcmVxdWVzdFRpbWUuCi0gICAgaW50IHByb3h5RW5kOwotICAgIGludCBkbnNTdGFydDsKLSAg
ICBpbnQgZG5zRW5kOworICAgIAorICAgIC8vIFRoZXNlIGFyZSBtaWxsaXNlY29uZCBkZWx0YXMg
ZnJvbSB0aGUgbmF2aWdhdGlvbiBzdGFydC4KKyAgICBpbnQgZG9tYWluTG9va3VwU3RhcnQ7Cisg
ICAgaW50IGRvbWFpbkxvb2t1cEVuZDsKICAgICBpbnQgY29ubmVjdFN0YXJ0OwogICAgIGludCBj
b25uZWN0RW5kOwotICAgIGludCBzZW5kU3RhcnQ7Ci0gICAgaW50IHNlbmRFbmQ7Ci0gICAgaW50
IHJlY2VpdmVIZWFkZXJzRW5kOwotICAgIGludCBzc2xTdGFydDsKLSAgICBpbnQgc3NsRW5kOwot
CisgICAgaW50IHJlcXVlc3RTdGFydDsKKyAgICBpbnQgcmVzcG9uc2VTdGFydDsKKyAgICBpbnQg
c2VjdXJlQ29ubmVjdGlvblN0YXJ0OworICAgIAogcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRU
aW1pbmcoKQotICAgICAgICA6IHJlcXVlc3RUaW1lKDApCi0gICAgICAgICwgcHJveHlTdGFydCgt
MSkKLSAgICAgICAgLCBwcm94eUVuZCgtMSkKLSAgICAgICAgLCBkbnNTdGFydCgtMSkKLSAgICAg
ICAgLCBkbnNFbmQoLTEpCisgICAgICAgIDogZG9tYWluTG9va3VwU3RhcnQoLTEpCisgICAgICAg
ICwgZG9tYWluTG9va3VwRW5kKC0xKQogICAgICAgICAsIGNvbm5lY3RTdGFydCgtMSkKICAgICAg
ICAgLCBjb25uZWN0RW5kKC0xKQotICAgICAgICAsIHNlbmRTdGFydCgwKQotICAgICAgICAsIHNl
bmRFbmQoMCkKLSAgICAgICAgLCByZWNlaXZlSGVhZGVyc0VuZCgwKQotICAgICAgICAsIHNzbFN0
YXJ0KC0xKQotICAgICAgICAsIHNzbEVuZCgtMSkKKyAgICAgICAgLCByZXF1ZXN0U3RhcnQoMCkK
KyAgICAgICAgLCByZXNwb25zZVN0YXJ0KDApCisgICAgICAgICwgc2VjdXJlQ29ubmVjdGlvblN0
YXJ0KC0xKQogICAgIHsKICAgICB9CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9u
IDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1NiwxNCBAQAogI2ltcG9ydCA8
d3RmL3RleHQvQmFzZTY0Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBf
X2hhc19pbmNsdWRlKDxGb3VuZGF0aW9uL05TVVJMQ29ubmVjdGlvblByaXZhdGUuaD4pCisjaW1w
b3J0IDxGb3VuZGF0aW9uL05TVVJMQ29ubmVjdGlvblByaXZhdGUuaD4KKyNlbHNlCitAaW50ZXJm
YWNlIE5TVVJMQ29ubmVjdGlvbiAoVGltaW5nRGF0YSkKKysgKHZvaWQpX3NldENvbGxlY3RzVGlt
aW5nRGF0YTooQk9PTCljb2xsZWN0OworQGVuZAorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1Mp
CiAjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZVUkxSZXF1ZXN0Lmg+CiAKQEAgLTIwMCw2ICsyMDgsOSBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3RpCiAgICAgY29uc3QgYm9v
bCB1c2VzQ2FjaGUgPSB0cnVlOwogI2VuZGlmCiAgICAgZC0+bV9jb25uZWN0aW9uID0gYWRvcHRO
UyhbW05TVVJMQ29ubmVjdGlvbiBhbGxvY10gX2luaXRXaXRoUmVxdWVzdDpuc1JlcXVlc3QgZGVs
ZWdhdGU6ZGVsZWdhdGUgdXNlc0NhY2hlOnVzZXNDYWNoZSBtYXhDb250ZW50TGVuZ3RoOjAgc3Rh
cnRJbW1lZGlhdGVseTpOTyBjb25uZWN0aW9uUHJvcGVydGllczpwcm9wZXJ0eURpY3Rpb25hcnld
KTsKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAgICBbTlNVUkxDb25uZWN0aW9uIF9zZXRDb2xs
ZWN0c1RpbWluZ0RhdGE6WUVTXTsKKyNlbmRpZgogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpz
dGFydCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDE0IEBACiAj
aW1wb3J0ICJXZWJDb3JlVVJMUmVzcG9uc2UuaCIKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+
CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4pCisj
aW1wb3J0IDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4KKyNlbHNlCitAaW50ZXJmYWNl
IE5TVVJMQ29ubmVjdGlvbiAoVGltaW5nRGF0YSkKKy0gKE5TRGljdGlvbmFyeSAqKV90aW1pbmdE
YXRhOworQGVuZAorI2VuZGlmCisKIEBpbnRlcmZhY2UgTlNVUkxSZXF1ZXN0IChEZXRhaWxzKQog
LSAoaWQpX3Byb3BlcnR5Rm9yS2V5OihOU1N0cmluZyAqKWtleTsKIEBlbmQKQEAgLTE5Myw3ICsy
MDEsNiBAQCAtIChCT09MKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAtICh2b2lk
KWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVJlc3Bv
bnNlOihOU1VSTFJlc3BvbnNlICopcgogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwot
ICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKIAogICAgIExPRyhOZXR3b3JrLCAiSGFuZGxl
ICVwIGRlbGVnYXRlIGNvbm5lY3Rpb246JXAgZGlkUmVjZWl2ZVJlc3BvbnNlOiVwIChIVFRQIHN0
YXR1cyAlZCwgcmVwb3J0ZWQgTUlNRVR5cGUgJyVzJykiLCBtX2hhbmRsZSwgY29ubmVjdGlvbiwg
ciwgW3IgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzdGF0dXNDb2RlKV0gPyBbKGlkKXIg
c3RhdHVzQ29kZV0gOiAwLCBbW3IgTUlNRVR5cGVdIFVURjhTdHJpbmddKTsKIApAQCAtMjEyLDgg
KzIxOSwzOCBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAKICAg
ICAgICAgaWYgKFttX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KERvTm90VXBk
YXRlSFRUUEJvZHkpIF9wcm9wZXJ0eUZvcktleTpAIkZvcmNlSFRNTE1JTUVUeXBlIl0pCiAgICAg
ICAgICAgICBbciBfc2V0TUlNRVR5cGU6QCJ0ZXh0L2h0bWwiXTsKLQotICAgICAgICBtX2hhbmRs
ZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCByKTsKKyAgICAg
ICAgCisgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShyKTsKKyNpZiBF
TkFCTEUoV0VCX1RJTUlORykKKyAgICAgICAgTlNEaWN0aW9uYXJ5KiB0aW1pbmdEYXRhID0gW2Nv
bm5lY3Rpb24gX3RpbWluZ0RhdGFdOworICAgICAgICBpZiAodGltaW5nRGF0YSkgeworICAgICAg
ICAgICAgcmVzb3VyY2VSZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2Fk
VGltaW5nOjpjcmVhdGUoKSk7CisgICAgICAgICAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWlu
ZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIC8vIFRoaXMgaXMgbm90IHRoZSBuYXZpZ2F0aW9uU3RhcnQgdGltZSBpbiBt
b25vdG9uaWMgdGltZSwgYnV0IHRoZSBvdGhlciB0aW1lcyBhcmUgcmVsYXRpdmUgdG8gdGhpcyB0
aW1lCisgICAgICAgICAgICAvLyBhbmQgb25seSB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aW1l
cyBhcmUgc3RvcmVkLgorICAgICAgICAgICAgZG91YmxlIHJlZmVyZW5jZVN0YXJ0ID0gW1t0aW1p
bmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhVGltaW5nRGF0YUluaXQiXSBkb3Vi
bGVWYWx1ZV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRvdWJsZSBkb21haW5Mb29rdXBT
dGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxv
b2t1cFN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAgZG91YmxlIGRvbWFpbkxvb2t1
cEVuZCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxv
b2t1cEVuZCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSBjb25uZWN0U3RhcnQg
PSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25uZWN0U3RhcnQi
XSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0
ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhU2VjdXJlQ29ubmVj
dGlvblN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAgZG91YmxlIGNvbm5lY3RFbmQg
PSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25uZWN0RW5kIl0g
ZG91YmxlVmFsdWVdOworICAgICAgICAgICAgZG91YmxlIHJlcXVlc3RTdGFydCA9IFtbdGltaW5n
RGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVJlcXVlc3RTdGFydCJdIGRvdWJsZVZh
bHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSByZXNwb25zZVN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZh
bHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVzcG9uc2VTdGFydCJdIGRvdWJsZVZhbHVlXTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA9IGRv
bWFpbkxvb2t1cFN0YXJ0IDw9IDAuMCA/IC0xIDogKGRvbWFpbkxvb2t1cFN0YXJ0IC0gcmVmZXJl
bmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+ZG9tYWluTG9va3VwRW5kID0g
ZG9tYWluTG9va3VwRW5kIDw9IDAuMCA/IC0xIDogKGRvbWFpbkxvb2t1cEVuZCAtIHJlZmVyZW5j
ZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0aW1pbmctPmNvbm5lY3RTdGFydCA9IGNvbm5l
Y3RTdGFydCA8PSAwLjAgPyAtMSA6IChjb25uZWN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAx
MDAwOworICAgICAgICAgICAgdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBzZWN1cmVD
b25uZWN0aW9uU3RhcnQgPD0gMC4wID8gLTEgOiAoc2VjdXJlQ29ubmVjdGlvblN0YXJ0IC0gcmVm
ZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+Y29ubmVjdEVuZCA9IGNv
bm5lY3RFbmQgPD0gMC4wID8gLTEgOiAoY29ubmVjdEVuZCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEw
MDA7CisgICAgICAgICAgICB0aW1pbmctPnJlcXVlc3RTdGFydCA9IHJlcXVlc3RTdGFydCA8PSAw
LjAgPyAtMSA6IChyZXF1ZXN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAg
ICAgICAgdGltaW5nLT5yZXNwb25zZVN0YXJ0ID0gcmVzcG9uc2VTdGFydCA8PSAwLjAgPyAtMSA6
IChyZXNwb25zZVN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgfQorI2Vs
c2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworI2VuZGlmCisgICAgICAgIG1f
aGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMobV9oYW5kbGUsIHJlc291
cmNlUmVzcG9uc2UpOwogICAgIH0pOwogCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9z
ZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNiwxMSAr
MzE2LDYgQEAgc3RhdGljIHZvaWQgZ290SGVhZGVyc0NhbGxiYWNrKFNvdXBNZXNzYQogCiAgICAg
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIAotI2lm
IEVOQUJMRShXRUJfVElNSU5HKQotICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpKQotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZWNl
aXZlSGVhZGVyc0VuZCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0o
R1RLKQogICAgIC8vIFdlIGFyZSBhIGJpdCBtb3JlIGNvbnNlcnZhdGl2ZSB3aXRoIHRoZSBwZXJz
aXN0ZW50IGNyZWRlbnRpYWwgc3RvcmFnZSB0aGFuIHRoZSBzZXNzaW9uIHN0b3JlLAogICAgIC8v
IHNpbmNlIHdlIGFyZSB3YWl0aW5nIHVudGlsIHdlIGtub3cgdGhhdCB0aGlzIGF1dGhlbnRpY2F0
aW9uIHN1Y2NlZWRlZCBiZWZvcmUgYWN0dWFsbHkgc3RvcmluZy4KQEAgLTM5MCw3ICszODUsNyBA
QCBzdGF0aWMgdm9pZCByZXN0YXJ0ZWRDYWxsYmFjayhTb3VwTWVzc2FnCiAgICAgUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlID0gZC0+bV9yZXNwb25zZTsKICAgICByZWRpcmVjdFJl
c3BvbnNlLnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgp
KTsKLSAgICByZWRpcmVjdFJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGlt
ZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgIG1fcmVxdWVzdFRpbWUgPSBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKIH0KICNlbmRpZgogCkBAIC04NDQsMzUgKzgz
OSwxMyBAQCBzdGF0aWMgaW50IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGRvdWJsCiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGludD4oKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gcmVx
dWVzdFRpbWUpICogMTAwMC4wKTsKIH0KIAotc3RhdGljIHZvaWQgd3JvdGVCb2R5Q2FsbGJhY2so
U291cE1lc3NhZ2UqLCBncG9pbnRlciBkYXRhKQotewotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKLSAgICBpZiAo
IWhhbmRsZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCog
ZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpZiAoIWQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnNlbmRFbmQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7Ci19Ci0KIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmRpZFN0YXJ0UmVxdWVzdCgpCiB7CiAgICAgUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCogZCA9IGdldEludGVybmFsKCk7CiAgICAgaWYgKCFkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBkLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpLT5zZW5kU3RhcnQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7Ci0gICAgaWYg
KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0ICE9IC0xKSB7Ci0g
ICAgICAgIC8vIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXF1ZXN0VGltaW5nVmlldy5q
cyBhc3N1bWVzCi0gICAgICAgIC8vIHRoYXQgU1NMIHRpbWUgaXMgaW5jbHVkZWQgaW4gY29ubmVj
dGlvbiB0aW1lIHNvIG11c3QKLSAgICAgICAgLy8gc3Vic3RyYWN0IGhlcmUgdGhlIFNTTCBkZWx0
YSB0aGF0IHdpbGwgYmUgYWRkZWQgbGF0ZXIgKHNlZQotICAgICAgICAvLyBXZWJJbnNwZWN0b3Iu
UmVxdWVzdFRpbWluZ1ZpZXcuY3JlYXRlVGltaW5nVGFibGUgaW4gdGhlCi0gICAgICAgIC8vIGZp
bGUgYWJvdmUgZm9yIG1vcmUgZGV0YWlscykuCi0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCktPnNlbmRTdGFydCAtPQotICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5y
ZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsRW5kIC0gZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKS0+c3NsU3RhcnQ7Ci0gICAgfQorICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2Fk
VGltaW5nKCktPnJlcXVlc3RTdGFydCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KG1fcmVxdWVz
dFRpbWUpOwogfQogCiBzdGF0aWMgdm9pZCBuZXR3b3JrRXZlbnRDYWxsYmFjayhTb3VwTWVzc2Fn
ZSosIEdTb2NrZXRDbGllbnRFdmVudCBldmVudCwgR0lPU3RyZWFtKiwgZ3BvaW50ZXIgZGF0YSkK
QEAgLTg4NSw0MCArODU4LDM4IEBAIHN0YXRpYyB2b2lkIG5ldHdvcmtFdmVudENhbGxiYWNrKFNv
dXBNZXMKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9
IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpbnQgZGVsdGFUaW1lID0gbWlsaXNlY29uZHNT
aW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRp
bWUpOworICAgIGludCBkZWx0YVRpbWUgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChoYW5kbGUt
Pm1fcmVxdWVzdFRpbWUpOwogICAgIHN3aXRjaCAoZXZlbnQpIHsKICAgICBjYXNlIEdfU09DS0VU
X0NMSUVOVF9SRVNPTFZJTkc6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGlt
aW5nKCktPmRuc1N0YXJ0ID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5kb21haW5Mb29rdXBTdGFydCA9IGRlbHRhVGltZTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUkVTT0xWRUQ6Ci0gICAgICAgIGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc0VuZCA9IGRlbHRhVGltZTsKKyAgICAg
ICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG9tYWluTG9va3VwRW5kID0g
ZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9DT05O
RUNUSU5HOgogICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5jb25u
ZWN0U3RhcnQgPSBkZWx0YVRpbWU7Ci0gICAgICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5kbnNTdGFydCAhPSAtMSkKKyAgICAgICAgaWYgKGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxvb2t1cFN0YXJ0ICE9IC0xKSB7CiAgICAgICAg
ICAgICAvLyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVxdWVzdFRpbWluZ1ZpZXcuanMg
YXNzdW1lcwogICAgICAgICAgICAgLy8gdGhhdCBETlMgdGltZSBpcyBpbmNsdWRlZCBpbiBjb25u
ZWN0aW9uIHRpbWUgc28gbXVzdAogICAgICAgICAgICAgLy8gc3Vic3RyYWN0IGhlcmUgdGhlIERO
UyBkZWx0YSB0aGF0IHdpbGwgYmUgYWRkZWQgbGF0ZXIgKHNlZQogICAgICAgICAgICAgLy8gV2Vi
SW5zcGVjdG9yLlJlcXVlc3RUaW1pbmdWaWV3LmNyZWF0ZVRpbWluZ1RhYmxlIGluIHRoZQogICAg
ICAgICAgICAgLy8gZmlsZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzKS4KICAgICAgICAgICAgIGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RTdGFydCAtPQotICAgICAg
ICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc0VuZCAtIGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc1N0YXJ0OworICAgICAgICAgICAg
ICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxvb2t1cEVuZCAt
IGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxvb2t1cFN0YXJ0Owor
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX0NPTk5F
Q1RFRDoKICAgICAgICAgLy8gV2ViIFRpbWluZyBjb25zaWRlcnMgdGhhdCBjb25uZWN0aW9uIHRp
bWUgaW52b2x2ZXMgZG5zLCBwcm94eSAmIFRMUyBuZWdvdGlhdGlvbi4uLgogICAgICAgICAvLyBz
byB3ZSBiZXR0ZXIgcGljayBHX1NPQ0tFVF9DTElFTlRfQ09NUExFVEUgZm9yIGNvbm5lY3RFbmQK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUFJPWFlfTkVHT1RJQVRJ
Tkc6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnByb3h5U3Rh
cnQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5U
X1BST1hZX05FR09USUFURUQ6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGlt
aW5nKCktPnByb3h5RW5kID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdf
U09DS0VUX0NMSUVOVF9UTFNfSEFORFNIQUtJTkc6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0ID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBkZWx0
YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1RMU19IQU5E
U0hBS0VEOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xF
bmQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5U
X0NPTVBMRVRFOgogICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5j
b25uZWN0RW5kID0gZGVsdGFUaW1lOwpAQCAtOTgwLDcgKzk1MSw2IEBAIHN0YXRpYyBib29sIGNy
ZWF0ZVNvdXBNZXNzYWdlRm9ySGFuZGxlQW4KICAgICBkLT5tX3Jlc3BvbnNlLnNldFJlc291cmNl
TG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKTsKICAgICBnX3NpZ25hbF9j
b25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksICJuZXR3b3JrLWV2ZW50IiwgR19DQUxMQkFD
SyhuZXR3b3JrRXZlbnRDYWxsYmFjayksIGhhbmRsZSk7CiAgICAgZ19zaWduYWxfY29ubmVjdChk
LT5tX3NvdXBNZXNzYWdlLmdldCgpLCAicmVzdGFydGVkIiwgR19DQUxMQkFDSyhyZXN0YXJ0ZWRD
YWxsYmFjayksIGhhbmRsZSk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChkLT5tX3NvdXBNZXNzYWdl
LmdldCgpLCAid3JvdGUtYm9keSIsIEdfQ0FMTEJBQ0sod3JvdGVCb2R5Q2FsbGJhY2spLCBoYW5k
bGUpOwogI2VuZGlmCiAKICNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNDMsIDEpCkBAIC0xMDU0
LDcgKzEwMjQsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpzZW5kUGVuZGluZ1JlcXVlc3QoCiB7
CiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCkpCi0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkt
PnJlcXVlc3RUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisgICAgICAgIG1f
cmVxdWVzdFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKICNlbmRpZgogCiAg
ICAgaWYgKGQtPm1fZmlyc3RSZXF1ZXN0LnRpbWVvdXRJbnRlcnZhbCgpID4gMCkgewpJbmRleDog
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwkocmV2aXNpb24gMTY4NTM3KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDUtMDkgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcm9ncmVzcyBvbiB3ZWIg
dGltaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMyNTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGVjb2RlKToKKyAgICAgICAgVHJhbnNmZXIgUmVz
b3VyY2VMb2FkVGltaW5nIHZhbHVlcyBpZiB0aGV5IGV4aXN0LgorCiAyMDE0LTA1LTA5ICBNYXJ0
aW4gSG9kb3ZhbiAgPG1ob2RvdmFuLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgW1dLMl0gTWFrZSBnZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgd29yayBhZnRl
ciBXZWJLaXQyLmZyYW1ld29yayAtPiBXZWJLaXQuZnJhbWV3b3JrIHJlbmFtZQpJbmRleDogU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAJKHJldmlz
aW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02ODgsNiArNjg4LDE4IEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZW4KICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJl
c3BvbnNlLmh0dHBTdGF0dXNUZXh0KCk7CiAgICAgICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXNw
b25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpOwogICAgIH0KKyAgICBSZXNvdXJjZUxvYWRUaW1pbmcq
IHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgYm9v
bCBoYXNSZXNvdXJjZUxvYWRUaW1pbmcgPSB0aW1pbmc7CisgICAgZW5jb2RlciA8PCBoYXNSZXNv
dXJjZUxvYWRUaW1pbmc7CisgICAgaWYgKGhhc1Jlc291cmNlTG9hZFRpbWluZykgeworICAgICAg
ICBlbmNvZGVyIDw8IHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQ7CisgICAgICAgIGVuY29kZXIg
PDwgdGltaW5nLT5kb21haW5Mb29rdXBFbmQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5j
b25uZWN0U3RhcnQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5jb25uZWN0RW5kOworICAg
ICAgICBlbmNvZGVyIDw8IHRpbWluZy0+cmVxdWVzdFN0YXJ0OworICAgICAgICBlbmNvZGVyIDw8
IHRpbWluZy0+cmVzcG9uc2VTdGFydDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPnNlY3Vy
ZUNvbm5lY3Rpb25TdGFydDsKKyAgICB9CiB9CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJj
ZVJlc3BvbnNlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VSZXNw
b25zZSYgcmVzb3VyY2VSZXNwb25zZSkKQEAgLTc1NSw3ICs3NjcsMjMgQEAgYm9vbCBBcmd1bWVu
dENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICByZXNwb25zZS5zZXRTdWdnZXN0ZWRGaWxlbmFtZShzdWdnZXN0ZWRGaWxlbmFtZSk7
CiAgICAgfQotCisgICAgCisgICAgYm9vbCBoYXNSZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShoYXNSZXNvdXJjZUxvYWRUaW1pbmcpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKGhhc1Jlc291cmNlTG9hZFRpbWluZykgeworICAgICAgICByZXNwb25z
ZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7Cisg
ICAgICAgIFJlc291cmNlTG9hZFRpbWluZyogdGltaW5nID0gcmVzcG9uc2UucmVzb3VyY2VMb2Fk
VGltaW5nKCk7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGltaW5nLT5kb21haW5Mb29r
dXBTdGFydCkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPmRvbWFpbkxv
b2t1cEVuZCkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPmNvbm5lY3RT
dGFydCkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPmNvbm5lY3RFbmQp
CisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5nLT5yZXF1ZXN0U3RhcnQpCisg
ICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5nLT5yZXNwb25zZVN0YXJ0KQorICAg
ICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCiAgICAgcmVzb3VyY2VS
ZXNwb25zZSA9IHJlc3BvbnNlOwogCiAgICAgcmV0dXJuIHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231182</attachid>
            <date>2014-05-09 13:16:17 -0700</date>
            <delta_ts>2014-05-09 13:20:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140509131553.patch</filename>
            <type>text/plain</type>
            <size>47899</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODUzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4IEBACisyMDE0LTA1LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
b24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRkZWQgbGlua2Vy
IHN5bWJvbHMgZm9yIFJlc291cmNlTG9hZFRpbWluZy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnM6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGltaW5nLmNwcC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpi
dWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL05ldHdv
cmsuanNvbjoKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZVRpbWluZyBzdHJ1Y3R1cmUuCisgICAg
ICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6CisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICAgRGVsZXRlZCB1bnVzZWQgc2V0TmF2aWdh
dGlvblN0YXJ0IGZ1bmN0aW9uLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAg
ICAgICBVcGRhdGVkIHNwZWMgVVJMLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
Ojpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZUVuZCk6CisgICAgICAg
IFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJpYWJsZSBuYW1lcy4KKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlU3RhcnQpOgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oOgorICAgICAgICAqIHBh
Z2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6CisgICAgICAgIERlbGV0ZWQgcmVzcG9u
c2VTdGFydCBiZWNhdXNlIGl0IGlzIG5vdCBpbiB0aGUgc3BlYy4KKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5n
Ojpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWlu
Zzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5n
Ojpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnNl
Y3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWlu
Zzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpy
ZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZUxvYWRUaW1pbmcgbWVtYmVy
IHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnJl
c291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUpOgorICAgICAgICBVc2UgbmF2aWdhdGlv
blN0YXJ0IGFzIGJhc2UgZm9yIHJlc291cmNlIGxvYWQgdGltZXMuCisgICAgICAgICogcGFnZS9Q
ZXJmb3JtYW5jZVRpbWluZy5pZGw6CisgICAgICAgIFVwZGF0ZWQgc3BlYyBVUkwuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oOgorICAgICAgICBSZW1vdmVkIHVudXNl
ZCBjbGFzcyBkZWNsYXJhdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5oOgorICAgICAgICBNb3ZlZCBzb3VwIHJlcXVlc3QgdGltZSBmcm9tIFJlc291cmNl
TG9hZFRpbWluZyB0byBSZXNvdXJjZUhhbmRsZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlTG9hZFRpbWluZy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZFRpbWluZzo6ZGVlcENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6UmVz
b3VyY2VMb2FkVGltaW5nKToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZUxvYWRUaW1pbmcgbWVt
YmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZU5TVVJMQ29ubmVjdGlvbik6CisgICAgICAgIENvbGxlY3QgdGltaW5nIGRhdGEuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6CisgICAg
ICAgIFNhdmUgdGltaW5nIGRhdGEgdG8gYSBSZXNvdXJjZUxvYWRUaW1pbmcgb24gdGhlIFJlc291
cmNlUmVzcG9uc2UuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFkZXJzQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6bWls
aXNlY29uZHNTaW5jZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmRpZFN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpuZXR3b3JrRXZlbnRDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3VwTWVzc2FnZUZvckhhbmRsZUFuZFJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNlbmRQZW5kaW5nUmVxdWVz
dCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJpYWJsZSBu
YW1lcy4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxiYWNrKTogRGVsZXRlZC4KKwog
MjAxNC0wNS0wOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBb
TVNFXVtNYWNdIERlc3Ryb3kgdGhlIEFWU3RyZWFtRGF0YVBhcnNlciB3aGVuIHRoZSBTb3VyY2VC
dWZmZXIgaXMgcmVtb3ZlZCBmcm9tIGl0cyBNZWRpYVNvdXJjZS4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMjE5MSw3ICsyMTkxLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNF
UwogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwCiAgICAgcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlQ2xpZW50LmNwcAotICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgko
d29ya2luZyBjb3B5KQpAQCAtNzcxLDYgKzc3MSw3IEBAIF9fWk43V2ViQ29yZTE4UGxhdGZvcm1Q
YXN0ZWJvYXJkOGFkZFR5cGUKIF9fWk43V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkOGdldFR5
cGVzRVJOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VF
RQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQ4c2V0VHlwZXNFUktOM1dURjZWZWN0
b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3Jl
MThQbGF0Zm9ybVBhc3RlYm9hcmRDMUVSS04zV1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTE4UmVz
b3VyY2VMb2FkVGltaW5nQzFFdgogX19aTjdXZWJDb3JlMThTdHlsZVNoZWV0Q29udGVudHMxMXBh
cnNlU3RyaW5nRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMThTdHlsZVNoZWV0Q29udGVu
dHNDMUVQTlNfMTVTdHlsZVJ1bGVJbXBvcnRFUktOM1dURjZTdHJpbmdFUktOU18xNkNTU1BhcnNl
ckNvbnRleHRFCiBfX1pON1dlYkNvcmUxOFN0eWxlU2hlZXRDb250ZW50c0QxRXYKQEAgLTg0NCw2
ICs4NDUsNyBAQCBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzZXRICiBfX1pO
N1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzZXRIVFRQU3RhdHVzVGV4dEVSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxOHNldEhUVFBIZWFk
ZXJGaWVsZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFUktOUzFfNlN0cmluZ0UKIF9fWk43V2ViQ29y
ZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxOXNldFRleHRFbmNvZGluZ05hbWVFUktOM1dURjZTdHJp
bmdFCitfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMjFzZXRSZXNvdXJjZUxvYWRU
aW1pbmdFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMThSZXNvdXJjZUxvYWRUaW1pbmdFRUUKIF9fWk43
V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dlc3RlZEZpbGVuYW1lRVJLTjNX
VEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTI0c2V0RXhwZWN0
ZWRDb250ZW50TGVuZ3RoRXgKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2U2c2V0
VVJMRVJLTlNfM1VSTEUKQEAgLTE3NTUsNiArMTc1Nyw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlc291
cmNlUmVzcG9uc2VCYXNlMTVodHQKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MTZodHRwSGVhZGVyRmllbGRzRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MTZ0ZXh0RW5jb2RpbmdOYW1lRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MTdzdWdnZXN0ZWRGaWxlbmFtZUV2CitfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFz
ZTE4cmVzb3VyY2VMb2FkVGltaW5nRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VC
YXNlMjFleHBlY3RlZENvbnRlbnRMZW5ndGhFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNw
b25zZUJhc2UzdXJsRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNmlzSFRU
UEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg0MDEsNyArODQwMSw2IEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJlc291cmNlRXJyb3JC
YXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtc
UmVzb3VyY2VIYW5kbGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZv
cm1cbmV0d29ya1xSZXNvdXJjZUhhbmRsZUNsaWVudC5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJlc291cmNlTG9hZFRpbWluZy5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJlc291cmNlUmVxdWVz
dEJhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cbmV0d29y
a1xSZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxuZXR3b3JrXFNvY2tldFN0cmVhbUVycm9yQmFzZS5jcHAiIC8+CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTE4MjEsOSAr
MTgyMSw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJl
c291cmNlSGFuZGxlQ2xpZW50LmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXG5ldHdvcms8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXG5ldHdvcmtcUmVzb3VyY2VMb2FkVGltaW5nLmNwcCI+Ci0gICAgICA8RmlsdGVyPnBs
YXRmb3JtXG5ldHdvcms8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAiPgog
ICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxuZXR3b3JrPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI5NzksNyArMjk3OSw2IEBA
CiAJCTg1RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUZGMzE1ODBBQUZCRkNC
MDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovOyB9OwogCQk4NUZGMzE1QjBBQUZCRkNC
MDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU5MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXli
b2FyZEV2ZW50Lm1tICovOyB9OwogCQk4NjFDMkVBNDEzRkI0RkREMDAwNjJBQkIgLyogRG9jdW1l
bnRMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBEb2N1bWVudExvYWRUaW1pbmcuY3Bw
ICovOyB9OwotCQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5n
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMy
RUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovOyB9OwogCQk4
NjJGMTI5RTE4QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyRjEyOUQxOEMxNTcyQzAw
NUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjJGMTJBMDE4QzFERDAyMDA1QzU0QUYgLyogSHlz
dGVyZXNpc0FjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODY1MTJF
REUxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODY1MTJFREIxNTRBMkFF
RTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICovOyB9OwpAQCAtOTk4
OSw3ICs5OTg4LDYgQEAKIAkJODVGRjMxNTgwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJk
RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUtleWJvYXJkRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVGRjMxNTkwQUFGQkZDQjAwMzc0
RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWluZy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRUaW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NjFDMkVBNTEzRkI0RkZGMDAwNjJB
QkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlc291cmNlTG9hZFRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50ZWRVc2VyQWN0aXZpdHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYyRjEyOUYxOEMxRENFNDAwNUM1NEFGIC8q
IEh5c3RlcmVzaXNBY3Rpdml0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
eXN0ZXJlc2lzQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODY1MTJF
REIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjEwNiw3ICsxNjEwNCw2IEBA
CiAJCQkJNTE0Qzc2NjYwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlSGFuZGxlSW50ZXJuYWwu
aCAqLywKIAkJCQk1MUU0MTQzMjE2QTY1OTUxMDBDNjMzQzcgLyogUmVzb3VyY2VIYW5kbGVUeXBl
cy5oICovLAogCQkJCUU0Mjk1RkEzMTJCMDYxNEUwMEQxQUNFMCAvKiBSZXNvdXJjZUxvYWRQcmlv
cml0eS5oICovLAotCQkJCTg2MUMyRUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRU
aW1pbmcuY3BwICovLAogCQkJCThBODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxv
YWRUaW1pbmcuaCAqLywKIAkJCQk1MTRDNzY2NzBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5jcHAgKi8sCiAJCQkJNTE0Qzc2NjgwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291
cmNlUmVxdWVzdEJhc2UuaCAqLywKQEAgLTI4ODMzLDcgKzI4ODMwLDYgQEAKIAkJCQk1MUFBM0Y2
RjBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk5NzNFMzI1NjEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90aWZpZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRDBDRTU4RjgxMjVFNENDMjAwRjNGMTk5IC8qIFJlc291cmNl
TG9hZFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk4NjFDMkVBNjEzRkI0RkZGMDAw
NjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNEM3
NjdDMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdFRTY4NDZFMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3RDRk5l
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY1MzBDRTkyMzRFMDA3RUYzQ0QgLyogUmVz
b3VyY2VSZXF1ZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCShyZXZpc2lvbiAx
NjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMywxOCArMjAzLDE0IEBAIHN0YXRpYyBQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6
VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5nPiBidWlsZE9iamVjdEZvclRpbWlu
Zyhjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZywgRG9jdW1lbnRMb2FkZXIqIGxvYWRl
cikKIHsKICAgICByZXR1cm4gSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3Vy
Y2VUaW1pbmc6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRSZXF1ZXN0VGltZShsb2FkZXItPnRpbWlu
ZygpLT5tb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZSh0aW1pbmcuY29udmVydFJlc291cmNl
TG9hZFRpbWVUb01vbm90b25pY1RpbWUoMCkpKQotICAgICAgICAuc2V0UHJveHlTdGFydCh0aW1p
bmcucHJveHlTdGFydCkKLSAgICAgICAgLnNldFByb3h5RW5kKHRpbWluZy5wcm94eUVuZCkKLSAg
ICAgICAgLnNldERuc1N0YXJ0KHRpbWluZy5kbnNTdGFydCkKLSAgICAgICAgLnNldERuc0VuZCh0
aW1pbmcuZG5zRW5kKQorICAgICAgICAuc2V0TmF2aWdhdGlvblN0YXJ0KGxvYWRlci0+dGltaW5n
KCktPm5hdmlnYXRpb25TdGFydCgpKQorICAgICAgICAuc2V0RG9tYWluTG9va3VwU3RhcnQodGlt
aW5nLmRvbWFpbkxvb2t1cFN0YXJ0KQorICAgICAgICAuc2V0RG9tYWluTG9va3VwRW5kKHRpbWlu
Zy5kb21haW5Mb29rdXBFbmQpCiAgICAgICAgIC5zZXRDb25uZWN0U3RhcnQodGltaW5nLmNvbm5l
Y3RTdGFydCkKICAgICAgICAgLnNldENvbm5lY3RFbmQodGltaW5nLmNvbm5lY3RFbmQpCi0gICAg
ICAgIC5zZXRTc2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0gICAgICAgIC5zZXRTc2xFbmQodGlt
aW5nLnNzbEVuZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0aW1pbmcuc2VuZFN0YXJ0KQotICAg
ICAgICAuc2V0U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAgICAgICAgLnNldFJlY2VpdmVIZWFk
ZXJzRW5kKHRpbWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAgICAgICAgLnNldFNlY3VyZUNvbm5l
Y3Rpb25TdGFydCh0aW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0YXJ0KQorICAgICAgICAuc2V0UmVx
dWVzdFN0YXJ0KHRpbWluZy5yZXF1ZXN0U3RhcnQpCisgICAgICAgIC5zZXRSZXNwb25zZVN0YXJ0
KHRpbWluZy5yZXNwb25zZVN0YXJ0KQogICAgICAgICAucmVsZWFzZSgpOwogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24JKHJldmlz
aW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9OZXR3b3Jr
Lmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTMyLDE4ICszMiwxNCBAQAogICAgICAgICAgICAgInR5
cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcgaW5mb3Jt
YXRpb24gZm9yIHRoZSByZXF1ZXN0LiIsCiAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwg
ImRlc2NyaXB0aW9uIjogIlRpbWluZydzIHJlcXVlc3RUaW1lIGlzIGEgYmFzZWxpbmUgaW4gc2Vj
b25kcywgd2hpbGUgdGhlIG90aGVyIG51bWJlcnMgYXJlIHRpY2tzIGluIG1pbGxpc2Vjb25kcyBy
ZWxhdGl2ZWx5IHRvIHRoaXMgcmVxdWVzdFRpbWUuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicHJveHlTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFy
dGVkIHJlc29sdmluZyBwcm94eS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm94
eUVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCByZXNvbHZp
bmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG5zU3RhcnQiLCAidHlw
ZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBETlMgYWRkcmVzcyByZXNvbHZl
LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRuc0VuZCIsICJ0eXBlIjogIm51bWJl
ciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hdmlnYXRpb25TdGFydCIsICJ0eXBlIjogIm51bWJl
ciIsICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyBuYXZpZ2F0aW9uU3RhcnQgaXMgYSBiYXNlbGlu
ZSBpbiBzZWNvbmRzLCB3aGlsZSB0aGUgb3RoZXIgbnVtYmVycyBhcmUgdGlja3MgaW4gbWlsbGlz
ZWNvbmRzIHJlbGF0aXZlbHkgdG8gdGhpcyBuYXZpZ2F0aW9uU3RhcnQuIiB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZG9tYWluTG9va3VwU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAi
ZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cEVuZCIsICJ0eXBlIjogIm51bWJlciIsICJk
ZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNj
cmlwdGlvbiI6ICJTdGFydGVkIGNvbm5lY3RpbmcgdG8gdGhlIHJlbW90ZSBob3N0LiIgfSwKICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAi
ZGVzY3JpcHRpb24iOiAiQ29ubmVjdGVkIHRvIHRoZSByZW1vdGUgaG9zdC4iIH0sCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJzc2xTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlw
dGlvbiI6ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAic3NsRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVk
IFNTTCBoYW5kc2hha2UuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VuZFN0YXJ0
IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgc2VuZGluZyByZXF1
ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbmRFbmQiLCAidHlwZSI6ICJu
dW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgc2VuZGluZyByZXF1ZXN0LiIgfSwKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInJlY2VpdmVIZWFkZXJzRW5kIiwgInR5cGUiOiAibnVt
YmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHJlY2VpdmluZyByZXNwb25zZSBoZWFkZXJz
LiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VjdXJlQ29ubmVjdGlvblN0YXJ0Iiwg
InR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgU1NMIGhhbmRzaGFrZS4i
IH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0U3RhcnQiLCAidHlwZSI6ICJu
dW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBzZW5kaW5nIHJlcXVlc3QuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzcG9uc2VTdGFydCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlY2VpdmluZyByZXNwb25zZSBoZWFkZXJzLiIgfQog
ICAgICAgICAgICAgXQogICAgICAgICB9LAogICAgICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysg
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTc2LDEyICs3Niw2IEBAIHZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjptYXJrTmF2aWdh
dGlvblMKICAgICBtX3JlZmVyZW5jZVdhbGxUaW1lID0gY3VycmVudFRpbWUoKTsKIH0KIAotdm9p
ZCBEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydChkb3VibGUgbmF2aWdhdGlv
blN0YXJ0KQotewotICAgIEFTU0VSVChtX3JlZmVyZW5jZU1vbm90b25pY1RpbWUgJiYgbV9yZWZl
cmVuY2VXYWxsVGltZSk7Ci0gICAgbV9uYXZpZ2F0aW9uU3RhcnQgPSBuYXZpZ2F0aW9uU3RhcnQ7
Ci19Ci0KIHZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjphZGRSZWRpcmVjdChjb25zdCBVUkwmIHJl
ZGlyZWN0aW5nVXJsLCBjb25zdCBVUkwmIHJlZGlyZWN0ZWRVcmwpCiB7CiAgICAgbV9yZWRpcmVj
dENvdW50Kys7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5n
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWlu
Zy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGljOgogICAg
IGRvdWJsZSBtb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZShkb3VibGUpIGNvbnN0OwogCiAg
ICAgdm9pZCBtYXJrTmF2aWdhdGlvblN0YXJ0KCk7Ci0gICAgdm9pZCBzZXROYXZpZ2F0aW9uU3Rh
cnQoZG91YmxlKTsKICAgICB2b2lkIGFkZFJlZGlyZWN0KGNvbnN0IFVSTCYgcmVkaXJlY3RpbmdV
cmwsIGNvbnN0IFVSTCYgcmVkaXJlY3RlZFVybCk7CiAKICAgICB2b2lkIG1hcmtVbmxvYWRFdmVu
dFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwJKHJldmlzaW9uIDE2
ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS8vIFNlZTogaHR0
cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViVGltaW5nLworLy8gU2VlOiBodHRwczovL2R2
Y3MudzMub3JnL2hnL3dlYnBlcmYvcmF3LWZpbGUvdGlwL3NwZWNzL05hdmlnYXRpb25UaW1pbmcv
T3ZlcnZpZXcuaHRtbAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiAgICAgRXZlbnRU
YXJnZXQsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCwxMCAr
MTIwLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW4KICAgICBp
ZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKICAgICAgICAgcmV0dXJuIDAuMDsKIAotICAgIGlm
ICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRuc1N0YXJ0IDwgMCkKKyAgICBpZiAoIW1fdGltaW5n
IHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA8IDApCiAgICAgICAgIHJldHVybiBmZXRj
aFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25k
cyhtX3RpbWluZy0+ZG5zU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50
TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCk7CiB9CiAKIGRvdWJsZSBQ
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQoKSBjb25zdApAQCAtMTMx
LDEwICsxMzEsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbgog
ICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAgICAgICByZXR1cm4gMC4wOwogCi0g
ICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zRW5kIDwgMCkKKyAgICBpZiAoIW1fdGlt
aW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPCAwKQogICAgICAgICByZXR1cm4gZG9t
YWluTG9va3VwU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWls
bGlzZWNvbmRzKG1fdGltaW5nLT5kbnNFbmQpOworICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0Rv
Y3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQpOwogfQogCiBkb3Vi
bGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KCkgY29uc3QKQEAgLTE0
OCw4ICsxNDgsOCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjCiAK
ICAgICAvLyBjb25uZWN0U3RhcnQgaW5jbHVkZXMgYW55IEROUyB0aW1lLCBzbyB3ZSBtYXkgbmVl
ZCB0byB0cmltIHRoYXQgb2ZmLgogICAgIGludCBjb25uZWN0U3RhcnQgPSBtX3RpbWluZy0+Y29u
bmVjdFN0YXJ0OwotICAgIGlmIChtX3RpbWluZy0+ZG5zRW5kID49IDApCi0gICAgICAgIGNvbm5l
Y3RTdGFydCA9IG1fdGltaW5nLT5kbnNFbmQ7CisgICAgaWYgKG1fdGltaW5nLT5kb21haW5Mb29r
dXBFbmQgPj0gMCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmRvbWFpbkxvb2t1
cEVuZDsKIAogICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKGNv
bm5lY3RTdGFydCk7CiB9CkBAIC0xNzEsMTAgKzE3MSwxMCBAQCBkb3VibGUgUGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6c2VjdXJlCiAgICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCiAg
ICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5zc2xT
dGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBuZWdvdGlhdGVkLgorICAgIGlmICgh
bV90aW1pbmcgfHwgbV90aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydCA8IDApIC8vIFNlY3Vy
ZSBjb25uZWN0aW9uIG5vdCBuZWdvdGlhdGVkLgogICAgICAgICByZXR1cm4gMC4wOwogCi0gICAg
cmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPnNzbFN0
YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3Rp
bWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0KTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CkBAIC0xODUsMjUgKzE4NSwxMSBAQCBk
b3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVxdWVzCiAgICAgaWYgKCFtX3RpbWlu
ZykKICAgICAgICAgcmV0dXJuIGNvbm5lY3RFbmQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZVRp
bWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5zZW5kU3RhcnQpOwotfQotCi1kb3Vi
bGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0Ci17Ci0g
ICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCi0gICAgICAgIHJldHVybiAwLjA7Ci0KLSAg
ICBpZiAoIW1fdGltaW5nKQotICAgICAgICByZXR1cm4gcmVxdWVzdFN0YXJ0KCk7Ci0gICAgLy8g
RklYTUU6IFRoaXMgbnVtYmVyIGlzbid0IGV4YWN0bHkgY29ycmVjdC4gU2VlIHRoZSBub3RlcyBp
biBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpLgotICAgIHJldHVybiByZXNvdXJj
ZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCk7
CisgICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmct
PnJlcXVlc3RTdGFydCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpy
ZXNwb25zZUVuZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2ZpbmlzaFRpbWUpCi0gICAgICAgIHJl
dHVybiByZXNwb25zZVN0YXJ0KCk7Ci0KICAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvRG9jdW1l
bnRNaWxsaXNlY29uZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCksIG1fZmluaXNoVGltZSk7
CiB9CiAKQEAgLTIxMSw3ICsxOTcsNyBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zzo6cmVzb3VyCiB7CiAgICAgaWYgKCFkZWx0YU1pbGxpc2Vjb25kcykKICAgICAgICAgcmV0dXJu
IDAuMDsKLSAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV9y
ZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCksIG1fdGltaW5nLT5yZXF1ZXN0VGltZSkgKyBkZWx0YU1p
bGxpc2Vjb25kczsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29u
ZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCksIG1fcmVxdWVzdGluZ0RvY3VtZW50LmdldCgp
LT5sb2FkZXIoKS0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFydCgpKSArIGRlbHRhTWlsbGlzZWNv
bmRzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAkocmV2aXNpb24gMTY4MzkyKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY1LDcgKzY1LDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBjb25uZWN0RW5k
KCkgY29uc3Q7CiAgICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNvbnN0OwogICAg
IGRvdWJsZSByZXF1ZXN0U3RhcnQoKSBjb25zdDsKLSAgICBkb3VibGUgcmVzcG9uc2VTdGFydCgp
IGNvbnN0OwogICAgIGRvdWJsZSByZXNwb25zZUVuZCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBi
b29sIGlzUmVzb3VyY2UoKSB7IHJldHVybiB0cnVlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGwJKHJldmlzaW9uIDE2ODM5
MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDUgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5yZXN0cmljdGVkIGRvdWJsZSBjb25uZWN0RW5kOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnJlc3RyaWN0ZWQgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSByZXF1ZXN0U3RhcnQ7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgcmVzcG9uc2VTdGFydDsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSByZXNwb25zZUVuZDsKIH07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4Mzky
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzMCwxMSArMTMwLDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5j
ZVRpbWluZzo6ZG8KIAogICAgIC8vIFRoaXMgd2lsbCBiZSAtMSB3aGVuIGEgRE5TIHJlcXVlc3Qg
aXMgbm90IHBlcmZvcm1lZC4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwg
dmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8gRE5TLCB3ZSAiYmFja2ZpbGwiIHdpdGggZmV0Y2hTdGFy
dC4KLSAgICBpbnQgZG5zU3RhcnQgPSB0aW1pbmctPmRuc1N0YXJ0OwotICAgIGlmIChkbnNTdGFy
dCA8IDApCisgICAgaW50IGRvbWFpbkxvb2t1cFN0YXJ0ID0gdGltaW5nLT5kb21haW5Mb29rdXBT
dGFydDsKKyAgICBpZiAoZG9tYWluTG9va3VwU3RhcnQgPCAwKQogICAgICAgICByZXR1cm4gZmV0
Y2hTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1
dGUoZG5zU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29s
dXRlKGRvbWFpbkxvb2t1cFN0YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1h
bmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQoKSBjb25zdApAQCAtMTQ1LDExICsxNDUsMTEgQEAg
dW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpkbwogCiAgICAgLy8gVGhpcyB3
aWxsIGJlIC0xIHdoZW4gYSBETlMgcmVxdWVzdCBpcyBub3QgcGVyZm9ybWVkLgogICAgIC8vIFJh
dGhlciB0aGFuIGV4cG9zaW5nIGEgc3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBETlMs
IHdlICJiYWNrZmlsbCIgd2l0aCBkb21haW5Mb29rdXBTdGFydC4KLSAgICBpbnQgZG5zRW5kID0g
dGltaW5nLT5kbnNFbmQ7Ci0gICAgaWYgKGRuc0VuZCA8IDApCisgICAgaW50IGRvbWFpbkxvb2t1
cEVuZCA9IHRpbWluZy0+ZG9tYWluTG9va3VwRW5kOworICAgIGlmIChkb21haW5Mb29rdXBFbmQg
PCAwKQogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQoKTsKIAotICAgIHJldHVybiBy
ZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGRuc0VuZCk7CisgICAgcmV0dXJuIHJl
c291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoZG9tYWluTG9va3VwRW5kKTsKIH0KIAog
dW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQoKSBjb25z
dApAQCAtMTcwLDggKzE3MCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWlu
Zzo6Y28KIAogICAgIC8vIFJlc291cmNlTG9hZFRpbWluZydzIGNvbm5lY3QgcGhhc2UgaW5jbHVk
ZXMgRE5TLCBob3dldmVyIE5hdmlnYXRpb24gVGltaW5nJ3MKICAgICAvLyBjb25uZWN0IHBoYXNl
IHNob3VsZCBub3QuIFNvIGlmIHRoZXJlIGlzIEROUyB0aW1lLCB0cmltIGl0IGZyb20gdGhlIHN0
YXJ0LgotICAgIGlmICh0aW1pbmctPmRuc0VuZCA+PSAwICYmIHRpbWluZy0+ZG5zRW5kID4gY29u
bmVjdFN0YXJ0KQotICAgICAgICBjb25uZWN0U3RhcnQgPSB0aW1pbmctPmRuc0VuZDsKKyAgICBp
ZiAodGltaW5nLT5kb21haW5Mb29rdXBFbmQgPj0gMCAmJiB0aW1pbmctPmRvbWFpbkxvb2t1cEVu
ZCA+IGNvbm5lY3RTdGFydCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0gdGltaW5nLT5kb21haW5M
b29rdXBFbmQ7CiAKICAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0
ZShjb25uZWN0U3RhcnQpOwogfQpAQCAtMjA1LDExICsyMDUsMTEgQEAgdW5zaWduZWQgbG9uZyBs
b25nIFBlcmZvcm1hbmNlVGltaW5nOjpzZQogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIGludCBzc2xTdGFydCA9IHRpbWluZy0+c3NsU3RhcnQ7Ci0gICAgaWYgKHNz
bFN0YXJ0IDwgMCkKKyAgICBpbnQgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gdGltaW5nLT5zZWN1
cmVDb25uZWN0aW9uU3RhcnQ7CisgICAgaWYgKHNlY3VyZUNvbm5lY3Rpb25TdGFydCA8IDApCiAg
ICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRv
QWJzb2x1dGUoc3NsU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVU
b0Fic29sdXRlKHNlY3VyZUNvbm5lY3Rpb25TdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9u
ZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KCkgY29uc3QKQEAgLTIxOCw4ICsyMTgs
OCBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlCiAgICAgaWYgKCF0
aW1pbmcpCiAgICAgICAgIHJldHVybiBjb25uZWN0RW5kKCk7CiAKLSAgICBBU1NFUlQodGltaW5n
LT5zZW5kU3RhcnQgPj0gMCk7Ci0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRv
QWJzb2x1dGUodGltaW5nLT5zZW5kU3RhcnQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlcXVlc3RT
dGFydCA+PSAwKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0
ZSh0aW1pbmctPnJlcXVlc3RTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0CkBAIC0yMjgsMTQgKzIyOCw4IEBAIHVu
c2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAoIXRpbWluZykK
ICAgICAgICAgcmV0dXJuIHJlcXVlc3RTdGFydCgpOwogCi0gICAgLy8gRklYTUU6IFJlc3BvbnNl
IHN0YXJ0IG5lZWRzIHRvIGJlIHRoZSB0aW1lIG9mIHRoZSBmaXJzdCByZWNlaXZlZCBieXRlLgot
ICAgIC8vIEhvd2V2ZXIsIHRoZSBSZXNvdXJjZUxvYWRUaW1pbmcgQVBJIGN1cnJlbnRseSBvbmx5
IHN1cHBvcnRzIHRoZSB0aW1lCi0gICAgLy8gdGhlIGxhc3QgaGVhZGVyIGJ5dGUgd2FzIHJlY2Vp
dmVkLiBGb3IgbWFueSByZXNwb25zZXMgd2l0aCByZWFzb25hYmxlCi0gICAgLy8gc2l6ZWQgY29v
a2llcywgdGhlIEhUVFAgaGVhZGVycyBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQgc28gdGhpcyB0
aW1lCi0gICAgLy8gaXMgYmFzaWNhbGx5IGVxdWl2YWxlbnQuIEJ1dCBmb3Igc29tZSByZXNwb25z
ZXMsIHBhcnRpY3VsYXJseSB0aG9zZSB3aXRoCi0gICAgLy8gaGVhZGVycyBsYXJnZXIgdGhhbiBh
IHNpbmdsZSBwYWNrZXQsIHRoaXMgdGltZSB3aWxsIGJlIHRvbyBsYXRlLgotICAgIEFTU0VSVCh0
aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kID49IDApOwotICAgIHJldHVybiByZXNvdXJjZUxvYWRU
aW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQpOworICAgIEFT
U0VSVCh0aW1pbmctPnJlc3BvbnNlU3RhcnQgPj0gMCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9h
ZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5yZXNwb25zZVN0YXJ0KTsKIH0KIAogdW5z
aWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0CkBA
IC0zNTEsOSArMzQ1LDcgQEAgUmVzb3VyY2VMb2FkVGltaW5nKiBQZXJmb3JtYW5jZVRpbWluZzo6
cgogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1l
UmVsYXRpdmVUb0Fic29sdXRlKGludCByZWxhdGl2ZU1pbGxpc2Vjb25kcykgY29uc3QKIHsKICAg
ICBBU1NFUlQocmVsYXRpdmVNaWxsaXNlY29uZHMgPj0gMCk7Ci0gICAgUmVzb3VyY2VMb2FkVGlt
aW5nKiByZXNvdXJjZVRpbWluZyA9IHJlc291cmNlTG9hZFRpbWluZygpOwotICAgIEFTU0VSVChy
ZXNvdXJjZVRpbWluZyk7Ci0gICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNl
Y29uZHMocmVzb3VyY2VUaW1pbmctPmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNU
aW1lKHJlbGF0aXZlTWlsbGlzZWNvbmRzKSk7CisgICAgcmV0dXJuIG5hdmlnYXRpb25TdGFydCgp
ICsgcmVsYXRpdmVNaWxsaXNlY29uZHM7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6bW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUgbW9u
b3RvbmljU2Vjb25kcykgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VUaW1pbmcuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VUaW1pbmcuaWRsCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0vLyBTZWU6IGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBp
L1dlYlRpbWluZy8KKy8vIFNlZTogaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy93ZWJwZXJmL3Jhdy1m
aWxlL3RpcC9zcGVjcy9OYXZpZ2F0aW9uVGltaW5nL092ZXJ2aWV3Lmh0bWwKIFsKICAgICBDb25k
aXRpb25hbD1XRUJfVElNSU5HLAogXSBpbnRlcmZhY2UgUGVyZm9ybWFuY2VUaW1pbmcgewpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAkocmV2
aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFy
c2Vycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw5ICszNyw2IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgSFRUUEhlYWRlck1hcDsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2VCYXNl
OwotCiBlbnVtIENvbnRlbnREaXNwb3NpdGlvblR5cGUgewogICAgIENvbnRlbnREaXNwb3NpdGlv
bk5vbmUsCiAgICAgQ29udGVudERpc3Bvc2l0aW9uSW5saW5lLApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkocmV2aXNpb24gMTY4
MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTAsNiArMTkwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2
b2lkIHNldEhvc3RBbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYpOwogICAg
IHN0YXRpYyB2b2lkIHNldENsaWVudENlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYgaG9zdCwgR1Rs
c0NlcnRpZmljYXRlKik7CiAgICAgc3RhdGljIHZvaWQgc2V0SWdub3JlU1NMRXJyb3JzKGJvb2wp
OworICAgIGRvdWJsZSBtX3JlcXVlc3RUaW1lOwogI2VuZGlmCiAKICAgICAvLyBVc2VkIHRvIHdv
cmsgYXJvdW5kIHRoZSBmYWN0IHRoYXQgeW91IGRvbid0IGdldCBhbnkgbW9yZSBOU1VSTENvbm5l
Y3Rpb24gY2FsbGJhY2tzIHVudGlsIHlvdSByZXR1cm4gZnJvbSB0aGUgb25lIHlvdSdyZSBpbi4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5n
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlTG9hZFRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VMb2FkVGltaW5nLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZG91YmxlIFJlc291cmNlTG9hZFRpbWluZzo6Y29u
dmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoaW50IGRlbHRhTWlsbGlzZWNvbmRz
KSBjb25zdAotewotICAgIHJldHVybiByZXF1ZXN0VGltZSArIGRlbHRhTWlsbGlzZWNvbmRzIC8g
MTAwMC4wOwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlTG9hZFRpbWluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDc2ICs0NCw1MCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxSZXNvdXJj
ZUxvYWRUaW1pbmc+IGRlZXBDb3B5KCkKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZXNvdXJjZUxv
YWRUaW1pbmc+IHRpbWluZyA9IGNyZWF0ZSgpOwotICAgICAgICB0aW1pbmctPnJlcXVlc3RUaW1l
ID0gcmVxdWVzdFRpbWU7Ci0gICAgICAgIHRpbWluZy0+cHJveHlTdGFydCA9IHByb3h5U3RhcnQ7
Ci0gICAgICAgIHRpbWluZy0+cHJveHlFbmQgPSBwcm94eUVuZDsKLSAgICAgICAgdGltaW5nLT5k
bnNTdGFydCA9IGRuc1N0YXJ0OwotICAgICAgICB0aW1pbmctPmRuc0VuZCA9IGRuc0VuZDsKKyAg
ICAgICAgdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA9IGRvbWFpbkxvb2t1cFN0YXJ0OworICAg
ICAgICB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA9IGRvbWFpbkxvb2t1cEVuZDsKICAgICAgICAg
dGltaW5nLT5jb25uZWN0U3RhcnQgPSBjb25uZWN0U3RhcnQ7CiAgICAgICAgIHRpbWluZy0+Y29u
bmVjdEVuZCA9IGNvbm5lY3RFbmQ7Ci0gICAgICAgIHRpbWluZy0+c2VuZFN0YXJ0ID0gc2VuZFN0
YXJ0OwotICAgICAgICB0aW1pbmctPnNlbmRFbmQgPSBzZW5kRW5kOwotICAgICAgICB0aW1pbmct
PnJlY2VpdmVIZWFkZXJzRW5kID0gcmVjZWl2ZUhlYWRlcnNFbmQ7Ci0gICAgICAgIHRpbWluZy0+
c3NsU3RhcnQgPSBzc2xTdGFydDsKLSAgICAgICAgdGltaW5nLT5zc2xFbmQgPSBzc2xFbmQ7Cisg
ICAgICAgIHRpbWluZy0+cmVxdWVzdFN0YXJ0ID0gcmVxdWVzdFN0YXJ0OworICAgICAgICB0aW1p
bmctPnJlc3BvbnNlU3RhcnQgPSByZXNwb25zZVN0YXJ0OworICAgICAgICB0aW1pbmctPnNlY3Vy
ZUNvbm5lY3Rpb25TdGFydCA9IHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKICAgICAgICAgcmV0dXJu
IHRpbWluZy5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJl
c291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gcmVx
dWVzdFRpbWUgPT0gb3RoZXIucmVxdWVzdFRpbWUKLSAgICAgICAgICAgICYmIHByb3h5U3RhcnQg
PT0gb3RoZXIucHJveHlTdGFydAotICAgICAgICAgICAgJiYgcHJveHlFbmQgPT0gb3RoZXIucHJv
eHlFbmQKLSAgICAgICAgICAgICYmIGRuc1N0YXJ0ID09IG90aGVyLmRuc1N0YXJ0Ci0gICAgICAg
ICAgICAmJiBkbnNFbmQgPT0gb3RoZXIuZG5zRW5kCisgICAgICAgIHJldHVybiBkb21haW5Mb29r
dXBTdGFydCA9PSBvdGhlci5kb21haW5Mb29rdXBTdGFydAorICAgICAgICAgICAgJiYgZG9tYWlu
TG9va3VwRW5kID09IG90aGVyLmRvbWFpbkxvb2t1cEVuZAogICAgICAgICAgICAgJiYgY29ubmVj
dFN0YXJ0ID09IG90aGVyLmNvbm5lY3RTdGFydAogICAgICAgICAgICAgJiYgY29ubmVjdEVuZCA9
PSBvdGhlci5jb25uZWN0RW5kCi0gICAgICAgICAgICAmJiBzZW5kU3RhcnQgPT0gb3RoZXIuc2Vu
ZFN0YXJ0Ci0gICAgICAgICAgICAmJiBzZW5kRW5kID09IG90aGVyLnNlbmRFbmQKLSAgICAgICAg
ICAgICYmIHJlY2VpdmVIZWFkZXJzRW5kID09IG90aGVyLnJlY2VpdmVIZWFkZXJzRW5kCi0gICAg
ICAgICAgICAmJiBzc2xTdGFydCA9PSBvdGhlci5zc2xTdGFydAotICAgICAgICAgICAgJiYgc3Ns
RW5kID09IG90aGVyLnNzbEVuZDsKKyAgICAgICAgICAgICYmIHJlcXVlc3RTdGFydCA9PSBvdGhl
ci5yZXF1ZXN0U3RhcnQKKyAgICAgICAgICAgICYmIHJlc3BvbnNlU3RhcnQgPT0gb3RoZXIucmVz
cG9uc2VTdGFydAorICAgICAgICAgICAgJiYgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID09IG90aGVy
LnNlY3VyZUNvbm5lY3Rpb25TdGFydDsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVy
biAhKCp0aGlzID09IG90aGVyKTsKICAgICB9Ci0KLSAgICAvLyBXZSB3YW50IHRvIHByZXNlbnQg
YSB1bmlmaWVkIHRpbWVsaW5lIHRvIEphdmFzY3JpcHQuIFVzaW5nIHdhbGx0aW1lIGlzIHByb2Js
ZW1hdGljLCBiZWNhdXNlIHRoZSBjbG9jayBtYXkgc2tldyB3aGlsZSByZXNvdXJjZXMKLSAgICAv
LyBsb2FkLiBUbyBwcmV2ZW50IHRoYXQgc2tldywgd2UgcmVjb3JkIGEgc2luZ2xlIHJlZmVyZW5j
ZSB3YWxsdGltZSB3aGVuIHJvb3QgZG9jdW1lbnQgbmF2aWdhdGlvbiBiZWdpbnMuIEFsbCBvdGhl
ciB0aW1lcyBhcmUKLSAgICAvLyByZWNvcmRlZCB1c2luZyBtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKS4gV2hlbiBhIHRpbWUgbmVlZHMgdG8gYmUgcHJlc2VudGVkIHRvIEphdmFzY3JpcHQs
IHdlIGJ1aWxkIGEgcHNldWRvLXdhbGx0aW1lCi0gICAgLy8gdXNpbmcgdGhlIGZvbGxvd2luZyBl
cXVhdGlvbjoKLSAgICAvLyAgIHBzZXVkbyB0aW1lID0gZG9jdW1lbnQgd2FsbCByZWZlcmVuY2Ug
KyAocmVzb3VyY2UgcmVxdWVzdCB0aW1lIC0gZG9jdW1lbnQgbW9ub3RvbmljIHJlZmVyZW5jZSkg
KyBkZWx0YU1pbGxpc2Vjb25kcyAvIDEwMDAuMC4KLSAgICBkb3VibGUgY29udmVydFJlc291cmNl
TG9hZFRpbWVUb01vbm90b25pY1RpbWUoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdDsKLQot
ICAgIGRvdWJsZSByZXF1ZXN0VGltZTsgLy8gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkg
d2hlbiB0aGUgcG9ydCBzdGFydGVkIGhhbmRsaW5nIHRoaXMgcmVxdWVzdC4KLSAgICBpbnQgcHJv
eHlTdGFydDsgLy8gVGhlIHJlc3Qgb2YgdGhlc2UgYXJlIG1pbGxpc2Vjb25kIGRlbHRhcywgdXNp
bmcgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIGZyb20gcmVxdWVzdFRpbWUuCi0gICAg
aW50IHByb3h5RW5kOwotICAgIGludCBkbnNTdGFydDsKLSAgICBpbnQgZG5zRW5kOworICAgIAor
ICAgIC8vIFRoZXNlIGFyZSBtaWxsaXNlY29uZCBkZWx0YXMgZnJvbSB0aGUgbmF2aWdhdGlvbiBz
dGFydC4KKyAgICBpbnQgZG9tYWluTG9va3VwU3RhcnQ7CisgICAgaW50IGRvbWFpbkxvb2t1cEVu
ZDsKICAgICBpbnQgY29ubmVjdFN0YXJ0OwogICAgIGludCBjb25uZWN0RW5kOwotICAgIGludCBz
ZW5kU3RhcnQ7Ci0gICAgaW50IHNlbmRFbmQ7Ci0gICAgaW50IHJlY2VpdmVIZWFkZXJzRW5kOwot
ICAgIGludCBzc2xTdGFydDsKLSAgICBpbnQgc3NsRW5kOwotCisgICAgaW50IHJlcXVlc3RTdGFy
dDsKKyAgICBpbnQgcmVzcG9uc2VTdGFydDsKKyAgICBpbnQgc2VjdXJlQ29ubmVjdGlvblN0YXJ0
OworICAgIAogcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRUaW1pbmcoKQotICAgICAgICA6IHJl
cXVlc3RUaW1lKDApCi0gICAgICAgICwgcHJveHlTdGFydCgtMSkKLSAgICAgICAgLCBwcm94eUVu
ZCgtMSkKLSAgICAgICAgLCBkbnNTdGFydCgtMSkKLSAgICAgICAgLCBkbnNFbmQoLTEpCisgICAg
ICAgIDogZG9tYWluTG9va3VwU3RhcnQoLTEpCisgICAgICAgICwgZG9tYWluTG9va3VwRW5kKC0x
KQogICAgICAgICAsIGNvbm5lY3RTdGFydCgtMSkKICAgICAgICAgLCBjb25uZWN0RW5kKC0xKQot
ICAgICAgICAsIHNlbmRTdGFydCgwKQotICAgICAgICAsIHNlbmRFbmQoMCkKLSAgICAgICAgLCBy
ZWNlaXZlSGVhZGVyc0VuZCgwKQotICAgICAgICAsIHNzbFN0YXJ0KC0xKQotICAgICAgICAsIHNz
bEVuZCgtMSkKKyAgICAgICAgLCByZXF1ZXN0U3RhcnQoMCkKKyAgICAgICAgLCByZXNwb25zZVN0
YXJ0KDApCisgICAgICAgICwgc2VjdXJlQ29ubmVjdGlvblN0YXJ0KC0xKQogICAgIHsKICAgICB9
CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VI
YW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC01Niw2ICs1NiwxNCBAQAogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAj
aW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxGb3VuZGF0
aW9uL05TVVJMQ29ubmVjdGlvblByaXZhdGUuaD4pCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJM
Q29ubmVjdGlvblByaXZhdGUuaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMQ29ubmVjdGlvbiAo
VGltaW5nRGF0YSkKKysgKHZvaWQpX3NldENvbGxlY3RzVGltaW5nRGF0YTooQk9PTCljb2xsZWN0
OworQGVuZAorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxDRk5ldHdvcmsv
Q0ZVUkxSZXF1ZXN0Lmg+CiAKQEAgLTIwMCw2ICsyMDgsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpjcmVhdGVOU1VSTENvbm5lY3RpCiAgICAgY29uc3QgYm9vbCB1c2VzQ2FjaGUgPSB0cnVlOwog
I2VuZGlmCiAgICAgZC0+bV9jb25uZWN0aW9uID0gYWRvcHROUyhbW05TVVJMQ29ubmVjdGlvbiBh
bGxvY10gX2luaXRXaXRoUmVxdWVzdDpuc1JlcXVlc3QgZGVsZWdhdGU6ZGVsZWdhdGUgdXNlc0Nh
Y2hlOnVzZXNDYWNoZSBtYXhDb250ZW50TGVuZ3RoOjAgc3RhcnRJbW1lZGlhdGVseTpOTyBjb25u
ZWN0aW9uUHJvcGVydGllczpwcm9wZXJ0eURpY3Rpb25hcnldKTsKKyNpZiBFTkFCTEUoV0VCX1RJ
TUlORykKKyAgICBbTlNVUkxDb25uZWN0aW9uIF9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6WUVTXTsK
KyNlbmRpZgogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlLm1tCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0J
KHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDE0IEBACiAjaW1wb3J0ICJXZWJDb3JlVVJMUmVz
cG9uc2UuaCIKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRl
KDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4pCisjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZO
U1VSTENvbm5lY3Rpb24uaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMQ29ubmVjdGlvbiAoVGlt
aW5nRGF0YSkKKy0gKE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhOworQGVuZAorI2VuZGlmCisK
IEBpbnRlcmZhY2UgTlNVUkxSZXF1ZXN0IChEZXRhaWxzKQogLSAoaWQpX3Byb3BlcnR5Rm9yS2V5
OihOU1N0cmluZyAqKWtleTsKIEBlbmQKQEAgLTE5Myw3ICsyMDEsNiBAQCAtIChCT09MKWNvbm5l
Y3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29u
bmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICop
cgogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIFVOVVNFRF9QQVJBTShjb25u
ZWN0aW9uKTsKIAogICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIGRlbGVnYXRlIGNvbm5lY3Rp
b246JXAgZGlkUmVjZWl2ZVJlc3BvbnNlOiVwIChIVFRQIHN0YXR1cyAlZCwgcmVwb3J0ZWQgTUlN
RVR5cGUgJyVzJykiLCBtX2hhbmRsZSwgY29ubmVjdGlvbiwgciwgW3IgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihzdGF0dXNDb2RlKV0gPyBbKGlkKXIgc3RhdHVzQ29kZV0gOiAwLCBbW3Ig
TUlNRVR5cGVdIFVURjhTdHJpbmddKTsKIApAQCAtMjEyLDggKzIxOSwzOCBAQCAtICh2b2lkKWNv
bm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAKICAgICAgICAgaWYgKFttX2hhbmRsZS0+
Zmlyc3RSZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpIF9wcm9wZXJ0
eUZvcktleTpAIkZvcmNlSFRNTE1JTUVUeXBlIl0pCiAgICAgICAgICAgICBbciBfc2V0TUlNRVR5
cGU6QCJ0ZXh0L2h0bWwiXTsKLQotICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2Vp
dmVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCByKTsKKyAgICAgICAgCisgICAgICAgIFJlc291cmNl
UmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShyKTsKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAg
ICAgICAgTlNEaWN0aW9uYXJ5KiB0aW1pbmdEYXRhID0gW2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFd
OworICAgICAgICBpZiAodGltaW5nRGF0YSkgeworICAgICAgICAgICAgcmVzb3VyY2VSZXNwb25z
ZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7Cisg
ICAgICAgICAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRoaXMg
aXMgbm90IHRoZSBuYXZpZ2F0aW9uU3RhcnQgdGltZSBpbiBtb25vdG9uaWMgdGltZSwgYnV0IHRo
ZSBvdGhlciB0aW1lcyBhcmUgcmVsYXRpdmUgdG8gdGhpcyB0aW1lCisgICAgICAgICAgICAvLyBh
bmQgb25seSB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aW1lcyBhcmUgc3RvcmVkLgorICAgICAg
ICAgICAgZG91YmxlIHJlZmVyZW5jZVN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAi
X2tDRk5UaW1pbmdEYXRhVGltaW5nRGF0YUluaXQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydCA9IFtbdGltaW5nRGF0YSB2
YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cFN0YXJ0Il0gZG91YmxlVmFs
dWVdOworICAgICAgICAgICAgZG91YmxlIGRvbWFpbkxvb2t1cEVuZCA9IFtbdGltaW5nRGF0YSB2
YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cEVuZCJdIGRvdWJsZVZhbHVl
XTsKKyAgICAgICAgICAgIGRvdWJsZSBjb25uZWN0U3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVG
b3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25uZWN0U3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAg
ICAgICAgICBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVl
Rm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhU2VjdXJlQ29ubmVjdGlvblN0YXJ0Il0gZG91YmxlVmFs
dWVdOworICAgICAgICAgICAgZG91YmxlIGNvbm5lY3RFbmQgPSBbW3RpbWluZ0RhdGEgdmFsdWVG
b3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25uZWN0RW5kIl0gZG91YmxlVmFsdWVdOworICAgICAg
ICAgICAgZG91YmxlIHJlcXVlc3RTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9r
Q0ZOVGltaW5nRGF0YVJlcXVlc3RTdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIGRv
dWJsZSByZXNwb25zZVN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1p
bmdEYXRhUmVzcG9uc2VTdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA9IGRvbWFpbkxvb2t1cFN0YXJ0IDw9IDAu
MCA/IC0xIDogKGRvbWFpbkxvb2t1cFN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAg
ICAgICAgICAgIHRpbWluZy0+ZG9tYWluTG9va3VwRW5kID0gZG9tYWluTG9va3VwRW5kIDw9IDAu
MCA/IC0xIDogKGRvbWFpbkxvb2t1cEVuZCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAg
ICAgICAgICB0aW1pbmctPmNvbm5lY3RTdGFydCA9IGNvbm5lY3RTdGFydCA8PSAwLjAgPyAtMSA6
IChjb25uZWN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGlt
aW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnQgPD0gMC4w
ID8gLTEgOiAoc2VjdXJlQ29ubmVjdGlvblN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsK
KyAgICAgICAgICAgIHRpbWluZy0+Y29ubmVjdEVuZCA9IGNvbm5lY3RFbmQgPD0gMC4wID8gLTEg
OiAoY29ubmVjdEVuZCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0aW1p
bmctPnJlcXVlc3RTdGFydCA9IHJlcXVlc3RTdGFydCA8PSAwLjAgPyAtMSA6IChyZXF1ZXN0U3Rh
cnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5nLT5yZXNwb25z
ZVN0YXJ0ID0gcmVzcG9uc2VTdGFydCA8PSAwLjAgPyAtMSA6IChyZXNwb25zZVN0YXJ0IC0gcmVm
ZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BB
UkFNKGNvbm5lY3Rpb24pOworI2VuZGlmCisgICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlk
UmVjZWl2ZVJlc3BvbnNlQXN5bmMobV9oYW5kbGUsIHJlc291cmNlUmVzcG9uc2UpOwogICAgIH0p
OwogCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJ
TUVfRk9SRVZFUik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkocmV2aXNpb24gMTY4Mzky
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNiwxMSArMzE2LDYgQEAgc3RhdGljIHZvaWQg
Z290SGVhZGVyc0NhbGxiYWNrKFNvdXBNZXNzYQogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIAotI2lmIEVOQUJMRShXRUJfVElNSU5HKQot
ICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQotICAgICAgICBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZWNlaXZlSGVhZGVyc0VuZCA9IG1pbGlz
ZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJl
cXVlc3RUaW1lKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIC8vIFdlIGFyZSBh
IGJpdCBtb3JlIGNvbnNlcnZhdGl2ZSB3aXRoIHRoZSBwZXJzaXN0ZW50IGNyZWRlbnRpYWwgc3Rv
cmFnZSB0aGFuIHRoZSBzZXNzaW9uIHN0b3JlLAogICAgIC8vIHNpbmNlIHdlIGFyZSB3YWl0aW5n
IHVudGlsIHdlIGtub3cgdGhhdCB0aGlzIGF1dGhlbnRpY2F0aW9uIHN1Y2NlZWRlZCBiZWZvcmUg
YWN0dWFsbHkgc3RvcmluZy4KQEAgLTM5MCw3ICszODUsNyBAQCBzdGF0aWMgdm9pZCByZXN0YXJ0
ZWRDYWxsYmFjayhTb3VwTWVzc2FnCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhh
bmRsZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3Bv
bnNlID0gZC0+bV9yZXNwb25zZTsKICAgICByZWRpcmVjdFJlc3BvbnNlLnNldFJlc291cmNlTG9h
ZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKTsKLSAgICByZWRpcmVjdFJlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOworICAgIG1fcmVxdWVzdFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKTsKIH0KICNlbmRpZgogCkBAIC04NDQsMzUgKzgzOSwxMyBAQCBzdGF0aWMgaW50IG1p
bGlzZWNvbmRzU2luY2VSZXF1ZXN0KGRvdWJsCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4o
KG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gcmVxdWVzdFRpbWUpICogMTAwMC4wKTsK
IH0KIAotc3RhdGljIHZvaWQgd3JvdGVCb2R5Q2FsbGJhY2soU291cE1lc3NhZ2UqLCBncG9pbnRl
ciBkYXRhKQotewotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGljX2Nh
c3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKLSAgICBpZiAoIWhhbmRsZSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJu
YWwoKTsKLSAgICBpZiAoIWQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNl
bmRFbmQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9h
ZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7Ci19Ci0KIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFN0
YXJ0UmVxdWVzdCgpCiB7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGdldEludGVy
bmFsKCk7CiAgICAgaWYgKCFkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5z
ZW5kU3RhcnQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7Ci0gICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0ICE9IC0xKSB7Ci0gICAgICAgIC8vIFdlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXF1ZXN0VGltaW5nVmlldy5qcyBhc3N1bWVzCi0gICAgICAgIC8v
IHRoYXQgU1NMIHRpbWUgaXMgaW5jbHVkZWQgaW4gY29ubmVjdGlvbiB0aW1lIHNvIG11c3QKLSAg
ICAgICAgLy8gc3Vic3RyYWN0IGhlcmUgdGhlIFNTTCBkZWx0YSB0aGF0IHdpbGwgYmUgYWRkZWQg
bGF0ZXIgKHNlZQotICAgICAgICAvLyBXZWJJbnNwZWN0b3IuUmVxdWVzdFRpbWluZ1ZpZXcuY3Jl
YXRlVGltaW5nVGFibGUgaW4gdGhlCi0gICAgICAgIC8vIGZpbGUgYWJvdmUgZm9yIG1vcmUgZGV0
YWlscykuCi0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNlbmRT
dGFydCAtPQotICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
c3NsRW5kIC0gZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQ7Ci0g
ICAgfQorICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RTdGFy
dCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KG1fcmVxdWVzdFRpbWUpOwogfQogCiBzdGF0aWMg
dm9pZCBuZXR3b3JrRXZlbnRDYWxsYmFjayhTb3VwTWVzc2FnZSosIEdTb2NrZXRDbGllbnRFdmVu
dCBldmVudCwgR0lPU3RyZWFtKiwgZ3BvaW50ZXIgZGF0YSkKQEAgLTg4NSw0MCArODU4LDM4IEBA
IHN0YXRpYyB2b2lkIG5ldHdvcmtFdmVudENhbGxiYWNrKFNvdXBNZXMKICAgICAgICAgcmV0dXJu
OwogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwo
KTsKLSAgICBpbnQgZGVsdGFUaW1lID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNw
b25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUpOworICAgIGludCBkZWx0YVRp
bWUgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChoYW5kbGUtPm1fcmVxdWVzdFRpbWUpOwogICAg
IHN3aXRjaCAoZXZlbnQpIHsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9SRVNPTFZJTkc6Ci0g
ICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc1N0YXJ0ID0gZGVs
dGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kb21h
aW5Mb29rdXBTdGFydCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NP
Q0tFVF9DTElFTlRfUkVTT0xWRUQ6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2Fk
VGltaW5nKCktPmRuc0VuZCA9IGRlbHRhVGltZTsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKS0+ZG9tYWluTG9va3VwRW5kID0gZGVsdGFUaW1lOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9DT05ORUNUSU5HOgogICAgICAgICBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5jb25uZWN0U3RhcnQgPSBkZWx0YVRpbWU7
Ci0gICAgICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNTdGFy
dCAhPSAtMSkKKyAgICAgICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkt
PmRvbWFpbkxvb2t1cFN0YXJ0ICE9IC0xKSB7CiAgICAgICAgICAgICAvLyBXZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVxdWVzdFRpbWluZ1ZpZXcuanMgYXNzdW1lcwogICAgICAgICAgICAg
Ly8gdGhhdCBETlMgdGltZSBpcyBpbmNsdWRlZCBpbiBjb25uZWN0aW9uIHRpbWUgc28gbXVzdAog
ICAgICAgICAgICAgLy8gc3Vic3RyYWN0IGhlcmUgdGhlIEROUyBkZWx0YSB0aGF0IHdpbGwgYmUg
YWRkZWQgbGF0ZXIgKHNlZQogICAgICAgICAgICAgLy8gV2ViSW5zcGVjdG9yLlJlcXVlc3RUaW1p
bmdWaWV3LmNyZWF0ZVRpbWluZ1RhYmxlIGluIHRoZQogICAgICAgICAgICAgLy8gZmlsZSBhYm92
ZSBmb3IgbW9yZSBkZXRhaWxzKS4KICAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCktPmNvbm5lY3RTdGFydCAtPQotICAgICAgICAgICAgICAgIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc0VuZCAtIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCktPmRuc1N0YXJ0OworICAgICAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxvb2t1cEVuZCAtIGQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCktPmRvbWFpbkxvb2t1cFN0YXJ0OworICAgICAgICB9CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX0NPTk5FQ1RFRDoKICAgICAgICAgLy8gV2Vi
IFRpbWluZyBjb25zaWRlcnMgdGhhdCBjb25uZWN0aW9uIHRpbWUgaW52b2x2ZXMgZG5zLCBwcm94
eSAmIFRMUyBuZWdvdGlhdGlvbi4uLgogICAgICAgICAvLyBzbyB3ZSBiZXR0ZXIgcGljayBHX1NP
Q0tFVF9DTElFTlRfQ09NUExFVEUgZm9yIGNvbm5lY3RFbmQKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBHX1NPQ0tFVF9DTElFTlRfUFJPWFlfTkVHT1RJQVRJTkc6Ci0gICAgICAgIGQtPm1fcmVz
cG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnByb3h5U3RhcnQgPSBkZWx0YVRpbWU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1BST1hZX05FR09USUFURUQ6Ci0g
ICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnByb3h5RW5kID0gZGVs
dGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9UTFNfSEFO
RFNIQUtJTkc6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNz
bFN0YXJ0ID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1RMU19IQU5EU0hBS0VEOgotICAgICAgICBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xFbmQgPSBkZWx0YVRpbWU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX0NPTVBMRVRFOgogICAgICAgICBk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5jb25uZWN0RW5kID0gZGVsdGFUaW1l
OwpAQCAtOTgwLDcgKzk1MSw2IEBAIHN0YXRpYyBib29sIGNyZWF0ZVNvdXBNZXNzYWdlRm9ySGFu
ZGxlQW4KICAgICBkLT5tX3Jlc3BvbnNlLnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxv
YWRUaW1pbmc6OmNyZWF0ZSgpKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fc291cE1lc3Nh
Z2UuZ2V0KCksICJuZXR3b3JrLWV2ZW50IiwgR19DQUxMQkFDSyhuZXR3b3JrRXZlbnRDYWxsYmFj
ayksIGhhbmRsZSk7CiAgICAgZ19zaWduYWxfY29ubmVjdChkLT5tX3NvdXBNZXNzYWdlLmdldCgp
LCAicmVzdGFydGVkIiwgR19DQUxMQkFDSyhyZXN0YXJ0ZWRDYWxsYmFjayksIGhhbmRsZSk7Ci0g
ICAgZ19zaWduYWxfY29ubmVjdChkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCAid3JvdGUtYm9keSIs
IEdfQ0FMTEJBQ0sod3JvdGVCb2R5Q2FsbGJhY2spLCBoYW5kbGUpOwogI2VuZGlmCiAKICNpZiBT
T1VQX0NIRUNLX1ZFUlNJT04oMiwgNDMsIDEpCkBAIC0xMDU0LDcgKzEwMjQsNyBAQCB2b2lkIFJl
c291cmNlSGFuZGxlOjpzZW5kUGVuZGluZ1JlcXVlc3QoCiB7CiAjaWYgRU5BQkxFKFdFQl9USU1J
TkcpCiAgICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCi0gICAgICAg
IGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lID0gbW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisgICAgICAgIG1fcmVxdWVzdFRpbWUgPSBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKICNlbmRpZgogCiAgICAgaWYgKGQtPm1fZmlyc3RSZXF1
ZXN0LnRpbWVvdXRJbnRlcnZhbCgpID4gMCkgewpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTY4
NTM3KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTQtMDUtMDkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBQcm9ncmVzcyBvbiB3ZWIgdGltaW5nLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNTc0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3Bv
bnNlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3Bv
bnNlPjo6ZGVjb2RlKToKKyAgICAgICAgVHJhbnNmZXIgUmVzb3VyY2VMb2FkVGltaW5nIHZhbHVl
cyBpZiB0aGV5IGV4aXN0LgorCiAyMDE0LTA1LTA5ICBNYXJ0aW4gSG9kb3ZhbiAgPG1ob2RvdmFu
LnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW1dLMl0gTWFrZSBnZW5l
cmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgd29yayBhZnRlciBXZWJLaXQyLmZyYW1ld29yayAt
PiBXZWJLaXQuZnJhbWV3b3JrIHJlbmFtZQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02ODgsNiArNjg4LDE4IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNl
Pjo6ZW4KICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlc3BvbnNlLmh0dHBTdGF0dXNUZXh0
KCk7CiAgICAgICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFt
ZSgpOwogICAgIH0KKyAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc291cmNlUmVz
cG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgYm9vbCBoYXNSZXNvdXJjZUxvYWRUaW1p
bmcgPSB0aW1pbmc7CisgICAgZW5jb2RlciA8PCBoYXNSZXNvdXJjZUxvYWRUaW1pbmc7CisgICAg
aWYgKGhhc1Jlc291cmNlTG9hZFRpbWluZykgeworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+
ZG9tYWluTG9va3VwU3RhcnQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5kb21haW5Mb29r
dXBFbmQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5jb25uZWN0U3RhcnQ7CisgICAgICAg
IGVuY29kZXIgPDwgdGltaW5nLT5jb25uZWN0RW5kOworICAgICAgICBlbmNvZGVyIDw8IHRpbWlu
Zy0+cmVxdWVzdFN0YXJ0OworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+cmVzcG9uc2VTdGFy
dDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydDsKKyAg
ICB9CiB9CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzb3VyY2VSZXNwb25z
ZSkKQEAgLTc1NSw3ICs3NjcsMjMgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9u
c2U+OjpkZQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXNwb25zZS5zZXRT
dWdnZXN0ZWRGaWxlbmFtZShzdWdnZXN0ZWRGaWxlbmFtZSk7CiAgICAgfQotCisgICAgCisgICAg
Ym9vbCBoYXNSZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNS
ZXNvdXJjZUxvYWRUaW1pbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGhhc1Jl
c291cmNlTG9hZFRpbWluZykgeworICAgICAgICByZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1p
bmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7CisgICAgICAgIFJlc291cmNlTG9hZFRp
bWluZyogdGltaW5nID0gcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodGltaW5nLT5kb21haW5Mb29rdXBTdGFydCkKKyAgICAgICAgICAg
IHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCkKKyAgICAgICAgICAg
IHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPmNvbm5lY3RTdGFydCkKKyAgICAgICAgICAgIHx8
ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPmNvbm5lY3RFbmQpCisgICAgICAgICAgICB8fCAhZGVj
b2Rlci5kZWNvZGUodGltaW5nLT5yZXF1ZXN0U3RhcnQpCisgICAgICAgICAgICB8fCAhZGVjb2Rl
ci5kZWNvZGUodGltaW5nLT5yZXNwb25zZVN0YXJ0KQorICAgICAgICAgICAgfHwgIWRlY29kZXIu
ZGVjb2RlKHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0KSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgCiAgICAgcmVzb3VyY2VSZXNwb25zZSA9IHJlc3BvbnNlOwog
CiAgICAgcmV0dXJuIHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231183</attachid>
            <date>2014-05-09 13:20:46 -0700</date>
            <delta_ts>2014-05-09 16:37:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140509132022.patch</filename>
            <type>text/plain</type>
            <size>47907</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODUzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4IEBACisyMDE0LTA1LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
b24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRkZWQgbGlua2Vy
IHN5bWJvbHMgZm9yIFJlc291cmNlTG9hZFRpbWluZy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnM6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGltaW5nLmNwcC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpi
dWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL05ldHdv
cmsuanNvbjoKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZVRpbWluZyBzdHJ1Y3R1cmUuCisgICAg
ICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6CisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICAgRGVsZXRlZCB1bnVzZWQgc2V0TmF2aWdh
dGlvblN0YXJ0IGZ1bmN0aW9uLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAg
ICAgICBVcGRhdGVkIHNwZWMgVVJMLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
Ojpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZUVuZCk6CisgICAgICAg
IFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJpYWJsZSBuYW1lcy4KKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlU3RhcnQpOgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oOgorICAgICAgICAqIHBh
Z2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6CisgICAgICAgIERlbGV0ZWQgcmVzcG9u
c2VTdGFydCBiZWNhdXNlIGl0IGlzIG5vdCBpbiB0aGUgc3BlYy4KKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5n
Ojpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWlu
Zzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5n
Ojpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnNl
Y3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWlu
Zzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpy
ZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZUxvYWRUaW1pbmcgbWVtYmVy
IHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnJl
c291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUpOgorICAgICAgICBVc2UgbmF2aWdhdGlv
blN0YXJ0IGFzIGJhc2UgZm9yIHJlc291cmNlIGxvYWQgdGltZXMuCisgICAgICAgICogcGFnZS9Q
ZXJmb3JtYW5jZVRpbWluZy5pZGw6CisgICAgICAgIFVwZGF0ZWQgc3BlYyBVUkwuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oOgorICAgICAgICBSZW1vdmVkIHVudXNl
ZCBjbGFzcyBkZWNsYXJhdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5oOgorICAgICAgICBNb3ZlZCBzb3VwIHJlcXVlc3QgdGltZSBmcm9tIFJlc291cmNl
TG9hZFRpbWluZyB0byBSZXNvdXJjZUhhbmRsZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlTG9hZFRpbWluZy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZFRpbWluZzo6ZGVlcENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6UmVz
b3VyY2VMb2FkVGltaW5nKToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZUxvYWRUaW1pbmcgbWVt
YmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZU5TVVJMQ29ubmVjdGlvbik6CisgICAgICAgIENvbGxlY3QgdGltaW5nIGRhdGEuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6CisgICAg
ICAgIFNhdmUgdGltaW5nIGRhdGEgdG8gYSBSZXNvdXJjZUxvYWRUaW1pbmcgb24gdGhlIFJlc291
cmNlUmVzcG9uc2UuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFkZXJzQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6bWls
aXNlY29uZHNTaW5jZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmRpZFN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpuZXR3b3JrRXZlbnRDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3VwTWVzc2FnZUZvckhhbmRsZUFuZFJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNlbmRQZW5kaW5nUmVxdWVz
dCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJpYWJsZSBu
YW1lcy4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxiYWNrKTogRGVsZXRlZC4KKwog
MjAxNC0wNS0wOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBb
TVNFXVtNYWNdIERlc3Ryb3kgdGhlIEFWU3RyZWFtRGF0YVBhcnNlciB3aGVuIHRoZSBTb3VyY2VC
dWZmZXIgaXMgcmVtb3ZlZCBmcm9tIGl0cyBNZWRpYVNvdXJjZS4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMjE5MSw3ICsyMTkxLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNF
UwogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwCiAgICAgcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlQ2xpZW50LmNwcAotICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgko
d29ya2luZyBjb3B5KQpAQCAtNzcxLDYgKzc3MSw3IEBAIF9fWk43V2ViQ29yZTE4UGxhdGZvcm1Q
YXN0ZWJvYXJkOGFkZFR5cGUKIF9fWk43V2ViQ29yZTE4UGxhdGZvcm1QYXN0ZWJvYXJkOGdldFR5
cGVzRVJOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VF
RQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQ4c2V0VHlwZXNFUktOM1dURjZWZWN0
b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3Jl
MThQbGF0Zm9ybVBhc3RlYm9hcmRDMUVSS04zV1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTE4UmVz
b3VyY2VMb2FkVGltaW5nQzFFdgogX19aTjdXZWJDb3JlMThTdHlsZVNoZWV0Q29udGVudHMxMXBh
cnNlU3RyaW5nRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMThTdHlsZVNoZWV0Q29udGVu
dHNDMUVQTlNfMTVTdHlsZVJ1bGVJbXBvcnRFUktOM1dURjZTdHJpbmdFUktOU18xNkNTU1BhcnNl
ckNvbnRleHRFCiBfX1pON1dlYkNvcmUxOFN0eWxlU2hlZXRDb250ZW50c0QxRXYKQEAgLTg0NCw2
ICs4NDUsNyBAQCBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzZXRICiBfX1pO
N1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMTdzZXRIVFRQU3RhdHVzVGV4dEVSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxOHNldEhUVFBIZWFk
ZXJGaWVsZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFUktOUzFfNlN0cmluZ0UKIF9fWk43V2ViQ29y
ZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxOXNldFRleHRFbmNvZGluZ05hbWVFUktOM1dURjZTdHJp
bmdFCitfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMjFzZXRSZXNvdXJjZUxvYWRU
aW1pbmdFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMThSZXNvdXJjZUxvYWRUaW1pbmdFRUUKIF9fWk43
V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dlc3RlZEZpbGVuYW1lRVJLTjNX
VEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTI0c2V0RXhwZWN0
ZWRDb250ZW50TGVuZ3RoRXgKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2U2c2V0
VVJMRVJLTlNfM1VSTEUKQEAgLTE3NTUsNiArMTc1Nyw3IEBAIF9fWk5LN1dlYkNvcmUyMFJlc291
cmNlUmVzcG9uc2VCYXNlMTVodHQKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MTZodHRwSGVhZGVyRmllbGRzRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MTZ0ZXh0RW5jb2RpbmdOYW1lRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
MTdzdWdnZXN0ZWRGaWxlbmFtZUV2CitfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFz
ZTE4cmVzb3VyY2VMb2FkVGltaW5nRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VC
YXNlMjFleHBlY3RlZENvbnRlbnRMZW5ndGhFdgogX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNw
b25zZUJhc2UzdXJsRXYKIF9fWk5LN1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNmlzSFRU
UEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg0MDEsNyArODQwMSw2IEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJlc291cmNlRXJyb3JC
YXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtc
UmVzb3VyY2VIYW5kbGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZv
cm1cbmV0d29ya1xSZXNvdXJjZUhhbmRsZUNsaWVudC5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJlc291cmNlTG9hZFRpbWluZy5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJlc291cmNlUmVxdWVz
dEJhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cbmV0d29y
a1xSZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxuZXR3b3JrXFNvY2tldFN0cmVhbUVycm9yQmFzZS5jcHAiIC8+CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTE4MjEsOSAr
MTgyMSw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJl
c291cmNlSGFuZGxlQ2xpZW50LmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXG5ldHdvcms8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXG5ldHdvcmtcUmVzb3VyY2VMb2FkVGltaW5nLmNwcCI+Ci0gICAgICA8RmlsdGVyPnBs
YXRmb3JtXG5ldHdvcms8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAiPgog
ICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxuZXR3b3JrPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI5NzksNyArMjk3OSw2IEBA
CiAJCTg1RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUZGMzE1ODBBQUZCRkNC
MDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovOyB9OwogCQk4NUZGMzE1QjBBQUZCRkNC
MDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU5MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXli
b2FyZEV2ZW50Lm1tICovOyB9OwogCQk4NjFDMkVBNDEzRkI0RkREMDAwNjJBQkIgLyogRG9jdW1l
bnRMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBEb2N1bWVudExvYWRUaW1pbmcuY3Bw
ICovOyB9OwotCQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5n
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMy
RUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovOyB9OwogCQk4
NjJGMTI5RTE4QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyRjEyOUQxOEMxNTcyQzAw
NUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjJGMTJBMDE4QzFERDAyMDA1QzU0QUYgLyogSHlz
dGVyZXNpc0FjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODY1MTJF
REUxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODY1MTJFREIxNTRBMkFF
RTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICovOyB9OwpAQCAtOTk4
OSw3ICs5OTg4LDYgQEAKIAkJODVGRjMxNTgwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJk
RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUtleWJvYXJkRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVGRjMxNTkwQUFGQkZDQjAwMzc0
RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWluZy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRUaW1pbmcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NjFDMkVBNTEzRkI0RkZGMDAwNjJB
QkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlc291cmNlTG9hZFRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50ZWRVc2VyQWN0aXZpdHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYyRjEyOUYxOEMxRENFNDAwNUM1NEFGIC8q
IEh5c3RlcmVzaXNBY3Rpdml0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
eXN0ZXJlc2lzQWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODY1MTJF
REIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjEwNiw3ICsxNjEwNCw2IEBA
CiAJCQkJNTE0Qzc2NjYwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlSGFuZGxlSW50ZXJuYWwu
aCAqLywKIAkJCQk1MUU0MTQzMjE2QTY1OTUxMDBDNjMzQzcgLyogUmVzb3VyY2VIYW5kbGVUeXBl
cy5oICovLAogCQkJCUU0Mjk1RkEzMTJCMDYxNEUwMEQxQUNFMCAvKiBSZXNvdXJjZUxvYWRQcmlv
cml0eS5oICovLAotCQkJCTg2MUMyRUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRU
aW1pbmcuY3BwICovLAogCQkJCThBODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxv
YWRUaW1pbmcuaCAqLywKIAkJCQk1MTRDNzY2NzBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5jcHAgKi8sCiAJCQkJNTE0Qzc2NjgwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291
cmNlUmVxdWVzdEJhc2UuaCAqLywKQEAgLTI4ODMzLDcgKzI4ODMwLDYgQEAKIAkJCQk1MUFBM0Y2
RjBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk5NzNFMzI1NjEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90aWZpZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRDBDRTU4RjgxMjVFNENDMjAwRjNGMTk5IC8qIFJlc291cmNl
TG9hZFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk4NjFDMkVBNjEzRkI0RkZGMDAw
NjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNEM3
NjdDMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdFRTY4NDZFMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3RDRk5l
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY1MzBDRTkyMzRFMDA3RUYzQ0QgLyogUmVz
b3VyY2VSZXF1ZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCShyZXZpc2lvbiAx
NjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMywxOCArMjAzLDE0IEBAIHN0YXRpYyBQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGQKIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6
VHlwZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5nPiBidWlsZE9iamVjdEZvclRpbWlu
Zyhjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZywgRG9jdW1lbnRMb2FkZXIqIGxvYWRl
cikKIHsKICAgICByZXR1cm4gSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3Vy
Y2VUaW1pbmc6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRSZXF1ZXN0VGltZShsb2FkZXItPnRpbWlu
ZygpLT5tb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZSh0aW1pbmcuY29udmVydFJlc291cmNl
TG9hZFRpbWVUb01vbm90b25pY1RpbWUoMCkpKQotICAgICAgICAuc2V0UHJveHlTdGFydCh0aW1p
bmcucHJveHlTdGFydCkKLSAgICAgICAgLnNldFByb3h5RW5kKHRpbWluZy5wcm94eUVuZCkKLSAg
ICAgICAgLnNldERuc1N0YXJ0KHRpbWluZy5kbnNTdGFydCkKLSAgICAgICAgLnNldERuc0VuZCh0
aW1pbmcuZG5zRW5kKQorICAgICAgICAuc2V0TmF2aWdhdGlvblN0YXJ0KGxvYWRlci0+dGltaW5n
KCktPm5hdmlnYXRpb25TdGFydCgpKQorICAgICAgICAuc2V0RG9tYWluTG9va3VwU3RhcnQodGlt
aW5nLmRvbWFpbkxvb2t1cFN0YXJ0KQorICAgICAgICAuc2V0RG9tYWluTG9va3VwRW5kKHRpbWlu
Zy5kb21haW5Mb29rdXBFbmQpCiAgICAgICAgIC5zZXRDb25uZWN0U3RhcnQodGltaW5nLmNvbm5l
Y3RTdGFydCkKICAgICAgICAgLnNldENvbm5lY3RFbmQodGltaW5nLmNvbm5lY3RFbmQpCi0gICAg
ICAgIC5zZXRTc2xTdGFydCh0aW1pbmcuc3NsU3RhcnQpCi0gICAgICAgIC5zZXRTc2xFbmQodGlt
aW5nLnNzbEVuZCkKLSAgICAgICAgLnNldFNlbmRTdGFydCh0aW1pbmcuc2VuZFN0YXJ0KQotICAg
ICAgICAuc2V0U2VuZEVuZCh0aW1pbmcuc2VuZEVuZCkKLSAgICAgICAgLnNldFJlY2VpdmVIZWFk
ZXJzRW5kKHRpbWluZy5yZWNlaXZlSGVhZGVyc0VuZCkKKyAgICAgICAgLnNldFNlY3VyZUNvbm5l
Y3Rpb25TdGFydCh0aW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0YXJ0KQorICAgICAgICAuc2V0UmVx
dWVzdFN0YXJ0KHRpbWluZy5yZXF1ZXN0U3RhcnQpCisgICAgICAgIC5zZXRSZXNwb25zZVN0YXJ0
KHRpbWluZy5yZXNwb25zZVN0YXJ0KQogICAgICAgICAucmVsZWFzZSgpOwogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24JKHJldmlz
aW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9OZXR3b3Jr
Lmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTMyLDE4ICszMiwxNCBAQAogICAgICAgICAgICAgInR5
cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcgaW5mb3Jt
YXRpb24gZm9yIHRoZSByZXF1ZXN0LiIsCiAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwg
ImRlc2NyaXB0aW9uIjogIlRpbWluZydzIHJlcXVlc3RUaW1lIGlzIGEgYmFzZWxpbmUgaW4gc2Vj
b25kcywgd2hpbGUgdGhlIG90aGVyIG51bWJlcnMgYXJlIHRpY2tzIGluIG1pbGxpc2Vjb25kcyBy
ZWxhdGl2ZWx5IHRvIHRoaXMgcmVxdWVzdFRpbWUuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicHJveHlTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFy
dGVkIHJlc29sdmluZyBwcm94eS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm94
eUVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCByZXNvbHZp
bmcgcHJveHkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG5zU3RhcnQiLCAidHlw
ZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBETlMgYWRkcmVzcyByZXNvbHZl
LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRuc0VuZCIsICJ0eXBlIjogIm51bWJl
ciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hdmlnYXRpb25TdGFydCIsICJ0eXBlIjogIm51bWJl
ciIsICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyBuYXZpZ2F0aW9uU3RhcnQgaXMgYSBiYXNlbGlu
ZSBpbiBzZWNvbmRzLCB3aGlsZSB0aGUgb3RoZXIgbnVtYmVycyBhcmUgdGlja3MgaW4gbWlsbGlz
ZWNvbmRzIHJlbGF0aXZlbHkgdG8gdGhpcyBuYXZpZ2F0aW9uU3RhcnQuIiB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZG9tYWluTG9va3VwU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAi
ZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cEVuZCIsICJ0eXBlIjogIm51bWJlciIsICJk
ZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBETlMgYWRkcmVzcyByZXNvbHZlLiIgfSwKICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNj
cmlwdGlvbiI6ICJTdGFydGVkIGNvbm5lY3RpbmcgdG8gdGhlIHJlbW90ZSBob3N0LiIgfSwKICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbm5lY3RFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAi
ZGVzY3JpcHRpb24iOiAiQ29ubmVjdGVkIHRvIHRoZSByZW1vdGUgaG9zdC4iIH0sCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJzc2xTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlw
dGlvbiI6ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAic3NsRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVk
IFNTTCBoYW5kc2hha2UuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VuZFN0YXJ0
IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgc2VuZGluZyByZXF1
ZXN0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbmRFbmQiLCAidHlwZSI6ICJu
dW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgc2VuZGluZyByZXF1ZXN0LiIgfSwKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInJlY2VpdmVIZWFkZXJzRW5kIiwgInR5cGUiOiAibnVt
YmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHJlY2VpdmluZyByZXNwb25zZSBoZWFkZXJz
LiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VjdXJlQ29ubmVjdGlvblN0YXJ0Iiwg
InR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgU1NMIGhhbmRzaGFrZS4i
IH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0U3RhcnQiLCAidHlwZSI6ICJu
dW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBzZW5kaW5nIHJlcXVlc3QuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzcG9uc2VTdGFydCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHJlY2VpdmluZyByZXNwb25zZSBoZWFkZXJzLiIgfQog
ICAgICAgICAgICAgXQogICAgICAgICB9LAogICAgICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysg
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTc2LDEyICs3Niw2IEBAIHZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjptYXJrTmF2aWdh
dGlvblMKICAgICBtX3JlZmVyZW5jZVdhbGxUaW1lID0gY3VycmVudFRpbWUoKTsKIH0KIAotdm9p
ZCBEb2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydChkb3VibGUgbmF2aWdhdGlv
blN0YXJ0KQotewotICAgIEFTU0VSVChtX3JlZmVyZW5jZU1vbm90b25pY1RpbWUgJiYgbV9yZWZl
cmVuY2VXYWxsVGltZSk7Ci0gICAgbV9uYXZpZ2F0aW9uU3RhcnQgPSBuYXZpZ2F0aW9uU3RhcnQ7
Ci19Ci0KIHZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjphZGRSZWRpcmVjdChjb25zdCBVUkwmIHJl
ZGlyZWN0aW5nVXJsLCBjb25zdCBVUkwmIHJlZGlyZWN0ZWRVcmwpCiB7CiAgICAgbV9yZWRpcmVj
dENvdW50Kys7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5n
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWlu
Zy5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGljOgogICAg
IGRvdWJsZSBtb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZShkb3VibGUpIGNvbnN0OwogCiAg
ICAgdm9pZCBtYXJrTmF2aWdhdGlvblN0YXJ0KCk7Ci0gICAgdm9pZCBzZXROYXZpZ2F0aW9uU3Rh
cnQoZG91YmxlKTsKICAgICB2b2lkIGFkZFJlZGlyZWN0KGNvbnN0IFVSTCYgcmVkaXJlY3RpbmdV
cmwsIGNvbnN0IFVSTCYgcmVkaXJlY3RlZFVybCk7CiAKICAgICB2b2lkIG1hcmtVbmxvYWRFdmVu
dFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwJKHJldmlzaW9uIDE2
ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS8vIFNlZTogaHR0
cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViVGltaW5nLworLy8gU2VlOiBodHRwczovL2R2
Y3MudzMub3JnL2hnL3dlYnBlcmYvcmF3LWZpbGUvdGlwL3NwZWNzL05hdmlnYXRpb25UaW1pbmcv
T3ZlcnZpZXcuaHRtbAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiAgICAgRXZlbnRU
YXJnZXQsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCwxMCAr
MTIwLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW4KICAgICBp
ZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKICAgICAgICAgcmV0dXJuIDAuMDsKIAotICAgIGlm
ICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRuc1N0YXJ0IDwgMCkKKyAgICBpZiAoIW1fdGltaW5n
IHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA8IDApCiAgICAgICAgIHJldHVybiBmZXRj
aFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25k
cyhtX3RpbWluZy0+ZG5zU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50
TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCk7CiB9CiAKIGRvdWJsZSBQ
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQoKSBjb25zdApAQCAtMTMx
LDEwICsxMzEsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbgog
ICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAgICAgICByZXR1cm4gMC4wOwogCi0g
ICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zRW5kIDwgMCkKKyAgICBpZiAoIW1fdGlt
aW5nIHx8IG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPCAwKQogICAgICAgICByZXR1cm4gZG9t
YWluTG9va3VwU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWls
bGlzZWNvbmRzKG1fdGltaW5nLT5kbnNFbmQpOworICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0Rv
Y3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQpOwogfQogCiBkb3Vi
bGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KCkgY29uc3QKQEAgLTE0
OCw4ICsxNDgsOCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjCiAK
ICAgICAvLyBjb25uZWN0U3RhcnQgaW5jbHVkZXMgYW55IEROUyB0aW1lLCBzbyB3ZSBtYXkgbmVl
ZCB0byB0cmltIHRoYXQgb2ZmLgogICAgIGludCBjb25uZWN0U3RhcnQgPSBtX3RpbWluZy0+Y29u
bmVjdFN0YXJ0OwotICAgIGlmIChtX3RpbWluZy0+ZG5zRW5kID49IDApCi0gICAgICAgIGNvbm5l
Y3RTdGFydCA9IG1fdGltaW5nLT5kbnNFbmQ7CisgICAgaWYgKG1fdGltaW5nLT5kb21haW5Mb29r
dXBFbmQgPj0gMCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmRvbWFpbkxvb2t1
cEVuZDsKIAogICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKGNv
bm5lY3RTdGFydCk7CiB9CkBAIC0xNzEsMTAgKzE3MSwxMCBAQCBkb3VibGUgUGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6c2VjdXJlCiAgICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCiAg
ICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5zc2xT
dGFydCA8IDApIC8vIFNlY3VyZSBjb25uZWN0aW9uIG5vdCBuZWdvdGlhdGVkLgorICAgIGlmICgh
bV90aW1pbmcgfHwgbV90aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydCA8IDApIC8vIFNlY3Vy
ZSBjb25uZWN0aW9uIG5vdCBuZWdvdGlhdGVkLgogICAgICAgICByZXR1cm4gMC4wOwogCi0gICAg
cmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPnNzbFN0
YXJ0KTsKKyAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3Rp
bWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0KTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CkBAIC0xODUsMjUgKzE4NSwxMSBAQCBk
b3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVxdWVzCiAgICAgaWYgKCFtX3RpbWlu
ZykKICAgICAgICAgcmV0dXJuIGNvbm5lY3RFbmQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZVRp
bWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5zZW5kU3RhcnQpOwotfQotCi1kb3Vi
bGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0Ci17Ci0g
ICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCi0gICAgICAgIHJldHVybiAwLjA7Ci0KLSAg
ICBpZiAoIW1fdGltaW5nKQotICAgICAgICByZXR1cm4gcmVxdWVzdFN0YXJ0KCk7Ci0gICAgLy8g
RklYTUU6IFRoaXMgbnVtYmVyIGlzbid0IGV4YWN0bHkgY29ycmVjdC4gU2VlIHRoZSBub3RlcyBp
biBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpLgotICAgIHJldHVybiByZXNvdXJj
ZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCk7
CisgICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmct
PnJlcXVlc3RTdGFydCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpy
ZXNwb25zZUVuZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2ZpbmlzaFRpbWUpCi0gICAgICAgIHJl
dHVybiByZXNwb25zZVN0YXJ0KCk7Ci0KICAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvRG9jdW1l
bnRNaWxsaXNlY29uZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCksIG1fZmluaXNoVGltZSk7
CiB9CiAKQEAgLTIxMSw3ICsxOTcsNyBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zzo6cmVzb3VyCiB7CiAgICAgaWYgKCFkZWx0YU1pbGxpc2Vjb25kcykKICAgICAgICAgcmV0dXJu
IDAuMDsKLSAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV9y
ZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCksIG1fdGltaW5nLT5yZXF1ZXN0VGltZSkgKyBkZWx0YU1p
bGxpc2Vjb25kczsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29u
ZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCksIG1fcmVxdWVzdGluZ0RvY3VtZW50LmdldCgp
LT5sb2FkZXIoKS0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFydCgpKSArIGRlbHRhTWlsbGlzZWNv
bmRzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAkocmV2aXNpb24gMTY4MzkyKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY1LDcgKzY1LDYgQEAgcHVibGljOgogICAgIGRvdWJsZSBjb25uZWN0RW5k
KCkgY29uc3Q7CiAgICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNvbnN0OwogICAg
IGRvdWJsZSByZXF1ZXN0U3RhcnQoKSBjb25zdDsKLSAgICBkb3VibGUgcmVzcG9uc2VTdGFydCgp
IGNvbnN0OwogICAgIGRvdWJsZSByZXNwb25zZUVuZCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBi
b29sIGlzUmVzb3VyY2UoKSB7IHJldHVybiB0cnVlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGwJKHJldmlzaW9uIDE2ODM5
MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDUgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5yZXN0cmljdGVkIGRvdWJsZSBjb25uZWN0RW5kOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnJlc3RyaWN0ZWQgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSByZXF1ZXN0U3RhcnQ7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgcmVzcG9uc2VTdGFydDsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSByZXNwb25zZUVuZDsKIH07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4Mzky
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzMCwxMSArMTMwLDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5j
ZVRpbWluZzo6ZG8KIAogICAgIC8vIFRoaXMgd2lsbCBiZSAtMSB3aGVuIGEgRE5TIHJlcXVlc3Qg
aXMgbm90IHBlcmZvcm1lZC4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwg
dmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8gRE5TLCB3ZSAiYmFja2ZpbGwiIHdpdGggZmV0Y2hTdGFy
dC4KLSAgICBpbnQgZG5zU3RhcnQgPSB0aW1pbmctPmRuc1N0YXJ0OwotICAgIGlmIChkbnNTdGFy
dCA8IDApCisgICAgaW50IGRvbWFpbkxvb2t1cFN0YXJ0ID0gdGltaW5nLT5kb21haW5Mb29rdXBT
dGFydDsKKyAgICBpZiAoZG9tYWluTG9va3VwU3RhcnQgPCAwKQogICAgICAgICByZXR1cm4gZmV0
Y2hTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1
dGUoZG5zU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29s
dXRlKGRvbWFpbkxvb2t1cFN0YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1h
bmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQoKSBjb25zdApAQCAtMTQ1LDExICsxNDUsMTEgQEAg
dW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpkbwogCiAgICAgLy8gVGhpcyB3
aWxsIGJlIC0xIHdoZW4gYSBETlMgcmVxdWVzdCBpcyBub3QgcGVyZm9ybWVkLgogICAgIC8vIFJh
dGhlciB0aGFuIGV4cG9zaW5nIGEgc3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBETlMs
IHdlICJiYWNrZmlsbCIgd2l0aCBkb21haW5Mb29rdXBTdGFydC4KLSAgICBpbnQgZG5zRW5kID0g
dGltaW5nLT5kbnNFbmQ7Ci0gICAgaWYgKGRuc0VuZCA8IDApCisgICAgaW50IGRvbWFpbkxvb2t1
cEVuZCA9IHRpbWluZy0+ZG9tYWluTG9va3VwRW5kOworICAgIGlmIChkb21haW5Mb29rdXBFbmQg
PCAwKQogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQoKTsKIAotICAgIHJldHVybiBy
ZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGRuc0VuZCk7CisgICAgcmV0dXJuIHJl
c291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoZG9tYWluTG9va3VwRW5kKTsKIH0KIAog
dW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQoKSBjb25z
dApAQCAtMTcwLDggKzE3MCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWlu
Zzo6Y28KIAogICAgIC8vIFJlc291cmNlTG9hZFRpbWluZydzIGNvbm5lY3QgcGhhc2UgaW5jbHVk
ZXMgRE5TLCBob3dldmVyIE5hdmlnYXRpb24gVGltaW5nJ3MKICAgICAvLyBjb25uZWN0IHBoYXNl
IHNob3VsZCBub3QuIFNvIGlmIHRoZXJlIGlzIEROUyB0aW1lLCB0cmltIGl0IGZyb20gdGhlIHN0
YXJ0LgotICAgIGlmICh0aW1pbmctPmRuc0VuZCA+PSAwICYmIHRpbWluZy0+ZG5zRW5kID4gY29u
bmVjdFN0YXJ0KQotICAgICAgICBjb25uZWN0U3RhcnQgPSB0aW1pbmctPmRuc0VuZDsKKyAgICBp
ZiAodGltaW5nLT5kb21haW5Mb29rdXBFbmQgPj0gMCAmJiB0aW1pbmctPmRvbWFpbkxvb2t1cEVu
ZCA+IGNvbm5lY3RTdGFydCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0gdGltaW5nLT5kb21haW5M
b29rdXBFbmQ7CiAKICAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0
ZShjb25uZWN0U3RhcnQpOwogfQpAQCAtMjA1LDExICsyMDUsMTEgQEAgdW5zaWduZWQgbG9uZyBs
b25nIFBlcmZvcm1hbmNlVGltaW5nOjpzZQogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIGludCBzc2xTdGFydCA9IHRpbWluZy0+c3NsU3RhcnQ7Ci0gICAgaWYgKHNz
bFN0YXJ0IDwgMCkKKyAgICBpbnQgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gdGltaW5nLT5zZWN1
cmVDb25uZWN0aW9uU3RhcnQ7CisgICAgaWYgKHNlY3VyZUNvbm5lY3Rpb25TdGFydCA8IDApCiAg
ICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRv
QWJzb2x1dGUoc3NsU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVU
b0Fic29sdXRlKHNlY3VyZUNvbm5lY3Rpb25TdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9u
ZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVxdWVzdFN0YXJ0KCkgY29uc3QKQEAgLTIxOCw4ICsyMTgs
OCBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlCiAgICAgaWYgKCF0
aW1pbmcpCiAgICAgICAgIHJldHVybiBjb25uZWN0RW5kKCk7CiAKLSAgICBBU1NFUlQodGltaW5n
LT5zZW5kU3RhcnQgPj0gMCk7Ci0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRv
QWJzb2x1dGUodGltaW5nLT5zZW5kU3RhcnQpOworICAgIEFTU0VSVCh0aW1pbmctPnJlcXVlc3RT
dGFydCA+PSAwKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0
ZSh0aW1pbmctPnJlcXVlc3RTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6cmVzcG9uc2VTdGFydCgpIGNvbnN0CkBAIC0yMjgsMTQgKzIyOCw4IEBAIHVu
c2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAoIXRpbWluZykK
ICAgICAgICAgcmV0dXJuIHJlcXVlc3RTdGFydCgpOwogCi0gICAgLy8gRklYTUU6IFJlc3BvbnNl
IHN0YXJ0IG5lZWRzIHRvIGJlIHRoZSB0aW1lIG9mIHRoZSBmaXJzdCByZWNlaXZlZCBieXRlLgot
ICAgIC8vIEhvd2V2ZXIsIHRoZSBSZXNvdXJjZUxvYWRUaW1pbmcgQVBJIGN1cnJlbnRseSBvbmx5
IHN1cHBvcnRzIHRoZSB0aW1lCi0gICAgLy8gdGhlIGxhc3QgaGVhZGVyIGJ5dGUgd2FzIHJlY2Vp
dmVkLiBGb3IgbWFueSByZXNwb25zZXMgd2l0aCByZWFzb25hYmxlCi0gICAgLy8gc2l6ZWQgY29v
a2llcywgdGhlIEhUVFAgaGVhZGVycyBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQgc28gdGhpcyB0
aW1lCi0gICAgLy8gaXMgYmFzaWNhbGx5IGVxdWl2YWxlbnQuIEJ1dCBmb3Igc29tZSByZXNwb25z
ZXMsIHBhcnRpY3VsYXJseSB0aG9zZSB3aXRoCi0gICAgLy8gaGVhZGVycyBsYXJnZXIgdGhhbiBh
IHNpbmdsZSBwYWNrZXQsIHRoaXMgdGltZSB3aWxsIGJlIHRvbyBsYXRlLgotICAgIEFTU0VSVCh0
aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kID49IDApOwotICAgIHJldHVybiByZXNvdXJjZUxvYWRU
aW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQpOworICAgIEFT
U0VSVCh0aW1pbmctPnJlc3BvbnNlU3RhcnQgPj0gMCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9h
ZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5yZXNwb25zZVN0YXJ0KTsKIH0KIAogdW5z
aWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0CkBA
IC0zNTEsOSArMzQ1LDcgQEAgUmVzb3VyY2VMb2FkVGltaW5nKiBQZXJmb3JtYW5jZVRpbWluZzo6
cgogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1l
UmVsYXRpdmVUb0Fic29sdXRlKGludCByZWxhdGl2ZU1pbGxpc2Vjb25kcykgY29uc3QKIHsKICAg
ICBBU1NFUlQocmVsYXRpdmVNaWxsaXNlY29uZHMgPj0gMCk7Ci0gICAgUmVzb3VyY2VMb2FkVGlt
aW5nKiByZXNvdXJjZVRpbWluZyA9IHJlc291cmNlTG9hZFRpbWluZygpOwotICAgIEFTU0VSVChy
ZXNvdXJjZVRpbWluZyk7Ci0gICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNl
Y29uZHMocmVzb3VyY2VUaW1pbmctPmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNU
aW1lKHJlbGF0aXZlTWlsbGlzZWNvbmRzKSk7CisgICAgcmV0dXJuIG5hdmlnYXRpb25TdGFydCgp
ICsgcmVsYXRpdmVNaWxsaXNlY29uZHM7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6bW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUgbW9u
b3RvbmljU2Vjb25kcykgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VUaW1pbmcuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VUaW1pbmcuaWRsCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0vLyBTZWU6IGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBp
L1dlYlRpbWluZy8KKy8vIFNlZTogaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy93ZWJwZXJmL3Jhdy1m
aWxlL3RpcC9zcGVjcy9OYXZpZ2F0aW9uVGltaW5nL092ZXJ2aWV3Lmh0bWwKIFsKICAgICBDb25k
aXRpb25hbD1XRUJfVElNSU5HLAogXSBpbnRlcmZhY2UgUGVyZm9ybWFuY2VUaW1pbmcgewpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAkocmV2
aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFy
c2Vycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw5ICszNyw2IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgSFRUUEhlYWRlck1hcDsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2VCYXNl
OwotCiBlbnVtIENvbnRlbnREaXNwb3NpdGlvblR5cGUgewogICAgIENvbnRlbnREaXNwb3NpdGlv
bk5vbmUsCiAgICAgQ29udGVudERpc3Bvc2l0aW9uSW5saW5lLApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkocmV2aXNpb24gMTY4
MzkyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTAsNiArMTkwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2
b2lkIHNldEhvc3RBbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYpOwogICAg
IHN0YXRpYyB2b2lkIHNldENsaWVudENlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYgaG9zdCwgR1Rs
c0NlcnRpZmljYXRlKik7CiAgICAgc3RhdGljIHZvaWQgc2V0SWdub3JlU1NMRXJyb3JzKGJvb2wp
OworICAgIGRvdWJsZSBtX3JlcXVlc3RUaW1lOwogI2VuZGlmCiAKICAgICAvLyBVc2VkIHRvIHdv
cmsgYXJvdW5kIHRoZSBmYWN0IHRoYXQgeW91IGRvbid0IGdldCBhbnkgbW9yZSBOU1VSTENvbm5l
Y3Rpb24gY2FsbGJhY2tzIHVudGlsIHlvdSByZXR1cm4gZnJvbSB0aGUgb25lIHlvdSdyZSBpbi4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5n
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlTG9hZFRpbWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VMb2FkVGltaW5nLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZG91YmxlIFJlc291cmNlTG9hZFRpbWluZzo6Y29u
dmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUoaW50IGRlbHRhTWlsbGlzZWNvbmRz
KSBjb25zdAotewotICAgIHJldHVybiByZXF1ZXN0VGltZSArIGRlbHRhTWlsbGlzZWNvbmRzIC8g
MTAwMC4wOwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlTG9hZFRpbWluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDc2ICs0NCw1MCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxSZXNvdXJj
ZUxvYWRUaW1pbmc+IGRlZXBDb3B5KCkKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZXNvdXJjZUxv
YWRUaW1pbmc+IHRpbWluZyA9IGNyZWF0ZSgpOwotICAgICAgICB0aW1pbmctPnJlcXVlc3RUaW1l
ID0gcmVxdWVzdFRpbWU7Ci0gICAgICAgIHRpbWluZy0+cHJveHlTdGFydCA9IHByb3h5U3RhcnQ7
Ci0gICAgICAgIHRpbWluZy0+cHJveHlFbmQgPSBwcm94eUVuZDsKLSAgICAgICAgdGltaW5nLT5k
bnNTdGFydCA9IGRuc1N0YXJ0OwotICAgICAgICB0aW1pbmctPmRuc0VuZCA9IGRuc0VuZDsKKyAg
ICAgICAgdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA9IGRvbWFpbkxvb2t1cFN0YXJ0OworICAg
ICAgICB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA9IGRvbWFpbkxvb2t1cEVuZDsKICAgICAgICAg
dGltaW5nLT5jb25uZWN0U3RhcnQgPSBjb25uZWN0U3RhcnQ7CiAgICAgICAgIHRpbWluZy0+Y29u
bmVjdEVuZCA9IGNvbm5lY3RFbmQ7Ci0gICAgICAgIHRpbWluZy0+c2VuZFN0YXJ0ID0gc2VuZFN0
YXJ0OwotICAgICAgICB0aW1pbmctPnNlbmRFbmQgPSBzZW5kRW5kOwotICAgICAgICB0aW1pbmct
PnJlY2VpdmVIZWFkZXJzRW5kID0gcmVjZWl2ZUhlYWRlcnNFbmQ7Ci0gICAgICAgIHRpbWluZy0+
c3NsU3RhcnQgPSBzc2xTdGFydDsKLSAgICAgICAgdGltaW5nLT5zc2xFbmQgPSBzc2xFbmQ7Cisg
ICAgICAgIHRpbWluZy0+cmVxdWVzdFN0YXJ0ID0gcmVxdWVzdFN0YXJ0OworICAgICAgICB0aW1p
bmctPnJlc3BvbnNlU3RhcnQgPSByZXNwb25zZVN0YXJ0OworICAgICAgICB0aW1pbmctPnNlY3Vy
ZUNvbm5lY3Rpb25TdGFydCA9IHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKICAgICAgICAgcmV0dXJu
IHRpbWluZy5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJl
c291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gcmVx
dWVzdFRpbWUgPT0gb3RoZXIucmVxdWVzdFRpbWUKLSAgICAgICAgICAgICYmIHByb3h5U3RhcnQg
PT0gb3RoZXIucHJveHlTdGFydAotICAgICAgICAgICAgJiYgcHJveHlFbmQgPT0gb3RoZXIucHJv
eHlFbmQKLSAgICAgICAgICAgICYmIGRuc1N0YXJ0ID09IG90aGVyLmRuc1N0YXJ0Ci0gICAgICAg
ICAgICAmJiBkbnNFbmQgPT0gb3RoZXIuZG5zRW5kCisgICAgICAgIHJldHVybiBkb21haW5Mb29r
dXBTdGFydCA9PSBvdGhlci5kb21haW5Mb29rdXBTdGFydAorICAgICAgICAgICAgJiYgZG9tYWlu
TG9va3VwRW5kID09IG90aGVyLmRvbWFpbkxvb2t1cEVuZAogICAgICAgICAgICAgJiYgY29ubmVj
dFN0YXJ0ID09IG90aGVyLmNvbm5lY3RTdGFydAogICAgICAgICAgICAgJiYgY29ubmVjdEVuZCA9
PSBvdGhlci5jb25uZWN0RW5kCi0gICAgICAgICAgICAmJiBzZW5kU3RhcnQgPT0gb3RoZXIuc2Vu
ZFN0YXJ0Ci0gICAgICAgICAgICAmJiBzZW5kRW5kID09IG90aGVyLnNlbmRFbmQKLSAgICAgICAg
ICAgICYmIHJlY2VpdmVIZWFkZXJzRW5kID09IG90aGVyLnJlY2VpdmVIZWFkZXJzRW5kCi0gICAg
ICAgICAgICAmJiBzc2xTdGFydCA9PSBvdGhlci5zc2xTdGFydAotICAgICAgICAgICAgJiYgc3Ns
RW5kID09IG90aGVyLnNzbEVuZDsKKyAgICAgICAgICAgICYmIHJlcXVlc3RTdGFydCA9PSBvdGhl
ci5yZXF1ZXN0U3RhcnQKKyAgICAgICAgICAgICYmIHJlc3BvbnNlU3RhcnQgPT0gb3RoZXIucmVz
cG9uc2VTdGFydAorICAgICAgICAgICAgJiYgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID09IG90aGVy
LnNlY3VyZUNvbm5lY3Rpb25TdGFydDsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVy
biAhKCp0aGlzID09IG90aGVyKTsKICAgICB9Ci0KLSAgICAvLyBXZSB3YW50IHRvIHByZXNlbnQg
YSB1bmlmaWVkIHRpbWVsaW5lIHRvIEphdmFzY3JpcHQuIFVzaW5nIHdhbGx0aW1lIGlzIHByb2Js
ZW1hdGljLCBiZWNhdXNlIHRoZSBjbG9jayBtYXkgc2tldyB3aGlsZSByZXNvdXJjZXMKLSAgICAv
LyBsb2FkLiBUbyBwcmV2ZW50IHRoYXQgc2tldywgd2UgcmVjb3JkIGEgc2luZ2xlIHJlZmVyZW5j
ZSB3YWxsdGltZSB3aGVuIHJvb3QgZG9jdW1lbnQgbmF2aWdhdGlvbiBiZWdpbnMuIEFsbCBvdGhl
ciB0aW1lcyBhcmUKLSAgICAvLyByZWNvcmRlZCB1c2luZyBtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKS4gV2hlbiBhIHRpbWUgbmVlZHMgdG8gYmUgcHJlc2VudGVkIHRvIEphdmFzY3JpcHQs
IHdlIGJ1aWxkIGEgcHNldWRvLXdhbGx0aW1lCi0gICAgLy8gdXNpbmcgdGhlIGZvbGxvd2luZyBl
cXVhdGlvbjoKLSAgICAvLyAgIHBzZXVkbyB0aW1lID0gZG9jdW1lbnQgd2FsbCByZWZlcmVuY2Ug
KyAocmVzb3VyY2UgcmVxdWVzdCB0aW1lIC0gZG9jdW1lbnQgbW9ub3RvbmljIHJlZmVyZW5jZSkg
KyBkZWx0YU1pbGxpc2Vjb25kcyAvIDEwMDAuMC4KLSAgICBkb3VibGUgY29udmVydFJlc291cmNl
TG9hZFRpbWVUb01vbm90b25pY1RpbWUoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdDsKLQot
ICAgIGRvdWJsZSByZXF1ZXN0VGltZTsgLy8gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkg
d2hlbiB0aGUgcG9ydCBzdGFydGVkIGhhbmRsaW5nIHRoaXMgcmVxdWVzdC4KLSAgICBpbnQgcHJv
eHlTdGFydDsgLy8gVGhlIHJlc3Qgb2YgdGhlc2UgYXJlIG1pbGxpc2Vjb25kIGRlbHRhcywgdXNp
bmcgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIGZyb20gcmVxdWVzdFRpbWUuCi0gICAg
aW50IHByb3h5RW5kOwotICAgIGludCBkbnNTdGFydDsKLSAgICBpbnQgZG5zRW5kOworICAgIAor
ICAgIC8vIFRoZXNlIGFyZSBtaWxsaXNlY29uZCBkZWx0YXMgZnJvbSB0aGUgbmF2aWdhdGlvbiBz
dGFydC4KKyAgICBpbnQgZG9tYWluTG9va3VwU3RhcnQ7CisgICAgaW50IGRvbWFpbkxvb2t1cEVu
ZDsKICAgICBpbnQgY29ubmVjdFN0YXJ0OwogICAgIGludCBjb25uZWN0RW5kOwotICAgIGludCBz
ZW5kU3RhcnQ7Ci0gICAgaW50IHNlbmRFbmQ7Ci0gICAgaW50IHJlY2VpdmVIZWFkZXJzRW5kOwot
ICAgIGludCBzc2xTdGFydDsKLSAgICBpbnQgc3NsRW5kOwotCisgICAgaW50IHJlcXVlc3RTdGFy
dDsKKyAgICBpbnQgcmVzcG9uc2VTdGFydDsKKyAgICBpbnQgc2VjdXJlQ29ubmVjdGlvblN0YXJ0
OworICAgIAogcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRUaW1pbmcoKQotICAgICAgICA6IHJl
cXVlc3RUaW1lKDApCi0gICAgICAgICwgcHJveHlTdGFydCgtMSkKLSAgICAgICAgLCBwcm94eUVu
ZCgtMSkKLSAgICAgICAgLCBkbnNTdGFydCgtMSkKLSAgICAgICAgLCBkbnNFbmQoLTEpCisgICAg
ICAgIDogZG9tYWluTG9va3VwU3RhcnQoLTEpCisgICAgICAgICwgZG9tYWluTG9va3VwRW5kKC0x
KQogICAgICAgICAsIGNvbm5lY3RTdGFydCgtMSkKICAgICAgICAgLCBjb25uZWN0RW5kKC0xKQot
ICAgICAgICAsIHNlbmRTdGFydCgwKQotICAgICAgICAsIHNlbmRFbmQoMCkKLSAgICAgICAgLCBy
ZWNlaXZlSGVhZGVyc0VuZCgwKQotICAgICAgICAsIHNzbFN0YXJ0KC0xKQotICAgICAgICAsIHNz
bEVuZCgtMSkKKyAgICAgICAgLCByZXF1ZXN0U3RhcnQoMCkKKyAgICAgICAgLCByZXNwb25zZVN0
YXJ0KDApCisgICAgICAgICwgc2VjdXJlQ29ubmVjdGlvblN0YXJ0KC0xKQogICAgIHsKICAgICB9
CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VI
YW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC01Niw2ICs1NiwxNCBAQAogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAj
aW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRlKDxGb3VuZGF0
aW9uL05TVVJMQ29ubmVjdGlvblByaXZhdGUuaD4pCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJM
Q29ubmVjdGlvblByaXZhdGUuaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMQ29ubmVjdGlvbiAo
VGltaW5nRGF0YSkKKysgKHZvaWQpX3NldENvbGxlY3RzVGltaW5nRGF0YTooQk9PTCljb2xsZWN0
OworQGVuZAorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxDRk5ldHdvcmsv
Q0ZVUkxSZXF1ZXN0Lmg+CiAKQEAgLTIwMCw2ICsyMDgsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpjcmVhdGVOU1VSTENvbm5lY3RpCiAgICAgY29uc3QgYm9vbCB1c2VzQ2FjaGUgPSB0cnVlOwog
I2VuZGlmCiAgICAgZC0+bV9jb25uZWN0aW9uID0gYWRvcHROUyhbW05TVVJMQ29ubmVjdGlvbiBh
bGxvY10gX2luaXRXaXRoUmVxdWVzdDpuc1JlcXVlc3QgZGVsZWdhdGU6ZGVsZWdhdGUgdXNlc0Nh
Y2hlOnVzZXNDYWNoZSBtYXhDb250ZW50TGVuZ3RoOjAgc3RhcnRJbW1lZGlhdGVseTpOTyBjb25u
ZWN0aW9uUHJvcGVydGllczpwcm9wZXJ0eURpY3Rpb25hcnldKTsKKyNpZiBFTkFCTEUoV0VCX1RJ
TUlORykKKyAgICBbTlNVUkxDb25uZWN0aW9uIF9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6WUVTXTsK
KyNlbmRpZgogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlLm1tCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0J
KHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDE0IEBACiAjaW1wb3J0ICJXZWJDb3JlVVJMUmVz
cG9uc2UuaCIKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAKKyNpZiBfX2hhc19pbmNsdWRl
KDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4pCisjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZO
U1VSTENvbm5lY3Rpb24uaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJMQ29ubmVjdGlvbiAoVGlt
aW5nRGF0YSkKKy0gKE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhOworQGVuZAorI2VuZGlmCisK
IEBpbnRlcmZhY2UgTlNVUkxSZXF1ZXN0IChEZXRhaWxzKQogLSAoaWQpX3Byb3BlcnR5Rm9yS2V5
OihOU1N0cmluZyAqKWtleTsKIEBlbmQKQEAgLTE5Myw3ICsyMDEsNiBAQCAtIChCT09MKWNvbm5l
Y3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29u
bmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICop
cgogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIFVOVVNFRF9QQVJBTShjb25u
ZWN0aW9uKTsKIAogICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIGRlbGVnYXRlIGNvbm5lY3Rp
b246JXAgZGlkUmVjZWl2ZVJlc3BvbnNlOiVwIChIVFRQIHN0YXR1cyAlZCwgcmVwb3J0ZWQgTUlN
RVR5cGUgJyVzJykiLCBtX2hhbmRsZSwgY29ubmVjdGlvbiwgciwgW3IgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihzdGF0dXNDb2RlKV0gPyBbKGlkKXIgc3RhdHVzQ29kZV0gOiAwLCBbW3Ig
TUlNRVR5cGVdIFVURjhTdHJpbmddKTsKIApAQCAtMjEyLDggKzIxOSwzOCBAQCAtICh2b2lkKWNv
bm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAKICAgICAgICAgaWYgKFttX2hhbmRsZS0+
Zmlyc3RSZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpIF9wcm9wZXJ0
eUZvcktleTpAIkZvcmNlSFRNTE1JTUVUeXBlIl0pCiAgICAgICAgICAgICBbciBfc2V0TUlNRVR5
cGU6QCJ0ZXh0L2h0bWwiXTsKLQotICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2Vp
dmVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCByKTsKKyAgICAgICAgCisgICAgICAgIFJlc291cmNl
UmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShyKTsKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAg
ICAgICAgTlNEaWN0aW9uYXJ5KiB0aW1pbmdEYXRhID0gW2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFd
OworICAgICAgICBpZiAodGltaW5nRGF0YSkgeworICAgICAgICAgICAgcmVzb3VyY2VSZXNwb25z
ZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7Cisg
ICAgICAgICAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRoaXMg
aXMgbm90IHRoZSBuYXZpZ2F0aW9uU3RhcnQgdGltZSBpbiBtb25vdG9uaWMgdGltZSwgYnV0IHRo
ZSBvdGhlciB0aW1lcyBhcmUgcmVsYXRpdmUgdG8gdGhpcyB0aW1lCisgICAgICAgICAgICAvLyBh
bmQgb25seSB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aW1lcyBhcmUgc3RvcmVkLgorICAgICAg
ICAgICAgZG91YmxlIHJlZmVyZW5jZVN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAi
X2tDRk5UaW1pbmdEYXRhVGltaW5nRGF0YUluaXQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydCA9IFtbdGltaW5nRGF0YSB2
YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cFN0YXJ0Il0gZG91YmxlVmFs
dWVdOworICAgICAgICAgICAgZG91YmxlIGRvbWFpbkxvb2t1cEVuZCA9IFtbdGltaW5nRGF0YSB2
YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cEVuZCJdIGRvdWJsZVZhbHVl
XTsKKyAgICAgICAgICAgIGRvdWJsZSBjb25uZWN0U3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVG
b3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25uZWN0U3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAg
ICAgICAgICBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVl
Rm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhU2VjdXJlQ29ubmVjdGlvblN0YXJ0Il0gZG91YmxlVmFs
dWVdOworICAgICAgICAgICAgZG91YmxlIGNvbm5lY3RFbmQgPSBbW3RpbWluZ0RhdGEgdmFsdWVG
b3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFDb25uZWN0RW5kIl0gZG91YmxlVmFsdWVdOworICAgICAg
ICAgICAgZG91YmxlIHJlcXVlc3RTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9r
Q0ZOVGltaW5nRGF0YVJlcXVlc3RTdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIGRv
dWJsZSByZXNwb25zZVN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1p
bmdEYXRhUmVzcG9uc2VTdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA9IGRvbWFpbkxvb2t1cFN0YXJ0IDw9IDAu
MCA/IC0xIDogKGRvbWFpbkxvb2t1cFN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAg
ICAgICAgICAgIHRpbWluZy0+ZG9tYWluTG9va3VwRW5kID0gZG9tYWluTG9va3VwRW5kIDw9IDAu
MCA/IC0xIDogKGRvbWFpbkxvb2t1cEVuZCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAg
ICAgICAgICB0aW1pbmctPmNvbm5lY3RTdGFydCA9IGNvbm5lY3RTdGFydCA8PSAwLjAgPyAtMSA6
IChjb25uZWN0U3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGlt
aW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnQgPD0gMC4w
ID8gLTEgOiAoc2VjdXJlQ29ubmVjdGlvblN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsK
KyAgICAgICAgICAgIHRpbWluZy0+Y29ubmVjdEVuZCA9IGNvbm5lY3RFbmQgPD0gMC4wID8gLTEg
OiAoY29ubmVjdEVuZCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0aW1p
bmctPnJlcXVlc3RTdGFydCA9IHJlcXVlc3RTdGFydCA8PSAwLjAgPyAtMSA6IChyZXF1ZXN0U3Rh
cnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5nLT5yZXNwb25z
ZVN0YXJ0ID0gcmVzcG9uc2VTdGFydCA8PSAwLjAgPyAtMSA6IChyZXNwb25zZVN0YXJ0IC0gcmVm
ZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BB
UkFNKGNvbm5lY3Rpb24pOworI2VuZGlmCisgICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlk
UmVjZWl2ZVJlc3BvbnNlQXN5bmMobV9oYW5kbGUsIHJlc291cmNlUmVzcG9uc2UpOwogICAgIH0p
OwogCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJ
TUVfRk9SRVZFUik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkocmV2aXNpb24gMTY4Mzky
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNiwxMSArMzE2LDYgQEAgc3RhdGljIHZvaWQg
Z290SGVhZGVyc0NhbGxiYWNrKFNvdXBNZXNzYQogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIAotI2lmIEVOQUJMRShXRUJfVElNSU5HKQot
ICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQotICAgICAgICBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZWNlaXZlSGVhZGVyc0VuZCA9IG1pbGlz
ZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJl
cXVlc3RUaW1lKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIC8vIFdlIGFyZSBh
IGJpdCBtb3JlIGNvbnNlcnZhdGl2ZSB3aXRoIHRoZSBwZXJzaXN0ZW50IGNyZWRlbnRpYWwgc3Rv
cmFnZSB0aGFuIHRoZSBzZXNzaW9uIHN0b3JlLAogICAgIC8vIHNpbmNlIHdlIGFyZSB3YWl0aW5n
IHVudGlsIHdlIGtub3cgdGhhdCB0aGlzIGF1dGhlbnRpY2F0aW9uIHN1Y2NlZWRlZCBiZWZvcmUg
YWN0dWFsbHkgc3RvcmluZy4KQEAgLTM5MCw3ICszODUsNyBAQCBzdGF0aWMgdm9pZCByZXN0YXJ0
ZWRDYWxsYmFjayhTb3VwTWVzc2FnCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhh
bmRsZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3Bv
bnNlID0gZC0+bV9yZXNwb25zZTsKICAgICByZWRpcmVjdFJlc3BvbnNlLnNldFJlc291cmNlTG9h
ZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKTsKLSAgICByZWRpcmVjdFJlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOworICAgIGhhbmRsZS0+bV9yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpOwogfQogI2VuZGlmCiAKQEAgLTg0NCwzNSArODM5LDEzIEBAIHN0YXRp
YyBpbnQgbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZG91YmwKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8aW50PigobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSByZXF1ZXN0VGltZSkgKiAx
MDAwLjApOwogfQogCi1zdGF0aWMgdm9pZCB3cm90ZUJvZHlDYWxsYmFjayhTb3VwTWVzc2FnZSos
IGdwb2ludGVyIGRhdGEpCi17Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBz
dGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwotICAgIGlmICghaGFuZGxlKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5n
ZXRJbnRlcm5hbCgpOwotICAgIGlmICghZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS0+c2VuZEVuZCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKLX0KLQogdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6ZGlkU3RhcnRSZXF1ZXN0KCkKIHsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0g
Z2V0SW50ZXJuYWwoKTsKICAgICBpZiAoIWQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGlt
aW5nKCktPnNlbmRTdGFydCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKLSAgICBpZiAoZC0+bV9yZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQgIT0gLTEpIHsKLSAgICAgICAgLy8gV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlcXVlc3RUaW1pbmdWaWV3LmpzIGFzc3VtZXMKLSAg
ICAgICAgLy8gdGhhdCBTU0wgdGltZSBpcyBpbmNsdWRlZCBpbiBjb25uZWN0aW9uIHRpbWUgc28g
bXVzdAotICAgICAgICAvLyBzdWJzdHJhY3QgaGVyZSB0aGUgU1NMIGRlbHRhIHRoYXQgd2lsbCBi
ZSBhZGRlZCBsYXRlciAoc2VlCi0gICAgICAgIC8vIFdlYkluc3BlY3Rvci5SZXF1ZXN0VGltaW5n
Vmlldy5jcmVhdGVUaW1pbmdUYWJsZSBpbiB0aGUKLSAgICAgICAgLy8gZmlsZSBhYm92ZSBmb3Ig
bW9yZSBkZXRhaWxzKS4KLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+c2VuZFN0YXJ0IC09Ci0gICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5zc2xFbmQgLSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xT
dGFydDsKLSAgICB9CisgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVx
dWVzdFN0YXJ0ID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QobV9yZXF1ZXN0VGltZSk7CiB9CiAK
IHN0YXRpYyB2b2lkIG5ldHdvcmtFdmVudENhbGxiYWNrKFNvdXBNZXNzYWdlKiwgR1NvY2tldENs
aWVudEV2ZW50IGV2ZW50LCBHSU9TdHJlYW0qLCBncG9pbnRlciBkYXRhKQpAQCAtODg1LDQwICs4
NTgsMzggQEAgc3RhdGljIHZvaWQgbmV0d29ya0V2ZW50Q2FsbGJhY2soU291cE1lcwogICAgICAg
ICByZXR1cm47CiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJ
bnRlcm5hbCgpOwotICAgIGludCBkZWx0YVRpbWUgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7CisgICAgaW50
IGRlbHRhVGltZSA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGhhbmRsZS0+bV9yZXF1ZXN0VGlt
ZSk7CiAgICAgc3dpdGNoIChldmVudCkgewogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1JFU09M
VklORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3Rh
cnQgPSBkZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCktPmRvbWFpbkxvb2t1cFN0YXJ0ID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEdfU09DS0VUX0NMSUVOVF9SRVNPTFZFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKS0+ZG5zRW5kID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kb21haW5Mb29rdXBFbmQgPSBkZWx0YVRpbWU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX0NPTk5FQ1RJTkc6CiAgICAg
ICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RTdGFydCA9IGRl
bHRhVGltZTsKLSAgICAgICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkt
PmRuc1N0YXJ0ICE9IC0xKQorICAgICAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRU
aW1pbmcoKS0+ZG9tYWluTG9va3VwU3RhcnQgIT0gLTEpIHsKICAgICAgICAgICAgIC8vIFdlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXF1ZXN0VGltaW5nVmlldy5qcyBhc3N1bWVzCiAgICAg
ICAgICAgICAvLyB0aGF0IEROUyB0aW1lIGlzIGluY2x1ZGVkIGluIGNvbm5lY3Rpb24gdGltZSBz
byBtdXN0CiAgICAgICAgICAgICAvLyBzdWJzdHJhY3QgaGVyZSB0aGUgRE5TIGRlbHRhIHRoYXQg
d2lsbCBiZSBhZGRlZCBsYXRlciAoc2VlCiAgICAgICAgICAgICAvLyBXZWJJbnNwZWN0b3IuUmVx
dWVzdFRpbWluZ1ZpZXcuY3JlYXRlVGltaW5nVGFibGUgaW4gdGhlCiAgICAgICAgICAgICAvLyBm
aWxlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMpLgogICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5y
ZXNvdXJjZUxvYWRUaW1pbmcoKS0+Y29ubmVjdFN0YXJ0IC09Ci0gICAgICAgICAgICAgICAgZC0+
bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zRW5kIC0gZC0+bV9yZXNwb25zZS5y
ZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3RhcnQ7CisgICAgICAgICAgICAgICAgZC0+bV9yZXNw
b25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG9tYWluTG9va3VwRW5kIC0gZC0+bV9yZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG9tYWluTG9va3VwU3RhcnQ7CisgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfQ09OTkVDVEVEOgogICAgICAg
ICAvLyBXZWIgVGltaW5nIGNvbnNpZGVycyB0aGF0IGNvbm5lY3Rpb24gdGltZSBpbnZvbHZlcyBk
bnMsIHByb3h5ICYgVExTIG5lZ290aWF0aW9uLi4uCiAgICAgICAgIC8vIHNvIHdlIGJldHRlciBw
aWNrIEdfU09DS0VUX0NMSUVOVF9DT01QTEVURSBmb3IgY29ubmVjdEVuZAogICAgICAgICBicmVh
azsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9QUk9YWV9ORUdPVElBVElORzoKLSAgICAgICAg
ZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cHJveHlTdGFydCA9IGRlbHRhVGlt
ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUFJPWFlfTkVHT1RJ
QVRFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cHJveHlF
bmQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5U
X1RMU19IQU5EU0hBS0lORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS0+c3NsU3RhcnQgPSBkZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCktPnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IGRlbHRhVGltZTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfVExTX0hBTkRTSEFLRUQ6Ci0gICAg
ICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbEVuZCA9IGRlbHRhVGlt
ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfQ09NUExFVEU6CiAg
ICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RFbmQgPSBk
ZWx0YVRpbWU7CkBAIC05ODAsNyArOTUxLDYgQEAgc3RhdGljIGJvb2wgY3JlYXRlU291cE1lc3Nh
Z2VGb3JIYW5kbGVBbgogICAgIGQtPm1fcmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJl
c291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9z
b3VwTWVzc2FnZS5nZXQoKSwgIm5ldHdvcmstZXZlbnQiLCBHX0NBTExCQUNLKG5ldHdvcmtFdmVu
dENhbGxiYWNrKSwgaGFuZGxlKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fc291cE1lc3Nh
Z2UuZ2V0KCksICJyZXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHJlc3RhcnRlZENhbGxiYWNrKSwgaGFu
ZGxlKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksICJ3cm90
ZS1ib2R5IiwgR19DQUxMQkFDSyh3cm90ZUJvZHlDYWxsYmFjayksIGhhbmRsZSk7CiAjZW5kaWYK
IAogI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA0MywgMSkKQEAgLTEwNTQsNyArMTAyNCw3IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OnNlbmRQZW5kaW5nUmVxdWVzdCgKIHsKICNpZiBFTkFCTEUo
V0VCX1RJTUlORykKICAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkK
LSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUg
PSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICAgICAgbV9yZXF1ZXN0VGltZSA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogI2VuZGlmCiAKICAgICBpZiAoZC0+bV9m
aXJzdFJlcXVlc3QudGltZW91dEludGVydmFsKCkgPiAwKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNjg1MzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNSBAQAorMjAxNC0wNS0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFByb2dyZXNzIG9uIHdlYiB0aW1pbmcuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI1NzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlc291
cmNlUmVzcG9uc2U+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlc291
cmNlUmVzcG9uc2U+OjpkZWNvZGUpOgorICAgICAgICBUcmFuc2ZlciBSZXNvdXJjZUxvYWRUaW1p
bmcgdmFsdWVzIGlmIHRoZXkgZXhpc3QuCisKIDIwMTQtMDUtMDkgIE1hcnRpbiBIb2RvdmFuICA8
bWhvZG92YW4udS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbV0syXSBN
YWtlIGdlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbCB3b3JrIGFmdGVyIFdlYktpdDIuZnJh
bWV3b3JrIC0+IFdlYktpdC5mcmFtZXdvcmsgcmVuYW1lCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAkocmV2aXNpb24gMTY4MzkyKQor
KysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY4OCw2ICs2ODgsMTggQEAgdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNl
UmVzcG9uc2U+OjplbgogICAgICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVzcG9uc2UuaHR0cFN0
YXR1c1RleHQoKTsKICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlc3BvbnNlLnN1Z2dlc3Rl
ZEZpbGVuYW1lKCk7CiAgICAgfQorICAgIFJlc291cmNlTG9hZFRpbWluZyogdGltaW5nID0gcmVz
b3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICBib29sIGhhc1Jlc291cmNl
TG9hZFRpbWluZyA9IHRpbWluZzsKKyAgICBlbmNvZGVyIDw8IGhhc1Jlc291cmNlTG9hZFRpbWlu
ZzsKKyAgICBpZiAoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSB7CisgICAgICAgIGVuY29kZXIgPDwg
dGltaW5nLT5kb21haW5Mb29rdXBTdGFydDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPmRv
bWFpbkxvb2t1cEVuZDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPmNvbm5lY3RTdGFydDsK
KyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPmNvbm5lY3RFbmQ7CisgICAgICAgIGVuY29kZXIg
PDwgdGltaW5nLT5yZXF1ZXN0U3RhcnQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5yZXNw
b25zZVN0YXJ0OworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0
YXJ0OworICAgIH0KIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJj
ZVJlc3BvbnNlKQpAQCAtNzU1LDcgKzc2NywyMyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3Vy
Y2VSZXNwb25zZT46OmRlCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3Bv
bnNlLnNldFN1Z2dlc3RlZEZpbGVuYW1lKHN1Z2dlc3RlZEZpbGVuYW1lKTsKICAgICB9Ci0KKyAg
ICAKKyAgICBib29sIGhhc1Jlc291cmNlTG9hZFRpbWluZzsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGhhc1Jlc291cmNlTG9hZFRpbWluZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoaGFzUmVzb3VyY2VMb2FkVGltaW5nKSB7CisgICAgICAgIHJlc3BvbnNlLnNldFJlc291cmNl
TG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKTsKKyAgICAgICAgUmVzb3Vy
Y2VMb2FkVGltaW5nKiB0aW1pbmcgPSByZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0KQorICAg
ICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+ZG9tYWluTG9va3VwRW5kKQorICAg
ICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+Y29ubmVjdFN0YXJ0KQorICAgICAg
ICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+Y29ubmVjdEVuZCkKKyAgICAgICAgICAg
IHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPnJlcXVlc3RTdGFydCkKKyAgICAgICAgICAgIHx8
ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPnJlc3BvbnNlU3RhcnQpCisgICAgICAgICAgICB8fCAh
ZGVjb2Rlci5kZWNvZGUodGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKICAgICByZXNvdXJjZVJlc3BvbnNlID0gcmVz
cG9uc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231195</attachid>
            <date>2014-05-09 16:37:42 -0700</date>
            <delta_ts>2014-05-12 08:49:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140509163720.patch</filename>
            <type>text/plain</type>
            <size>46678</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODU1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4IEBACisyMDE0LTA1LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
b24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRkZWQgbGlua2Vy
IHN5bWJvbHMgZm9yIFJlc291cmNlTG9hZFRpbWluZy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnM6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGltaW5nLmNwcC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpi
dWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL05ldHdv
cmsuanNvbjoKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZVRpbWluZyBzdHJ1Y3R1cmUuCisgICAg
ICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6CisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICAgRGVsZXRlZCB1bnVzZWQgc2V0TmF2aWdh
dGlvblN0YXJ0IGZ1bmN0aW9uLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAg
ICAgICBVcGRhdGVkIHNwZWMgVVJMLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
Ojpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZUVuZCk6CisgICAgICAg
IFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJpYWJsZSBuYW1lcy4KKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlU3RhcnQpOgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oOgorICAgICAgICAqIHBh
Z2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6CisgICAgICAgIERlbGV0ZWQgcmVzcG9u
c2VTdGFydCBiZWNhdXNlIGl0IGlzIG5vdCBpbiB0aGUgc3BlYy4KKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5n
Ojpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWlu
Zzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5n
Ojpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnNl
Y3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWlu
Zzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpy
ZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZUxvYWRUaW1pbmcgbWVtYmVy
IHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnJl
c291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUpOgorICAgICAgICBVc2UgbmF2aWdhdGlv
blN0YXJ0IGFzIGJhc2UgZm9yIHJlc291cmNlIGxvYWQgdGltZXMuCisgICAgICAgICogcGFnZS9Q
ZXJmb3JtYW5jZVRpbWluZy5pZGw6CisgICAgICAgIFVwZGF0ZWQgc3BlYyBVUkwuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oOgorICAgICAgICBSZW1vdmVkIHVudXNl
ZCBjbGFzcyBkZWNsYXJhdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5oOgorICAgICAgICBNb3ZlZCBzb3VwIHJlcXVlc3QgdGltZSBmcm9tIFJlc291cmNl
TG9hZFRpbWluZyB0byBSZXNvdXJjZUhhbmRsZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlTG9hZFRpbWluZy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZFRpbWluZzo6ZGVlcENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6UmVz
b3VyY2VMb2FkVGltaW5nKToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZUxvYWRUaW1pbmcgbWVt
YmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZU5TVVJMQ29ubmVjdGlvbik6CisgICAgICAgIENvbGxlY3QgdGltaW5nIGRhdGEuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6CisgICAg
ICAgIFNhdmUgdGltaW5nIGRhdGEgdG8gYSBSZXNvdXJjZUxvYWRUaW1pbmcgb24gdGhlIFJlc291
cmNlUmVzcG9uc2UuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFkZXJzQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6bWls
aXNlY29uZHNTaW5jZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmRpZFN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpuZXR3b3JrRXZlbnRDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3VwTWVzc2FnZUZvckhhbmRsZUFuZFJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNlbmRQZW5kaW5nUmVxdWVz
dCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJpYWJsZSBu
YW1lcy4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxiYWNrKTogRGVsZXRlZC4KKwog
MjAxNC0wNS0wOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OIChyMTY4NTE4KTogTXVsdGlwbGUgdGVzdHMgZm9yIHdvcmtlcnMgaW4gYmxv
YnMgYXNzZXJ0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTY4MzkyKQorKysg
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIxOTEsNyAr
MjE5MSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlRXJyb3JCYXNlLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3Bw
CiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5jcHAKLSAgICBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
c3BvbnNlQmFzZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZUJh
c2UuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTY4MzkyKQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTMzMzgsMyArMzMz
OCw5IEBAIF9fWk43V2ViQ29yZTlQYWdlR3JvdXAxOGNhcHRpb25QcmVmZXJlbmMKICNpZiBFTkFC
TEUoVklFV19NT0RFX0NTU19NRURJQSkKIF9fWk43V2ViQ29yZTRQYWdlMTFzZXRWaWV3TW9kZUVO
UzBfOFZpZXdNb2RlRQogI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKK19fWk43V2Vi
Q29yZTE4UmVzb3VyY2VMb2FkVGltaW5nQzFFdgorX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTIxc2V0UmVzb3VyY2VMb2FkVGltaW5nRU4zV1RGMTBQYXNzUmVmUHRySU5TXzE4UmVz
b3VyY2VMb2FkVGltaW5nRUVFCitfX1pOSzdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTE4
cmVzb3VyY2VMb2FkVGltaW5nRXYKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC04NDAxLDcgKzg0MDEsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZv
cm1cbmV0d29ya1xSZXNvdXJjZUVycm9yQmFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJlc291cmNlSGFuZGxlLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcUmVzb3VyY2VIYW5kbGVDbGllbnQu
Y3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cbmV0d29ya1xSZXNv
dXJjZUxvYWRUaW1pbmcuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZv
cm1cbmV0d29ya1xSZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cbmV0d29ya1xTb2NrZXRTdHJlYW1F
cnJvckJhc2UuY3BwIiAvPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTY4MzkyKQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCSh3
b3JraW5nIGNvcHkpCkBAIC0xODIxLDkgKzE4MjEsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccGxhdGZvcm1cbmV0d29ya1xSZXNvdXJjZUhhbmRsZUNsaWVudC5jcHAiPgogICAgICAg
PEZpbHRlcj5wbGF0Zm9ybVxuZXR3b3JrPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJlc291cmNlTG9hZFRpbWlu
Zy5jcHAiPgotICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxuZXR3b3JrPC9GaWx0ZXI+Ci0gICAgPC9D
bENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJl
c291cmNlUmVxdWVzdEJhc2UuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cbmV0d29yazwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTY4MzkyKQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0yOTc5LDcgKzI5NzksNiBAQAogCQk4NUZGMzE1QTBBQUZCRkNCMDAzNzRGMzggLyog
RE9NS2V5Ym9hcmRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODVGRjMxNTgwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCAq
LzsgfTsKIAkJODVGRjMxNUIwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUZGMzE1OTBB
QUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSAqLzsgfTsKIAkJODYxQzJFQTQx
M0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWluZy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjFDMkVBMzEzRkI0RkREMDAwNjJBQkIg
LyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCAqLzsgfTsKLQkJODYxQzJFQTYxM0ZCNEZGRjAwMDYy
QUJCIC8qIFJlc291cmNlTG9hZFRpbWluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NjFDMkVBNTEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VM
b2FkVGltaW5nLmNwcCAqLzsgfTsKIAkJODYyRjEyOUUxOEMxNTc2RjAwNUM1NEFGIC8qIENvdW50
ZWRVc2VyQWN0aXZpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg2MkYxMjlEMThDMTU3MkMwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYyRjEy
QTAxOEMxREQwMjAwNUM1NEFGIC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyRjEyOUYxOEMxRENFNDAwNUM1NEFG
IC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTg2NTEyRURFMTU0QTJBRUYwMEE5MDQyNiAvKiBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg2NTEyRURCMTU0QTJBRUUwMEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nLmNwcCAqLzsgfTsKQEAgLTk5ODksNyArOTk4OCw2IEBACiAJCTg1RkYzMTU4MEFBRkJG
Q0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01LZXlib2FyZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg1RkYzMTU5MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUtleWJvYXJkRXZlbnQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAv
KiBEb2N1bWVudExvYWRUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRG9jdW1lbnRMb2FkVGltaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJODYxQzJFQTUxM0ZCNEZGRjAwMDYyQUJCIC8qIFJlc291cmNlTG9hZFRpbWluZy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUxvYWRUaW1pbmcuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJGMTI5RDE4QzE1NzJDMDA1QzU0QUYg
LyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDb3VudGVkVXNlckFjdGl2aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2
MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0aXZpdHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSHlzdGVyZXNpc0FjdGl2aXR5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2NTEyRURCMTU0QTJBRUUwMEE5MDQyNiAvKiBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTYxMDYsNyArMTYxMDQsNiBAQAogCQkJCTUxNEM3NjY2MENFOTIzQTEwMDdFRjNDRCAv
KiBSZXNvdXJjZUhhbmRsZUludGVybmFsLmggKi8sCiAJCQkJNTFFNDE0MzIxNkE2NTk1MTAwQzYz
M0M3IC8qIFJlc291cmNlSGFuZGxlVHlwZXMuaCAqLywKIAkJCQlFNDI5NUZBMzEyQjA2MTRFMDBE
MUFDRTAgLyogUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCAqLywKLQkJCQk4NjFDMkVBNTEzRkI0RkZG
MDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5nLmNwcCAqLywKIAkJCQk4QTgxQkY4NDExRENG
RDkwMDBEQTJCOTggLyogUmVzb3VyY2VMb2FkVGltaW5nLmggKi8sCiAJCQkJNTE0Qzc2NjcwQ0U5
MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuY3BwICovLAogCQkJCTUxNEM3NjY4
MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RCYXNlLmggKi8sCkBAIC0yODgzMyw3
ICsyODgzMCw2IEBACiAJCQkJNTFBQTNGNkYwQkQ1QUE5RTAwODkyOTcxIC8qIFJlc291cmNlTG9h
ZGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTczRTMyNTYxMDg4M0I3QzAwNUJDNDkzIC8q
IFJlc291cmNlTG9hZE5vdGlmaWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQwQ0U1OEY4MTI1
RTRDQzIwMEYzRjE5OSAvKiBSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJODYxQzJFQTYxM0ZCNEZGRjAwMDYyQUJCIC8qIFJlc291cmNlTG9hZFRpbWluZy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY3QzBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RUU2ODQ2RTEyRDI2RTM4MDBFNzk0
MTUgLyogUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0Qzc2
NTMwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdE1hYy5tbSBpbiBTb3VyY2VzICov
LApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDMsMTgg
KzIwMywxNCBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkCiBzdGF0
aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNvdXJjZVRp
bWluZz4gYnVpbGRPYmplY3RGb3JUaW1pbmcoY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiB0aW1p
bmcsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiB7CiAgICAgcmV0dXJuIEluc3BlY3Rvcjo6VHlw
ZUJ1aWxkZXI6Ok5ldHdvcms6OlJlc291cmNlVGltaW5nOjpjcmVhdGUoKQotICAgICAgICAuc2V0
UmVxdWVzdFRpbWUobG9hZGVyLT50aW1pbmcoKS0+bW9ub3RvbmljVGltZVRvUHNldWRvV2FsbFRp
bWUodGltaW5nLmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKDApKSkKLSAg
ICAgICAgLnNldFByb3h5U3RhcnQodGltaW5nLnByb3h5U3RhcnQpCi0gICAgICAgIC5zZXRQcm94
eUVuZCh0aW1pbmcucHJveHlFbmQpCi0gICAgICAgIC5zZXREbnNTdGFydCh0aW1pbmcuZG5zU3Rh
cnQpCi0gICAgICAgIC5zZXREbnNFbmQodGltaW5nLmRuc0VuZCkKKyAgICAgICAgLnNldE5hdmln
YXRpb25TdGFydChsb2FkZXItPnRpbWluZygpLT5uYXZpZ2F0aW9uU3RhcnQoKSkKKyAgICAgICAg
LnNldERvbWFpbkxvb2t1cFN0YXJ0KHRpbWluZy5kb21haW5Mb29rdXBTdGFydCkKKyAgICAgICAg
LnNldERvbWFpbkxvb2t1cEVuZCh0aW1pbmcuZG9tYWluTG9va3VwRW5kKQogICAgICAgICAuc2V0
Q29ubmVjdFN0YXJ0KHRpbWluZy5jb25uZWN0U3RhcnQpCiAgICAgICAgIC5zZXRDb25uZWN0RW5k
KHRpbWluZy5jb25uZWN0RW5kKQotICAgICAgICAuc2V0U3NsU3RhcnQodGltaW5nLnNzbFN0YXJ0
KQotICAgICAgICAuc2V0U3NsRW5kKHRpbWluZy5zc2xFbmQpCi0gICAgICAgIC5zZXRTZW5kU3Rh
cnQodGltaW5nLnNlbmRTdGFydCkKLSAgICAgICAgLnNldFNlbmRFbmQodGltaW5nLnNlbmRFbmQp
Ci0gICAgICAgIC5zZXRSZWNlaXZlSGVhZGVyc0VuZCh0aW1pbmcucmVjZWl2ZUhlYWRlcnNFbmQp
CisgICAgICAgIC5zZXRTZWN1cmVDb25uZWN0aW9uU3RhcnQodGltaW5nLnNlY3VyZUNvbm5lY3Rp
b25TdGFydCkKKyAgICAgICAgLnNldFJlcXVlc3RTdGFydCh0aW1pbmcucmVxdWVzdFN0YXJ0KQor
ICAgICAgICAuc2V0UmVzcG9uc2VTdGFydCh0aW1pbmcucmVzcG9uc2VTdGFydCkKICAgICAgICAg
LnJlbGVhc2UoKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L05ldHdvcmsuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvcHJv
dG9jb2wvTmV0d29yay5qc29uCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvcHJvdG9jb2wvTmV0d29yay5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxOCAr
MzIsMTQgQEAKICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiVGltaW5nIGluZm9ybWF0aW9uIGZvciB0aGUgcmVxdWVzdC4iLAogICAgICAg
ICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0
VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJUaW1pbmcncyByZXF1ZXN0
VGltZSBpcyBhIGJhc2VsaW5lIGluIHNlY29uZHMsIHdoaWxlIHRoZSBvdGhlciBudW1iZXJzIGFy
ZSB0aWNrcyBpbiBtaWxsaXNlY29uZHMgcmVsYXRpdmVseSB0byB0aGlzIHJlcXVlc3RUaW1lLiIg
fSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3h5U3RhcnQiLCAidHlwZSI6ICJudW1i
ZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCByZXNvbHZpbmcgcHJveHkuIiB9LAotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAicHJveHlFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3Jp
cHRpb24iOiAiRmluaXNoZWQgcmVzb2x2aW5nIHByb3h5LiIgfSwKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImRuc1N0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0
YXJ0ZWQgRE5TIGFkZHJlc3MgcmVzb2x2ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJkbnNFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgRE5T
IGFkZHJlc3MgcmVzb2x2ZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYXZpZ2F0
aW9uU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiVGltaW5nJ3MgbmF2
aWdhdGlvblN0YXJ0IGlzIGEgYmFzZWxpbmUgaW4gc2Vjb25kcywgd2hpbGUgdGhlIG90aGVyIG51
bWJlcnMgYXJlIHRpY2tzIGluIG1pbGxpc2Vjb25kcyByZWxhdGl2ZWx5IHRvIHRoaXMgbmF2aWdh
dGlvblN0YXJ0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbkxvb2t1cFN0
YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgRE5TIGFkZHJl
c3MgcmVzb2x2ZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb21haW5Mb29rdXBF
bmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgRE5TIGFkZHJl
c3MgcmVzb2x2ZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0U3RhcnQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBjb25uZWN0aW5nIHRv
IHRoZSByZW1vdGUgaG9zdC4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb25uZWN0
RW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNvbm5lY3RlZCB0byB0aGUg
cmVtb3RlIGhvc3QuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3NsU3RhcnQiLCAi
dHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBTU0wgaGFuZHNoYWtlLiIg
fSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNzbEVuZCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBTU0wgaGFuZHNoYWtlLiIgfSwKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInNlbmRTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJTdGFydGVkIHNlbmRpbmcgcmVxdWVzdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzZW5kRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVk
IHNlbmRpbmcgcmVxdWVzdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZWNlaXZl
SGVhZGVyc0VuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBy
ZWNlaXZpbmcgcmVzcG9uc2UgaGVhZGVycy4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNlY3VyZUNvbm5lY3Rpb25TdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6
ICJTdGFydGVkIFNTTCBoYW5kc2hha2UuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
cmVxdWVzdFN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQg
c2VuZGluZyByZXF1ZXN0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3BvbnNl
U3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCByZWNlaXZp
bmcgcmVzcG9uc2UgaGVhZGVycy4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAg
ICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5j
cHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NiwxMiArNzYsNiBAQCB2b2lkIERvY3Vt
ZW50TG9hZFRpbWluZzo6bWFya05hdmlnYXRpb25TCiAgICAgbV9yZWZlcmVuY2VXYWxsVGltZSA9
IGN1cnJlbnRUaW1lKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnRMb2FkVGltaW5nOjpzZXROYXZpZ2F0
aW9uU3RhcnQoZG91YmxlIG5hdmlnYXRpb25TdGFydCkKLXsKLSAgICBBU1NFUlQobV9yZWZlcmVu
Y2VNb25vdG9uaWNUaW1lICYmIG1fcmVmZXJlbmNlV2FsbFRpbWUpOwotICAgIG1fbmF2aWdhdGlv
blN0YXJ0ID0gbmF2aWdhdGlvblN0YXJ0OwotfQotCiB2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6
YWRkUmVkaXJlY3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1VybCwgY29uc3QgVVJMJiByZWRpcmVj
dGVkVXJsKQogewogICAgIG1fcmVkaXJlY3RDb3VudCsrOwpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MSw3ICs0MSw2IEBAIHB1YmxpYzoKICAgICBkb3VibGUgbW9ub3RvbmljVGltZVRvUHNldWRvV2Fs
bFRpbWUoZG91YmxlKSBjb25zdDsKIAogICAgIHZvaWQgbWFya05hdmlnYXRpb25TdGFydCgpOwot
ICAgIHZvaWQgc2V0TmF2aWdhdGlvblN0YXJ0KGRvdWJsZSk7CiAgICAgdm9pZCBhZGRSZWRpcmVj
dChjb25zdCBVUkwmIHJlZGlyZWN0aW5nVXJsLCBjb25zdCBVUkwmIHJlZGlyZWN0ZWRVcmwpOwog
CiAgICAgdm9pZCBtYXJrVW5sb2FkRXZlbnRTdGFydCgpIHsgbV91bmxvYWRFdmVudFN0YXJ0ID0g
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2UuaWRsCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCi0vLyBTZWU6IGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBpL1dlYlRp
bWluZy8KKy8vIFNlZTogaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy93ZWJwZXJmL3Jhdy1maWxlL3Rp
cC9zcGVjcy9OYXZpZ2F0aW9uVGltaW5nL092ZXJ2aWV3Lmh0bWwKIFsKICAgICBDb25kaXRpb25h
bD1XRUJfVElNSU5HLAogICAgIEV2ZW50VGFyZ2V0LApJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCShyZXZpc2lvbiAxNjgzOTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjAsMTAgKzEyMCwxMCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6ZG9tYWluCiAgICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCiAgICAg
ICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kbnNTdGFy
dCA8IDApCisgICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQg
PCAwKQogICAgICAgICByZXR1cm4gZmV0Y2hTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNl
VGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPmRuc1N0YXJ0KTsKKyAgICByZXR1
cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+ZG9tYWluTG9v
a3VwU3RhcnQpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWlu
TG9va3VwRW5kKCkgY29uc3QKQEAgLTEzMSwxMCArMTMxLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nOjpkb21haW4KICAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykK
ICAgICAgICAgcmV0dXJuIDAuMDsKIAotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRu
c0VuZCA8IDApCisgICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG9tYWluTG9va3VwRW5k
IDwgMCkKICAgICAgICAgcmV0dXJuIGRvbWFpbkxvb2t1cFN0YXJ0KCk7CiAKLSAgICByZXR1cm4g
cmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+ZG5zRW5kKTsKKyAg
ICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+ZG9t
YWluTG9va3VwRW5kKTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNv
bm5lY3RTdGFydCgpIGNvbnN0CkBAIC0xNDgsOCArMTQ4LDggQEAgZG91YmxlIFBlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmc6OmNvbm5lYwogCiAgICAgLy8gY29ubmVjdFN0YXJ0IGluY2x1ZGVzIGFu
eSBETlMgdGltZSwgc28gd2UgbWF5IG5lZWQgdG8gdHJpbSB0aGF0IG9mZi4KICAgICBpbnQgY29u
bmVjdFN0YXJ0ID0gbV90aW1pbmctPmNvbm5lY3RTdGFydDsKLSAgICBpZiAobV90aW1pbmctPmRu
c0VuZCA+PSAwKQotICAgICAgICBjb25uZWN0U3RhcnQgPSBtX3RpbWluZy0+ZG5zRW5kOworICAg
IGlmIChtX3RpbWluZy0+ZG9tYWluTG9va3VwRW5kID49IDApCisgICAgICAgIGNvbm5lY3RTdGFy
dCA9IG1fdGltaW5nLT5kb21haW5Mb29rdXBFbmQ7CiAKICAgICByZXR1cm4gcmVzb3VyY2VUaW1l
VG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhjb25uZWN0U3RhcnQpOwogfQpAQCAtMTcxLDEwICsxNzEs
MTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZQogICAgIGlmICgh
bV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAgICAgICByZXR1cm4gMC4wOwogCi0gICAgaWYgKCFt
X3RpbWluZyB8fCBtX3RpbWluZy0+c3NsU3RhcnQgPCAwKSAvLyBTZWN1cmUgY29ubmVjdGlvbiBu
b3QgbmVnb3RpYXRlZC4KKyAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5zZWN1cmVDb25u
ZWN0aW9uU3RhcnQgPCAwKSAvLyBTZWN1cmUgY29ubmVjdGlvbiBub3QgbmVnb3RpYXRlZC4KICAg
ICAgICAgcmV0dXJuIDAuMDsKIAotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWls
bGlzZWNvbmRzKG1fdGltaW5nLT5zc2xTdGFydCk7CisgICAgcmV0dXJuIHJlc291cmNlVGltZVRv
RG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydCk7CiB9
CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXF1ZXN0U3RhcnQoKSBjb25z
dApAQCAtMTg1LDI1ICsxODUsMTEgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6
OnJlcXVlcwogICAgIGlmICghbV90aW1pbmcpCiAgICAgICAgIHJldHVybiBjb25uZWN0RW5kKCk7
CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWlu
Zy0+c2VuZFN0YXJ0KTsKLX0KLQotZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJl
c3BvbnNlU3RhcnQoKSBjb25zdAotewotICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQot
ICAgICAgICByZXR1cm4gMC4wOwotCi0gICAgaWYgKCFtX3RpbWluZykKLSAgICAgICAgcmV0dXJu
IHJlcXVlc3RTdGFydCgpOwotICAgIC8vIEZJWE1FOiBUaGlzIG51bWJlciBpc24ndCBleGFjdGx5
IGNvcnJlY3QuIFNlZSB0aGUgbm90ZXMgaW4gUGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNlU3Rh
cnQoKS4KLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3Rp
bWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQpOworICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3Vt
ZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5yZXF1ZXN0U3RhcnQpOwogfQogCiBkb3VibGUgUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzcG9uc2VFbmQoKSBjb25zdAogewotICAgIGlmICgh
bV9maW5pc2hUaW1lKQotICAgICAgICByZXR1cm4gcmVzcG9uc2VTdGFydCgpOwotCiAgICAgcmV0
dXJuIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3Vt
ZW50LmdldCgpLCBtX2ZpbmlzaFRpbWUpOwogfQogCkBAIC0yMTEsNyArMTk3LDcgQEAgZG91Ymxl
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc291cgogewogICAgIGlmICghZGVsdGFNaWxs
aXNlY29uZHMpCiAgICAgICAgIHJldHVybiAwLjA7Ci0gICAgcmV0dXJuIG1vbm90b25pY1RpbWVU
b0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3VtZW50LmdldCgpLCBtX3RpbWlu
Zy0+cmVxdWVzdFRpbWUpICsgZGVsdGFNaWxsaXNlY29uZHM7CisgICAgcmV0dXJuIG1vbm90b25p
Y1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3VtZW50LmdldCgpLCBt
X3JlcXVlc3RpbmdEb2N1bWVudC5nZXQoKS0+bG9hZGVyKCktPnRpbWluZygpLT5uYXZpZ2F0aW9u
U3RhcnQoKSkgKyBkZWx0YU1pbGxpc2Vjb25kczsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw2IEBAIHB1Ymxp
YzoKICAgICBkb3VibGUgY29ubmVjdEVuZCgpIGNvbnN0OwogICAgIGRvdWJsZSBzZWN1cmVDb25u
ZWN0aW9uU3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0KCkgY29uc3Q7Ci0g
ICAgZG91YmxlIHJlc3BvbnNlU3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVzcG9uc2VFbmQo
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Jlc291cmNlKCkgeyByZXR1cm4gdHJ1ZTsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VU
aW1pbmcuaWRsCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw1IEBA
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgY29ubmVjdEVuZDsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBzZWN1cmVDb25uZWN0
aW9uU3RhcnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgcmVx
dWVzdFN0YXJ0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHJl
c3BvbnNlU3RhcnQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUg
cmVzcG9uc2VFbmQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRp
bWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRp
bWluZy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsMTEgKzEzMCwxMSBAQCB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBUaGlzIHdpbGwg
YmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAgLy8gUmF0aGVy
IHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIEROUywgd2Ug
ImJhY2tmaWxsIiB3aXRoIGZldGNoU3RhcnQuCi0gICAgaW50IGRuc1N0YXJ0ID0gdGltaW5nLT5k
bnNTdGFydDsKLSAgICBpZiAoZG5zU3RhcnQgPCAwKQorICAgIGludCBkb21haW5Mb29rdXBTdGFy
dCA9IHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQ7CisgICAgaWYgKGRvbWFpbkxvb2t1cFN0YXJ0
IDwgMCkKICAgICAgICAgcmV0dXJuIGZldGNoU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJj
ZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGRuc1N0YXJ0KTsKKyAgICByZXR1cm4gcmVzb3Vy
Y2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShkb21haW5Mb29rdXBTdGFydCk7CiB9CiAKIHVu
c2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKCkgY29u
c3QKQEAgLTE0NSwxMSArMTQ1LDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6ZG8KIAogICAgIC8vIFRoaXMgd2lsbCBiZSAtMSB3aGVuIGEgRE5TIHJlcXVlc3QgaXMg
bm90IHBlcmZvcm1lZC4KICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwgdmFs
dWUgdGhhdCBpbmRpY2F0ZXMgbm8gRE5TLCB3ZSAiYmFja2ZpbGwiIHdpdGggZG9tYWluTG9va3Vw
U3RhcnQuCi0gICAgaW50IGRuc0VuZCA9IHRpbWluZy0+ZG5zRW5kOwotICAgIGlmIChkbnNFbmQg
PCAwKQorICAgIGludCBkb21haW5Mb29rdXBFbmQgPSB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZDsK
KyAgICBpZiAoZG9tYWluTG9va3VwRW5kIDwgMCkKICAgICAgICAgcmV0dXJuIGRvbWFpbkxvb2t1
cFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0
ZShkbnNFbmQpOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRl
KGRvbWFpbkxvb2t1cEVuZCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6Y29ubmVjdFN0YXJ0KCkgY29uc3QKQEAgLTE3MCw4ICsxNzAsOCBAQCB1bnNpZ25lZCBs
b25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvCiAKICAgICAvLyBSZXNvdXJjZUxvYWRUaW1p
bmcncyBjb25uZWN0IHBoYXNlIGluY2x1ZGVzIEROUywgaG93ZXZlciBOYXZpZ2F0aW9uIFRpbWlu
ZydzCiAgICAgLy8gY29ubmVjdCBwaGFzZSBzaG91bGQgbm90LiBTbyBpZiB0aGVyZSBpcyBETlMg
dGltZSwgdHJpbSBpdCBmcm9tIHRoZSBzdGFydC4KLSAgICBpZiAodGltaW5nLT5kbnNFbmQgPj0g
MCAmJiB0aW1pbmctPmRuc0VuZCA+IGNvbm5lY3RTdGFydCkKLSAgICAgICAgY29ubmVjdFN0YXJ0
ID0gdGltaW5nLT5kbnNFbmQ7CisgICAgaWYgKHRpbWluZy0+ZG9tYWluTG9va3VwRW5kID49IDAg
JiYgdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPiBjb25uZWN0U3RhcnQpCisgICAgICAgIGNvbm5l
Y3RTdGFydCA9IHRpbWluZy0+ZG9tYWluTG9va3VwRW5kOwogCiAgICAgcmV0dXJuIHJlc291cmNl
TG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoY29ubmVjdFN0YXJ0KTsKIH0KQEAgLTIwNSwxMSAr
MjA1LDExIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6c2UKICAgICBp
ZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpbnQgc3NsU3RhcnQgPSB0aW1p
bmctPnNzbFN0YXJ0OwotICAgIGlmIChzc2xTdGFydCA8IDApCisgICAgaW50IHNlY3VyZUNvbm5l
Y3Rpb25TdGFydCA9IHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0OworICAgIGlmIChzZWN1
cmVDb25uZWN0aW9uU3RhcnQgPCAwKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBy
ZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHNzbFN0YXJ0KTsKKyAgICByZXR1cm4g
cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShzZWN1cmVDb25uZWN0aW9uU3RhcnQp
OwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlcXVlc3RTdGFy
dCgpIGNvbnN0CkBAIC0yMTgsOCArMjE4LDggQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1h
bmNlVGltaW5nOjpyZQogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gY29ubmVjdEVu
ZCgpOwogCi0gICAgQVNTRVJUKHRpbWluZy0+c2VuZFN0YXJ0ID49IDApOwotICAgIHJldHVybiBy
ZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWluZy0+c2VuZFN0YXJ0KTsKKyAg
ICBBU1NFUlQodGltaW5nLT5yZXF1ZXN0U3RhcnQgPj0gMCk7CisgICAgcmV0dXJuIHJlc291cmNl
TG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5yZXF1ZXN0U3RhcnQpOwogfQogCiB1
bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNlU3RhcnQoKSBjb25z
dApAQCAtMjI4LDE0ICsyMjgsOCBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1p
bmc6OnJlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiByZXF1ZXN0U3RhcnQoKTsK
IAotICAgIC8vIEZJWE1FOiBSZXNwb25zZSBzdGFydCBuZWVkcyB0byBiZSB0aGUgdGltZSBvZiB0
aGUgZmlyc3QgcmVjZWl2ZWQgYnl0ZS4KLSAgICAvLyBIb3dldmVyLCB0aGUgUmVzb3VyY2VMb2Fk
VGltaW5nIEFQSSBjdXJyZW50bHkgb25seSBzdXBwb3J0cyB0aGUgdGltZQotICAgIC8vIHRoZSBs
YXN0IGhlYWRlciBieXRlIHdhcyByZWNlaXZlZC4gRm9yIG1hbnkgcmVzcG9uc2VzIHdpdGggcmVh
c29uYWJsZQotICAgIC8vIHNpemVkIGNvb2tpZXMsIHRoZSBIVFRQIGhlYWRlcnMgZml0IGludG8g
YSBzaW5nbGUgcGFja2V0IHNvIHRoaXMgdGltZQotICAgIC8vIGlzIGJhc2ljYWxseSBlcXVpdmFs
ZW50LiBCdXQgZm9yIHNvbWUgcmVzcG9uc2VzLCBwYXJ0aWN1bGFybHkgdGhvc2Ugd2l0aAotICAg
IC8vIGhlYWRlcnMgbGFyZ2VyIHRoYW4gYSBzaW5nbGUgcGFja2V0LCB0aGlzIHRpbWUgd2lsbCBi
ZSB0b28gbGF0ZS4KLSAgICBBU1NFUlQodGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCA+PSAwKTsK
LSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZSh0aW1pbmctPnJl
Y2VpdmVIZWFkZXJzRW5kKTsKKyAgICBBU1NFUlQodGltaW5nLT5yZXNwb25zZVN0YXJ0ID49IDAp
OworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWluZy0+
cmVzcG9uc2VTdGFydCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWlu
Zzo6cmVzcG9uc2VFbmQoKSBjb25zdApAQCAtMzUxLDkgKzM0NSw3IEBAIFJlc291cmNlTG9hZFRp
bWluZyogUGVyZm9ybWFuY2VUaW1pbmc6OnIKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5j
ZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShpbnQgcmVsYXRpdmVN
aWxsaXNlY29uZHMpIGNvbnN0CiB7CiAgICAgQVNTRVJUKHJlbGF0aXZlTWlsbGlzZWNvbmRzID49
IDApOwotICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVzb3VyY2VUaW1pbmcgPSByZXNvdXJjZUxv
YWRUaW1pbmcoKTsKLSAgICBBU1NFUlQocmVzb3VyY2VUaW1pbmcpOwotICAgIHJldHVybiBtb25v
dG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHJlc291cmNlVGltaW5nLT5jb252ZXJ0UmVz
b3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZShyZWxhdGl2ZU1pbGxpc2Vjb25kcykpOworICAg
IHJldHVybiBuYXZpZ2F0aW9uU3RhcnQoKSArIHJlbGF0aXZlTWlsbGlzZWNvbmRzOwogfQogCiB1
bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om1vbm90b25pY1RpbWVUb0ludGVn
ZXJNaWxsaXNlY29uZHMoZG91YmxlIG1vbm90b25pY1NlY29uZHMpIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAkocmV2aXNpb24gMTY4MzkyKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDcgKzI4LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8gU2VlOiBodHRw
Oi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisvLyBTZWU6IGh0dHBzOi8vZHZj
cy53My5vcmcvaGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3MvTmF2aWdhdGlvblRpbWluZy9P
dmVydmlldy5odG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKIF0gaW50ZXJmYWNl
IFBlcmZvcm1hbmNlVGltaW5nIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvSFRUUFBhcnNlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBQYXJzZXJzLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsOSAr
MzcsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEhUVFBIZWFkZXJNYXA7Ci1j
bGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKLQogZW51bSBDb250ZW50RGlzcG9zaXRpb25UeXBl
IHsKICAgICBDb250ZW50RGlzcG9zaXRpb25Ob25lLAogICAgIENvbnRlbnREaXNwb3NpdGlvbklu
bGluZSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmgJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDYgKzE5MCw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRIb3N0QWxsb3dzQW55SFRUUFNDZXJ0aWZp
Y2F0ZShjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDbGllbnRDZXJ0aWZpY2F0
ZShjb25zdCBTdHJpbmcmIGhvc3QsIEdUbHNDZXJ0aWZpY2F0ZSopOwogICAgIHN0YXRpYyB2b2lk
IHNldElnbm9yZVNTTEVycm9ycyhib29sKTsKKyAgICBkb3VibGUgbV9yZXF1ZXN0VGltZTsKICNl
bmRpZgogCiAgICAgLy8gVXNlZCB0byB3b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0IHlvdSBkb24n
dCBnZXQgYW55IG1vcmUgTlNVUkxDb25uZWN0aW9uIGNhbGxiYWNrcyB1bnRpbCB5b3UgcmV0dXJu
IGZyb20gdGhlIG9uZSB5b3UncmUgaW4uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuY3BwCShyZXZpc2lvbiAxNjgz
OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWlu
Zy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWRvdWJs
ZSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNU
aW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3QKLXsKLSAgICByZXR1cm4gcmVxdWVzdFRp
bWUgKyBkZWx0YU1pbGxpc2Vjb25kcyAvIDEwMDAuMDsKLX0KLQotfQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCShy
ZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlTG9hZFRpbWluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3NiArNDQsNTAgQEAgcHVibGlj
OgogICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBkZWVwQ29weSgpCiAgICAgewog
ICAgICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiB0aW1pbmcgPSBjcmVhdGUoKTsKLSAg
ICAgICAgdGltaW5nLT5yZXF1ZXN0VGltZSA9IHJlcXVlc3RUaW1lOwotICAgICAgICB0aW1pbmct
PnByb3h5U3RhcnQgPSBwcm94eVN0YXJ0OwotICAgICAgICB0aW1pbmctPnByb3h5RW5kID0gcHJv
eHlFbmQ7Ci0gICAgICAgIHRpbWluZy0+ZG5zU3RhcnQgPSBkbnNTdGFydDsKLSAgICAgICAgdGlt
aW5nLT5kbnNFbmQgPSBkbnNFbmQ7CisgICAgICAgIHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQg
PSBkb21haW5Mb29rdXBTdGFydDsKKyAgICAgICAgdGltaW5nLT5kb21haW5Mb29rdXBFbmQgPSBk
b21haW5Mb29rdXBFbmQ7CiAgICAgICAgIHRpbWluZy0+Y29ubmVjdFN0YXJ0ID0gY29ubmVjdFN0
YXJ0OwogICAgICAgICB0aW1pbmctPmNvbm5lY3RFbmQgPSBjb25uZWN0RW5kOwotICAgICAgICB0
aW1pbmctPnNlbmRTdGFydCA9IHNlbmRTdGFydDsKLSAgICAgICAgdGltaW5nLT5zZW5kRW5kID0g
c2VuZEVuZDsKLSAgICAgICAgdGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCA9IHJlY2VpdmVIZWFk
ZXJzRW5kOwotICAgICAgICB0aW1pbmctPnNzbFN0YXJ0ID0gc3NsU3RhcnQ7Ci0gICAgICAgIHRp
bWluZy0+c3NsRW5kID0gc3NsRW5kOworICAgICAgICB0aW1pbmctPnJlcXVlc3RTdGFydCA9IHJl
cXVlc3RTdGFydDsKKyAgICAgICAgdGltaW5nLT5yZXNwb25zZVN0YXJ0ID0gcmVzcG9uc2VTdGFy
dDsKKyAgICAgICAgdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBzZWN1cmVDb25uZWN0
aW9uU3RhcnQ7CiAgICAgICAgIHJldHVybiB0aW1pbmcucmVsZWFzZSgpOwogICAgIH0KIAogICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVyKSBjb25zdAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHJlcXVlc3RUaW1lID09IG90aGVyLnJlcXVlc3RUaW1lCi0g
ICAgICAgICAgICAmJiBwcm94eVN0YXJ0ID09IG90aGVyLnByb3h5U3RhcnQKLSAgICAgICAgICAg
ICYmIHByb3h5RW5kID09IG90aGVyLnByb3h5RW5kCi0gICAgICAgICAgICAmJiBkbnNTdGFydCA9
PSBvdGhlci5kbnNTdGFydAotICAgICAgICAgICAgJiYgZG5zRW5kID09IG90aGVyLmRuc0VuZAor
ICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQgPT0gb3RoZXIuZG9tYWluTG9va3VwU3Rh
cnQKKyAgICAgICAgICAgICYmIGRvbWFpbkxvb2t1cEVuZCA9PSBvdGhlci5kb21haW5Mb29rdXBF
bmQKICAgICAgICAgICAgICYmIGNvbm5lY3RTdGFydCA9PSBvdGhlci5jb25uZWN0U3RhcnQKICAg
ICAgICAgICAgICYmIGNvbm5lY3RFbmQgPT0gb3RoZXIuY29ubmVjdEVuZAotICAgICAgICAgICAg
JiYgc2VuZFN0YXJ0ID09IG90aGVyLnNlbmRTdGFydAotICAgICAgICAgICAgJiYgc2VuZEVuZCA9
PSBvdGhlci5zZW5kRW5kCi0gICAgICAgICAgICAmJiByZWNlaXZlSGVhZGVyc0VuZCA9PSBvdGhl
ci5yZWNlaXZlSGVhZGVyc0VuZAotICAgICAgICAgICAgJiYgc3NsU3RhcnQgPT0gb3RoZXIuc3Ns
U3RhcnQKLSAgICAgICAgICAgICYmIHNzbEVuZCA9PSBvdGhlci5zc2xFbmQ7CisgICAgICAgICAg
ICAmJiByZXF1ZXN0U3RhcnQgPT0gb3RoZXIucmVxdWVzdFN0YXJ0CisgICAgICAgICAgICAmJiBy
ZXNwb25zZVN0YXJ0ID09IG90aGVyLnJlc3BvbnNlU3RhcnQKKyAgICAgICAgICAgICYmIHNlY3Vy
ZUNvbm5lY3Rpb25TdGFydCA9PSBvdGhlci5zZWN1cmVDb25uZWN0aW9uU3RhcnQ7CiAgICAgfQog
CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNv
bnN0CiAgICAgewogICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CiAgICAgfQotCi0g
ICAgLy8gV2Ugd2FudCB0byBwcmVzZW50IGEgdW5pZmllZCB0aW1lbGluZSB0byBKYXZhc2NyaXB0
LiBVc2luZyB3YWxsdGltZSBpcyBwcm9ibGVtYXRpYywgYmVjYXVzZSB0aGUgY2xvY2sgbWF5IHNr
ZXcgd2hpbGUgcmVzb3VyY2VzCi0gICAgLy8gbG9hZC4gVG8gcHJldmVudCB0aGF0IHNrZXcsIHdl
IHJlY29yZCBhIHNpbmdsZSByZWZlcmVuY2Ugd2FsbHRpbWUgd2hlbiByb290IGRvY3VtZW50IG5h
dmlnYXRpb24gYmVnaW5zLiBBbGwgb3RoZXIgdGltZXMgYXJlCi0gICAgLy8gcmVjb3JkZWQgdXNp
bmcgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkuIFdoZW4gYSB0aW1lIG5lZWRzIHRvIGJl
IHByZXNlbnRlZCB0byBKYXZhc2NyaXB0LCB3ZSBidWlsZCBhIHBzZXVkby13YWxsdGltZQotICAg
IC8vIHVzaW5nIHRoZSBmb2xsb3dpbmcgZXF1YXRpb246Ci0gICAgLy8gICBwc2V1ZG8gdGltZSA9
IGRvY3VtZW50IHdhbGwgcmVmZXJlbmNlICsgKHJlc291cmNlIHJlcXVlc3QgdGltZSAtIGRvY3Vt
ZW50IG1vbm90b25pYyByZWZlcmVuY2UpICsgZGVsdGFNaWxsaXNlY29uZHMgLyAxMDAwLjAuCi0g
ICAgZG91YmxlIGNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0
YU1pbGxpc2Vjb25kcykgY29uc3Q7Ci0KLSAgICBkb3VibGUgcmVxdWVzdFRpbWU7IC8vIG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIHdoZW4gdGhlIHBvcnQgc3RhcnRlZCBoYW5kbGluZyB0
aGlzIHJlcXVlc3QuCi0gICAgaW50IHByb3h5U3RhcnQ7IC8vIFRoZSByZXN0IG9mIHRoZXNlIGFy
ZSBtaWxsaXNlY29uZCBkZWx0YXMsIHVzaW5nIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
LCBmcm9tIHJlcXVlc3RUaW1lLgotICAgIGludCBwcm94eUVuZDsKLSAgICBpbnQgZG5zU3RhcnQ7
Ci0gICAgaW50IGRuc0VuZDsKKyAgICAKKyAgICAvLyBUaGVzZSBhcmUgbWlsbGlzZWNvbmQgZGVs
dGFzIGZyb20gdGhlIG5hdmlnYXRpb24gc3RhcnQuCisgICAgaW50IGRvbWFpbkxvb2t1cFN0YXJ0
OworICAgIGludCBkb21haW5Mb29rdXBFbmQ7CiAgICAgaW50IGNvbm5lY3RTdGFydDsKICAgICBp
bnQgY29ubmVjdEVuZDsKLSAgICBpbnQgc2VuZFN0YXJ0OwotICAgIGludCBzZW5kRW5kOwotICAg
IGludCByZWNlaXZlSGVhZGVyc0VuZDsKLSAgICBpbnQgc3NsU3RhcnQ7Ci0gICAgaW50IHNzbEVu
ZDsKLQorICAgIGludCByZXF1ZXN0U3RhcnQ7CisgICAgaW50IHJlc3BvbnNlU3RhcnQ7CisgICAg
aW50IHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKKyAgICAKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VM
b2FkVGltaW5nKCkKLSAgICAgICAgOiByZXF1ZXN0VGltZSgwKQotICAgICAgICAsIHByb3h5U3Rh
cnQoLTEpCi0gICAgICAgICwgcHJveHlFbmQoLTEpCi0gICAgICAgICwgZG5zU3RhcnQoLTEpCi0g
ICAgICAgICwgZG5zRW5kKC0xKQorICAgICAgICA6IGRvbWFpbkxvb2t1cFN0YXJ0KC0xKQorICAg
ICAgICAsIGRvbWFpbkxvb2t1cEVuZCgtMSkKICAgICAgICAgLCBjb25uZWN0U3RhcnQoLTEpCiAg
ICAgICAgICwgY29ubmVjdEVuZCgtMSkKLSAgICAgICAgLCBzZW5kU3RhcnQoMCkKLSAgICAgICAg
LCBzZW5kRW5kKDApCi0gICAgICAgICwgcmVjZWl2ZUhlYWRlcnNFbmQoMCkKLSAgICAgICAgLCBz
c2xTdGFydCgtMSkKLSAgICAgICAgLCBzc2xFbmQoLTEpCisgICAgICAgICwgcmVxdWVzdFN0YXJ0
KDApCisgICAgICAgICwgcmVzcG9uc2VTdGFydCgwKQorICAgICAgICAsIHNlY3VyZUNvbm5lY3Rp
b25TdGFydCgtMSkKICAgICB7CiAgICAgfQogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCShyZXZp
c2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsMTQgQEAKICNpbXBv
cnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisj
aWYgX19oYXNfaW5jbHVkZSg8Rm91bmRhdGlvbi9OU1VSTENvbm5lY3Rpb25Qcml2YXRlLmg+KQor
I2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VSTENvbm5lY3Rpb25Qcml2YXRlLmg+CisjZWxzZQorQGlu
dGVyZmFjZSBOU1VSTENvbm5lY3Rpb24gKFRpbWluZ0RhdGEpCisrICh2b2lkKV9zZXRDb2xsZWN0
c1RpbWluZ0RhdGE6KEJPT0wpY29sbGVjdDsKK0BlbmQKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0o
SU9TKQogI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGVVJMUmVxdWVzdC5oPgogCkBAIC0yMDAsNiArMjA4
LDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aQogICAgIGNvbnN0
IGJvb2wgdXNlc0NhY2hlID0gdHJ1ZTsKICNlbmRpZgogICAgIGQtPm1fY29ubmVjdGlvbiA9IGFk
b3B0TlMoW1tOU1VSTENvbm5lY3Rpb24gYWxsb2NdIF9pbml0V2l0aFJlcXVlc3Q6bnNSZXF1ZXN0
IGRlbGVnYXRlOmRlbGVnYXRlIHVzZXNDYWNoZTp1c2VzQ2FjaGUgbWF4Q29udGVudExlbmd0aDow
IHN0YXJ0SW1tZWRpYXRlbHk6Tk8gY29ubmVjdGlvblByb3BlcnRpZXM6cHJvcGVydHlEaWN0aW9u
YXJ5XSk7CisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgW05TVVJMQ29ubmVjdGlvbiBfc2V0
Q29sbGVjdHNUaW1pbmdEYXRhOllFU107CisjZW5kaWYKIH0KIAogYm9vbCBSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhh
bmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMTY4MzkyKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNP
cGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxNCBA
QAogI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNlLmgiCiAjaW1wb3J0IDx3dGYvTWFpblRocmVh
ZC5oPgogCisjaWYgX19oYXNfaW5jbHVkZSg8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9uLmg+
KQorI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9uLmg+CisjZWxzZQorQGludGVy
ZmFjZSBOU1VSTENvbm5lY3Rpb24gKFRpbWluZ0RhdGEpCistIChOU0RpY3Rpb25hcnkgKilfdGlt
aW5nRGF0YTsKK0BlbmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIE5TVVJMUmVxdWVzdCAoRGV0YWls
cykKIC0gKGlkKV9wcm9wZXJ0eUZvcktleTooTlNTdHJpbmcgKilrZXk7CiBAZW5kCkBAIC0xOTMs
NyArMjAxLDYgQEAgLSAoQk9PTCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogLSAo
dm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJlY2VpdmVS
ZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXIKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKLSAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAKICAgICBMT0coTmV0d29yaywgIkhh
bmRsZSAlcCBkZWxlZ2F0ZSBjb25uZWN0aW9uOiVwIGRpZFJlY2VpdmVSZXNwb25zZTolcCAoSFRU
UCBzdGF0dXMgJWQsIHJlcG9ydGVkIE1JTUVUeXBlICclcycpIiwgbV9oYW5kbGUsIGNvbm5lY3Rp
b24sIHIsIFtyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc3RhdHVzQ29kZSldID8gWyhp
ZClyIHN0YXR1c0NvZGVdIDogMCwgW1tyIE1JTUVUeXBlXSBVVEY4U3RyaW5nXSk7CiAKQEAgLTIx
Miw4ICsyMTksMzggQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwog
CiAgICAgICAgIGlmIChbbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05v
dFVwZGF0ZUhUVFBCb2R5KSBfcHJvcGVydHlGb3JLZXk6QCJGb3JjZUhUTUxNSU1FVHlwZSJdKQog
ICAgICAgICAgICAgW3IgX3NldE1JTUVUeXBlOkAidGV4dC9odG1sIl07Ci0KLSAgICAgICAgbV9o
YW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhtX2hhbmRsZSwgcik7Cisg
ICAgICAgIAorICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2Uocik7Cisj
aWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgICAgIE5TRGljdGlvbmFyeSogdGltaW5nRGF0YSA9
IFtjb25uZWN0aW9uIF90aW1pbmdEYXRhXTsKKyAgICAgICAgaWYgKHRpbWluZ0RhdGEpIHsKKyAg
ICAgICAgICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNl
TG9hZFRpbWluZzo6Y3JlYXRlKCkpOworICAgICAgICAgICAgUmVzb3VyY2VMb2FkVGltaW5nKiB0
aW1pbmcgPSByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICAvLyBUaGlzIGlzIG5vdCB0aGUgbmF2aWdhdGlvblN0YXJ0IHRpbWUg
aW4gbW9ub3RvbmljIHRpbWUsIGJ1dCB0aGUgb3RoZXIgdGltZXMgYXJlIHJlbGF0aXZlIHRvIHRo
aXMgdGltZQorICAgICAgICAgICAgLy8gYW5kIG9ubHkgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4g
dGltZXMgYXJlIHN0b3JlZC4KKyAgICAgICAgICAgIGRvdWJsZSByZWZlcmVuY2VTdGFydCA9IFtb
dGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVRpbWluZ0RhdGFJbml0Il0g
ZG91YmxlVmFsdWVdOworICAgICAgICAgICAgCisgICAgICAgICAgICBkb3VibGUgZG9tYWluTG9v
a3VwU3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFEb21h
aW5Mb29rdXBTdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSBkb21haW5M
b29rdXBFbmQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFEb21h
aW5Mb29rdXBFbmQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICBkb3VibGUgY29ubmVjdFN0
YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhQ29ubmVjdFN0
YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25T
dGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVNlY3VyZUNv
bm5lY3Rpb25TdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSBjb25uZWN0
RW5kID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhQ29ubmVjdEVu
ZCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSByZXF1ZXN0U3RhcnQgPSBbW3Rp
bWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFSZXF1ZXN0U3RhcnQiXSBkb3Vi
bGVWYWx1ZV07CisgICAgICAgICAgICBkb3VibGUgcmVzcG9uc2VTdGFydCA9IFtbdGltaW5nRGF0
YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YVJlc3BvbnNlU3RhcnQiXSBkb3VibGVWYWx1
ZV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQg
PSBkb21haW5Mb29rdXBTdGFydCA8PSAwLjAgPyAtMSA6IChkb21haW5Mb29rdXBTdGFydCAtIHJl
ZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0aW1pbmctPmRvbWFpbkxvb2t1cEVu
ZCA9IGRvbWFpbkxvb2t1cEVuZCA8PSAwLjAgPyAtMSA6IChkb21haW5Mb29rdXBFbmQgLSByZWZl
cmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5nLT5jb25uZWN0U3RhcnQgPSBj
b25uZWN0U3RhcnQgPD0gMC4wID8gLTEgOiAoY29ubmVjdFN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQp
ICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gc2Vj
dXJlQ29ubmVjdGlvblN0YXJ0IDw9IDAuMCA/IC0xIDogKHNlY3VyZUNvbm5lY3Rpb25TdGFydCAt
IHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0aW1pbmctPmNvbm5lY3RFbmQg
PSBjb25uZWN0RW5kIDw9IDAuMCA/IC0xIDogKGNvbm5lY3RFbmQgLSByZWZlcmVuY2VTdGFydCkg
KiAxMDAwOworICAgICAgICAgICAgdGltaW5nLT5yZXF1ZXN0U3RhcnQgPSByZXF1ZXN0U3RhcnQg
PD0gMC4wID8gLTEgOiAocmVxdWVzdFN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAg
ICAgICAgICAgIHRpbWluZy0+cmVzcG9uc2VTdGFydCA9IHJlc3BvbnNlU3RhcnQgPD0gMC4wID8g
LTEgOiAocmVzcG9uc2VTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgIH0K
KyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyNlbmRpZgorICAgICAg
ICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCBy
ZXNvdXJjZVJlc3BvbnNlKTsKICAgICB9KTsKIAogICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0
KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTYs
MTEgKzMxNiw2IEBAIHN0YXRpYyB2b2lkIGdvdEhlYWRlcnNDYWxsYmFjayhTb3VwTWVzc2EKIAog
ICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAK
LSNpZiBFTkFCTEUoV0VCX1RJTUlORykKLSAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxv
YWRUaW1pbmcoKSkKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
cmVjZWl2ZUhlYWRlcnNFbmQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNl
LnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7Ci0jZW5kaWYKLQogI2lmIFBMQVRG
T1JNKEdUSykKICAgICAvLyBXZSBhcmUgYSBiaXQgbW9yZSBjb25zZXJ2YXRpdmUgd2l0aCB0aGUg
cGVyc2lzdGVudCBjcmVkZW50aWFsIHN0b3JhZ2UgdGhhbiB0aGUgc2Vzc2lvbiBzdG9yZSwKICAg
ICAvLyBzaW5jZSB3ZSBhcmUgd2FpdGluZyB1bnRpbCB3ZSBrbm93IHRoYXQgdGhpcyBhdXRoZW50
aWNhdGlvbiBzdWNjZWVkZWQgYmVmb3JlIGFjdHVhbGx5IHN0b3JpbmcuCkBAIC0zOTAsNyArMzg1
LDcgQEAgc3RhdGljIHZvaWQgcmVzdGFydGVkQ2FsbGJhY2soU291cE1lc3NhZwogICAgIFJlc291
cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAgICAgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSA9IGQtPm1fcmVzcG9uc2U7CiAgICAgcmVkaXJl
Y3RSZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVh
dGUoKSk7Ci0gICAgcmVkaXJlY3RSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVz
dFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICBoYW5kbGUtPm1fcmVx
dWVzdFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKIH0KICNlbmRpZgogCkBA
IC04NDQsMzUgKzgzOSwxMyBAQCBzdGF0aWMgaW50IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGRv
dWJsCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oKG1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgpIC0gcmVxdWVzdFRpbWUpICogMTAwMC4wKTsKIH0KIAotc3RhdGljIHZvaWQgd3JvdGVC
b2R5Q2FsbGJhY2soU291cE1lc3NhZ2UqLCBncG9pbnRlciBkYXRhKQotewotICAgIFJlZlB0cjxS
ZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRh
KTsKLSAgICBpZiAoIWhhbmRsZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpZiAoIWQtPm1fcmVz
cG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNlbmRFbmQgPSBtaWxpc2Vjb25kc1NpbmNl
UmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7
Ci19Ci0KIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFN0YXJ0UmVxdWVzdCgpCiB7CiAgICAgUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGdldEludGVybmFsKCk7CiAgICAgaWYgKCFkLT5tX3Jl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZW5kU3RhcnQgPSBtaWxpc2Vjb25kc1Np
bmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGlt
ZSk7Ci0gICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0
ICE9IC0xKSB7Ci0gICAgICAgIC8vIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXF1ZXN0
VGltaW5nVmlldy5qcyBhc3N1bWVzCi0gICAgICAgIC8vIHRoYXQgU1NMIHRpbWUgaXMgaW5jbHVk
ZWQgaW4gY29ubmVjdGlvbiB0aW1lIHNvIG11c3QKLSAgICAgICAgLy8gc3Vic3RyYWN0IGhlcmUg
dGhlIFNTTCBkZWx0YSB0aGF0IHdpbGwgYmUgYWRkZWQgbGF0ZXIgKHNlZQotICAgICAgICAvLyBX
ZWJJbnNwZWN0b3IuUmVxdWVzdFRpbWluZ1ZpZXcuY3JlYXRlVGltaW5nVGFibGUgaW4gdGhlCi0g
ICAgICAgIC8vIGZpbGUgYWJvdmUgZm9yIG1vcmUgZGV0YWlscykuCi0gICAgICAgIGQtPm1fcmVz
cG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNlbmRTdGFydCAtPQotICAgICAgICAgICAgZC0+
bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsRW5kIC0gZC0+bV9yZXNwb25zZS5y
ZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQ7Ci0gICAgfQorICAgIGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RTdGFydCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1
ZXN0KG1fcmVxdWVzdFRpbWUpOwogfQogCiBzdGF0aWMgdm9pZCBuZXR3b3JrRXZlbnRDYWxsYmFj
ayhTb3VwTWVzc2FnZSosIEdTb2NrZXRDbGllbnRFdmVudCBldmVudCwgR0lPU3RyZWFtKiwgZ3Bv
aW50ZXIgZGF0YSkKQEAgLTg4NSw0MCArODU4LDM4IEBAIHN0YXRpYyB2b2lkIG5ldHdvcmtFdmVu
dENhbGxiYWNrKFNvdXBNZXMKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpbnQgZGVsdGFUaW1lID0g
bWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+cmVxdWVzdFRpbWUpOworICAgIGludCBkZWx0YVRpbWUgPSBtaWxpc2Vjb25kc1NpbmNlUmVx
dWVzdChoYW5kbGUtPm1fcmVxdWVzdFRpbWUpOwogICAgIHN3aXRjaCAoZXZlbnQpIHsKICAgICBj
YXNlIEdfU09DS0VUX0NMSUVOVF9SRVNPTFZJTkc6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPmRuc1N0YXJ0ID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kb21haW5Mb29rdXBTdGFydCA9IGRlbHRhVGlt
ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUkVTT0xWRUQ6Ci0g
ICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc0VuZCA9IGRlbHRh
VGltZTsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG9tYWlu
TG9va3VwRW5kID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VU
X0NMSUVOVF9DT05ORUNUSU5HOgogICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5jb25uZWN0U3RhcnQgPSBkZWx0YVRpbWU7Ci0gICAgICAgIGlmIChkLT5tX3Jlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNTdGFydCAhPSAtMSkKKyAgICAgICAgaWYgKGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxvb2t1cFN0YXJ0ICE9IC0x
KSB7CiAgICAgICAgICAgICAvLyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVxdWVzdFRp
bWluZ1ZpZXcuanMgYXNzdW1lcwogICAgICAgICAgICAgLy8gdGhhdCBETlMgdGltZSBpcyBpbmNs
dWRlZCBpbiBjb25uZWN0aW9uIHRpbWUgc28gbXVzdAogICAgICAgICAgICAgLy8gc3Vic3RyYWN0
IGhlcmUgdGhlIEROUyBkZWx0YSB0aGF0IHdpbGwgYmUgYWRkZWQgbGF0ZXIgKHNlZQogICAgICAg
ICAgICAgLy8gV2ViSW5zcGVjdG9yLlJlcXVlc3RUaW1pbmdWaWV3LmNyZWF0ZVRpbWluZ1RhYmxl
IGluIHRoZQogICAgICAgICAgICAgLy8gZmlsZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzKS4KICAg
ICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RTdGFy
dCAtPQotICAgICAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkt
PmRuc0VuZCAtIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc1N0YXJ0Owor
ICAgICAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFp
bkxvb2t1cEVuZCAtIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxv
b2t1cFN0YXJ0OworICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRf
Q0xJRU5UX0NPTk5FQ1RFRDoKICAgICAgICAgLy8gV2ViIFRpbWluZyBjb25zaWRlcnMgdGhhdCBj
b25uZWN0aW9uIHRpbWUgaW52b2x2ZXMgZG5zLCBwcm94eSAmIFRMUyBuZWdvdGlhdGlvbi4uLgog
ICAgICAgICAvLyBzbyB3ZSBiZXR0ZXIgcGljayBHX1NPQ0tFVF9DTElFTlRfQ09NUExFVEUgZm9y
IGNvbm5lY3RFbmQKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUFJP
WFlfTkVHT1RJQVRJTkc6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCktPnByb3h5U3RhcnQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19T
T0NLRVRfQ0xJRU5UX1BST1hZX05FR09USUFURUQ6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnByb3h5RW5kID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9UTFNfSEFORFNIQUtJTkc6Ci0gICAgICAgIGQtPm1f
cmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0ID0gZGVsdGFUaW1lOworICAg
ICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZWN1cmVDb25uZWN0aW9u
U3RhcnQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJ
RU5UX1RMU19IQU5EU0hBS0VEOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5zc2xFbmQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19T
T0NLRVRfQ0xJRU5UX0NPTVBMRVRFOgogICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9h
ZFRpbWluZygpLT5jb25uZWN0RW5kID0gZGVsdGFUaW1lOwpAQCAtOTgwLDcgKzk1MSw2IEBAIHN0
YXRpYyBib29sIGNyZWF0ZVNvdXBNZXNzYWdlRm9ySGFuZGxlQW4KICAgICBkLT5tX3Jlc3BvbnNl
LnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKTsKICAg
ICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksICJuZXR3b3JrLWV2ZW50
IiwgR19DQUxMQkFDSyhuZXR3b3JrRXZlbnRDYWxsYmFjayksIGhhbmRsZSk7CiAgICAgZ19zaWdu
YWxfY29ubmVjdChkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCAicmVzdGFydGVkIiwgR19DQUxMQkFD
SyhyZXN0YXJ0ZWRDYWxsYmFjayksIGhhbmRsZSk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChkLT5t
X3NvdXBNZXNzYWdlLmdldCgpLCAid3JvdGUtYm9keSIsIEdfQ0FMTEJBQ0sod3JvdGVCb2R5Q2Fs
bGJhY2spLCBoYW5kbGUpOwogI2VuZGlmCiAKICNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNDMs
IDEpCkBAIC0xMDU0LDcgKzEwMjQsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpzZW5kUGVuZGlu
Z1JlcXVlc3QoCiB7CiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgaWYgKGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCi0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCktPnJlcXVlc3RUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7
CisgICAgICAgIG1fcmVxdWVzdFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsK
ICNlbmRpZgogCiAgICAgaWYgKGQtPm1fZmlyc3RSZXF1ZXN0LnRpbWVvdXRJbnRlcnZhbCgpID4g
MCkgewpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTY4NTM3KQorKysgU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDUtMDkgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcm9n
cmVzcyBvbiB3ZWIgdGltaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMyNTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZW5jb2RlKToKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGVjb2RlKToKKyAgICAgICAg
VHJhbnNmZXIgUmVzb3VyY2VMb2FkVGltaW5nIHZhbHVlcyBpZiB0aGV5IGV4aXN0LgorCiAyMDE0
LTA1LTA5ICBNYXJ0aW4gSG9kb3ZhbiAgPG1ob2RvdmFuLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3Vu
Zy5jb20+CiAKICAgICAgICAgW1dLMl0gTWFrZSBnZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMu
cGwgd29yayBhZnRlciBXZWJLaXQyLmZyYW1ld29yayAtPiBXZWJLaXQuZnJhbWV3b3JrIHJlbmFt
ZQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02ODgsNiArNjg4LDE4IEBAIHZv
aWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZW4KICAgICAgICAgZW5jb2RlciA8
PCByZXNvdXJjZVJlc3BvbnNlLmh0dHBTdGF0dXNUZXh0KCk7CiAgICAgICAgIGVuY29kZXIgPDwg
cmVzb3VyY2VSZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpOwogICAgIH0KKyAgICBSZXNvdXJj
ZUxvYWRUaW1pbmcqIHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCk7CisgICAgYm9vbCBoYXNSZXNvdXJjZUxvYWRUaW1pbmcgPSB0aW1pbmc7CisgICAgZW5jb2Rl
ciA8PCBoYXNSZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgaWYgKGhhc1Jlc291cmNlTG9hZFRpbWlu
ZykgeworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQ7CisgICAg
ICAgIGVuY29kZXIgPDwgdGltaW5nLT5kb21haW5Mb29rdXBFbmQ7CisgICAgICAgIGVuY29kZXIg
PDwgdGltaW5nLT5jb25uZWN0U3RhcnQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5jb25u
ZWN0RW5kOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+cmVxdWVzdFN0YXJ0OworICAgICAg
ICBlbmNvZGVyIDw8IHRpbWluZy0+cmVzcG9uc2VTdGFydDsKKyAgICAgICAgZW5jb2RlciA8PCB0
aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydDsKKyAgICB9CiB9CiAKIGJvb2wgQXJndW1lbnRD
b2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
UmVzb3VyY2VSZXNwb25zZSYgcmVzb3VyY2VSZXNwb25zZSkKQEAgLTc1NSw3ICs3NjcsMjMgQEAg
Ym9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICByZXNwb25zZS5zZXRTdWdnZXN0ZWRGaWxlbmFtZShzdWdnZXN0
ZWRGaWxlbmFtZSk7CiAgICAgfQotCisgICAgCisgICAgYm9vbCBoYXNSZXNvdXJjZUxvYWRUaW1p
bmc7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNSZXNvdXJjZUxvYWRUaW1pbmcpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGhhc1Jlc291cmNlTG9hZFRpbWluZykgeworICAg
ICAgICByZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpj
cmVhdGUoKSk7CisgICAgICAgIFJlc291cmNlTG9hZFRpbWluZyogdGltaW5nID0gcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGltaW5n
LT5kb21haW5Mb29rdXBTdGFydCkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZSh0aW1p
bmctPmRvbWFpbkxvb2t1cEVuZCkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZSh0aW1p
bmctPmNvbm5lY3RTdGFydCkKKyAgICAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmct
PmNvbm5lY3RFbmQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5nLT5yZXF1
ZXN0U3RhcnQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUodGltaW5nLT5yZXNwb25z
ZVN0YXJ0KQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKHRpbWluZy0+c2VjdXJlQ29u
bmVjdGlvblN0YXJ0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCiAg
ICAgcmVzb3VyY2VSZXNwb25zZSA9IHJlc3BvbnNlOwogCiAgICAgcmV0dXJuIHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231298</attachid>
            <date>2014-05-12 08:50:02 -0700</date>
            <delta_ts>2014-05-12 13:56:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140512084940.patch</filename>
            <type>text/plain</type>
            <size>46691</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODYyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4IEBACisyMDE0LTA1LTEyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
b24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRkZWQgbGlua2Vy
IHN5bWJvbHMgZm9yIFJlc291cmNlTG9hZFRpbWluZy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnM6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGltaW5nLmNwcC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpi
dWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL05ldHdv
cmsuanNvbjoKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZVRpbWluZyBzdHJ1Y3R1cmUuCisgICAg
ICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6CisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICAgRGVsZXRlZCB1bnVzZWQgc2V0TmF2aWdh
dGlvblN0YXJ0IGZ1bmN0aW9uLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAg
ICAgICBVcGRhdGVkIHNwZWMgVVJMLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
Ojpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZUVuZCk6CisgICAgICAg
IFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJpYWJsZSBuYW1lcy4KKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlU3RhcnQpOgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oOgorICAgICAgICAqIHBh
Z2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6CisgICAgICAgIERlbGV0ZWQgcmVzcG9u
c2VTdGFydCBiZWNhdXNlIGl0IGlzIG5vdCBpbiB0aGUgc3BlYy4KKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5n
Ojpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWlu
Zzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5n
Ojpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnNl
Y3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWlu
Zzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpy
ZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZUxvYWRUaW1pbmcgbWVtYmVy
IHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnJl
c291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUpOgorICAgICAgICBVc2UgbmF2aWdhdGlv
blN0YXJ0IGFzIGJhc2UgZm9yIHJlc291cmNlIGxvYWQgdGltZXMuCisgICAgICAgICogcGFnZS9Q
ZXJmb3JtYW5jZVRpbWluZy5pZGw6CisgICAgICAgIFVwZGF0ZWQgc3BlYyBVUkwuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oOgorICAgICAgICBSZW1vdmVkIHVudXNl
ZCBjbGFzcyBkZWNsYXJhdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5oOgorICAgICAgICBNb3ZlZCBzb3VwIHJlcXVlc3QgdGltZSBmcm9tIFJlc291cmNl
TG9hZFRpbWluZyB0byBSZXNvdXJjZUhhbmRsZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlTG9hZFRpbWluZy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZFRpbWluZzo6ZGVlcENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6UmVz
b3VyY2VMb2FkVGltaW5nKToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZUxvYWRUaW1pbmcgbWVt
YmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZU5TVVJMQ29ubmVjdGlvbik6CisgICAgICAgIENvbGxlY3QgdGltaW5nIGRhdGEuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6CisgICAg
ICAgIFNhdmUgdGltaW5nIGRhdGEgdG8gYSBSZXNvdXJjZUxvYWRUaW1pbmcgb24gdGhlIFJlc291
cmNlUmVzcG9uc2UuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFkZXJzQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6bWls
aXNlY29uZHNTaW5jZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmRpZFN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpuZXR3b3JrRXZlbnRDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3VwTWVzc2FnZUZvckhhbmRsZUFuZFJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNlbmRQZW5kaW5nUmVxdWVz
dCk6CisgICAgICAgIFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJpYWJsZSBu
YW1lcy4KKyAgICAgICAgKFdlYkNvcmU6Ondyb3RlQm9keUNhbGxiYWNrKTogRGVsZXRlZC4KKwog
MjAxNC0wNS0xMiAgUmFkdSBTdGF2aWxhICA8c3RhdmlsYUBhZG9iZS5jb20+CiAKICAgICAgICAg
SW52YWxpZCBpbmZvcm1hdGlvbiByZW1haW5pbmcgaW4gbGluZVRvUmVnaW9uIG1hcCBvZiBSZW5k
ZXJGbG93VGhyZWFkLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE2ODYyMSkK
KysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMTkx
LDcgKzIxOTEsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUVycm9yQmFzZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuY3BwCi0gICAg
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuY3BwCiAgICAgcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5k
bGVCYXNlLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDE2ODYyMSkKKysr
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0zMzQ5LDMg
KzMzNDksOSBAQCBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMThjYXB0aW9uUHJlZmVyZW5jCiAjaWYg
RU5BQkxFKFZJRVdfTU9ERV9DU1NfTUVESUEpCiBfX1pON1dlYkNvcmU0UGFnZTExc2V0Vmlld01v
ZGVFTlMwXzhWaWV3TW9kZUUKICNlbmRpZgorCisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCitfX1pO
N1dlYkNvcmUxOFJlc291cmNlTG9hZFRpbWluZ0MxRXYKK19fWk43V2ViQ29yZTIwUmVzb3VyY2VS
ZXNwb25zZUJhc2UyMXNldFJlc291cmNlTG9hZFRpbWluZ0VOM1dURjEwUGFzc1JlZlB0cklOU18x
OFJlc291cmNlTG9hZFRpbWluZ0VFRQorX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJh
c2UxOHJlc291cmNlTG9hZFRpbWluZ0V2CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkocmV2aXNpb24gMTY4NjIxKQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtODQwMSw3ICs4NDAxLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXG5ldHdvcmtcUmVzb3VyY2VFcnJvckJhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccGxhdGZvcm1cbmV0d29ya1xSZXNvdXJjZUhhbmRsZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJlc291cmNlSGFuZGxlQ2xp
ZW50LmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtc
UmVzb3VyY2VMb2FkVGltaW5nLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXG5ldHdvcmtcUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFJlc291cmNlUmVzcG9uc2VCYXNlLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcU29ja2V0U3Ry
ZWFtRXJyb3JCYXNlLmNwcCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE2ODYyMSkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cwkod29ya2luZyBjb3B5KQpAQCAtMTgyMSw5ICsxODIxLDYgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcUmVzb3VyY2VIYW5kbGVDbGllbnQuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+cGxhdGZvcm1cbmV0d29yazwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cbmV0d29ya1xSZXNvdXJjZUxvYWRU
aW1pbmcuY3BwIj4KLSAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cbmV0d29yazwvRmlsdGVyPgotICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cbmV0d29y
a1xSZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXG5ldHdv
cms8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2ODYyMSkKKysr
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMjk3OSw3ICsyOTc5LDYgQEAKIAkJODVGRjMxNUEwQUFGQkZDQjAwMzc0RjM4
IC8qIERPTUtleWJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50
LmggKi87IH07CiAJCTg1RkYzMTVCMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVGRjMx
NTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi87IH07CiAJCTg2MUMy
RUE0MTNGQjRGREQwMDA2MkFCQiAvKiBEb2N1bWVudExvYWRUaW1pbmcuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYxQzJFQTMxM0ZCNEZERDAwMDYy
QUJCIC8qIERvY3VtZW50TG9hZFRpbWluZy5jcHAgKi87IH07Ci0JCTg2MUMyRUE2MTNGQjRGRkYw
MDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYxQzJFQTUxM0ZCNEZGRjAwMDYyQUJCIC8qIFJlc291
cmNlTG9hZFRpbWluZy5jcHAgKi87IH07CiAJCTg2MkYxMjlFMThDMTU3NkYwMDVDNTRBRiAvKiBD
b3VudGVkVXNlckFjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NjJGMTI5RDE4QzE1NzJDMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2
MkYxMkEwMThDMUREMDIwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0aXZpdHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MkYxMjlGMThDMURDRTQwMDVD
NTRBRiAvKiBIeXN0ZXJlc2lzQWN0aXZpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjUxMkVERTE1NEEyQUVGMDBBOTA0MjYgLyogUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NjUxMkVEQjE1NEEyQUVFMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZy5jcHAgKi87IH07CkBAIC05OTkwLDcgKzk5ODksNiBAQAogCQk4NUZGMzE1ODBB
QUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4NUZGMzE1OTBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01LZXlib2FyZEV2ZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjFDMkVBMzEzRkI0RkREMDAwNjJB
QkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERvY3VtZW50TG9hZFRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTg2MUMyRUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzb3VyY2VMb2FkVGltaW5n
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODYyRjEyOUQxOEMxNTcyQzAwNUM1
NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ291bnRlZFVzZXJBY3Rpdml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEh5c3RlcmVzaXNBY3Rpdml0eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4NjUxMkVEQjE1NEEyQUVFMDBBOTA0MjYgLyogUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE2MTEwLDcgKzE2MTA4LDYgQEAKIAkJCQk1MTRDNzY2NjBDRTkyM0ExMDA3RUYz
Q0QgLyogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oICovLAogCQkJCTUxRTQxNDMyMTZBNjU5NTEw
MEM2MzNDNyAvKiBSZXNvdXJjZUhhbmRsZVR5cGVzLmggKi8sCiAJCQkJRTQyOTVGQTMxMkIwNjE0
RTAwRDFBQ0UwIC8qIFJlc291cmNlTG9hZFByaW9yaXR5LmggKi8sCi0JCQkJODYxQzJFQTUxM0ZC
NEZGRjAwMDYyQUJCIC8qIFJlc291cmNlTG9hZFRpbWluZy5jcHAgKi8sCiAJCQkJOEE4MUJGODQx
MURDRkQ5MDAwREEyQjk4IC8qIFJlc291cmNlTG9hZFRpbWluZy5oICovLAogCQkJCTUxNEM3NjY3
MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCAqLywKIAkJCQk1MTRD
NzY2ODBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0QmFzZS5oICovLApAQCAtMjg4
MzgsNyArMjg4MzUsNiBAQAogCQkJCTUxQUEzRjZGMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJj
ZUxvYWRlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTk3M0UzMjU2MTA4ODNCN0MwMDVCQzQ5
MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEMENFNThG
ODEyNUU0Q0MyMDBGM0YxOTkgLyogUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTg2MUMyRUE2MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0Qzc2N0MwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291
cmNlUmVxdWVzdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0VFNjg0NkUxMkQyNkUzODAw
RTc5NDE1IC8qIFJlc291cmNlUmVxdWVzdENGTmV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
NEM3NjUzMENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RNYWMubW0gaW4gU291cmNl
cyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAJKHJldmlzaW9uIDE2ODYyMSkKKysrIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAz
LDE4ICsyMDMsMTQgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZAog
c3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3Vy
Y2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYg
dGltaW5nLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQogewogICAgIHJldHVybiBJbnNwZWN0b3I6
OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNvdXJjZVRpbWluZzo6Y3JlYXRlKCkKLSAgICAgICAg
LnNldFJlcXVlc3RUaW1lKGxvYWRlci0+dGltaW5nKCktPm1vbm90b25pY1RpbWVUb1BzZXVkb1dh
bGxUaW1lKHRpbWluZy5jb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZSgwKSkp
Ci0gICAgICAgIC5zZXRQcm94eVN0YXJ0KHRpbWluZy5wcm94eVN0YXJ0KQotICAgICAgICAuc2V0
UHJveHlFbmQodGltaW5nLnByb3h5RW5kKQotICAgICAgICAuc2V0RG5zU3RhcnQodGltaW5nLmRu
c1N0YXJ0KQotICAgICAgICAuc2V0RG5zRW5kKHRpbWluZy5kbnNFbmQpCisgICAgICAgIC5zZXRO
YXZpZ2F0aW9uU3RhcnQobG9hZGVyLT50aW1pbmcoKS0+bmF2aWdhdGlvblN0YXJ0KCkpCisgICAg
ICAgIC5zZXREb21haW5Mb29rdXBTdGFydCh0aW1pbmcuZG9tYWluTG9va3VwU3RhcnQpCisgICAg
ICAgIC5zZXREb21haW5Mb29rdXBFbmQodGltaW5nLmRvbWFpbkxvb2t1cEVuZCkKICAgICAgICAg
LnNldENvbm5lY3RTdGFydCh0aW1pbmcuY29ubmVjdFN0YXJ0KQogICAgICAgICAuc2V0Q29ubmVj
dEVuZCh0aW1pbmcuY29ubmVjdEVuZCkKLSAgICAgICAgLnNldFNzbFN0YXJ0KHRpbWluZy5zc2xT
dGFydCkKLSAgICAgICAgLnNldFNzbEVuZCh0aW1pbmcuc3NsRW5kKQotICAgICAgICAuc2V0U2Vu
ZFN0YXJ0KHRpbWluZy5zZW5kU3RhcnQpCi0gICAgICAgIC5zZXRTZW5kRW5kKHRpbWluZy5zZW5k
RW5kKQotICAgICAgICAuc2V0UmVjZWl2ZUhlYWRlcnNFbmQodGltaW5nLnJlY2VpdmVIZWFkZXJz
RW5kKQorICAgICAgICAuc2V0U2VjdXJlQ29ubmVjdGlvblN0YXJ0KHRpbWluZy5zZWN1cmVDb25u
ZWN0aW9uU3RhcnQpCisgICAgICAgIC5zZXRSZXF1ZXN0U3RhcnQodGltaW5nLnJlcXVlc3RTdGFy
dCkKKyAgICAgICAgLnNldFJlc3BvbnNlU3RhcnQodGltaW5nLnJlc3BvbnNlU3RhcnQpCiAgICAg
ICAgIC5yZWxlYXNlKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9OZXR3b3JrLmpzb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L3Byb3RvY29sL05ldHdvcmsuanNvbgkocmV2aXNpb24gMTY4NjIxKQorKysgU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMzIs
MTggKzMyLDE0IEBACiAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIlRpbWluZyBpbmZvcm1hdGlvbiBmb3IgdGhlIHJlcXVlc3QuIiwKICAg
ICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVx
dWVzdFRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiVGltaW5nJ3MgcmVx
dWVzdFRpbWUgaXMgYSBiYXNlbGluZSBpbiBzZWNvbmRzLCB3aGlsZSB0aGUgb3RoZXIgbnVtYmVy
cyBhcmUgdGlja3MgaW4gbWlsbGlzZWNvbmRzIHJlbGF0aXZlbHkgdG8gdGhpcyByZXF1ZXN0VGlt
ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm94eVN0YXJ0IiwgInR5cGUiOiAi
bnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgcmVzb2x2aW5nIHByb3h5LiIgfSwKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3h5RW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRl
c2NyaXB0aW9uIjogIkZpbmlzaGVkIHJlc29sdmluZyBwcm94eS4iIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJkbnNTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6
ICJTdGFydGVkIEROUyBhZGRyZXNzIHJlc29sdmUuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiZG5zRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVk
IEROUyBhZGRyZXNzIHJlc29sdmUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmF2
aWdhdGlvblN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRpbWluZydz
IG5hdmlnYXRpb25TdGFydCBpcyBhIGJhc2VsaW5lIGluIHNlY29uZHMsIHdoaWxlIHRoZSBvdGhl
ciBudW1iZXJzIGFyZSB0aWNrcyBpbiBtaWxsaXNlY29uZHMgcmVsYXRpdmVseSB0byB0aGlzIG5h
dmlnYXRpb25TdGFydC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb21haW5Mb29r
dXBTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIEROUyBh
ZGRyZXNzIHJlc29sdmUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9tYWluTG9v
a3VwRW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIEROUyBh
ZGRyZXNzIHJlc29sdmUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29ubmVjdFN0
YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgY29ubmVjdGlu
ZyB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29u
bmVjdEVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJDb25uZWN0ZWQgdG8g
dGhlIHJlbW90ZSBob3N0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNzbFN0YXJ0
IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgU1NMIGhhbmRzaGFr
ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzc2xFbmQiLCAidHlwZSI6ICJudW1i
ZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgU1NMIGhhbmRzaGFrZS4iIH0sCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJzZW5kU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3Jp
cHRpb24iOiAiU3RhcnRlZCBzZW5kaW5nIHJlcXVlc3QuIiB9LAotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAic2VuZEVuZCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5p
c2hlZCBzZW5kaW5nIHJlcXVlc3QuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVj
ZWl2ZUhlYWRlcnNFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNo
ZWQgcmVjZWl2aW5nIHJlc3BvbnNlIGhlYWRlcnMuIiB9CisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzZWN1cmVDb25uZWN0aW9uU3RhcnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRp
b24iOiAiU3RhcnRlZCBTU0wgaGFuZHNoYWtlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInJlcXVlc3RTdGFydCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFy
dGVkIHNlbmRpbmcgcmVxdWVzdC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNw
b25zZVN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgcmVj
ZWl2aW5nIHJlc3BvbnNlIGhlYWRlcnMuIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAg
ICAgICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1p
bmcuY3BwCShyZXZpc2lvbiAxNjg2MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYsMTIgKzc2LDYgQEAgdm9pZCBE
b2N1bWVudExvYWRUaW1pbmc6Om1hcmtOYXZpZ2F0aW9uUwogICAgIG1fcmVmZXJlbmNlV2FsbFRp
bWUgPSBjdXJyZW50VGltZSgpOwogfQogCi12b2lkIERvY3VtZW50TG9hZFRpbWluZzo6c2V0TmF2
aWdhdGlvblN0YXJ0KGRvdWJsZSBuYXZpZ2F0aW9uU3RhcnQpCi17Ci0gICAgQVNTRVJUKG1fcmVm
ZXJlbmNlTW9ub3RvbmljVGltZSAmJiBtX3JlZmVyZW5jZVdhbGxUaW1lKTsKLSAgICBtX25hdmln
YXRpb25TdGFydCA9IG5hdmlnYXRpb25TdGFydDsKLX0KLQogdm9pZCBEb2N1bWVudExvYWRUaW1p
bmc6OmFkZFJlZGlyZWN0KGNvbnN0IFVSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVk
aXJlY3RlZFVybCkKIHsKICAgICBtX3JlZGlyZWN0Q291bnQrKzsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgJKHJldmlzaW9uIDE2ODYyMSkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaAkod29ya2luZyBjb3B5KQpA
QCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAgICAgZG91YmxlIG1vbm90b25pY1RpbWVUb1BzZXVk
b1dhbGxUaW1lKGRvdWJsZSkgY29uc3Q7CiAKICAgICB2b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQo
KTsKLSAgICB2b2lkIHNldE5hdmlnYXRpb25TdGFydChkb3VibGUpOwogICAgIHZvaWQgYWRkUmVk
aXJlY3QoY29uc3QgVVJMJiByZWRpcmVjdGluZ1VybCwgY29uc3QgVVJMJiByZWRpcmVjdGVkVXJs
KTsKIAogICAgIHZvaWQgbWFya1VubG9hZEV2ZW50U3RhcnQoKSB7IG1fdW5sb2FkRXZlbnRTdGFy
dCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlLmlkbAkocmV2aXNpb24gMTY4NjIxKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotLy8gU2VlOiBodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9X
ZWJUaW1pbmcvCisvLyBTZWU6IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvd2VicGVyZi9yYXctZmls
ZS90aXAvc3BlY3MvTmF2aWdhdGlvblRpbWluZy9PdmVydmlldy5odG1sCiBbCiAgICAgQ29uZGl0
aW9uYWw9V0VCX1RJTUlORywKICAgICBFdmVudFRhcmdldCwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4
NjIxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDEwICsxMjAsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmc6OmRvbWFpbgogICAgIGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQog
ICAgICAgICByZXR1cm4gMC4wOwogCi0gICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5z
U3RhcnQgPCAwKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cFN0
YXJ0IDwgMCkKICAgICAgICAgcmV0dXJuIGZldGNoU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNv
dXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5kbnNTdGFydCk7CisgICAg
cmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPmRvbWFp
bkxvb2t1cFN0YXJ0KTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRv
bWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xMzEsMTAgKzEzMSwxMCBAQCBkb3VibGUgUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWluCiAgICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFp
bHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5n
LT5kbnNFbmQgPCAwKQorICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1
cEVuZCA8IDApCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBTdGFydCgpOwogCi0gICAgcmV0
dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPmRuc0VuZCk7
CisgICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmct
PmRvbWFpbkxvb2t1cEVuZCk7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
Ojpjb25uZWN0U3RhcnQoKSBjb25zdApAQCAtMTQ4LDggKzE0OCw4IEBAIGRvdWJsZSBQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpjb25uZWMKIAogICAgIC8vIGNvbm5lY3RTdGFydCBpbmNsdWRl
cyBhbnkgRE5TIHRpbWUsIHNvIHdlIG1heSBuZWVkIHRvIHRyaW0gdGhhdCBvZmYuCiAgICAgaW50
IGNvbm5lY3RTdGFydCA9IG1fdGltaW5nLT5jb25uZWN0U3RhcnQ7Ci0gICAgaWYgKG1fdGltaW5n
LT5kbnNFbmQgPj0gMCkKLSAgICAgICAgY29ubmVjdFN0YXJ0ID0gbV90aW1pbmctPmRuc0VuZDsK
KyAgICBpZiAobV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA+PSAwKQorICAgICAgICBjb25uZWN0
U3RhcnQgPSBtX3RpbWluZy0+ZG9tYWluTG9va3VwRW5kOwogCiAgICAgcmV0dXJuIHJlc291cmNl
VGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoY29ubmVjdFN0YXJ0KTsKIH0KQEAgLTE3MSwxMCAr
MTcxLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpzZWN1cmUKICAgICBp
ZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKICAgICAgICAgcmV0dXJuIDAuMDsKIAotICAgIGlm
ICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNzbFN0YXJ0IDwgMCkgLy8gU2VjdXJlIGNvbm5lY3Rp
b24gbm90IG5lZ290aWF0ZWQuCisgICAgaWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+c2VjdXJl
Q29ubmVjdGlvblN0YXJ0IDwgMCkgLy8gU2VjdXJlIGNvbm5lY3Rpb24gbm90IG5lZ290aWF0ZWQu
CiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVu
dE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+c3NsU3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZVRp
bWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1fdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQp
OwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0YXJ0KCkg
Y29uc3QKQEAgLTE4NSwyNSArMTg1LDExIEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nOjpyZXF1ZXMKICAgICBpZiAoIW1fdGltaW5nKQogICAgICAgICByZXR1cm4gY29ubmVjdEVu
ZCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90
aW1pbmctPnNlbmRTdGFydCk7Ci19Ci0KLWRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
OjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKLXsKLSAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWls
cykKLSAgICAgICAgcmV0dXJuIDAuMDsKLQotICAgIGlmICghbV90aW1pbmcpCi0gICAgICAgIHJl
dHVybiByZXF1ZXN0U3RhcnQoKTsKLSAgICAvLyBGSVhNRTogVGhpcyBudW1iZXIgaXNuJ3QgZXhh
Y3RseSBjb3JyZWN0LiBTZWUgdGhlIG5vdGVzIGluIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25z
ZVN0YXJ0KCkuCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMo
bV90aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5kKTsKKyAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9E
b2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+cmVxdWVzdFN0YXJ0KTsKIH0KIAogZG91Ymxl
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKIHsKLSAgICBp
ZiAoIW1fZmluaXNoVGltZSkKLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlU3RhcnQoKTsKLQogICAg
IHJldHVybiBtb25vdG9uaWNUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3JlcXVlc3RpbmdE
b2N1bWVudC5nZXQoKSwgbV9maW5pc2hUaW1lKTsKIH0KIApAQCAtMjExLDcgKzE5Nyw3IEBAIGRv
dWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNvdXIKIHsKICAgICBpZiAoIWRlbHRh
TWlsbGlzZWNvbmRzKQogICAgICAgICByZXR1cm4gMC4wOwotICAgIHJldHVybiBtb25vdG9uaWNU
aW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3JlcXVlc3RpbmdEb2N1bWVudC5nZXQoKSwgbV90
aW1pbmctPnJlcXVlc3RUaW1lKSArIGRlbHRhTWlsbGlzZWNvbmRzOworICAgIHJldHVybiBtb25v
dG9uaWNUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3JlcXVlc3RpbmdEb2N1bWVudC5nZXQo
KSwgbV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0KCktPmxvYWRlcigpLT50aW1pbmcoKS0+bmF2aWdh
dGlvblN0YXJ0KCkpICsgZGVsdGFNaWxsaXNlY29uZHM7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5oCShyZXZpc2lvbiAxNjg2MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNiBAQCBw
dWJsaWM6CiAgICAgZG91YmxlIGNvbm5lY3RFbmQoKSBjb25zdDsKICAgICBkb3VibGUgc2VjdXJl
Q29ubmVjdGlvblN0YXJ0KCkgY29uc3Q7CiAgICAgZG91YmxlIHJlcXVlc3RTdGFydCgpIGNvbnN0
OwotICAgIGRvdWJsZSByZXNwb25zZVN0YXJ0KCkgY29uc3Q7CiAgICAgZG91YmxlIHJlc3BvbnNl
RW5kKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNSZXNvdXJjZSgpIHsgcmV0dXJuIHRy
dWU7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nLmlkbAkocmV2aXNpb24gMTY4NjIxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMs
NSBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIGNvbm5lY3RF
bmQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgc2VjdXJlQ29u
bmVjdGlvblN0YXJ0OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91Ymxl
IHJlcXVlc3RTdGFydDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSByZXNwb25zZVN0YXJ0OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91
YmxlIHJlc3BvbnNlRW5kOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VUaW1pbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VUaW1pbmcuY3BwCShyZXZpc2lvbiAxNjg2MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDExICsxMzAsMTEgQEAg
dW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpkbwogCiAgICAgLy8gVGhpcyB3
aWxsIGJlIC0xIHdoZW4gYSBETlMgcmVxdWVzdCBpcyBub3QgcGVyZm9ybWVkLgogICAgIC8vIFJh
dGhlciB0aGFuIGV4cG9zaW5nIGEgc3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBETlMs
IHdlICJiYWNrZmlsbCIgd2l0aCBmZXRjaFN0YXJ0LgotICAgIGludCBkbnNTdGFydCA9IHRpbWlu
Zy0+ZG5zU3RhcnQ7Ci0gICAgaWYgKGRuc1N0YXJ0IDwgMCkKKyAgICBpbnQgZG9tYWluTG9va3Vw
U3RhcnQgPSB0aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0OworICAgIGlmIChkb21haW5Mb29rdXBT
dGFydCA8IDApCiAgICAgICAgIHJldHVybiBmZXRjaFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVz
b3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShkbnNTdGFydCk7CisgICAgcmV0dXJuIHJl
c291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoZG9tYWluTG9va3VwU3RhcnQpOwogfQog
CiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgp
IGNvbnN0CkBAIC0xNDUsMTEgKzE0NSwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFu
Y2VUaW1pbmc6OmRvCiAKICAgICAvLyBUaGlzIHdpbGwgYmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0
IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAgLy8gUmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFs
IHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIEROUywgd2UgImJhY2tmaWxsIiB3aXRoIGRvbWFpbkxv
b2t1cFN0YXJ0LgotICAgIGludCBkbnNFbmQgPSB0aW1pbmctPmRuc0VuZDsKLSAgICBpZiAoZG5z
RW5kIDwgMCkKKyAgICBpbnQgZG9tYWluTG9va3VwRW5kID0gdGltaW5nLT5kb21haW5Mb29rdXBF
bmQ7CisgICAgaWYgKGRvbWFpbkxvb2t1cEVuZCA8IDApCiAgICAgICAgIHJldHVybiBkb21haW5M
b29rdXBTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJz
b2x1dGUoZG5zRW5kKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNv
bHV0ZShkb21haW5Mb29rdXBFbmQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFu
Y2VUaW1pbmc6OmNvbm5lY3RTdGFydCgpIGNvbnN0CkBAIC0xNzAsOCArMTcwLDggQEAgdW5zaWdu
ZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpjbwogCiAgICAgLy8gUmVzb3VyY2VMb2Fk
VGltaW5nJ3MgY29ubmVjdCBwaGFzZSBpbmNsdWRlcyBETlMsIGhvd2V2ZXIgTmF2aWdhdGlvbiBU
aW1pbmcncwogICAgIC8vIGNvbm5lY3QgcGhhc2Ugc2hvdWxkIG5vdC4gU28gaWYgdGhlcmUgaXMg
RE5TIHRpbWUsIHRyaW0gaXQgZnJvbSB0aGUgc3RhcnQuCi0gICAgaWYgKHRpbWluZy0+ZG5zRW5k
ID49IDAgJiYgdGltaW5nLT5kbnNFbmQgPiBjb25uZWN0U3RhcnQpCi0gICAgICAgIGNvbm5lY3RT
dGFydCA9IHRpbWluZy0+ZG5zRW5kOworICAgIGlmICh0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA+
PSAwICYmIHRpbWluZy0+ZG9tYWluTG9va3VwRW5kID4gY29ubmVjdFN0YXJ0KQorICAgICAgICBj
b25uZWN0U3RhcnQgPSB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZDsKIAogICAgIHJldHVybiByZXNv
dXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGNvbm5lY3RTdGFydCk7CiB9CkBAIC0yMDUs
MTEgKzIwNSwxMSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnNlCiAg
ICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaW50IHNzbFN0YXJ0ID0g
dGltaW5nLT5zc2xTdGFydDsKLSAgICBpZiAoc3NsU3RhcnQgPCAwKQorICAgIGludCBzZWN1cmVD
b25uZWN0aW9uU3RhcnQgPSB0aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydDsKKyAgICBpZiAo
c2VjdXJlQ29ubmVjdGlvblN0YXJ0IDwgMCkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1
cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShzc2xTdGFydCk7CisgICAgcmV0
dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoc2VjdXJlQ29ubmVjdGlvblN0
YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXF1ZXN0
U3RhcnQoKSBjb25zdApAQCAtMjE4LDggKzIxOCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJm
b3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIGNvbm5l
Y3RFbmQoKTsKIAotICAgIEFTU0VSVCh0aW1pbmctPnNlbmRTdGFydCA+PSAwKTsKLSAgICByZXR1
cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZSh0aW1pbmctPnNlbmRTdGFydCk7
CisgICAgQVNTRVJUKHRpbWluZy0+cmVxdWVzdFN0YXJ0ID49IDApOworICAgIHJldHVybiByZXNv
dXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKHRpbWluZy0+cmVxdWVzdFN0YXJ0KTsKIH0K
IAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkg
Y29uc3QKQEAgLTIyOCwxNCArMjI4LDggQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNl
VGltaW5nOjpyZQogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gcmVxdWVzdFN0YXJ0
KCk7CiAKLSAgICAvLyBGSVhNRTogUmVzcG9uc2Ugc3RhcnQgbmVlZHMgdG8gYmUgdGhlIHRpbWUg
b2YgdGhlIGZpcnN0IHJlY2VpdmVkIGJ5dGUuCi0gICAgLy8gSG93ZXZlciwgdGhlIFJlc291cmNl
TG9hZFRpbWluZyBBUEkgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgdGhlIHRpbWUKLSAgICAvLyB0
aGUgbGFzdCBoZWFkZXIgYnl0ZSB3YXMgcmVjZWl2ZWQuIEZvciBtYW55IHJlc3BvbnNlcyB3aXRo
IHJlYXNvbmFibGUKLSAgICAvLyBzaXplZCBjb29raWVzLCB0aGUgSFRUUCBoZWFkZXJzIGZpdCBp
bnRvIGEgc2luZ2xlIHBhY2tldCBzbyB0aGlzIHRpbWUKLSAgICAvLyBpcyBiYXNpY2FsbHkgZXF1
aXZhbGVudC4gQnV0IGZvciBzb21lIHJlc3BvbnNlcywgcGFydGljdWxhcmx5IHRob3NlIHdpdGgK
LSAgICAvLyBoZWFkZXJzIGxhcmdlciB0aGFuIGEgc2luZ2xlIHBhY2tldCwgdGhpcyB0aW1lIHdp
bGwgYmUgdG9vIGxhdGUuCi0gICAgQVNTRVJUKHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQgPj0g
MCk7Ci0gICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5n
LT5yZWNlaXZlSGVhZGVyc0VuZCk7CisgICAgQVNTRVJUKHRpbWluZy0+cmVzcG9uc2VTdGFydCA+
PSAwKTsKKyAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZSh0aW1p
bmctPnJlc3BvbnNlU3RhcnQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnJlc3BvbnNlRW5kKCkgY29uc3QKQEAgLTM1MSw5ICszNDUsNyBAQCBSZXNvdXJjZUxv
YWRUaW1pbmcqIFBlcmZvcm1hbmNlVGltaW5nOjpyCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9y
bWFuY2VUaW1pbmc6OnJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoaW50IHJlbGF0
aXZlTWlsbGlzZWNvbmRzKSBjb25zdAogewogICAgIEFTU0VSVChyZWxhdGl2ZU1pbGxpc2Vjb25k
cyA+PSAwKTsKLSAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHJlc291cmNlVGltaW5nID0gcmVzb3Vy
Y2VMb2FkVGltaW5nKCk7Ci0gICAgQVNTRVJUKHJlc291cmNlVGltaW5nKTsKLSAgICByZXR1cm4g
bW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhyZXNvdXJjZVRpbWluZy0+Y29udmVy
dFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1RpbWUocmVsYXRpdmVNaWxsaXNlY29uZHMpKTsK
KyAgICByZXR1cm4gbmF2aWdhdGlvblN0YXJ0KCkgKyByZWxhdGl2ZU1pbGxpc2Vjb25kczsKIH0K
IAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjptb25vdG9uaWNUaW1lVG9J
bnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJsZSBtb25vdG9uaWNTZWNvbmRzKSBjb25zdApJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwJKHJldmlzaW9uIDE2ODYy
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS8vIFNlZTog
aHR0cDovL2Rldi53My5vcmcvMjAwNi93ZWJhcGkvV2ViVGltaW5nLworLy8gU2VlOiBodHRwczov
L2R2Y3MudzMub3JnL2hnL3dlYnBlcmYvcmF3LWZpbGUvdGlwL3NwZWNzL05hdmlnYXRpb25UaW1p
bmcvT3ZlcnZpZXcuaHRtbAogWwogICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiBdIGludGVy
ZmFjZSBQZXJmb3JtYW5jZVRpbWluZyB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBQYXJzZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCShyZXZpc2lvbiAxNjg2MjEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDkgKzM3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVFRQSGVhZGVyTWFw
OwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7Ci0KIGVudW0gQ29udGVudERpc3Bvc2l0aW9u
VHlwZSB7CiAgICAgQ29udGVudERpc3Bvc2l0aW9uTm9uZSwKICAgICBDb250ZW50RGlzcG9zaXRp
b25JbmxpbmUsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oCShyZXZpc2lvbiAxNjg2MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5MCw2ICsx
OTAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0SG9zdEFsbG93c0FueUhUVFBTQ2Vy
dGlmaWNhdGUoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIHZvaWQgc2V0Q2xpZW50Q2VydGlm
aWNhdGUoY29uc3QgU3RyaW5nJiBob3N0LCBHVGxzQ2VydGlmaWNhdGUqKTsKICAgICBzdGF0aWMg
dm9pZCBzZXRJZ25vcmVTU0xFcnJvcnMoYm9vbCk7CisgICAgZG91YmxlIG1fcmVxdWVzdFRpbWU7
CiAjZW5kaWYKIAogICAgIC8vIFVzZWQgdG8gd29yayBhcm91bmQgdGhlIGZhY3QgdGhhdCB5b3Ug
ZG9uJ3QgZ2V0IGFueSBtb3JlIE5TVVJMQ29ubmVjdGlvbiBjYWxsYmFja3MgdW50aWwgeW91IHJl
dHVybiBmcm9tIHRoZSBvbmUgeW91J3JlIGluLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAkocmV2aXNpb24g
MTY4NjIxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRU
aW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJSZXNvdXJjZUxvYWRUaW1pbmcuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1k
b3VibGUgUmVzb3VyY2VMb2FkVGltaW5nOjpjb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3Rv
bmljVGltZShpbnQgZGVsdGFNaWxsaXNlY29uZHMpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHJlcXVl
c3RUaW1lICsgZGVsdGFNaWxsaXNlY29uZHMgLyAxMDAwLjA7Ci19Ci0KLX0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcu
aAkocmV2aXNpb24gMTY4NjIxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUxvYWRUaW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNzYgKzQ0LDUwIEBAIHB1
YmxpYzoKICAgICBQYXNzUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gZGVlcENvcHkoKQogICAg
IHsKICAgICAgICAgUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4gdGltaW5nID0gY3JlYXRlKCk7
Ci0gICAgICAgIHRpbWluZy0+cmVxdWVzdFRpbWUgPSByZXF1ZXN0VGltZTsKLSAgICAgICAgdGlt
aW5nLT5wcm94eVN0YXJ0ID0gcHJveHlTdGFydDsKLSAgICAgICAgdGltaW5nLT5wcm94eUVuZCA9
IHByb3h5RW5kOwotICAgICAgICB0aW1pbmctPmRuc1N0YXJ0ID0gZG5zU3RhcnQ7Ci0gICAgICAg
IHRpbWluZy0+ZG5zRW5kID0gZG5zRW5kOworICAgICAgICB0aW1pbmctPmRvbWFpbkxvb2t1cFN0
YXJ0ID0gZG9tYWluTG9va3VwU3RhcnQ7CisgICAgICAgIHRpbWluZy0+ZG9tYWluTG9va3VwRW5k
ID0gZG9tYWluTG9va3VwRW5kOwogICAgICAgICB0aW1pbmctPmNvbm5lY3RTdGFydCA9IGNvbm5l
Y3RTdGFydDsKICAgICAgICAgdGltaW5nLT5jb25uZWN0RW5kID0gY29ubmVjdEVuZDsKLSAgICAg
ICAgdGltaW5nLT5zZW5kU3RhcnQgPSBzZW5kU3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+c2VuZEVu
ZCA9IHNlbmRFbmQ7Ci0gICAgICAgIHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQgPSByZWNlaXZl
SGVhZGVyc0VuZDsKLSAgICAgICAgdGltaW5nLT5zc2xTdGFydCA9IHNzbFN0YXJ0OwotICAgICAg
ICB0aW1pbmctPnNzbEVuZCA9IHNzbEVuZDsKKyAgICAgICAgdGltaW5nLT5yZXF1ZXN0U3RhcnQg
PSByZXF1ZXN0U3RhcnQ7CisgICAgICAgIHRpbWluZy0+cmVzcG9uc2VTdGFydCA9IHJlc3BvbnNl
U3RhcnQ7CisgICAgICAgIHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gc2VjdXJlQ29u
bmVjdGlvblN0YXJ0OwogICAgICAgICByZXR1cm4gdGltaW5nLnJlbGVhc2UoKTsKICAgICB9CiAK
ICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29u
c3QKICAgICB7Ci0gICAgICAgIHJldHVybiByZXF1ZXN0VGltZSA9PSBvdGhlci5yZXF1ZXN0VGlt
ZQotICAgICAgICAgICAgJiYgcHJveHlTdGFydCA9PSBvdGhlci5wcm94eVN0YXJ0Ci0gICAgICAg
ICAgICAmJiBwcm94eUVuZCA9PSBvdGhlci5wcm94eUVuZAotICAgICAgICAgICAgJiYgZG5zU3Rh
cnQgPT0gb3RoZXIuZG5zU3RhcnQKLSAgICAgICAgICAgICYmIGRuc0VuZCA9PSBvdGhlci5kbnNF
bmQKKyAgICAgICAgcmV0dXJuIGRvbWFpbkxvb2t1cFN0YXJ0ID09IG90aGVyLmRvbWFpbkxvb2t1
cFN0YXJ0CisgICAgICAgICAgICAmJiBkb21haW5Mb29rdXBFbmQgPT0gb3RoZXIuZG9tYWluTG9v
a3VwRW5kCiAgICAgICAgICAgICAmJiBjb25uZWN0U3RhcnQgPT0gb3RoZXIuY29ubmVjdFN0YXJ0
CiAgICAgICAgICAgICAmJiBjb25uZWN0RW5kID09IG90aGVyLmNvbm5lY3RFbmQKLSAgICAgICAg
ICAgICYmIHNlbmRTdGFydCA9PSBvdGhlci5zZW5kU3RhcnQKLSAgICAgICAgICAgICYmIHNlbmRF
bmQgPT0gb3RoZXIuc2VuZEVuZAotICAgICAgICAgICAgJiYgcmVjZWl2ZUhlYWRlcnNFbmQgPT0g
b3RoZXIucmVjZWl2ZUhlYWRlcnNFbmQKLSAgICAgICAgICAgICYmIHNzbFN0YXJ0ID09IG90aGVy
LnNzbFN0YXJ0Ci0gICAgICAgICAgICAmJiBzc2xFbmQgPT0gb3RoZXIuc3NsRW5kOworICAgICAg
ICAgICAgJiYgcmVxdWVzdFN0YXJ0ID09IG90aGVyLnJlcXVlc3RTdGFydAorICAgICAgICAgICAg
JiYgcmVzcG9uc2VTdGFydCA9PSBvdGhlci5yZXNwb25zZVN0YXJ0CisgICAgICAgICAgICAmJiBz
ZWN1cmVDb25uZWN0aW9uU3RhcnQgPT0gb3RoZXIuc2VjdXJlQ29ubmVjdGlvblN0YXJ0OwogICAg
IH0KIAogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVy
KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogICAgIH0K
LQotICAgIC8vIFdlIHdhbnQgdG8gcHJlc2VudCBhIHVuaWZpZWQgdGltZWxpbmUgdG8gSmF2YXNj
cmlwdC4gVXNpbmcgd2FsbHRpbWUgaXMgcHJvYmxlbWF0aWMsIGJlY2F1c2UgdGhlIGNsb2NrIG1h
eSBza2V3IHdoaWxlIHJlc291cmNlcwotICAgIC8vIGxvYWQuIFRvIHByZXZlbnQgdGhhdCBza2V3
LCB3ZSByZWNvcmQgYSBzaW5nbGUgcmVmZXJlbmNlIHdhbGx0aW1lIHdoZW4gcm9vdCBkb2N1bWVu
dCBuYXZpZ2F0aW9uIGJlZ2lucy4gQWxsIG90aGVyIHRpbWVzIGFyZQotICAgIC8vIHJlY29yZGVk
IHVzaW5nIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLiBXaGVuIGEgdGltZSBuZWVkcyB0
byBiZSBwcmVzZW50ZWQgdG8gSmF2YXNjcmlwdCwgd2UgYnVpbGQgYSBwc2V1ZG8td2FsbHRpbWUK
LSAgICAvLyB1c2luZyB0aGUgZm9sbG93aW5nIGVxdWF0aW9uOgotICAgIC8vICAgcHNldWRvIHRp
bWUgPSBkb2N1bWVudCB3YWxsIHJlZmVyZW5jZSArIChyZXNvdXJjZSByZXF1ZXN0IHRpbWUgLSBk
b2N1bWVudCBtb25vdG9uaWMgcmVmZXJlbmNlKSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4w
LgotICAgIGRvdWJsZSBjb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZShpbnQg
ZGVsdGFNaWxsaXNlY29uZHMpIGNvbnN0OwotCi0gICAgZG91YmxlIHJlcXVlc3RUaW1lOyAvLyBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSB3aGVuIHRoZSBwb3J0IHN0YXJ0ZWQgaGFuZGxp
bmcgdGhpcyByZXF1ZXN0LgotICAgIGludCBwcm94eVN0YXJ0OyAvLyBUaGUgcmVzdCBvZiB0aGVz
ZSBhcmUgbWlsbGlzZWNvbmQgZGVsdGFzLCB1c2luZyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKSwgZnJvbSByZXF1ZXN0VGltZS4KLSAgICBpbnQgcHJveHlFbmQ7Ci0gICAgaW50IGRuc1N0
YXJ0OwotICAgIGludCBkbnNFbmQ7CisgICAgCisgICAgLy8gVGhlc2UgYXJlIG1pbGxpc2Vjb25k
IGRlbHRhcyBmcm9tIHRoZSBuYXZpZ2F0aW9uIHN0YXJ0LgorICAgIGludCBkb21haW5Mb29rdXBT
dGFydDsKKyAgICBpbnQgZG9tYWluTG9va3VwRW5kOwogICAgIGludCBjb25uZWN0U3RhcnQ7CiAg
ICAgaW50IGNvbm5lY3RFbmQ7Ci0gICAgaW50IHNlbmRTdGFydDsKLSAgICBpbnQgc2VuZEVuZDsK
LSAgICBpbnQgcmVjZWl2ZUhlYWRlcnNFbmQ7Ci0gICAgaW50IHNzbFN0YXJ0OwotICAgIGludCBz
c2xFbmQ7Ci0KKyAgICBpbnQgcmVxdWVzdFN0YXJ0OworICAgIGludCByZXNwb25zZVN0YXJ0Owor
ICAgIGludCBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7CisgICAgCiBwcml2YXRlOgogICAgIFJlc291
cmNlTG9hZFRpbWluZygpCi0gICAgICAgIDogcmVxdWVzdFRpbWUoMCkKLSAgICAgICAgLCBwcm94
eVN0YXJ0KC0xKQotICAgICAgICAsIHByb3h5RW5kKC0xKQotICAgICAgICAsIGRuc1N0YXJ0KC0x
KQotICAgICAgICAsIGRuc0VuZCgtMSkKKyAgICAgICAgOiBkb21haW5Mb29rdXBTdGFydCgtMSkK
KyAgICAgICAgLCBkb21haW5Mb29rdXBFbmQoLTEpCiAgICAgICAgICwgY29ubmVjdFN0YXJ0KC0x
KQogICAgICAgICAsIGNvbm5lY3RFbmQoLTEpCi0gICAgICAgICwgc2VuZFN0YXJ0KDApCi0gICAg
ICAgICwgc2VuZEVuZCgwKQotICAgICAgICAsIHJlY2VpdmVIZWFkZXJzRW5kKDApCi0gICAgICAg
ICwgc3NsU3RhcnQoLTEpCi0gICAgICAgICwgc3NsRW5kKC0xKQorICAgICAgICAsIHJlcXVlc3RT
dGFydCgwKQorICAgICAgICAsIHJlc3BvbnNlU3RhcnQoMCkKKyAgICAgICAgLCBzZWN1cmVDb25u
ZWN0aW9uU3RhcnQoLTEpCiAgICAgewogICAgIH0KIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQko
cmV2aXNpb24gMTY4NjIxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDE0IEBACiAj
aW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAorI2lmIF9faGFzX2luY2x1ZGUoPEZvdW5kYXRpb24vTlNVUkxDb25uZWN0aW9uUHJpdmF0ZS5o
PikKKyNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxDb25uZWN0aW9uUHJpdmF0ZS5oPgorI2Vsc2UK
K0BpbnRlcmZhY2UgTlNVUkxDb25uZWN0aW9uIChUaW1pbmdEYXRhKQorKyAodm9pZClfc2V0Q29s
bGVjdHNUaW1pbmdEYXRhOihCT09MKWNvbGxlY3Q7CitAZW5kCisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKElPUykKICNpbXBvcnQgPENGTmV0d29yay9DRlVSTFJlcXVlc3QuaD4KIApAQCAtMjAwLDYg
KzIwOCw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGkKICAgICBj
b25zdCBib29sIHVzZXNDYWNoZSA9IHRydWU7CiAjZW5kaWYKICAgICBkLT5tX2Nvbm5lY3Rpb24g
PSBhZG9wdE5TKFtbTlNVUkxDb25uZWN0aW9uIGFsbG9jXSBfaW5pdFdpdGhSZXF1ZXN0Om5zUmVx
dWVzdCBkZWxlZ2F0ZTpkZWxlZ2F0ZSB1c2VzQ2FjaGU6dXNlc0NhY2hlIG1heENvbnRlbnRMZW5n
dGg6MCBzdGFydEltbWVkaWF0ZWx5Ok5PIGNvbm5lY3Rpb25Qcm9wZXJ0aWVzOnByb3BlcnR5RGlj
dGlvbmFyeV0pOworI2lmIEVOQUJMRShXRUJfVElNSU5HKQorICAgIFtOU1VSTENvbm5lY3Rpb24g
X3NldENvbGxlY3RzVGltaW5nRGF0YTpZRVNdOworI2VuZGlmCiB9CiAKIGJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHJldmlzaW9uIDE2ODYyMSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRs
ZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzks
MTQgQEAKICNpbXBvcnQgIldlYkNvcmVVUkxSZXNwb25zZS5oIgogI2ltcG9ydCA8d3RmL01haW5U
aHJlYWQuaD4KIAorI2lmIF9faGFzX2luY2x1ZGUoPENGTmV0d29yay9DRk5TVVJMQ29ubmVjdGlv
bi5oPikKKyNpbXBvcnQgPENGTmV0d29yay9DRk5TVVJMQ29ubmVjdGlvbi5oPgorI2Vsc2UKK0Bp
bnRlcmZhY2UgTlNVUkxDb25uZWN0aW9uIChUaW1pbmdEYXRhKQorLSAoTlNEaWN0aW9uYXJ5ICop
X3RpbWluZ0RhdGE7CitAZW5kCisjZW5kaWYKKwogQGludGVyZmFjZSBOU1VSTFJlcXVlc3QgKERl
dGFpbHMpCiAtIChpZClfcHJvcGVydHlGb3JLZXk6KE5TU3RyaW5nICopa2V5OwogQGVuZApAQCAt
MTkzLDcgKzIwMSw2IEBAIC0gKEJPT0wpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY28K
IC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNl
aXZlUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJl
YWQoKSk7Ci0gICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwogCiAgICAgTE9HKE5ldHdvcmss
ICJIYW5kbGUgJXAgZGVsZWdhdGUgY29ubmVjdGlvbjolcCBkaWRSZWNlaXZlUmVzcG9uc2U6JXAg
KEhUVFAgc3RhdHVzICVkLCByZXBvcnRlZCBNSU1FVHlwZSAnJXMnKSIsIG1faGFuZGxlLCBjb25u
ZWN0aW9uLCByLCBbciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHN0YXR1c0NvZGUpXSA/
IFsoaWQpciBzdGF0dXNDb2RlXSA6IDAsIFtbciBNSU1FVHlwZV0gVVRGOFN0cmluZ10pOwogCkBA
IC0yMTIsOCArMjE5LDM4IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICop
Y28KIAogICAgICAgICBpZiAoW21faGFuZGxlLT5maXJzdFJlcXVlc3QoKS5uc1VSTFJlcXVlc3Qo
RG9Ob3RVcGRhdGVIVFRQQm9keSkgX3Byb3BlcnR5Rm9yS2V5OkAiRm9yY2VIVE1MTUlNRVR5cGUi
XSkKICAgICAgICAgICAgIFtyIF9zZXRNSU1FVHlwZTpAInRleHQvaHRtbCJdOwotCi0gICAgICAg
IG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMobV9oYW5kbGUsIHIp
OworICAgICAgICAKKyAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlKHIp
OworI2lmIEVOQUJMRShXRUJfVElNSU5HKQorICAgICAgICBOU0RpY3Rpb25hcnkqIHRpbWluZ0Rh
dGEgPSBbY29ubmVjdGlvbiBfdGltaW5nRGF0YV07CisgICAgICAgIGlmICh0aW1pbmdEYXRhKSB7
CisgICAgICAgICAgICByZXNvdXJjZVJlc3BvbnNlLnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNv
dXJjZUxvYWRUaW1pbmc6OmNyZWF0ZSgpKTsKKyAgICAgICAgICAgIFJlc291cmNlTG9hZFRpbWlu
ZyogdGltaW5nID0gcmVzb3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgLy8gVGhpcyBpcyBub3QgdGhlIG5hdmlnYXRpb25TdGFydCB0
aW1lIGluIG1vbm90b25pYyB0aW1lLCBidXQgdGhlIG90aGVyIHRpbWVzIGFyZSByZWxhdGl2ZSB0
byB0aGlzIHRpbWUKKyAgICAgICAgICAgIC8vIGFuZCBvbmx5IHRoZSBkaWZmZXJlbmNlcyBiZXR3
ZWVuIHRpbWVzIGFyZSBzdG9yZWQuCisgICAgICAgICAgICBkb3VibGUgcmVmZXJlbmNlU3RhcnQg
PSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFUaW1pbmdEYXRhSW5p
dCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZG91YmxlIGRvbWFp
bkxvb2t1cFN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRh
RG9tYWluTG9va3VwU3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICBkb3VibGUgZG9t
YWluTG9va3VwRW5kID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRh
RG9tYWluTG9va3VwRW5kIl0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAgZG91YmxlIGNvbm5l
Y3RTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YUNvbm5l
Y3RTdGFydCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSBzZWN1cmVDb25uZWN0
aW9uU3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFTZWN1
cmVDb25uZWN0aW9uU3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICBkb3VibGUgY29u
bmVjdEVuZCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YUNvbm5l
Y3RFbmQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0ID0g
W1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVxdWVzdFN0YXJ0Il0g
ZG91YmxlVmFsdWVdOworICAgICAgICAgICAgZG91YmxlIHJlc3BvbnNlU3RhcnQgPSBbW3RpbWlu
Z0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFSZXNwb25zZVN0YXJ0Il0gZG91Ymxl
VmFsdWVdOworICAgICAgICAgICAgCisgICAgICAgICAgICB0aW1pbmctPmRvbWFpbkxvb2t1cFN0
YXJ0ID0gZG9tYWluTG9va3VwU3RhcnQgPD0gMC4wID8gLTEgOiAoZG9tYWluTG9va3VwU3RhcnQg
LSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5nLT5kb21haW5Mb29r
dXBFbmQgPSBkb21haW5Mb29rdXBFbmQgPD0gMC4wID8gLTEgOiAoZG9tYWluTG9va3VwRW5kIC0g
cmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+Y29ubmVjdFN0YXJ0
ID0gY29ubmVjdFN0YXJ0IDw9IDAuMCA/IC0xIDogKGNvbm5lY3RTdGFydCAtIHJlZmVyZW5jZVN0
YXJ0KSAqIDEwMDA7CisgICAgICAgICAgICB0aW1pbmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9
IHNlY3VyZUNvbm5lY3Rpb25TdGFydCA8PSAwLjAgPyAtMSA6IChzZWN1cmVDb25uZWN0aW9uU3Rh
cnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5nLT5jb25uZWN0
RW5kID0gY29ubmVjdEVuZCA8PSAwLjAgPyAtMSA6IChjb25uZWN0RW5kIC0gcmVmZXJlbmNlU3Rh
cnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+cmVxdWVzdFN0YXJ0ID0gcmVxdWVzdFN0
YXJ0IDw9IDAuMCA/IC0xIDogKHJlcXVlc3RTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7
CisgICAgICAgICAgICB0aW1pbmctPnJlc3BvbnNlU3RhcnQgPSByZXNwb25zZVN0YXJ0IDw9IDAu
MCA/IC0xIDogKHJlc3BvbnNlU3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAg
ICB9CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisjZW5kaWYKKyAg
ICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhtX2hhbmRs
ZSwgcmVzb3VyY2VSZXNwb25zZSk7CiAgICAgfSk7CiAKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVf
d2FpdChtX3NlbWFwaG9yZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCShyZXZpc2lvbiAxNjg2MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzE2LDExICszMTYsNiBAQCBzdGF0aWMgdm9pZCBnb3RIZWFkZXJzQ2FsbGJhY2soU291cE1lc3Nh
CiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgp
OwogCi0jaWYgRU5BQkxFKFdFQl9USU1JTkcpCi0gICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCkpCi0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCktPnJlY2VpdmVIZWFkZXJzRW5kID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNw
b25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUpOwotI2VuZGlmCi0KICNpZiBQ
TEFURk9STShHVEspCiAgICAgLy8gV2UgYXJlIGEgYml0IG1vcmUgY29uc2VydmF0aXZlIHdpdGgg
dGhlIHBlcnNpc3RlbnQgY3JlZGVudGlhbCBzdG9yYWdlIHRoYW4gdGhlIHNlc3Npb24gc3RvcmUs
CiAgICAgLy8gc2luY2Ugd2UgYXJlIHdhaXRpbmcgdW50aWwgd2Uga25vdyB0aGF0IHRoaXMgYXV0
aGVudGljYXRpb24gc3VjY2VlZGVkIGJlZm9yZSBhY3R1YWxseSBzdG9yaW5nLgpAQCAtMzkwLDcg
KzM4NSw3IEBAIHN0YXRpYyB2b2lkIHJlc3RhcnRlZENhbGxiYWNrKFNvdXBNZXNzYWcKICAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogICAgIFJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UgPSBkLT5tX3Jlc3BvbnNlOwogICAgIHJl
ZGlyZWN0UmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6
Y3JlYXRlKCkpOwotICAgIHJlZGlyZWN0UmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJl
cXVlc3RUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisgICAgaGFuZGxlLT5t
X3JlcXVlc3RUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiB9CiAjZW5kaWYK
IApAQCAtODM4LDM1ICs4MzMsMTMgQEAgc3RhdGljIGludCBtaWxpc2Vjb25kc1NpbmNlUmVxdWVz
dChkb3VibAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KChtb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKSAtIHJlcXVlc3RUaW1lKSAqIDEwMDAuMCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdy
b3RlQm9keUNhbGxiYWNrKFNvdXBNZXNzYWdlKiwgZ3BvaW50ZXIgZGF0YSkKLXsKLSAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4o
ZGF0YSk7Ci0gICAgaWYgKCFoYW5kbGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlc291cmNl
SGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0gICAgaWYgKCFkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZW5kRW5kID0gbWlsaXNlY29uZHNT
aW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRp
bWUpOwotfQotCiB2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRTdGFydFJlcXVlc3QoKQogewogICAg
IFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBnZXRJbnRlcm5hbCgpOwogICAgIGlmICghZC0+
bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
ZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VuZFN0YXJ0ID0gbWlsaXNlY29u
ZHNTaW5jZVJlcXVlc3QoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVz
dFRpbWUpOwotICAgIGlmIChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xT
dGFydCAhPSAtMSkgewotICAgICAgICAvLyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVx
dWVzdFRpbWluZ1ZpZXcuanMgYXNzdW1lcwotICAgICAgICAvLyB0aGF0IFNTTCB0aW1lIGlzIGlu
Y2x1ZGVkIGluIGNvbm5lY3Rpb24gdGltZSBzbyBtdXN0Ci0gICAgICAgIC8vIHN1YnN0cmFjdCBo
ZXJlIHRoZSBTU0wgZGVsdGEgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVyIChzZWUKLSAgICAgICAg
Ly8gV2ViSW5zcGVjdG9yLlJlcXVlc3RUaW1pbmdWaWV3LmNyZWF0ZVRpbWluZ1RhYmxlIGluIHRo
ZQotICAgICAgICAvLyBmaWxlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMpLgotICAgICAgICBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zZW5kU3RhcnQgLT0KLSAgICAgICAgICAg
IGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbEVuZCAtIGQtPm1fcmVzcG9u
c2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNzbFN0YXJ0OwotICAgIH0KKyAgICBkLT5tX3Jlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0U3RhcnQgPSBtaWxpc2Vjb25kc1NpbmNl
UmVxdWVzdChtX3JlcXVlc3RUaW1lKTsKIH0KIAogc3RhdGljIHZvaWQgbmV0d29ya0V2ZW50Q2Fs
bGJhY2soU291cE1lc3NhZ2UqLCBHU29ja2V0Q2xpZW50RXZlbnQgZXZlbnQsIEdJT1N0cmVhbSos
IGdwb2ludGVyIGRhdGEpCkBAIC04NzksNDAgKzg1MiwzOCBAQCBzdGF0aWMgdm9pZCBuZXR3b3Jr
RXZlbnRDYWxsYmFjayhTb3VwTWVzCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0gICAgaW50IGRlbHRhVGlt
ZSA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGlt
aW5nKCktPnJlcXVlc3RUaW1lKTsKKyAgICBpbnQgZGVsdGFUaW1lID0gbWlsaXNlY29uZHNTaW5j
ZVJlcXVlc3QoaGFuZGxlLT5tX3JlcXVlc3RUaW1lKTsKICAgICBzd2l0Y2ggKGV2ZW50KSB7CiAg
ICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUkVTT0xWSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNl
LnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNTdGFydCA9IGRlbHRhVGltZTsKKyAgICAgICAgZC0+
bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG9tYWluTG9va3VwU3RhcnQgPSBkZWx0
YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1JFU09MVkVE
OgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNFbmQgPSBk
ZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRv
bWFpbkxvb2t1cEVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NP
Q0tFVF9DTElFTlRfQ09OTkVDVElORzoKICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxv
YWRUaW1pbmcoKS0+Y29ubmVjdFN0YXJ0ID0gZGVsdGFUaW1lOwotICAgICAgICBpZiAoZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3RhcnQgIT0gLTEpCisgICAgICAgIGlm
IChkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kb21haW5Mb29rdXBTdGFydCAh
PSAtMSkgewogICAgICAgICAgICAgLy8gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlcXVl
c3RUaW1pbmdWaWV3LmpzIGFzc3VtZXMKICAgICAgICAgICAgIC8vIHRoYXQgRE5TIHRpbWUgaXMg
aW5jbHVkZWQgaW4gY29ubmVjdGlvbiB0aW1lIHNvIG11c3QKICAgICAgICAgICAgIC8vIHN1YnN0
cmFjdCBoZXJlIHRoZSBETlMgZGVsdGEgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVyIChzZWUKICAg
ICAgICAgICAgIC8vIFdlYkluc3BlY3Rvci5SZXF1ZXN0VGltaW5nVmlldy5jcmVhdGVUaW1pbmdU
YWJsZSBpbiB0aGUKICAgICAgICAgICAgIC8vIGZpbGUgYWJvdmUgZm9yIG1vcmUgZGV0YWlscyku
CiAgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5jb25uZWN0
U3RhcnQgLT0KLSAgICAgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWlu
ZygpLT5kbnNFbmQgLSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kbnNTdGFy
dDsKKyAgICAgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5k
b21haW5Mb29rdXBFbmQgLSBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5kb21h
aW5Mb29rdXBTdGFydDsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09D
S0VUX0NMSUVOVF9DT05ORUNURUQ6CiAgICAgICAgIC8vIFdlYiBUaW1pbmcgY29uc2lkZXJzIHRo
YXQgY29ubmVjdGlvbiB0aW1lIGludm9sdmVzIGRucywgcHJveHkgJiBUTFMgbmVnb3RpYXRpb24u
Li4KICAgICAgICAgLy8gc28gd2UgYmV0dGVyIHBpY2sgR19TT0NLRVRfQ0xJRU5UX0NPTVBMRVRF
IGZvciBjb25uZWN0RW5kCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5U
X1BST1hZX05FR09USUFUSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpLT5wcm94eVN0YXJ0ID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEdfU09DS0VUX0NMSUVOVF9QUk9YWV9ORUdPVElBVEVEOgotICAgICAgICBkLT5tX3Jlc3BvbnNl
LnJlc291cmNlTG9hZFRpbWluZygpLT5wcm94eUVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfVExTX0hBTkRTSEFLSU5HOgotICAgICAgICBk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xTdGFydCA9IGRlbHRhVGltZTsK
KyAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VjdXJlQ29ubmVj
dGlvblN0YXJ0ID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VU
X0NMSUVOVF9UTFNfSEFORFNIQUtFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxv
YWRUaW1pbmcoKS0+c3NsRW5kID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEdfU09DS0VUX0NMSUVOVF9DT01QTEVURToKICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJj
ZUxvYWRUaW1pbmcoKS0+Y29ubmVjdEVuZCA9IGRlbHRhVGltZTsKQEAgLTk3NCw3ICs5NDUsNiBA
QCBzdGF0aWMgYm9vbCBjcmVhdGVTb3VwTWVzc2FnZUZvckhhbmRsZUFuCiAgICAgZC0+bV9yZXNw
b25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7
CiAgICAgZ19zaWduYWxfY29ubmVjdChkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCAibmV0d29yay1l
dmVudCIsIEdfQ0FMTEJBQ0sobmV0d29ya0V2ZW50Q2FsbGJhY2spLCBoYW5kbGUpOwogICAgIGdf
c2lnbmFsX2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgInJlc3RhcnRlZCIsIEdfQ0FM
TEJBQ0socmVzdGFydGVkQ2FsbGJhY2spLCBoYW5kbGUpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3Qo
ZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgIndyb3RlLWJvZHkiLCBHX0NBTExCQUNLKHdyb3RlQm9k
eUNhbGxiYWNrKSwgaGFuZGxlKTsKICNlbmRpZgogCiAjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIs
IDQzLCAxKQpAQCAtMTA0OCw3ICsxMDE4LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2VuZFBl
bmRpbmdSZXF1ZXN0KAogewogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgIGlmIChkLT5tX3Jl
c3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpOworICAgICAgICBtX3JlcXVlc3RUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCk7CiAjZW5kaWYKIAogICAgIGlmIChkLT5tX2ZpcnN0UmVxdWVzdC50aW1lb3V0SW50ZXJ2YWwo
KSA+IDApIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODYyMSkKKysrIFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE0LTA1LTEy
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UHJvZ3Jlc3Mgb24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmVuY29kZSk6CisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlY29kZSk6CisgICAg
ICAgIFRyYW5zZmVyIFJlc291cmNlTG9hZFRpbWluZyB2YWx1ZXMgaWYgdGhleSBleGlzdC4KKwog
MjAxNC0wNS0xMiAgUGV0ZXIgTW9sbmFyICA8cG1vbG5hci51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1
bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFRMU0Vycm9ycyBkbyBub3QgY2F1c2UgcGFnZSBsb2Fk
IHRvIGZhaWwgd2hlbiBub3QgaWdub3JlZApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAJKHJldmlzaW9uIDE2ODYyMSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02ODgsNiArNjg4LDIxIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNl
Pjo6ZW4KICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlc3BvbnNlLmh0dHBTdGF0dXNUZXh0
KCk7CiAgICAgICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFt
ZSgpOwogICAgIH0KKyAgICAKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAgICBSZXNvdXJjZUxv
YWRUaW1pbmcqIHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7
CisgICAgYm9vbCBoYXNSZXNvdXJjZUxvYWRUaW1pbmcgPSB0aW1pbmc7CisgICAgZW5jb2RlciA8
PCBoYXNSZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgaWYgKGhhc1Jlc291cmNlTG9hZFRpbWluZykg
eworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQ7CisgICAgICAg
IGVuY29kZXIgPDwgdGltaW5nLT5kb21haW5Mb29rdXBFbmQ7CisgICAgICAgIGVuY29kZXIgPDwg
dGltaW5nLT5jb25uZWN0U3RhcnQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5jb25uZWN0
RW5kOworICAgICAgICBlbmNvZGVyIDw8IHRpbWluZy0+cmVxdWVzdFN0YXJ0OworICAgICAgICBl
bmNvZGVyIDw8IHRpbWluZy0+cmVzcG9uc2VTdGFydDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1p
bmctPnNlY3VyZUNvbm5lY3Rpb25TdGFydDsKKyAgICB9CisjZW5kaWYKIH0KIAogYm9vbCBBcmd1
bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNlKQpAQCAtNzU1LDYgKzc3MCwy
NCBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3BvbnNlLnNldFN1Z2dlc3RlZEZpbGVuYW1lKHN1
Z2dlc3RlZEZpbGVuYW1lKTsKICAgICB9CisgICAgCisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisg
ICAgYm9vbCBoYXNSZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSho
YXNSZXNvdXJjZUxvYWRUaW1pbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGhh
c1Jlc291cmNlTG9hZFRpbWluZykgeworICAgICAgICByZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRU
aW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7CisgICAgICAgIFJlc291cmNlTG9h
ZFRpbWluZyogdGltaW5nID0gcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUodGltaW5nLT5kb21haW5Mb29rdXBTdGFydCkKKyAgICAgICAg
ICAgIHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCkKKyAgICAgICAg
ICAgIHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPmNvbm5lY3RTdGFydCkKKyAgICAgICAgICAg
IHx8ICFkZWNvZGVyLmRlY29kZSh0aW1pbmctPmNvbm5lY3RFbmQpCisgICAgICAgICAgICB8fCAh
ZGVjb2Rlci5kZWNvZGUodGltaW5nLT5yZXF1ZXN0U3RhcnQpCisgICAgICAgICAgICB8fCAhZGVj
b2Rlci5kZWNvZGUodGltaW5nLT5yZXNwb25zZVN0YXJ0KQorICAgICAgICAgICAgfHwgIWRlY29k
ZXIuZGVjb2RlKHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0KSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJlc291cmNlUmVzcG9uc2UgPSByZXNw
b25zZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231322</attachid>
            <date>2014-05-12 13:57:06 -0700</date>
            <delta_ts>2014-05-12 14:25:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132574-20140512135643.patch</filename>
            <type>text/plain</type>
            <size>50045</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgwIEBACisyMDE0LTA1LTEyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
b24gd2ViIHRpbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMjU3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGlt
aW5nLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRkZWQgbGlua2Vy
IHN5bWJvbHMgZm9yIFJlc291cmNlTG9hZFRpbWluZy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnM6CisgICAgICAgIFJlbW92ZWQgUmVzb3VyY2VMb2FkVGltaW5nLmNwcC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpi
dWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL05ldHdv
cmsuanNvbjoKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZVRpbWluZyBzdHJ1Y3R1cmUuCisgICAg
ICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRUaW1pbmc6OnNldE5hdmlnYXRpb25TdGFydCk6CisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICAgRGVsZXRlZCB1bnVzZWQgc2V0TmF2aWdh
dGlvblN0YXJ0IGZ1bmN0aW9uLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAg
ICAgICBVcGRhdGVkIHNwZWMgVVJMLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
Ojpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpkb21haW5Mb29rdXBFbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZzo6Y29ubmVjdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZUVuZCk6CisgICAgICAg
IFVwZGF0ZWQgUmVzb3VyY2VMb2FkVGltaW5nIG1lbWJlciB2YXJpYWJsZSBuYW1lcy4KKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc3BvbnNlU3RhcnQpOgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oOgorICAgICAgICAqIHBh
Z2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGw6CisgICAgICAgIERlbGV0ZWQgcmVzcG9u
c2VTdGFydCBiZWNhdXNlIGl0IGlzIG5vdCBpbiB0aGUgc3BlYy4KKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5n
Ojpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWlu
Zzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5n
Ojpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnNl
Y3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWlu
Zzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpy
ZXNwb25zZVN0YXJ0KToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZUxvYWRUaW1pbmcgbWVtYmVy
IHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnJl
c291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUpOgorICAgICAgICBVc2UgbmF2aWdhdGlv
blN0YXJ0IGFzIGJhc2UgZm9yIHJlc291cmNlIGxvYWQgdGltZXMuCisgICAgICAgICogcGFnZS9Q
ZXJmb3JtYW5jZVRpbWluZy5pZGw6CisgICAgICAgIFVwZGF0ZWQgc3BlYyBVUkwuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oOgorICAgICAgICBSZW1vdmVkIHVudXNl
ZCBjbGFzcyBkZWNsYXJhdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5oOgorICAgICAgICBNb3ZlZCBzb3VwIHJlcXVlc3QgdGltZSBmcm9tIFJlc291cmNl
TG9hZFRpbWluZyB0byBSZXNvdXJjZUhhbmRsZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlTG9hZFRpbWluZy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZFRpbWluZzo6ZGVlcENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5n
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFRpbWluZzo6UmVz
b3VyY2VMb2FkVGltaW5nKToKKyAgICAgICAgVXBkYXRlZCBSZXNvdXJjZUxvYWRUaW1pbmcgbWVt
YmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZU5TVVJMQ29ubmVjdGlvbik6CisgICAgICAgIENvbGxlY3QgdGltaW5nIGRhdGEuCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5t
bToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9u
OmRpZFJlY2VpdmVSZXNwb25zZTpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9X
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW06CisgICAgICAg
ICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0
aW9uOmRpZFJlY2VpdmVSZXNwb25zZTpdKToKKyAgICAgICAgU2F2ZSB0aW1pbmcgZGF0YSB0byBh
IFJlc291cmNlTG9hZFRpbWluZyBvbiB0aGUgUmVzb3VyY2VSZXNwb25zZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmdvdEhlYWRlcnNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpyZXN0YXJ0ZWRD
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjptaWxpc2Vjb25kc1NpbmNlUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkU3RhcnRSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6Om5ldHdvcmtFdmVudENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZVNvdXBNZXNzYWdlRm9ySGFuZGxlQW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZTo6c2VuZFBlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgVXBkYXRlZCBSZXNv
dXJjZUxvYWRUaW1pbmcgbWVtYmVyIHZhcmlhYmxlIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6
d3JvdGVCb2R5Q2FsbGJhY2spOiBEZWxldGVkLgorCiAyMDE0LTA1LTEyICBKb3pzZWYgQmVydGEg
IDxqYmVydGEudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KIAogICAgICAgICBXaW5DYWly
byBidWlsZGZpeCBhZnRlciByMTY4NjExCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNp
b24gMTY4NjIzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTIxOTEsNyArMjE5MSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVu
dC5jcHAKLSAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAKICAgICBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCiAgICAgcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZUJhc2UuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24g
MTY4NjIzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTMzNDksMyArMzM0OSw4IEBAIF9fWk43V2ViQ29yZTlQYWdlR3JvdXAxOGNhcHRpb25QcmVm
ZXJlbmMKICNpZiBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKIF9fWk43V2ViQ29yZTRQYWdl
MTFzZXRWaWV3TW9kZUVOUzBfOFZpZXdNb2RlRQogI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCX1RJ
TUlORykKK19fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMXNldFJlc291cmNlTG9h
ZFRpbWluZ0VOM1dURjEwUGFzc1JlZlB0cklOU18xOFJlc291cmNlTG9hZFRpbWluZ0VFRQorX19a
Tks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxOHJlc291cmNlTG9hZFRpbWluZ0V2Cisj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvagkocmV2aXNpb24gMTY4NjIzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtODQwMSw3ICs4NDAxLDYgQEAK
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcUmVzb3VyY2VFcnJv
ckJhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cbmV0d29y
a1xSZXNvdXJjZUhhbmRsZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVxuZXR3b3JrXFJlc291cmNlSGFuZGxlQ2xpZW50LmNwcCIgLz4KLSAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcUmVzb3VyY2VMb2FkVGltaW5nLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcUmVzb3VyY2VSZXF1
ZXN0QmFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxuZXR3
b3JrXFJlc291cmNlUmVzcG9uc2VCYXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHBsYXRmb3JtXG5ldHdvcmtcU29ja2V0U3RyZWFtRXJyb3JCYXNlLmNwcCIgLz4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnMJKHJldmlzaW9uIDE2ODYyMykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtMTgyMSw5
ICsxODIxLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXG5ldHdvcmtc
UmVzb3VyY2VIYW5kbGVDbGllbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cbmV0d29y
azwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cbmV0d29ya1xSZXNvdXJjZUxvYWRUaW1pbmcuY3BwIj4KLSAgICAgIDxGaWx0ZXI+
cGxhdGZvcm1cbmV0d29yazwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cbmV0d29ya1xSZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCI+
CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXG5ldHdvcms8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE2ODYyMykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjk3OSw3ICsyOTc5LDYg
QEAKIAkJODVGRjMxNUEwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU4MEFBRkJG
Q0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi87IH07CiAJCTg1RkYzMTVCMEFBRkJG
Q0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtl
eWJvYXJkRXZlbnQubW0gKi87IH07CiAJCTg2MUMyRUE0MTNGQjRGREQwMDA2MkFCQiAvKiBEb2N1
bWVudExvYWRUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWluZy5j
cHAgKi87IH07Ci0JCTg2MUMyRUE2MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1p
bmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYx
QzJFQTUxM0ZCNEZGRjAwMDYyQUJCIC8qIFJlc291cmNlTG9hZFRpbWluZy5jcHAgKi87IH07CiAJ
CTg2MkYxMjlFMThDMTU3NkYwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjJGMTI5RDE4QzE1NzJD
MDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2MkYxMkEwMThDMUREMDIwMDVDNTRBRiAvKiBI
eXN0ZXJlc2lzQWN0aXZpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg2MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0aXZpdHku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjUx
MkVERTE1NEEyQUVGMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjUxMkVEQjE1NEEy
QUVFMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgKi87IH07CkBAIC05
OTkwLDcgKzk5ODksNiBAQAogCQk4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9h
cmRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NS2V5Ym9hcmRF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUZGMzE1OTBBQUZCRkNCMDAz
NzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBET01LZXlib2FyZEV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4NjFDMkVBMzEzRkI0RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZFRpbWlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg2MUMyRUE1MTNGQjRGRkYwMDA2
MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVzb3VyY2VMb2FkVGltaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODYyRjEyOUQxOEMxNTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRlZFVzZXJBY3Rpdml0eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYg
LyogSHlzdGVyZXNpc0FjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEh5c3RlcmVzaXNBY3Rpdml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjUx
MkVEQjE1NEEyQUVFMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTEwLDcgKzE2MTA4LDYg
QEAKIAkJCQk1MTRDNzY2NjBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bC5oICovLAogCQkJCTUxRTQxNDMyMTZBNjU5NTEwMEM2MzNDNyAvKiBSZXNvdXJjZUhhbmRsZVR5
cGVzLmggKi8sCiAJCQkJRTQyOTVGQTMxMkIwNjE0RTAwRDFBQ0UwIC8qIFJlc291cmNlTG9hZFBy
aW9yaXR5LmggKi8sCi0JCQkJODYxQzJFQTUxM0ZCNEZGRjAwMDYyQUJCIC8qIFJlc291cmNlTG9h
ZFRpbWluZy5jcHAgKi8sCiAJCQkJOEE4MUJGODQxMURDRkQ5MDAwREEyQjk4IC8qIFJlc291cmNl
TG9hZFRpbWluZy5oICovLAogCQkJCTUxNEM3NjY3MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJj
ZVJlcXVlc3RCYXNlLmNwcCAqLywKIAkJCQk1MTRDNzY2ODBDRTkyM0ExMDA3RUYzQ0QgLyogUmVz
b3VyY2VSZXF1ZXN0QmFzZS5oICovLApAQCAtMjg4MzgsNyArMjg4MzUsNiBAQAogCQkJCTUxQUEz
RjZGMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJjZUxvYWRlck1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTk3M0UzMjU2MTA4ODNCN0MwMDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlEMENFNThGODEyNUU0Q0MyMDBGM0YxOTkgLyogUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTg2MUMyRUE2MTNGQjRGRkYw
MDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0
Qzc2N0MwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0VFNjg0NkUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVxdWVzdENG
TmV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNEM3NjUzMENFOTIzNEUwMDdFRjNDRCAvKiBS
ZXNvdXJjZVJlcXVlc3RNYWMubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAJKHJldmlzaW9u
IDE2ODYyMykKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAzLDE4ICsyMDMsMTQgQEAgc3RhdGljIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZAogc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGlt
aW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciogbG9h
ZGVyKQogewogICAgIHJldHVybiBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNv
dXJjZVRpbWluZzo6Y3JlYXRlKCkKLSAgICAgICAgLnNldFJlcXVlc3RUaW1lKGxvYWRlci0+dGlt
aW5nKCktPm1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKHRpbWluZy5jb252ZXJ0UmVzb3Vy
Y2VMb2FkVGltZVRvTW9ub3RvbmljVGltZSgwKSkpCi0gICAgICAgIC5zZXRQcm94eVN0YXJ0KHRp
bWluZy5wcm94eVN0YXJ0KQotICAgICAgICAuc2V0UHJveHlFbmQodGltaW5nLnByb3h5RW5kKQot
ICAgICAgICAuc2V0RG5zU3RhcnQodGltaW5nLmRuc1N0YXJ0KQotICAgICAgICAuc2V0RG5zRW5k
KHRpbWluZy5kbnNFbmQpCisgICAgICAgIC5zZXROYXZpZ2F0aW9uU3RhcnQobG9hZGVyLT50aW1p
bmcoKS0+bmF2aWdhdGlvblN0YXJ0KCkpCisgICAgICAgIC5zZXREb21haW5Mb29rdXBTdGFydCh0
aW1pbmcuZG9tYWluTG9va3VwU3RhcnQpCisgICAgICAgIC5zZXREb21haW5Mb29rdXBFbmQodGlt
aW5nLmRvbWFpbkxvb2t1cEVuZCkKICAgICAgICAgLnNldENvbm5lY3RTdGFydCh0aW1pbmcuY29u
bmVjdFN0YXJ0KQogICAgICAgICAuc2V0Q29ubmVjdEVuZCh0aW1pbmcuY29ubmVjdEVuZCkKLSAg
ICAgICAgLnNldFNzbFN0YXJ0KHRpbWluZy5zc2xTdGFydCkKLSAgICAgICAgLnNldFNzbEVuZCh0
aW1pbmcuc3NsRW5kKQotICAgICAgICAuc2V0U2VuZFN0YXJ0KHRpbWluZy5zZW5kU3RhcnQpCi0g
ICAgICAgIC5zZXRTZW5kRW5kKHRpbWluZy5zZW5kRW5kKQotICAgICAgICAuc2V0UmVjZWl2ZUhl
YWRlcnNFbmQodGltaW5nLnJlY2VpdmVIZWFkZXJzRW5kKQorICAgICAgICAuc2V0U2VjdXJlQ29u
bmVjdGlvblN0YXJ0KHRpbWluZy5zZWN1cmVDb25uZWN0aW9uU3RhcnQpCisgICAgICAgIC5zZXRS
ZXF1ZXN0U3RhcnQodGltaW5nLnJlcXVlc3RTdGFydCkKKyAgICAgICAgLnNldFJlc3BvbnNlU3Rh
cnQodGltaW5nLnJlc3BvbnNlU3RhcnQpCiAgICAgICAgIC5yZWxlYXNlKCk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9OZXR3b3JrLmpzb24KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL3Byb3RvY29sL05ldHdvcmsuanNvbgkocmV2
aXNpb24gMTY4NjIzKQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL3Byb3RvY29sL05ldHdv
cmsuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMzIsMTggKzMyLDE0IEBACiAgICAgICAgICAgICAi
dHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWluZyBpbmZv
cm1hdGlvbiBmb3IgdGhlIHJlcXVlc3QuIiwKICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdFRpbWUiLCAidHlwZSI6ICJudW1iZXIi
LCAiZGVzY3JpcHRpb24iOiAiVGltaW5nJ3MgcmVxdWVzdFRpbWUgaXMgYSBiYXNlbGluZSBpbiBz
ZWNvbmRzLCB3aGlsZSB0aGUgb3RoZXIgbnVtYmVycyBhcmUgdGlja3MgaW4gbWlsbGlzZWNvbmRz
IHJlbGF0aXZlbHkgdG8gdGhpcyByZXF1ZXN0VGltZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJwcm94eVN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0
YXJ0ZWQgcmVzb2x2aW5nIHByb3h5LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBy
b3h5RW5kIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIHJlc29s
dmluZyBwcm94eS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkbnNTdGFydCIsICJ0
eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIEROUyBhZGRyZXNzIHJlc29s
dmUuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG5zRW5kIiwgInR5cGUiOiAibnVt
YmVyIiwgImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIEROUyBhZGRyZXNzIHJlc29sdmUuIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmF2aWdhdGlvblN0YXJ0IiwgInR5cGUiOiAibnVt
YmVyIiwgImRlc2NyaXB0aW9uIjogIlRpbWluZydzIG5hdmlnYXRpb25TdGFydCBpcyBhIGJhc2Vs
aW5lIGluIHNlY29uZHMsIHdoaWxlIHRoZSBvdGhlciBudW1iZXJzIGFyZSB0aWNrcyBpbiBtaWxs
aXNlY29uZHMgcmVsYXRpdmVseSB0byB0aGlzIG5hdmlnYXRpb25TdGFydC4iIH0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJkb21haW5Mb29rdXBTdGFydCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIEROUyBhZGRyZXNzIHJlc29sdmUuIiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiZG9tYWluTG9va3VwRW5kIiwgInR5cGUiOiAibnVtYmVyIiwg
ImRlc2NyaXB0aW9uIjogIkZpbmlzaGVkIEROUyBhZGRyZXNzIHJlc29sdmUuIiB9LAogICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiY29ubmVjdFN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRl
c2NyaXB0aW9uIjogIlN0YXJ0ZWQgY29ubmVjdGluZyB0byB0aGUgcmVtb3RlIGhvc3QuIiB9LAog
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29ubmVjdEVuZCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJDb25uZWN0ZWQgdG8gdGhlIHJlbW90ZSBob3N0LiIgfSwKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInNzbFN0YXJ0IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2Ny
aXB0aW9uIjogIlN0YXJ0ZWQgU1NMIGhhbmRzaGFrZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJzc2xFbmQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNo
ZWQgU1NMIGhhbmRzaGFrZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzZW5kU3Rh
cnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBzZW5kaW5nIHJl
cXVlc3QuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VuZEVuZCIsICJ0eXBlIjog
Im51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJGaW5pc2hlZCBzZW5kaW5nIHJlcXVlc3QuIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVjZWl2ZUhlYWRlcnNFbmQiLCAidHlwZSI6ICJu
dW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRmluaXNoZWQgcmVjZWl2aW5nIHJlc3BvbnNlIGhlYWRl
cnMuIiB9CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzZWN1cmVDb25uZWN0aW9uU3RhcnQi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnRlZCBTU0wgaGFuZHNoYWtl
LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RTdGFydCIsICJ0eXBlIjog
Im51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydGVkIHNlbmRpbmcgcmVxdWVzdC4iIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNwb25zZVN0YXJ0IiwgInR5cGUiOiAibnVtYmVy
IiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0ZWQgcmVjZWl2aW5nIHJlc3BvbnNlIGhlYWRlcnMuIiB9
CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCShyZXZpc2lvbiAxNjg2MjMpCisr
KyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzYsMTIgKzc2LDYgQEAgdm9pZCBEb2N1bWVudExvYWRUaW1pbmc6Om1hcmtOYXZp
Z2F0aW9uUwogICAgIG1fcmVmZXJlbmNlV2FsbFRpbWUgPSBjdXJyZW50VGltZSgpOwogfQogCi12
b2lkIERvY3VtZW50TG9hZFRpbWluZzo6c2V0TmF2aWdhdGlvblN0YXJ0KGRvdWJsZSBuYXZpZ2F0
aW9uU3RhcnQpCi17Ci0gICAgQVNTRVJUKG1fcmVmZXJlbmNlTW9ub3RvbmljVGltZSAmJiBtX3Jl
ZmVyZW5jZVdhbGxUaW1lKTsKLSAgICBtX25hdmlnYXRpb25TdGFydCA9IG5hdmlnYXRpb25TdGFy
dDsKLX0KLQogdm9pZCBEb2N1bWVudExvYWRUaW1pbmc6OmFkZFJlZGlyZWN0KGNvbnN0IFVSTCYg
cmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVkaXJlY3RlZFVybCkKIHsKICAgICBtX3JlZGly
ZWN0Q291bnQrKzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1p
bmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGlt
aW5nLmgJKHJldmlzaW9uIDE2ODYyMykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRUaW1pbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAg
ICAgZG91YmxlIG1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKGRvdWJsZSkgY29uc3Q7CiAK
ICAgICB2b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKLSAgICB2b2lkIHNldE5hdmlnYXRpb25T
dGFydChkb3VibGUpOwogICAgIHZvaWQgYWRkUmVkaXJlY3QoY29uc3QgVVJMJiByZWRpcmVjdGlu
Z1VybCwgY29uc3QgVVJMJiByZWRpcmVjdGVkVXJsKTsKIAogICAgIHZvaWQgbWFya1VubG9hZEV2
ZW50U3RhcnQoKSB7IG1fdW5sb2FkRXZlbnRTdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAkocmV2aXNpb24g
MTY4NjIzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLy8gU2VlOiBo
dHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCisvLyBTZWU6IGh0dHBzOi8v
ZHZjcy53My5vcmcvaGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3MvTmF2aWdhdGlvblRpbWlu
Zy9PdmVydmlldy5odG1sCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAgICBFdmVu
dFRhcmdldCwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nLmNwcAkocmV2aXNpb24gMTY4NjIzKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDEw
ICsxMjAsMTAgQEAgZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbgogICAg
IGlmICghbV9zaG91bGRSZXBvcnREZXRhaWxzKQogICAgICAgICByZXR1cm4gMC4wOwogCi0gICAg
aWYgKCFtX3RpbWluZyB8fCBtX3RpbWluZy0+ZG5zU3RhcnQgPCAwKQorICAgIGlmICghbV90aW1p
bmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0IDwgMCkKICAgICAgICAgcmV0dXJuIGZl
dGNoU3RhcnQoKTsKIAotICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNv
bmRzKG1fdGltaW5nLT5kbnNTdGFydCk7CisgICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1l
bnRNaWxsaXNlY29uZHMobV90aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0KTsKIH0KIAogZG91Ymxl
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0x
MzEsMTAgKzEzMSwxMCBAQCBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZG9tYWlu
CiAgICAgaWYgKCFtX3Nob3VsZFJlcG9ydERldGFpbHMpCiAgICAgICAgIHJldHVybiAwLjA7CiAK
LSAgICBpZiAoIW1fdGltaW5nIHx8IG1fdGltaW5nLT5kbnNFbmQgPCAwKQorICAgIGlmICghbV90
aW1pbmcgfHwgbV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA8IDApCiAgICAgICAgIHJldHVybiBk
b21haW5Mb29rdXBTdGFydCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRN
aWxsaXNlY29uZHMobV90aW1pbmctPmRuc0VuZCk7CisgICAgcmV0dXJuIHJlc291cmNlVGltZVRv
RG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPmRvbWFpbkxvb2t1cEVuZCk7CiB9CiAKIGRv
dWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25uZWN0U3RhcnQoKSBjb25zdApAQCAt
MTQ4LDggKzE0OCw4IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjb25uZWMK
IAogICAgIC8vIGNvbm5lY3RTdGFydCBpbmNsdWRlcyBhbnkgRE5TIHRpbWUsIHNvIHdlIG1heSBu
ZWVkIHRvIHRyaW0gdGhhdCBvZmYuCiAgICAgaW50IGNvbm5lY3RTdGFydCA9IG1fdGltaW5nLT5j
b25uZWN0U3RhcnQ7Ci0gICAgaWYgKG1fdGltaW5nLT5kbnNFbmQgPj0gMCkKLSAgICAgICAgY29u
bmVjdFN0YXJ0ID0gbV90aW1pbmctPmRuc0VuZDsKKyAgICBpZiAobV90aW1pbmctPmRvbWFpbkxv
b2t1cEVuZCA+PSAwKQorICAgICAgICBjb25uZWN0U3RhcnQgPSBtX3RpbWluZy0+ZG9tYWluTG9v
a3VwRW5kOwogCiAgICAgcmV0dXJuIHJlc291cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMo
Y29ubmVjdFN0YXJ0KTsKIH0KQEAgLTE3MSwxMCArMTcxLDEwIEBAIGRvdWJsZSBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nOjpzZWN1cmUKICAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykK
ICAgICAgICAgcmV0dXJuIDAuMDsKIAotICAgIGlmICghbV90aW1pbmcgfHwgbV90aW1pbmctPnNz
bFN0YXJ0IDwgMCkgLy8gU2VjdXJlIGNvbm5lY3Rpb24gbm90IG5lZ290aWF0ZWQuCisgICAgaWYg
KCFtX3RpbWluZyB8fCBtX3RpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0IDwgMCkgLy8gU2Vj
dXJlIGNvbm5lY3Rpb24gbm90IG5lZ290aWF0ZWQuCiAgICAgICAgIHJldHVybiAwLjA7CiAKLSAg
ICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWluZy0+c3Ns
U3RhcnQpOworICAgIHJldHVybiByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1f
dGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6cmVxdWVzdFN0YXJ0KCkgY29uc3QKQEAgLTE4NSwyNSArMTg1LDExIEBA
IGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXF1ZXMKICAgICBpZiAoIW1fdGlt
aW5nKQogICAgICAgICByZXR1cm4gY29ubmVjdEVuZCgpOwogCi0gICAgcmV0dXJuIHJlc291cmNl
VGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPnNlbmRTdGFydCk7Ci19Ci0KLWRv
dWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKLXsK
LSAgICBpZiAoIW1fc2hvdWxkUmVwb3J0RGV0YWlscykKLSAgICAgICAgcmV0dXJuIDAuMDsKLQot
ICAgIGlmICghbV90aW1pbmcpCi0gICAgICAgIHJldHVybiByZXF1ZXN0U3RhcnQoKTsKLSAgICAv
LyBGSVhNRTogVGhpcyBudW1iZXIgaXNuJ3QgZXhhY3RseSBjb3JyZWN0LiBTZWUgdGhlIG5vdGVz
IGluIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkuCi0gICAgcmV0dXJuIHJlc291
cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90aW1pbmctPnJlY2VpdmVIZWFkZXJzRW5k
KTsKKyAgICByZXR1cm4gcmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3RpbWlu
Zy0+cmVxdWVzdFN0YXJ0KTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6
OnJlc3BvbnNlRW5kKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fZmluaXNoVGltZSkKLSAgICAgICAg
cmV0dXJuIHJlc3BvbnNlU3RhcnQoKTsKLQogICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9Eb2N1
bWVudE1pbGxpc2Vjb25kcyhtX3JlcXVlc3RpbmdEb2N1bWVudC5nZXQoKSwgbV9maW5pc2hUaW1l
KTsKIH0KIApAQCAtMjExLDcgKzE5Nyw3IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nOjpyZXNvdXIKIHsKICAgICBpZiAoIWRlbHRhTWlsbGlzZWNvbmRzKQogICAgICAgICByZXR1
cm4gMC4wOwotICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyht
X3JlcXVlc3RpbmdEb2N1bWVudC5nZXQoKSwgbV90aW1pbmctPnJlcXVlc3RUaW1lKSArIGRlbHRh
TWlsbGlzZWNvbmRzOworICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9Eb2N1bWVudE1pbGxpc2Vj
b25kcyhtX3JlcXVlc3RpbmdEb2N1bWVudC5nZXQoKSwgbV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0
KCktPmxvYWRlcigpLT50aW1pbmcoKS0+bmF2aWdhdGlvblN0YXJ0KCkpICsgZGVsdGFNaWxsaXNl
Y29uZHM7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCShyZXZpc2lvbiAxNjg2MjMp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAkod29y
a2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNiBAQCBwdWJsaWM6CiAgICAgZG91YmxlIGNvbm5lY3RF
bmQoKSBjb25zdDsKICAgICBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0KCkgY29uc3Q7CiAg
ICAgZG91YmxlIHJlcXVlc3RTdGFydCgpIGNvbnN0OwotICAgIGRvdWJsZSByZXNwb25zZVN0YXJ0
KCkgY29uc3Q7CiAgICAgZG91YmxlIHJlc3BvbnNlRW5kKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNSZXNvdXJjZSgpIHsgcmV0dXJuIHRydWU7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlkbAkocmV2aXNpb24gMTY4
NjIzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNSBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIGNvbm5lY3RFbmQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVucmVzdHJpY3RlZCBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0OwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHJlcXVlc3RTdGFydDsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSByZXNwb25zZVN0YXJ0OwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHJlc3BvbnNlRW5kOwogfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCShyZXZpc2lvbiAxNjg2
MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMwLDExICsxMzAsMTEgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1h
bmNlVGltaW5nOjpkbwogCiAgICAgLy8gVGhpcyB3aWxsIGJlIC0xIHdoZW4gYSBETlMgcmVxdWVz
dCBpcyBub3QgcGVyZm9ybWVkLgogICAgIC8vIFJhdGhlciB0aGFuIGV4cG9zaW5nIGEgc3BlY2lh
bCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBETlMsIHdlICJiYWNrZmlsbCIgd2l0aCBmZXRjaFN0
YXJ0LgotICAgIGludCBkbnNTdGFydCA9IHRpbWluZy0+ZG5zU3RhcnQ7Ci0gICAgaWYgKGRuc1N0
YXJ0IDwgMCkKKyAgICBpbnQgZG9tYWluTG9va3VwU3RhcnQgPSB0aW1pbmctPmRvbWFpbkxvb2t1
cFN0YXJ0OworICAgIGlmIChkb21haW5Mb29rdXBTdGFydCA8IDApCiAgICAgICAgIHJldHVybiBm
ZXRjaFN0YXJ0KCk7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNv
bHV0ZShkbnNTdGFydCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJz
b2x1dGUoZG9tYWluTG9va3VwU3RhcnQpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9y
bWFuY2VUaW1pbmc6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0CkBAIC0xNDUsMTEgKzE0NSwxMSBA
QCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvCiAKICAgICAvLyBUaGlz
IHdpbGwgYmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3JtZWQuCiAgICAgLy8g
UmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5kaWNhdGVzIG5vIERO
Uywgd2UgImJhY2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1cFN0YXJ0LgotICAgIGludCBkbnNFbmQg
PSB0aW1pbmctPmRuc0VuZDsKLSAgICBpZiAoZG5zRW5kIDwgMCkKKyAgICBpbnQgZG9tYWluTG9v
a3VwRW5kID0gdGltaW5nLT5kb21haW5Mb29rdXBFbmQ7CisgICAgaWYgKGRvbWFpbkxvb2t1cEVu
ZCA8IDApCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBTdGFydCgpOwogCi0gICAgcmV0dXJu
IHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUoZG5zRW5kKTsKKyAgICByZXR1cm4g
cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShkb21haW5Mb29rdXBFbmQpOwogfQog
CiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RTdGFydCgpIGNv
bnN0CkBAIC0xNzAsOCArMTcwLDggQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGlt
aW5nOjpjbwogCiAgICAgLy8gUmVzb3VyY2VMb2FkVGltaW5nJ3MgY29ubmVjdCBwaGFzZSBpbmNs
dWRlcyBETlMsIGhvd2V2ZXIgTmF2aWdhdGlvbiBUaW1pbmcncwogICAgIC8vIGNvbm5lY3QgcGhh
c2Ugc2hvdWxkIG5vdC4gU28gaWYgdGhlcmUgaXMgRE5TIHRpbWUsIHRyaW0gaXQgZnJvbSB0aGUg
c3RhcnQuCi0gICAgaWYgKHRpbWluZy0+ZG5zRW5kID49IDAgJiYgdGltaW5nLT5kbnNFbmQgPiBj
b25uZWN0U3RhcnQpCi0gICAgICAgIGNvbm5lY3RTdGFydCA9IHRpbWluZy0+ZG5zRW5kOworICAg
IGlmICh0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA+PSAwICYmIHRpbWluZy0+ZG9tYWluTG9va3Vw
RW5kID4gY29ubmVjdFN0YXJ0KQorICAgICAgICBjb25uZWN0U3RhcnQgPSB0aW1pbmctPmRvbWFp
bkxvb2t1cEVuZDsKIAogICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29s
dXRlKGNvbm5lY3RTdGFydCk7CiB9CkBAIC0yMDUsMTEgKzIwNSwxMSBAQCB1bnNpZ25lZCBsb25n
IGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnNlCiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJl
dHVybiAwOwogCi0gICAgaW50IHNzbFN0YXJ0ID0gdGltaW5nLT5zc2xTdGFydDsKLSAgICBpZiAo
c3NsU3RhcnQgPCAwKQorICAgIGludCBzZWN1cmVDb25uZWN0aW9uU3RhcnQgPSB0aW1pbmctPnNl
Y3VyZUNvbm5lY3Rpb25TdGFydDsKKyAgICBpZiAoc2VjdXJlQ29ubmVjdGlvblN0YXJ0IDwgMCkK
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZl
VG9BYnNvbHV0ZShzc2xTdGFydCk7CisgICAgcmV0dXJuIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2
ZVRvQWJzb2x1dGUoc2VjdXJlQ29ubmVjdGlvblN0YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBs
b25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXF1ZXN0U3RhcnQoKSBjb25zdApAQCAtMjE4LDggKzIx
OCw4IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmUKICAgICBpZiAo
IXRpbWluZykKICAgICAgICAgcmV0dXJuIGNvbm5lY3RFbmQoKTsKIAotICAgIEFTU0VSVCh0aW1p
bmctPnNlbmRTdGFydCA+PSAwKTsKLSAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0aXZl
VG9BYnNvbHV0ZSh0aW1pbmctPnNlbmRTdGFydCk7CisgICAgQVNTRVJUKHRpbWluZy0+cmVxdWVz
dFN0YXJ0ID49IDApOworICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29s
dXRlKHRpbWluZy0+cmVxdWVzdFN0YXJ0KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZv
cm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKQEAgLTIyOCwxNCArMjI4LDggQEAg
dW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZQogICAgIGlmICghdGltaW5n
KQogICAgICAgICByZXR1cm4gcmVxdWVzdFN0YXJ0KCk7CiAKLSAgICAvLyBGSVhNRTogUmVzcG9u
c2Ugc3RhcnQgbmVlZHMgdG8gYmUgdGhlIHRpbWUgb2YgdGhlIGZpcnN0IHJlY2VpdmVkIGJ5dGUu
Ci0gICAgLy8gSG93ZXZlciwgdGhlIFJlc291cmNlTG9hZFRpbWluZyBBUEkgY3VycmVudGx5IG9u
bHkgc3VwcG9ydHMgdGhlIHRpbWUKLSAgICAvLyB0aGUgbGFzdCBoZWFkZXIgYnl0ZSB3YXMgcmVj
ZWl2ZWQuIEZvciBtYW55IHJlc3BvbnNlcyB3aXRoIHJlYXNvbmFibGUKLSAgICAvLyBzaXplZCBj
b29raWVzLCB0aGUgSFRUUCBoZWFkZXJzIGZpdCBpbnRvIGEgc2luZ2xlIHBhY2tldCBzbyB0aGlz
IHRpbWUKLSAgICAvLyBpcyBiYXNpY2FsbHkgZXF1aXZhbGVudC4gQnV0IGZvciBzb21lIHJlc3Bv
bnNlcywgcGFydGljdWxhcmx5IHRob3NlIHdpdGgKLSAgICAvLyBoZWFkZXJzIGxhcmdlciB0aGFu
IGEgc2luZ2xlIHBhY2tldCwgdGhpcyB0aW1lIHdpbGwgYmUgdG9vIGxhdGUuCi0gICAgQVNTRVJU
KHRpbWluZy0+cmVjZWl2ZUhlYWRlcnNFbmQgPj0gMCk7Ci0gICAgcmV0dXJuIHJlc291cmNlTG9h
ZFRpbWVSZWxhdGl2ZVRvQWJzb2x1dGUodGltaW5nLT5yZWNlaXZlSGVhZGVyc0VuZCk7CisgICAg
QVNTRVJUKHRpbWluZy0+cmVzcG9uc2VTdGFydCA+PSAwKTsKKyAgICByZXR1cm4gcmVzb3VyY2VM
b2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZSh0aW1pbmctPnJlc3BvbnNlU3RhcnQpOwogfQogCiB1
bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNlRW5kKCkgY29uc3QK
QEAgLTM1MSw5ICszNDUsNyBAQCBSZXNvdXJjZUxvYWRUaW1pbmcqIFBlcmZvcm1hbmNlVGltaW5n
OjpyCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlc291cmNlTG9hZFRp
bWVSZWxhdGl2ZVRvQWJzb2x1dGUoaW50IHJlbGF0aXZlTWlsbGlzZWNvbmRzKSBjb25zdAogewog
ICAgIEFTU0VSVChyZWxhdGl2ZU1pbGxpc2Vjb25kcyA+PSAwKTsKLSAgICBSZXNvdXJjZUxvYWRU
aW1pbmcqIHJlc291cmNlVGltaW5nID0gcmVzb3VyY2VMb2FkVGltaW5nKCk7Ci0gICAgQVNTRVJU
KHJlc291cmNlVGltaW5nKTsKLSAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxp
c2Vjb25kcyhyZXNvdXJjZVRpbWluZy0+Y29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25p
Y1RpbWUocmVsYXRpdmVNaWxsaXNlY29uZHMpKTsKKyAgICByZXR1cm4gbmF2aWdhdGlvblN0YXJ0
KCkgKyByZWxhdGl2ZU1pbGxpc2Vjb25kczsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZv
cm1hbmNlVGltaW5nOjptb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJsZSBt
b25vdG9uaWNTZWNvbmRzKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVRpbWluZy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVRpbWluZy5pZGwJKHJldmlzaW9uIDE2ODYyMykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VUaW1pbmcuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLS8vIFNlZTogaHR0cDovL2Rldi53My5vcmcvMjAwNi93ZWJh
cGkvV2ViVGltaW5nLworLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3JnL2hnL3dlYnBlcmYvcmF3
LWZpbGUvdGlwL3NwZWNzL05hdmlnYXRpb25UaW1pbmcvT3ZlcnZpZXcuaHRtbAogWwogICAgIENv
bmRpdGlvbmFsPVdFQl9USU1JTkcsCiBdIGludGVyZmFjZSBQZXJmb3JtYW5jZVRpbWluZyB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCShy
ZXZpc2lvbiAxNjg2MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQ
YXJzZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJh
c2U7Ci0KIGVudW0gQ29udGVudERpc3Bvc2l0aW9uVHlwZSB7CiAgICAgQ29udGVudERpc3Bvc2l0
aW9uTm9uZSwKICAgICBDb250ZW50RGlzcG9zaXRpb25JbmxpbmUsCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCShyZXZpc2lvbiAx
Njg2MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5MCw2ICsxOTAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IHZvaWQgc2V0SG9zdEFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJik7CiAg
ICAgc3RhdGljIHZvaWQgc2V0Q2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiBob3N0LCBH
VGxzQ2VydGlmaWNhdGUqKTsKICAgICBzdGF0aWMgdm9pZCBzZXRJZ25vcmVTU0xFcnJvcnMoYm9v
bCk7CisgICAgZG91YmxlIG1fcmVxdWVzdFRpbWU7CiAjZW5kaWYKIAogICAgIC8vIFVzZWQgdG8g
d29yayBhcm91bmQgdGhlIGZhY3QgdGhhdCB5b3UgZG9uJ3QgZ2V0IGFueSBtb3JlIE5TVVJMQ29u
bmVjdGlvbiBjYWxsYmFja3MgdW50aWwgeW91IHJldHVybiBmcm9tIHRoZSBvbmUgeW91J3JlIGlu
LgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1p
bmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VMb2FkVGltaW5nLmNwcAkocmV2aXNpb24gMTY4NjIzKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUxvYWRUaW1pbmcu
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1kb3VibGUgUmVzb3VyY2VMb2FkVGltaW5nOjpj
b252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvTW9ub3RvbmljVGltZShpbnQgZGVsdGFNaWxsaXNlY29u
ZHMpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHJlcXVlc3RUaW1lICsgZGVsdGFNaWxsaXNlY29uZHMg
LyAxMDAwLjA7Ci19Ci0KLX0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VMb2FkVGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAkocmV2aXNpb24gMTY4NjIzKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsNzYgKzQ0LDUwIEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFJlc291
cmNlTG9hZFRpbWluZz4gZGVlcENvcHkoKQogICAgIHsKICAgICAgICAgUmVmUHRyPFJlc291cmNl
TG9hZFRpbWluZz4gdGltaW5nID0gY3JlYXRlKCk7Ci0gICAgICAgIHRpbWluZy0+cmVxdWVzdFRp
bWUgPSByZXF1ZXN0VGltZTsKLSAgICAgICAgdGltaW5nLT5wcm94eVN0YXJ0ID0gcHJveHlTdGFy
dDsKLSAgICAgICAgdGltaW5nLT5wcm94eUVuZCA9IHByb3h5RW5kOwotICAgICAgICB0aW1pbmct
PmRuc1N0YXJ0ID0gZG5zU3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+ZG5zRW5kID0gZG5zRW5kOwor
ICAgICAgICB0aW1pbmctPmRvbWFpbkxvb2t1cFN0YXJ0ID0gZG9tYWluTG9va3VwU3RhcnQ7Cisg
ICAgICAgIHRpbWluZy0+ZG9tYWluTG9va3VwRW5kID0gZG9tYWluTG9va3VwRW5kOwogICAgICAg
ICB0aW1pbmctPmNvbm5lY3RTdGFydCA9IGNvbm5lY3RTdGFydDsKICAgICAgICAgdGltaW5nLT5j
b25uZWN0RW5kID0gY29ubmVjdEVuZDsKLSAgICAgICAgdGltaW5nLT5zZW5kU3RhcnQgPSBzZW5k
U3RhcnQ7Ci0gICAgICAgIHRpbWluZy0+c2VuZEVuZCA9IHNlbmRFbmQ7Ci0gICAgICAgIHRpbWlu
Zy0+cmVjZWl2ZUhlYWRlcnNFbmQgPSByZWNlaXZlSGVhZGVyc0VuZDsKLSAgICAgICAgdGltaW5n
LT5zc2xTdGFydCA9IHNzbFN0YXJ0OwotICAgICAgICB0aW1pbmctPnNzbEVuZCA9IHNzbEVuZDsK
KyAgICAgICAgdGltaW5nLT5yZXF1ZXN0U3RhcnQgPSByZXF1ZXN0U3RhcnQ7CisgICAgICAgIHRp
bWluZy0+cmVzcG9uc2VTdGFydCA9IHJlc3BvbnNlU3RhcnQ7CisgICAgICAgIHRpbWluZy0+c2Vj
dXJlQ29ubmVjdGlvblN0YXJ0ID0gc2VjdXJlQ29ubmVjdGlvblN0YXJ0OwogICAgICAgICByZXR1
cm4gdGltaW5nLnJlbGVhc2UoKTsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
UmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBy
ZXF1ZXN0VGltZSA9PSBvdGhlci5yZXF1ZXN0VGltZQotICAgICAgICAgICAgJiYgcHJveHlTdGFy
dCA9PSBvdGhlci5wcm94eVN0YXJ0Ci0gICAgICAgICAgICAmJiBwcm94eUVuZCA9PSBvdGhlci5w
cm94eUVuZAotICAgICAgICAgICAgJiYgZG5zU3RhcnQgPT0gb3RoZXIuZG5zU3RhcnQKLSAgICAg
ICAgICAgICYmIGRuc0VuZCA9PSBvdGhlci5kbnNFbmQKKyAgICAgICAgcmV0dXJuIGRvbWFpbkxv
b2t1cFN0YXJ0ID09IG90aGVyLmRvbWFpbkxvb2t1cFN0YXJ0CisgICAgICAgICAgICAmJiBkb21h
aW5Mb29rdXBFbmQgPT0gb3RoZXIuZG9tYWluTG9va3VwRW5kCiAgICAgICAgICAgICAmJiBjb25u
ZWN0U3RhcnQgPT0gb3RoZXIuY29ubmVjdFN0YXJ0CiAgICAgICAgICAgICAmJiBjb25uZWN0RW5k
ID09IG90aGVyLmNvbm5lY3RFbmQKLSAgICAgICAgICAgICYmIHNlbmRTdGFydCA9PSBvdGhlci5z
ZW5kU3RhcnQKLSAgICAgICAgICAgICYmIHNlbmRFbmQgPT0gb3RoZXIuc2VuZEVuZAotICAgICAg
ICAgICAgJiYgcmVjZWl2ZUhlYWRlcnNFbmQgPT0gb3RoZXIucmVjZWl2ZUhlYWRlcnNFbmQKLSAg
ICAgICAgICAgICYmIHNzbFN0YXJ0ID09IG90aGVyLnNzbFN0YXJ0Ci0gICAgICAgICAgICAmJiBz
c2xFbmQgPT0gb3RoZXIuc3NsRW5kOworICAgICAgICAgICAgJiYgcmVxdWVzdFN0YXJ0ID09IG90
aGVyLnJlcXVlc3RTdGFydAorICAgICAgICAgICAgJiYgcmVzcG9uc2VTdGFydCA9PSBvdGhlci5y
ZXNwb25zZVN0YXJ0CisgICAgICAgICAgICAmJiBzZWN1cmVDb25uZWN0aW9uU3RhcnQgPT0gb3Ro
ZXIuc2VjdXJlQ29ubmVjdGlvblN0YXJ0OwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVyKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0
dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogICAgIH0KLQotICAgIC8vIFdlIHdhbnQgdG8gcHJlc2Vu
dCBhIHVuaWZpZWQgdGltZWxpbmUgdG8gSmF2YXNjcmlwdC4gVXNpbmcgd2FsbHRpbWUgaXMgcHJv
YmxlbWF0aWMsIGJlY2F1c2UgdGhlIGNsb2NrIG1heSBza2V3IHdoaWxlIHJlc291cmNlcwotICAg
IC8vIGxvYWQuIFRvIHByZXZlbnQgdGhhdCBza2V3LCB3ZSByZWNvcmQgYSBzaW5nbGUgcmVmZXJl
bmNlIHdhbGx0aW1lIHdoZW4gcm9vdCBkb2N1bWVudCBuYXZpZ2F0aW9uIGJlZ2lucy4gQWxsIG90
aGVyIHRpbWVzIGFyZQotICAgIC8vIHJlY29yZGVkIHVzaW5nIG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpLiBXaGVuIGEgdGltZSBuZWVkcyB0byBiZSBwcmVzZW50ZWQgdG8gSmF2YXNjcmlw
dCwgd2UgYnVpbGQgYSBwc2V1ZG8td2FsbHRpbWUKLSAgICAvLyB1c2luZyB0aGUgZm9sbG93aW5n
IGVxdWF0aW9uOgotICAgIC8vICAgcHNldWRvIHRpbWUgPSBkb2N1bWVudCB3YWxsIHJlZmVyZW5j
ZSArIChyZXNvdXJjZSByZXF1ZXN0IHRpbWUgLSBkb2N1bWVudCBtb25vdG9uaWMgcmVmZXJlbmNl
KSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wLgotICAgIGRvdWJsZSBjb252ZXJ0UmVzb3Vy
Y2VMb2FkVGltZVRvTW9ub3RvbmljVGltZShpbnQgZGVsdGFNaWxsaXNlY29uZHMpIGNvbnN0Owot
Ci0gICAgZG91YmxlIHJlcXVlc3RUaW1lOyAvLyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KSB3aGVuIHRoZSBwb3J0IHN0YXJ0ZWQgaGFuZGxpbmcgdGhpcyByZXF1ZXN0LgotICAgIGludCBw
cm94eVN0YXJ0OyAvLyBUaGUgcmVzdCBvZiB0aGVzZSBhcmUgbWlsbGlzZWNvbmQgZGVsdGFzLCB1
c2luZyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgZnJvbSByZXF1ZXN0VGltZS4KLSAg
ICBpbnQgcHJveHlFbmQ7Ci0gICAgaW50IGRuc1N0YXJ0OwotICAgIGludCBkbnNFbmQ7CisgICAg
CisgICAgLy8gVGhlc2UgYXJlIG1pbGxpc2Vjb25kIGRlbHRhcyBmcm9tIHRoZSBuYXZpZ2F0aW9u
IHN0YXJ0LgorICAgIGludCBkb21haW5Mb29rdXBTdGFydDsKKyAgICBpbnQgZG9tYWluTG9va3Vw
RW5kOwogICAgIGludCBjb25uZWN0U3RhcnQ7CiAgICAgaW50IGNvbm5lY3RFbmQ7Ci0gICAgaW50
IHNlbmRTdGFydDsKLSAgICBpbnQgc2VuZEVuZDsKLSAgICBpbnQgcmVjZWl2ZUhlYWRlcnNFbmQ7
Ci0gICAgaW50IHNzbFN0YXJ0OwotICAgIGludCBzc2xFbmQ7Ci0KKyAgICBpbnQgcmVxdWVzdFN0
YXJ0OworICAgIGludCByZXNwb25zZVN0YXJ0OworICAgIGludCBzZWN1cmVDb25uZWN0aW9uU3Rh
cnQ7CisgICAgCiBwcml2YXRlOgogICAgIFJlc291cmNlTG9hZFRpbWluZygpCi0gICAgICAgIDog
cmVxdWVzdFRpbWUoMCkKLSAgICAgICAgLCBwcm94eVN0YXJ0KC0xKQotICAgICAgICAsIHByb3h5
RW5kKC0xKQotICAgICAgICAsIGRuc1N0YXJ0KC0xKQotICAgICAgICAsIGRuc0VuZCgtMSkKKyAg
ICAgICAgOiBkb21haW5Mb29rdXBTdGFydCgtMSkKKyAgICAgICAgLCBkb21haW5Mb29rdXBFbmQo
LTEpCiAgICAgICAgICwgY29ubmVjdFN0YXJ0KC0xKQogICAgICAgICAsIGNvbm5lY3RFbmQoLTEp
Ci0gICAgICAgICwgc2VuZFN0YXJ0KDApCi0gICAgICAgICwgc2VuZEVuZCgwKQotICAgICAgICAs
IHJlY2VpdmVIZWFkZXJzRW5kKDApCi0gICAgICAgICwgc3NsU3RhcnQoLTEpCi0gICAgICAgICwg
c3NsRW5kKC0xKQorICAgICAgICAsIHJlcXVlc3RTdGFydCgwKQorICAgICAgICAsIHJlc3BvbnNl
U3RhcnQoMCkKKyAgICAgICAgLCBzZWN1cmVDb25uZWN0aW9uU3RhcnQoLTEpCiAgICAgewogICAg
IH0KIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZUhhbmRsZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkocmV2aXNpb24gMTY4NjIzKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTU2LDYgKzU2LDE0IEBACiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQuaD4K
ICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAorI2lmIF9faGFzX2luY2x1ZGUoPEZvdW5k
YXRpb24vTlNVUkxDb25uZWN0aW9uUHJpdmF0ZS5oPikKKyNpbXBvcnQgPEZvdW5kYXRpb24vTlNV
UkxDb25uZWN0aW9uUHJpdmF0ZS5oPgorI2Vsc2UKK0BpbnRlcmZhY2UgTlNVUkxDb25uZWN0aW9u
IChUaW1pbmdEYXRhKQorKyAodm9pZClfc2V0Q29sbGVjdHNUaW1pbmdEYXRhOihCT09MKWNvbGxl
Y3Q7CitAZW5kCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgPENGTmV0d29y
ay9DRlVSTFJlcXVlc3QuaD4KIApAQCAtMjAwLDYgKzIwOCw5IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGkKICAgICBjb25zdCBib29sIHVzZXNDYWNoZSA9IHRydWU7
CiAjZW5kaWYKICAgICBkLT5tX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKFtbTlNVUkxDb25uZWN0aW9u
IGFsbG9jXSBfaW5pdFdpdGhSZXF1ZXN0Om5zUmVxdWVzdCBkZWxlZ2F0ZTpkZWxlZ2F0ZSB1c2Vz
Q2FjaGU6dXNlc0NhY2hlIG1heENvbnRlbnRMZW5ndGg6MCBzdGFydEltbWVkaWF0ZWx5Ok5PIGNv
bm5lY3Rpb25Qcm9wZXJ0aWVzOnByb3BlcnR5RGljdGlvbmFyeV0pOworI2lmIEVOQUJMRShXRUJf
VElNSU5HKQorICAgIFtOU1VSTENvbm5lY3Rpb24gX3NldENvbGxlY3RzVGltaW5nRGF0YTpZRVNd
OworI2VuZGlmCiB9CiAKIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVs
ZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMTY4NjIzKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsMTQgQEAKICNpbXBv
cnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNlLmgiCiAKKyNp
ZiBfX2hhc19pbmNsdWRlKDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4pCisjaW1wb3J0
IDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24uaD4KKyNlbHNlCitAaW50ZXJmYWNlIE5TVVJM
Q29ubmVjdGlvbiAoVGltaW5nRGF0YSkKKy0gKE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhOwor
QGVuZAorI2VuZGlmCisKIEBpbnRlcmZhY2UgTlNVUkxSZXF1ZXN0IChEZXRhaWxzKQogLSAoaWQp
X3Byb3BlcnR5Rm9yS2V5OihOU1N0cmluZyAqKWtleTsKIEBlbmQKQEAgLTE2OSw4ICsxNzcsNDAg
QEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogICAgIGlmIChtX2hh
bmRsZS0+cXVpY2tMb29rSGFuZGxlKCkpCiAgICAgICAgIHIgPSBtX2hhbmRsZS0+cXVpY2tMb29r
SGFuZGxlKCktPm5zUmVzcG9uc2UoKTsKICNlbmRpZgotCi0gICAgbV9oYW5kbGUtPmNsaWVudCgp
LT5kaWRSZWNlaXZlUmVzcG9uc2UobV9oYW5kbGUsIHIpOworICAgIAorICAgIFJlc291cmNlUmVz
cG9uc2UgcmVzb3VyY2VSZXNwb25zZShyKTsKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAgICBp
ZiAoTlNEaWN0aW9uYXJ5ICp0aW1pbmdEYXRhID0gW2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFdKSB7
CisgICAgICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNl
TG9hZFRpbWluZzo6Y3JlYXRlKCkpOworICAgICAgICBSZXNvdXJjZUxvYWRUaW1pbmcqIHRpbWlu
ZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgICAgIAorICAg
ICAgICAvLyBUaGlzIGlzIG5vdCB0aGUgbmF2aWdhdGlvblN0YXJ0IHRpbWUgaW4gbW9ub3Rvbmlj
IHRpbWUsIGJ1dCB0aGUgb3RoZXIgdGltZXMgYXJlIHJlbGF0aXZlIHRvIHRoaXMgdGltZQorICAg
ICAgICAvLyBhbmQgb25seSB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aW1lcyBhcmUgc3RvcmVk
LgorICAgICAgICBkb3VibGUgcmVmZXJlbmNlU3RhcnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JL
ZXk6QCJfa0NGTlRpbWluZ0RhdGFUaW1pbmdEYXRhSW5pdCJdIGRvdWJsZVZhbHVlXTsKKyAgICAg
ICAgCisgICAgICAgIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydCA9IFtbdGltaW5nRGF0YSB2YWx1
ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cFN0YXJ0Il0gZG91YmxlVmFsdWVd
OworICAgICAgICBkb3VibGUgZG9tYWluTG9va3VwRW5kID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9y
S2V5OkAiX2tDRk5UaW1pbmdEYXRhRG9tYWluTG9va3VwRW5kIl0gZG91YmxlVmFsdWVdOworICAg
ICAgICBkb3VibGUgY29ubmVjdFN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tD
Rk5UaW1pbmdEYXRhQ29ubmVjdFN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICBkb3VibGUg
c2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5U
aW1pbmdEYXRhU2VjdXJlQ29ubmVjdGlvblN0YXJ0Il0gZG91YmxlVmFsdWVdOworICAgICAgICBk
b3VibGUgY29ubmVjdEVuZCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5n
RGF0YUNvbm5lY3RFbmQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgIGRvdWJsZSByZXF1ZXN0U3Rh
cnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFSZXF1ZXN0U3Rh
cnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgIGRvdWJsZSByZXNwb25zZVN0YXJ0ID0gW1t0aW1p
bmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVzcG9uc2VTdGFydCJdIGRvdWJs
ZVZhbHVlXTsKKyAgICAgICAgCisgICAgICAgIGlmICh0aW1pbmcpIHsKKyAgICAgICAgICAgIHRp
bWluZy0+ZG9tYWluTG9va3VwU3RhcnQgPSBkb21haW5Mb29rdXBTdGFydCA8PSAwLjAgPyAtMSA6
IChkb21haW5Mb29rdXBTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAg
ICB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA9IGRvbWFpbkxvb2t1cEVuZCA8PSAwLjAgPyAtMSA6
IChkb21haW5Mb29rdXBFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAg
dGltaW5nLT5jb25uZWN0U3RhcnQgPSBjb25uZWN0U3RhcnQgPD0gMC4wID8gLTEgOiAoY29ubmVj
dFN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+c2Vj
dXJlQ29ubmVjdGlvblN0YXJ0ID0gc2VjdXJlQ29ubmVjdGlvblN0YXJ0IDw9IDAuMCA/IC0xIDog
KHNlY3VyZUNvbm5lY3Rpb25TdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAg
ICAgICB0aW1pbmctPmNvbm5lY3RFbmQgPSBjb25uZWN0RW5kIDw9IDAuMCA/IC0xIDogKGNvbm5l
Y3RFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgICAgICAgICAgdGltaW5nLT5yZXF1
ZXN0U3RhcnQgPSByZXF1ZXN0U3RhcnQgPD0gMC4wID8gLTEgOiAocmVxdWVzdFN0YXJ0IC0gcmVm
ZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIHRpbWluZy0+cmVzcG9uc2VTdGFydCA9
IHJlc3BvbnNlU3RhcnQgPD0gMC4wID8gLTEgOiAocmVzcG9uc2VTdGFydCAtIHJlZmVyZW5jZVN0
YXJ0KSAqIDEwMDA7CisgICAgICAgIH0KKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShj
b25uZWN0aW9uKTsKKyNlbmRpZgorICAgIAorICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlKG1faGFuZGxlLCByZXNvdXJjZVJlc3BvbnNlKTsKIH0KIAogI2lmIFVTRShO
RVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxl
Z2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHJldmlz
aW9uIDE2ODYyMykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNv
cmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5
KQpAQCAtMzksNiArMzksMTQgQEAKICNpbXBvcnQgIldlYkNvcmVVUkxSZXNwb25zZS5oIgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KIAorI2lmIF9faGFzX2luY2x1ZGUoPENGTmV0d29yay9D
Rk5TVVJMQ29ubmVjdGlvbi5oPikKKyNpbXBvcnQgPENGTmV0d29yay9DRk5TVVJMQ29ubmVjdGlv
bi5oPgorI2Vsc2UKK0BpbnRlcmZhY2UgTlNVUkxDb25uZWN0aW9uIChUaW1pbmdEYXRhKQorLSAo
TlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CitAZW5kCisjZW5kaWYKKwogQGludGVyZmFjZSBO
U1VSTFJlcXVlc3QgKERldGFpbHMpCiAtIChpZClfcHJvcGVydHlGb3JLZXk6KE5TU3RyaW5nICop
a2V5OwogQGVuZApAQCAtMTkzLDcgKzIwMSw2IEBAIC0gKEJPT0wpY29ubmVjdGlvbjooTlNVUkxD
b25uZWN0aW9uICopY28KIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29u
bmVjdGlvbiBkaWRSZWNlaXZlUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyCiB7CiAgICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwogCiAg
ICAgTE9HKE5ldHdvcmssICJIYW5kbGUgJXAgZGVsZWdhdGUgY29ubmVjdGlvbjolcCBkaWRSZWNl
aXZlUmVzcG9uc2U6JXAgKEhUVFAgc3RhdHVzICVkLCByZXBvcnRlZCBNSU1FVHlwZSAnJXMnKSIs
IG1faGFuZGxlLCBjb25uZWN0aW9uLCByLCBbciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHN0YXR1c0NvZGUpXSA/IFsoaWQpciBzdGF0dXNDb2RlXSA6IDAsIFtbciBNSU1FVHlwZV0gVVRG
OFN0cmluZ10pOwogCkBAIC0yMTIsOCArMjE5LDM5IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNV
UkxDb25uZWN0aW9uICopY28KIAogICAgICAgICBpZiAoW21faGFuZGxlLT5maXJzdFJlcXVlc3Qo
KS5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSkgX3Byb3BlcnR5Rm9yS2V5OkAiRm9y
Y2VIVE1MTUlNRVR5cGUiXSkKICAgICAgICAgICAgIFtyIF9zZXRNSU1FVHlwZTpAInRleHQvaHRt
bCJdOwotCi0gICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5
bmMobV9oYW5kbGUsIHIpOworICAgICAgICAKKyAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNv
dXJjZVJlc3BvbnNlKHIpOworI2lmIEVOQUJMRShXRUJfVElNSU5HKQorICAgICAgICBpZiAoTlNE
aWN0aW9uYXJ5ICp0aW1pbmdEYXRhID0gW2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFdKSB7CisgICAg
ICAgICAgICByZXNvdXJjZVJlc3BvbnNlLnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxv
YWRUaW1pbmc6OmNyZWF0ZSgpKTsKKyAgICAgICAgICAgIFJlc291cmNlTG9hZFRpbWluZyogdGlt
aW5nID0gcmVzb3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgLy8gVGhpcyBpcyBub3QgdGhlIG5hdmlnYXRpb25TdGFydCB0aW1lIGlu
IG1vbm90b25pYyB0aW1lLCBidXQgdGhlIG90aGVyIHRpbWVzIGFyZSByZWxhdGl2ZSB0byB0aGlz
IHRpbWUKKyAgICAgICAgICAgIC8vIGFuZCBvbmx5IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRp
bWVzIGFyZSBzdG9yZWQuCisgICAgICAgICAgICBkb3VibGUgcmVmZXJlbmNlU3RhcnQgPSBbW3Rp
bWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFUaW1pbmdEYXRhSW5pdCJdIGRv
dWJsZVZhbHVlXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZG91YmxlIGRvbWFpbkxvb2t1
cFN0YXJ0ID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhRG9tYWlu
TG9va3VwU3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICBkb3VibGUgZG9tYWluTG9v
a3VwRW5kID0gW1t0aW1pbmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhRG9tYWlu
TG9va3VwRW5kIl0gZG91YmxlVmFsdWVdOworICAgICAgICAgICAgZG91YmxlIGNvbm5lY3RTdGFy
dCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YUNvbm5lY3RTdGFy
dCJdIGRvdWJsZVZhbHVlXTsKKyAgICAgICAgICAgIGRvdWJsZSBzZWN1cmVDb25uZWN0aW9uU3Rh
cnQgPSBbW3RpbWluZ0RhdGEgdmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFTZWN1cmVDb25u
ZWN0aW9uU3RhcnQiXSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICBkb3VibGUgY29ubmVjdEVu
ZCA9IFtbdGltaW5nRGF0YSB2YWx1ZUZvcktleTpAIl9rQ0ZOVGltaW5nRGF0YUNvbm5lY3RFbmQi
XSBkb3VibGVWYWx1ZV07CisgICAgICAgICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0ID0gW1t0aW1p
bmdEYXRhIHZhbHVlRm9yS2V5OkAiX2tDRk5UaW1pbmdEYXRhUmVxdWVzdFN0YXJ0Il0gZG91Ymxl
VmFsdWVdOworICAgICAgICAgICAgZG91YmxlIHJlc3BvbnNlU3RhcnQgPSBbW3RpbWluZ0RhdGEg
dmFsdWVGb3JLZXk6QCJfa0NGTlRpbWluZ0RhdGFSZXNwb25zZVN0YXJ0Il0gZG91YmxlVmFsdWVd
OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodGltaW5nKSB7CisgICAgICAgICAgICAg
ICAgdGltaW5nLT5kb21haW5Mb29rdXBTdGFydCA9IGRvbWFpbkxvb2t1cFN0YXJ0IDw9IDAuMCA/
IC0xIDogKGRvbWFpbkxvb2t1cFN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAg
ICAgICAgICAgICB0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCA9IGRvbWFpbkxvb2t1cEVuZCA8PSAw
LjAgPyAtMSA6IChkb21haW5Mb29rdXBFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAg
ICAgICAgICAgICAgIHRpbWluZy0+Y29ubmVjdFN0YXJ0ID0gY29ubmVjdFN0YXJ0IDw9IDAuMCA/
IC0xIDogKGNvbm5lY3RTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAg
ICAgICAgdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBzZWN1cmVDb25uZWN0aW9uU3Rh
cnQgPD0gMC4wID8gLTEgOiAoc2VjdXJlQ29ubmVjdGlvblN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQp
ICogMTAwMDsKKyAgICAgICAgICAgICAgICB0aW1pbmctPmNvbm5lY3RFbmQgPSBjb25uZWN0RW5k
IDw9IDAuMCA/IC0xIDogKGNvbm5lY3RFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAg
ICAgICAgICAgICAgIHRpbWluZy0+cmVxdWVzdFN0YXJ0ID0gcmVxdWVzdFN0YXJ0IDw9IDAuMCA/
IC0xIDogKHJlcXVlc3RTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgICAgICAg
ICAgICAgdGltaW5nLT5yZXNwb25zZVN0YXJ0ID0gcmVzcG9uc2VTdGFydCA8PSAwLjAgPyAtMSA6
IChyZXNwb25zZVN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworI2Vu
ZGlmCisgICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMo
bV9oYW5kbGUsIHJlc291cmNlUmVzcG9uc2UpOwogICAgIH0pOwogCiAgICAgZGlzcGF0Y2hfc2Vt
YXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcAkocmV2aXNpb24gMTY4NjIzKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMxNiwxMSArMzE2LDYgQEAgc3RhdGljIHZvaWQgZ290SGVhZGVyc0NhbGxiYWNrKFNv
dXBNZXNzYQogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50
ZXJuYWwoKTsKIAotI2lmIEVOQUJMRShXRUJfVElNSU5HKQotICAgIGlmIChkLT5tX3Jlc3BvbnNl
LnJlc291cmNlTG9hZFRpbWluZygpKQotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9h
ZFRpbWluZygpLT5yZWNlaXZlSGVhZGVyc0VuZCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQt
Pm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lKTsKLSNlbmRpZgot
CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIC8vIFdlIGFyZSBhIGJpdCBtb3JlIGNvbnNlcnZhdGl2
ZSB3aXRoIHRoZSBwZXJzaXN0ZW50IGNyZWRlbnRpYWwgc3RvcmFnZSB0aGFuIHRoZSBzZXNzaW9u
IHN0b3JlLAogICAgIC8vIHNpbmNlIHdlIGFyZSB3YWl0aW5nIHVudGlsIHdlIGtub3cgdGhhdCB0
aGlzIGF1dGhlbnRpY2F0aW9uIHN1Y2NlZWRlZCBiZWZvcmUgYWN0dWFsbHkgc3RvcmluZy4KQEAg
LTM5MCw3ICszODUsNyBAQCBzdGF0aWMgdm9pZCByZXN0YXJ0ZWRDYWxsYmFjayhTb3VwTWVzc2Fn
CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsK
ICAgICBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlID0gZC0+bV9yZXNwb25zZTsK
ICAgICByZWRpcmVjdFJlc3BvbnNlLnNldFJlc291cmNlTG9hZFRpbWluZyhSZXNvdXJjZUxvYWRU
aW1pbmc6OmNyZWF0ZSgpKTsKLSAgICByZWRpcmVjdFJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWlu
ZygpLT5yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgIGhh
bmRsZS0+bV9yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogfQog
I2VuZGlmCiAKQEAgLTgzOCwzNSArODMzLDEzIEBAIHN0YXRpYyBpbnQgbWlsaXNlY29uZHNTaW5j
ZVJlcXVlc3QoZG91YmwKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PigobW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCkgLSByZXF1ZXN0VGltZSkgKiAxMDAwLjApOwogfQogCi1zdGF0aWMg
dm9pZCB3cm90ZUJvZHlDYWxsYmFjayhTb3VwTWVzc2FnZSosIGdwb2ludGVyIGRhdGEpCi17Ci0g
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhh
bmRsZSo+KGRhdGEpOwotICAgIGlmICghaGFuZGxlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIGlm
ICghZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VuZEVuZCA9IG1pbGlz
ZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJl
cXVlc3RUaW1lKTsKLX0KLQogdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkU3RhcnRSZXF1ZXN0KCkK
IHsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gZ2V0SW50ZXJuYWwoKTsKICAgICBp
ZiAoIWQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNlbmRTdGFydCA9IG1p
bGlzZWNvbmRzU2luY2VSZXF1ZXN0KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkt
PnJlcXVlc3RUaW1lKTsKLSAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+c3NsU3RhcnQgIT0gLTEpIHsKLSAgICAgICAgLy8gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1JlcXVlc3RUaW1pbmdWaWV3LmpzIGFzc3VtZXMKLSAgICAgICAgLy8gdGhhdCBTU0wgdGlt
ZSBpcyBpbmNsdWRlZCBpbiBjb25uZWN0aW9uIHRpbWUgc28gbXVzdAotICAgICAgICAvLyBzdWJz
dHJhY3QgaGVyZSB0aGUgU1NMIGRlbHRhIHRoYXQgd2lsbCBiZSBhZGRlZCBsYXRlciAoc2VlCi0g
ICAgICAgIC8vIFdlYkluc3BlY3Rvci5SZXF1ZXN0VGltaW5nVmlldy5jcmVhdGVUaW1pbmdUYWJs
ZSBpbiB0aGUKLSAgICAgICAgLy8gZmlsZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWxzKS4KLSAgICAg
ICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c2VuZFN0YXJ0IC09Ci0gICAg
ICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xFbmQgLSBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5zc2xTdGFydDsKLSAgICB9CisgICAgZC0+
bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFN0YXJ0ID0gbWlsaXNlY29u
ZHNTaW5jZVJlcXVlc3QobV9yZXF1ZXN0VGltZSk7CiB9CiAKIHN0YXRpYyB2b2lkIG5ldHdvcmtF
dmVudENhbGxiYWNrKFNvdXBNZXNzYWdlKiwgR1NvY2tldENsaWVudEV2ZW50IGV2ZW50LCBHSU9T
dHJlYW0qLCBncG9pbnRlciBkYXRhKQpAQCAtODc5LDQwICs4NTIsMzggQEAgc3RhdGljIHZvaWQg
bmV0d29ya0V2ZW50Q2FsbGJhY2soU291cE1lcwogICAgICAgICByZXR1cm47CiAKICAgICBSZXNv
dXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIGludCBk
ZWx0YVRpbWUgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLT5yZXF1ZXN0VGltZSk7CisgICAgaW50IGRlbHRhVGltZSA9IG1pbGlzZWNv
bmRzU2luY2VSZXF1ZXN0KGhhbmRsZS0+bV9yZXF1ZXN0VGltZSk7CiAgICAgc3dpdGNoIChldmVu
dCkgewogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1JFU09MVklORzoKLSAgICAgICAgZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5zU3RhcnQgPSBkZWx0YVRpbWU7CisgICAg
ICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRvbWFpbkxvb2t1cFN0YXJ0
ID0gZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9S
RVNPTFZFRDoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG5z
RW5kID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWlu
ZygpLT5kb21haW5Mb29rdXBFbmQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgR19TT0NLRVRfQ0xJRU5UX0NPTk5FQ1RJTkc6CiAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RTdGFydCA9IGRlbHRhVGltZTsKLSAgICAgICAgaWYg
KGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPmRuc1N0YXJ0ICE9IC0xKQorICAg
ICAgICBpZiAoZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+ZG9tYWluTG9va3Vw
U3RhcnQgIT0gLTEpIHsKICAgICAgICAgICAgIC8vIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXF1ZXN0VGltaW5nVmlldy5qcyBhc3N1bWVzCiAgICAgICAgICAgICAvLyB0aGF0IEROUyB0
aW1lIGlzIGluY2x1ZGVkIGluIGNvbm5lY3Rpb24gdGltZSBzbyBtdXN0CiAgICAgICAgICAgICAv
LyBzdWJzdHJhY3QgaGVyZSB0aGUgRE5TIGRlbHRhIHRoYXQgd2lsbCBiZSBhZGRlZCBsYXRlciAo
c2VlCiAgICAgICAgICAgICAvLyBXZWJJbnNwZWN0b3IuUmVxdWVzdFRpbWluZ1ZpZXcuY3JlYXRl
VGltaW5nVGFibGUgaW4gdGhlCiAgICAgICAgICAgICAvLyBmaWxlIGFib3ZlIGZvciBtb3JlIGRl
dGFpbHMpLgogICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
Y29ubmVjdFN0YXJ0IC09Ci0gICAgICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxv
YWRUaW1pbmcoKS0+ZG5zRW5kIC0gZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+
ZG5zU3RhcnQ7CisgICAgICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS0+ZG9tYWluTG9va3VwRW5kIC0gZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmco
KS0+ZG9tYWluTG9va3VwU3RhcnQ7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBHX1NPQ0tFVF9DTElFTlRfQ09OTkVDVEVEOgogICAgICAgICAvLyBXZWIgVGltaW5nIGNvbnNp
ZGVycyB0aGF0IGNvbm5lY3Rpb24gdGltZSBpbnZvbHZlcyBkbnMsIHByb3h5ICYgVExTIG5lZ290
aWF0aW9uLi4uCiAgICAgICAgIC8vIHNvIHdlIGJldHRlciBwaWNrIEdfU09DS0VUX0NMSUVOVF9D
T01QTEVURSBmb3IgY29ubmVjdEVuZAogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VU
X0NMSUVOVF9QUk9YWV9ORUdPVElBVElORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJj
ZUxvYWRUaW1pbmcoKS0+cHJveHlTdGFydCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUFJPWFlfTkVHT1RJQVRFRDoKLSAgICAgICAgZC0+bV9y
ZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cHJveHlFbmQgPSBkZWx0YVRpbWU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1RMU19IQU5EU0hBS0lORzoKLSAg
ICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+c3NsU3RhcnQgPSBkZWx0
YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnNlY3Vy
ZUNvbm5lY3Rpb25TdGFydCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBH
X1NPQ0tFVF9DTElFTlRfVExTX0hBTkRTSEFLRUQ6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVz
b3VyY2VMb2FkVGltaW5nKCktPnNzbEVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfQ09NUExFVEU6CiAgICAgICAgIGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCktPmNvbm5lY3RFbmQgPSBkZWx0YVRpbWU7CkBAIC05NzQsNyAr
OTQ1LDYgQEAgc3RhdGljIGJvb2wgY3JlYXRlU291cE1lc3NhZ2VGb3JIYW5kbGVBbgogICAgIGQt
Pm1fcmVzcG9uc2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3Jl
YXRlKCkpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgIm5l
dHdvcmstZXZlbnQiLCBHX0NBTExCQUNLKG5ldHdvcmtFdmVudENhbGxiYWNrKSwgaGFuZGxlKTsK
ICAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksICJyZXN0YXJ0ZWQi
LCBHX0NBTExCQUNLKHJlc3RhcnRlZENhbGxiYWNrKSwgaGFuZGxlKTsKLSAgICBnX3NpZ25hbF9j
b25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksICJ3cm90ZS1ib2R5IiwgR19DQUxMQkFDSyh3
cm90ZUJvZHlDYWxsYmFjayksIGhhbmRsZSk7CiAjZW5kaWYKIAogI2lmIFNPVVBfQ0hFQ0tfVkVS
U0lPTigyLCA0MywgMSkKQEAgLTEwNDgsNyArMTAxOCw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6
OnNlbmRQZW5kaW5nUmVxdWVzdCgKIHsKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKICAgICBpZiAo
ZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKLSAgICAgICAgZC0+bV9yZXNwb25z
ZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKTsKKyAgICAgICAgbV9yZXF1ZXN0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpOwogI2VuZGlmCiAKICAgICBpZiAoZC0+bV9maXJzdFJlcXVlc3QudGltZW91dElu
dGVydmFsKCkgPiAwKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjg2MzApCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAx
NC0wNS0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisg
ICAgICAgIFByb2dyZXNzIG9uIHdlYiB0aW1pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI1NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjpkZWNvZGUp
OgorICAgICAgICBUcmFuc2ZlciBSZXNvdXJjZUxvYWRUaW1pbmcgdmFsdWVzIGlmIHRoZXkgZXhp
c3QuCisKIDIwMTQtMDUtMTIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
IAogICAgICAgICBXS1dlYlZpZXcgc2hvdWxkIGRlZmF1bHQgdG8gX2JhY2tncm91bmRFeHRlbmRz
QmV5b25kUGFnZSA9IFlFUwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAJKHJldmlzaW9uIDE2ODYyMykKKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02ODgs
NiArNjg4LDIxIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZW4KICAg
ICAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlc3BvbnNlLmh0dHBTdGF0dXNUZXh0KCk7CiAgICAg
ICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpOwogICAg
IH0KKyAgICAKKyNpZiBFTkFCTEUoV0VCX1RJTUlORykKKyAgICBSZXNvdXJjZUxvYWRUaW1pbmcq
IHRpbWluZyA9IHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgYm9v
bCBoYXNSZXNvdXJjZUxvYWRUaW1pbmcgPSB0aW1pbmc7CisgICAgZW5jb2RlciA8PCBoYXNSZXNv
dXJjZUxvYWRUaW1pbmc7CisgICAgaWYgKGhhc1Jlc291cmNlTG9hZFRpbWluZykgeworICAgICAg
ICBlbmNvZGVyIDw8IHRpbWluZy0+ZG9tYWluTG9va3VwU3RhcnQ7CisgICAgICAgIGVuY29kZXIg
PDwgdGltaW5nLT5kb21haW5Mb29rdXBFbmQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5j
b25uZWN0U3RhcnQ7CisgICAgICAgIGVuY29kZXIgPDwgdGltaW5nLT5jb25uZWN0RW5kOworICAg
ICAgICBlbmNvZGVyIDw8IHRpbWluZy0+cmVxdWVzdFN0YXJ0OworICAgICAgICBlbmNvZGVyIDw8
IHRpbWluZy0+cmVzcG9uc2VTdGFydDsKKyAgICAgICAgZW5jb2RlciA8PCB0aW1pbmctPnNlY3Vy
ZUNvbm5lY3Rpb25TdGFydDsKKyAgICB9CisjZW5kaWYKIH0KIAogYm9vbCBBcmd1bWVudENvZGVy
PFJlc291cmNlUmVzcG9uc2U+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNlKQpAQCAtNzU1LDYgKzc3MCwyNCBAQCBib29s
IEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIHJlc3BvbnNlLnNldFN1Z2dlc3RlZEZpbGVuYW1lKHN1Z2dlc3RlZEZp
bGVuYW1lKTsKICAgICB9CisgICAgCisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgYm9vbCBo
YXNSZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNSZXNvdXJj
ZUxvYWRUaW1pbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGhhc1Jlc291cmNl
TG9hZFRpbWluZykgeworICAgICAgICByZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVz
b3VyY2VMb2FkVGltaW5nOjpjcmVhdGUoKSk7CisgICAgICAgIFJlc291cmNlTG9hZFRpbWluZyog
dGltaW5nID0gcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUodGltaW5nLT5kb21haW5Mb29rdXBTdGFydCkKKyAgICAgICAgICAgIHx8ICFk
ZWNvZGVyLmRlY29kZSh0aW1pbmctPmRvbWFpbkxvb2t1cEVuZCkKKyAgICAgICAgICAgIHx8ICFk
ZWNvZGVyLmRlY29kZSh0aW1pbmctPmNvbm5lY3RTdGFydCkKKyAgICAgICAgICAgIHx8ICFkZWNv
ZGVyLmRlY29kZSh0aW1pbmctPmNvbm5lY3RFbmQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5k
ZWNvZGUodGltaW5nLT5yZXF1ZXN0U3RhcnQpCisgICAgICAgICAgICB8fCAhZGVjb2Rlci5kZWNv
ZGUodGltaW5nLT5yZXNwb25zZVN0YXJ0KQorICAgICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2Rl
KHRpbWluZy0+c2VjdXJlQ29ubmVjdGlvblN0YXJ0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJlc291cmNlUmVzcG9uc2UgPSByZXNwb25zZTsKIAo=
</data>
<flag name="review"
          id="255766"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>