<?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>224862</bug_id>
          
          <creation_ts>2021-04-21 02:31:23 -0700</creation_ts>
          <short_desc>[GTK][WPE] Add a timer to periodically check the responsiveness of web processes with visible pages</short_desc>
          <delta_ts>2024-01-31 10:22:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=246330</see_also>
          <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="Miguel Gomez">magomez</reporter>
          <assigned_to name="Miguel Gomez">magomez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>svillar</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1752683</commentid>
    <comment_count>0</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-21 02:31:23 -0700</bug_when>
    <thetext>Currently there are 3 ways to detect the responsiveness of a web process:
- Check that there&apos;s a reply from the web process when there&apos;s an input event
- Check that there&apos;s an answer from the web process when there&apos;s an API call (only for some methods)
- Periodical timer pinging the web process when the process doesn&apos;t have any visible web page (BackgroundProcessResponsivenessTimer)

What we don&apos;t have is a way to periodically ping the processes with visible pages. This means that on situations where the user is not generating input events we won&apos;t detect unresponsive web processes (watching a video without interacting with the page, for example). We would need to do some periodical check on visible pages as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752734</commentid>
    <comment_count>1</comment_count>
      <attachid>426683</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-21 07:47:35 -0700</bug_when>
    <thetext>Created attachment 426683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752737</commentid>
    <comment_count>2</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-21 07:53:12 -0700</bug_when>
    <thetext>(In reply to Miguel Gomez from comment #1)
&gt; Created attachment 426683 [details]
&gt; Patch

Basically I&apos;ve added a new timer similar to BackgroundProcessResponsivenessTimer that is enabled when the process contains some visible page. It pings the web process every 10 seconds and waits for an answer for 3 seconds. It gets disabled when the page becomes invisible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753486</commentid>
    <comment_count>3</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-23 00:50:23 -0700</bug_when>
    <thetext>I think there&apos;s a better solution than the one I implemented, so please don&apos;t review this patch. I&apos;ll send a new one with a better approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753560</commentid>
    <comment_count>4</comment_count>
      <attachid>426902</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-23 06:29:44 -0700</bug_when>
    <thetext>Created attachment 426902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754182</commentid>
    <comment_count>5</comment_count>
      <attachid>427044</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-26 07:42:46 -0700</bug_when>
    <thetext>Created attachment 427044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754190</commentid>
    <comment_count>6</comment_count>
      <attachid>427047</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-26 08:17:23 -0700</bug_when>
    <thetext>Created attachment 427047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755315</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-04-29 01:44:41 -0700</bug_when>
    <thetext>This needs wk2 owner approval.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755316</commentid>
    <comment_count>8</comment_count>
      <attachid>427047</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-04-29 01:51:35 -0700</bug_when>
    <thetext>Comment on attachment 427047
Patch

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        web process was received, and it&apos;s enabled for the GTK and WPE ports only.

I wonder why this is only useful for GTK/WPE.

&gt; Source/WebKit/UIProcess/ResponsivenessTimer.cpp:218
&gt; +bool ResponsivenessTimer::isPeriodicalCheckActive() const
&gt; +{
&gt; +    return m_periodicalCheckTimer.isActive();
&gt; +}

Do we really need this? This is private, right?

&gt; Source/WebKit/UIProcess/ResponsivenessTimer.h:90
&gt;      RunLoop::Timer&lt;ResponsivenessTimer&gt; m_timer;
&gt; +    RunLoop::Timer&lt;ResponsivenessTimer&gt; m_periodicalCheckTimer;

Now that I see this, we should set a priority for this timers when USE(GLIB_EVENT_LOOP). Not as a part of this patch, though.

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1629
&gt;      m_backgroundResponsivenessTimer.updateState();
&gt; +    m_responsivenessTimer.scheduleNextPeriodicalCheckIfNeeded();

I wonder if we should merge all responsivness timers in a single class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755321</commentid>
    <comment_count>9</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-29 02:16:04 -0700</bug_when>
    <thetext> 
&gt; I wonder if we should merge all responsivness timers in a single class.

We could use the BackgroundProcessResponsivenessTimer to always perform periodic pings (whether the proxy has visible pages or not), but use different intervals: if there are visible pages ping every 10 seconds and if not use the incremental interval that&apos;s currently used. I thought of doing this, but then it wouldn&apos;t be a BackgroundProcessResponsivenessTimer anymore, but a PeriodicResponsivenessTimer (or something like that).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755322</commentid>
    <comment_count>10</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-29 02:18:08 -0700</bug_when>
    <thetext>As a side note, I&apos;ve tested how this works on Chrome and Firefox. Chrome doesn&apos;t seem to use any periodic timer, and the unresponsiveness is only detected if there&apos;s user input. Firefox, on the other hand, detects unresponsive pages without the need of user input.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755336</commentid>
    <comment_count>11</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-04-29 03:20:23 -0700</bug_when>
    <thetext>I wonder what are the implications from battery usage POV for embedded devices having this periodic poll. Maybe waking up every 10s or so is not that a big deal but I guess it depends on the device. It&apos;d be awesome if we could schedule it in a way that is not execute until some other work kicks in.

Anyway not blocking it just dumping some thoughts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755339</commentid>
    <comment_count>12</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2021-04-29 04:04:23 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #11)
&gt; I wonder what are the implications from battery usage POV for embedded
&gt; devices having this periodic poll. Maybe waking up every 10s or so is not
&gt; that a big deal but I guess it depends on the device. It&apos;d be awesome if we
&gt; could schedule it in a way that is not execute until some other work kicks
&gt; in.
&gt; 
&gt; Anyway not blocking it just dumping some thoughts.

The timer only works as long as the page is visible. When the page is not visible the BackgroundProcessResponsivenessTimer is the one working (that&apos;s already happening), but using much bigger timeout periods (starts at 20_s and doubles each time it fires).

The question here is whether the applications using the web view will be setting the appropriate ActivityState flags. If locking the device causes the app to turn of the visibility of the page, this timer won&apos;t kick in (the background one will). But if the visibility stays on, this timer will run every ten seconds. Unless the device has some other way to maybe suspend the processes while locked, in which case it doesn&apos;t matter what we do.

But this is the same situation as video playback for example. Locking a device that&apos;s playing a video should stop the playback. I&apos;ve just tested in my phone that locking the device stops the video playback on chrome, so something is being done on the web view to notify that the playback must be stopped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755344</commentid>
    <comment_count>13</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-04-29 05:00:48 -0700</bug_when>
    <thetext>(In reply to Miguel Gomez from comment #12)
&gt; (In reply to Sergio Villar Senin from comment #11)
&gt; &gt; I wonder what are the implications from battery usage POV for embedded
&gt; &gt; devices having this periodic poll. Maybe waking up every 10s or so is not
&gt; &gt; that a big deal but I guess it depends on the device. It&apos;d be awesome if we
&gt; &gt; could schedule it in a way that is not execute until some other work kicks
&gt; &gt; in.
&gt; &gt; 
&gt; &gt; Anyway not blocking it just dumping some thoughts.
&gt; 
&gt; The timer only works as long as the page is visible. When the page is not
&gt; visible the BackgroundProcessResponsivenessTimer is the one working (that&apos;s
&gt; already happening), but using much bigger timeout periods (starts at 20_s
&gt; and doubles each time it fires).
&gt; 
&gt; The question here is whether the applications using the web view will be
&gt; setting the appropriate ActivityState flags. If locking the device causes
&gt; the app to turn of the visibility of the page, this timer won&apos;t kick in (the
&gt; background one will). But if the visibility stays on, this timer will run
&gt; every ten seconds. Unless the device has some other way to maybe suspend the
&gt; processes while locked, in which case it doesn&apos;t matter what we do.
&gt; 
&gt; But this is the same situation as video playback for example. Locking a
&gt; device that&apos;s playing a video should stop the playback. I&apos;ve just tested in
&gt; my phone that locking the device stops the video playback on chrome, so
&gt; something is being done on the web view to notify that the playback must be
&gt; stopped.

https://www.w3.org/TR/page-visibility-2/ maybe?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426683</attachid>
            <date>2021-04-21 07:47:35 -0700</date>
            <delta_ts>2021-04-23 06:29:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224862-20210421164733.patch</filename>
            <type>text/plain</type>
            <size>22111</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFkODU2YjBjMDFiM2I0ZTRk
Y2FiODg0ZTBkNzliOTY2OTg2MjZjNDkuLjM3MmE5OTE3NGZlM2YxMzIxZDM0OTdkZGIyOWMyZDJm
NjM4NDZlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjEtMDQtMjEgIE1pZ3VlbCBH
b21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEFkZCBhIHRp
bWVyIHRvIHBlcmlvZGljYWxseSBjaGVjayB0aGUgcmVzcG9uc2l2ZW5lc3Mgb2Ygd2ViIHByb2Nl
c3NlcyB3aXRoIHZpc2libGUgcGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNDg2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIG5ldyB0aW1lciBpbnNpZGUgV2ViUHJvY2Vzc1Byb3h5IHdo
b3NlIG1pc3Npb24gaXMgdG8gcGVyaW9kaWNhbGx5IHBpbmcgdGhlIFdlYlByb2Nlc3Mgd2hlbiBp
dAorICAgICAgICBjb250YWlucyB2aXNpYmxlIHBhZ2VzLiBUaGlzIG5ldyB0aW1lciB3aWxsIGRl
dGVjdCB1bnJlc3BvbnNpdmUgd2ViIHByb2Nlc3NlcyB3aGVuIHRoZXJlJ3Mgbm8gdXNlcgorICAg
ICAgICBpbnB1dCBvciBBUEkgY2FsbHMuCisKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAg
ICAgICAgKiBTb3VyY2VzV1BFLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRm9yZWdyb3VuZFBy
b2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkZv
cmVncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Rm9yZWdyb3VuZFByb2Nlc3NSZXNw
b25zaXZlbmVzc1RpbWVyKToKKyAgICAgICAgKFdlYktpdDo6Rm9yZWdyb3VuZFByb2Nlc3NSZXNw
b25zaXZlbmVzc1RpbWVyOjp+Rm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyKToK
KyAgICAgICAgKFdlYktpdDo6Rm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyOjp1
cGRhdGVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZvcmVncm91bmRQcm9jZXNzUmVzcG9uc2l2
ZW5lc3NUaW1lcjo6ZGlkUmVjZWl2ZUZvcmVncm91bmRSZXNwb25zaXZlbmVzc1BvbmcpOgorICAg
ICAgICAoV2ViS2l0OjpGb3JlZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXI6OmludmFs
aWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpGb3JlZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNz
VGltZXI6OnByb2Nlc3NUZXJtaW5hdGVkKToKKyAgICAgICAgKFdlYktpdDo6Rm9yZWdyb3VuZFBy
b2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyOjpyZXNwb25zaXZlbmVzc0NoZWNrVGltZXJGaXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OkZvcmVncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lcjo6
dGltZW91dFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpGb3JlZ3JvdW5kUHJvY2Vzc1Jl
c3BvbnNpdmVuZXNzVGltZXI6OnNldFJlc3BvbnNpdmUpOgorICAgICAgICAoV2ViS2l0OjpGb3Jl
Z3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXI6OnNob3VsZEJlQWN0aXZlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6Rm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyOjpp
c0FjdGl2ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZvcmVncm91bmRQcm9jZXNzUmVzcG9u
c2l2ZW5lc3NUaW1lcjo6Y2xpZW50IGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRm9yZWdy
b3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpGb3JlZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXI6OmlzUmVzcG9uc2l2ZSBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6YWRkRXhpc3RpbmdXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpyZW1vdmVXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5
OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmlzUmVzcG9uc2l2ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
cHJvY2Vzc1Rlcm1pbmF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnVw
ZGF0ZVBlcmlvZGljUmVzcG9uc2l2ZW5lc3NUaW1lcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUHJveHk6OmRpc2FibGVTZXJ2aWNlV29ya2Vycyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6ZW5hYmxlU2VydmljZVdvcmtlcnMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQcm94eUdM
aWIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVGb3Jl
Z3JvdW5kUmVzcG9uc2l2ZW5lc3NQaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6Zm9yZWdyb3VuZFJlc3BvbnNpdmVuZXNzUGluZyk6CisKIDIwMjEtMDQt
MjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW21h
Y09TXSBBdm9pZCB0cmlnZ2VyaW5nIGltYWdlIGV4dHJhY3Rpb24gZm9yIGFuaW1hdGVkIGltYWdl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0dUSy50eHQKaW5kZXggODE2NWZmZTk4YTZiYzYyMDg2NWI2ZmM3Y2U0ZGEzM2Nl
OTU4ZjY5Ny4uYTcwYzE1YzY2MzNjMjFlZjVlMGE2ZDViOTYwMzQzOTg4YzczY2JhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNHVEsudHh0CkBAIC0xMDQsNiArMTA0LDcgQEAgU2hhcmVkL3VuaXgvQXV4aWxpYXJ5UHJv
Y2Vzc01haW4uY3BwCiAKIFVJUHJvY2Vzcy9CYWNraW5nU3RvcmUuY3BwCiBVSVByb2Nlc3MvRGVm
YXVsdFVuZG9Db250cm9sbGVyLmNwcAorVUlQcm9jZXNzL0ZvcmVncm91bmRQcm9jZXNzUmVzcG9u
c2l2ZW5lc3NUaW1lci5jcHAKIFVJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmdOb25l
LmNwcAogVUlQcm9jZXNzL1ZpZXdTbmFwc2hvdFN0b3JlLmNwcAogVUlQcm9jZXNzL1dlYkdyYW1t
YXJEZXRhaWwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAppbmRleCAwNzc1YWNlYzI3OWM4NzNiMmZkODFj
MDJjMjk2Mjc2M2ZmNDk3ZGI1Li42YTFhYjFiMjQ4ZGIzZmQ5Njg5MzRjYmZhOWY5NGFjNWYxZjU4
YjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc1dQRS50eHQKQEAgLTEwMCw2ICsxMDAsNyBAQCBTaGFyZWQvc291cC9X
ZWJFcnJvcnNTb3VwLmNwcAogU2hhcmVkL3VuaXgvQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwCiAK
IFVJUHJvY2Vzcy9EZWZhdWx0VW5kb0NvbnRyb2xsZXIuY3BwCitVSVByb2Nlc3MvRm9yZWdyb3Vu
ZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcAogVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25T
dGF0ZUNvZGluZ05vbmUuY3BwCiBVSVByb2Nlc3MvV2ViR3JhbW1hckRldGFpbC5jcHAKIFVJUHJv
Y2Vzcy9XZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvRm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1Rp
bWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0ZvcmVncm91bmRQcm9jZXNzUmVzcG9u
c2l2ZW5lc3NUaW1lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I5NTI5ZmRjMDljMjVjNTVlYzUxMzdjZDY0
MWMzZjY3Y2M1ZTI3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0ZvcmVncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKQEAgLTAsMCArMSwxNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAq
IENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmgi
CisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitz
dGF0aWMgY29uc3QgU2Vjb25kcyBjaGVja2luZ0ludGVydmFsIHsgMTBfcyB9Oworc3RhdGljIGNv
bnN0IFNlY29uZHMgcmVzcG9uc2l2ZW5lc3NUaW1lb3V0IHsgM19zIH07CisKK0ZvcmVncm91bmRQ
cm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Rm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVz
c1RpbWVyKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5KQorICAgIDogbV93ZWJQcm9j
ZXNzUHJveHkod2ViUHJvY2Vzc1Byb3h5KQorICAgICwgbV9yZXNwb25zaXZlbmVzc0NoZWNrVGlt
ZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmRm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVz
c1RpbWVyOjpyZXNwb25zaXZlbmVzc0NoZWNrVGltZXJGaXJlZCkKKyAgICAsIG1fdGltZW91dFRp
bWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJkZvcmVncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5l
c3NUaW1lcjo6dGltZW91dFRpbWVyRmlyZWQpCit7Cit9CisKK0ZvcmVncm91bmRQcm9jZXNzUmVz
cG9uc2l2ZW5lc3NUaW1lcjo6fkZvcmVncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lcigp
Cit7Cit9CisKK3ZvaWQgRm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyOjp1cGRh
dGVTdGF0ZSgpCit7CisgICAgaWYgKCFzaG91bGRCZUFjdGl2ZSgpKSB7CisgICAgICAgIGludmFs
aWRhdGUoKTsKKyAgICAgICAgbV9pc1Jlc3BvbnNpdmUgPSB0cnVlOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKCFpc0FjdGl2ZSgpKQorICAgICAgICBtX3Jlc3BvbnNpdmVuZXNz
Q2hlY2tUaW1lci5zdGFydE9uZVNob3QoY2hlY2tpbmdJbnRlcnZhbCk7Cit9CisKK3ZvaWQgRm9y
ZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyOjpkaWRSZWNlaXZlRm9yZWdyb3VuZFJl
c3BvbnNpdmVuZXNzUG9uZygpCit7CisgICAgaWYgKCFtX3RpbWVvdXRUaW1lci5pc0FjdGl2ZSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3RpbWVvdXRUaW1lci5zdG9wKCk7CisgICAgbV9y
ZXNwb25zaXZlbmVzc0NoZWNrVGltZXIuc3RhcnRPbmVTaG90KGNoZWNraW5nSW50ZXJ2YWwpOwor
CisgICAgc2V0UmVzcG9uc2l2ZSh0cnVlKTsKK30KKwordm9pZCBGb3JlZ3JvdW5kUHJvY2Vzc1Jl
c3BvbnNpdmVuZXNzVGltZXI6OmludmFsaWRhdGUoKQoreworICAgIG1fdGltZW91dFRpbWVyLnN0
b3AoKTsKKyAgICBtX3Jlc3BvbnNpdmVuZXNzQ2hlY2tUaW1lci5zdG9wKCk7Cit9CisKK3ZvaWQg
Rm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyOjpwcm9jZXNzVGVybWluYXRlZCgp
Cit7CisgICAgaW52YWxpZGF0ZSgpOworICAgIHNldFJlc3BvbnNpdmUodHJ1ZSk7Cit9CisKK3Zv
aWQgRm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyOjpyZXNwb25zaXZlbmVzc0No
ZWNrVGltZXJGaXJlZCgpCit7CisgICAgQVNTRVJUKHNob3VsZEJlQWN0aXZlKCkpOworICAgIEFT
U0VSVCghbV90aW1lb3V0VGltZXIuaXNBY3RpdmUoKSk7CisKKyAgICBtX3RpbWVvdXRUaW1lci5z
dGFydE9uZVNob3QocmVzcG9uc2l2ZW5lc3NUaW1lb3V0KTsKKyAgICBtX3dlYlByb2Nlc3NQcm94
eS5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpGb3JlZ3JvdW5kUmVzcG9uc2l2ZW5lc3NQaW5n
KCksIDApOworfQorCit2b2lkIEZvcmVncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lcjo6
dGltZW91dFRpbWVyRmlyZWQoKQoreworICAgIEFTU0VSVChzaG91bGRCZUFjdGl2ZSgpKTsKKwor
ICAgIG1fcmVzcG9uc2l2ZW5lc3NDaGVja1RpbWVyLnN0YXJ0T25lU2hvdChjaGVja2luZ0ludGVy
dmFsKTsKKworICAgIGlmICghbV9pc1Jlc3BvbnNpdmUpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmICghY2xpZW50KCkubWF5QmVjb21lVW5yZXNwb25zaXZlKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIHNldFJlc3BvbnNpdmUoZmFsc2UpOworfQorCit2b2lkIEZvcmVncm91bmRQcm9jZXNz
UmVzcG9uc2l2ZW5lc3NUaW1lcjo6c2V0UmVzcG9uc2l2ZShib29sIGlzUmVzcG9uc2l2ZSkKK3sK
KyAgICBpZiAobV9pc1Jlc3BvbnNpdmUgPT0gaXNSZXNwb25zaXZlKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvIHByb3RlY3RlZENsaWVudCA9IG1ha2VSZWYoY2xpZW50KCkpOworCisgICAg
Y2xpZW50KCkud2lsbENoYW5nZUlzUmVzcG9uc2l2ZSgpOworICAgIG1faXNSZXNwb25zaXZlID0g
aXNSZXNwb25zaXZlOworICAgIGNsaWVudCgpLmRpZENoYW5nZUlzUmVzcG9uc2l2ZSgpOworCisg
ICAgaWYgKG1faXNSZXNwb25zaXZlKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBlcmZv
cm1hbmNlTG9nZ2luZywgIk5vdGlmeWluZyB0aGUgY2xpZW50IHRoYXQgZm9yZWdyb3VuZCBXZWJQ
cm9jZXNzIHdpdGggcGlkICVkIGhhcyBiZWNvbWUgcmVzcG9uc2l2ZSBhZ2FpbiIsIG1fd2ViUHJv
Y2Vzc1Byb3h5LnByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgICAgICBjbGllbnQoKS5kaWRCZWNv
bWVSZXNwb25zaXZlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
UGVyZm9ybWFuY2VMb2dnaW5nLCAiTm90aWZ5aW5nIHRoZSBjbGllbnQgdGhhdCBmb3JlZ3JvdW5k
IFdlYlByb2Nlc3Mgd2l0aCBwaWQgJWQgaGFzIGJlY29tZSB1bnJlc3BvbnNpdmUiLCBtX3dlYlBy
b2Nlc3NQcm94eS5wcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICAgICAgY2xpZW50KCkuZGlkQmVj
b21lVW5yZXNwb25zaXZlKCk7CisgICAgfQorfQorCitib29sIEZvcmVncm91bmRQcm9jZXNzUmVz
cG9uc2l2ZW5lc3NUaW1lcjo6c2hvdWxkQmVBY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBt
X3dlYlByb2Nlc3NQcm94eS52aXNpYmxlUGFnZUNvdW50KCk7Cit9CisKK2Jvb2wgRm9yZWdyb3Vu
ZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcmVzcG9uc2l2ZW5lc3NDaGVja1RpbWVyLmlzQWN0aXZlKCkgfHwgbV90aW1lb3V0VGlt
ZXIuaXNBY3RpdmUoKTsKK30KKworUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50JiBGb3JlZ3Jv
dW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXI6OmNsaWVudCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fd2ViUHJvY2Vzc1Byb3h5OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0ZvcmVncm91bmRQcm9jZXNzUmVzcG9uc2l2
ZW5lc3NUaW1lci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRm9yZWdyb3VuZFByb2Nlc3NS
ZXNwb25zaXZlbmVzc1RpbWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZjNWZhODMyMTRkZTYzZWVmMzczOWNh
ZDgyNmE3MzEwZmE0MTJkNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0ZvcmVncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oCkBAIC0wLDAgKzEsNjMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAq
IENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIlJlc3BvbnNpdmVuZXNzVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCitj
bGFzcyBGb3JlZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIgeworcHVibGljOgorICAg
IGV4cGxpY2l0IEZvcmVncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lcihXZWJQcm9jZXNz
UHJveHkmKTsKKyAgICB+Rm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyKCk7Cisg
ICAgdm9pZCB1cGRhdGVTdGF0ZSgpOworCisgICAgdm9pZCBkaWRSZWNlaXZlRm9yZWdyb3VuZFJl
c3BvbnNpdmVuZXNzUG9uZygpOworICAgIGJvb2wgaXNSZXNwb25zaXZlKCkgY29uc3QgeyByZXR1
cm4gbV9pc1Jlc3BvbnNpdmU7IH0KKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIHZvaWQg
cHJvY2Vzc1Rlcm1pbmF0ZWQoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHJlc3BvbnNpdmVuZXNz
Q2hlY2tUaW1lckZpcmVkKCk7CisgICAgdm9pZCB0aW1lb3V0VGltZXJGaXJlZCgpOworICAgIHZv
aWQgc2V0UmVzcG9uc2l2ZShib29sKTsKKworICAgIGJvb2wgc2hvdWxkQmVBY3RpdmUoKSBjb25z
dDsKKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3Q7CisgICAgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6
Q2xpZW50JiBjbGllbnQoKSBjb25zdDsKKworICAgIFdlYlByb2Nlc3NQcm94eSYgbV93ZWJQcm9j
ZXNzUHJveHk7CisgICAgUnVuTG9vcDo6VGltZXI8Rm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZl
bmVzc1RpbWVyPiBtX3Jlc3BvbnNpdmVuZXNzQ2hlY2tUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1l
cjxGb3JlZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXI+IG1fdGltZW91dFRpbWVyOwor
ICAgIGJvb2wgbV9pc1Jlc3BvbnNpdmUgeyB0cnVlIH07Cit9OworCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBiY2YyYTlmMTRhZThiYTE0Y2I2
OWQ2YmM1ZmY0YmU4ZWVhZjNlMGQzLi5iOWRjYzFmOTNhOWNkZjQzODk4NjM1N2IwZGFhMGNmZWVm
YzgwNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTE5NCw2ICsxOTQsOSBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQ
cm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgOiBBdXhpbGlh
cnlQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wuYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5
KCkpCiAgICAgLCBtX3Jlc3BvbnNpdmVuZXNzVGltZXIoKnRoaXMpCiAgICAgLCBtX2JhY2tncm91
bmRSZXNwb25zaXZlbmVzc1RpbWVyKCp0aGlzKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQorICAgICwgbV9mb3JlZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigqdGhpcykKKyNl
bmRpZgogICAgICwgbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCwgaXNQcmV3YXJtZWQgPT0gSXNQ
cmV3YXJtZWQ6OlllcyA/IElzV2Vhazo6WWVzIDogSXNXZWFrOjpObykKICAgICAsIG1fbWF5SGF2
ZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbihmYWxzZSkKICAgICAsIG1fbnVtYmVy
T2ZUaW1lc1N1ZGRlblRlcm1pbmF0aW9uV2FzRGlzYWJsZWQoMCkKQEAgLTIwMiw3ICsyMDUsNyBA
QCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vz
c1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLCBtX3JvdXRpbmdBcmJpdHJhdG9yKG1ha2VV
bmlxdWVSZWY8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eT4oKnRoaXMpKQogI2Vu
ZGlmCiAgICAgLCBtX2lzUmVzcG9uc2l2ZShOb09yTWF5YmU6Ok1heWJlKQotICAgICwgbV92aXNp
YmxlUGFnZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCkgeyB1cGRhdGVCYWNrZ3JvdW5k
UmVzcG9uc2l2ZW5lc3NUaW1lcigpOyB9KQorICAgICwgbV92aXNpYmxlUGFnZUNvdW50ZXIoW3Ro
aXNdKFJlZkNvdW50ZXJFdmVudCkgeyB1cGRhdGVQZXJpb2RpY1Jlc3BvbnNpdmVuZXNzVGltZXJz
KCk7IH0pCiAgICAgLCBtX3dlYnNpdGVEYXRhU3RvcmUod2Vic2l0ZURhdGFTdG9yZSkKICNpZiBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAsIG1fdXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eShtYWtlVW5pcXVlPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk+KG1ha2VVbmlxdWVSZWY8VUlQcm94eUZvckNhcHR1cmU+KCp0aGlzKSkpCkBAIC00NjIsNiAr
NDY1LDkgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNodXREb3duKCkKIAogICAgIG1fcmVzcG9u
c2l2ZW5lc3NUaW1lci5pbnZhbGlkYXRlKCk7CiAgICAgbV9iYWNrZ3JvdW5kUmVzcG9uc2l2ZW5l
c3NUaW1lci5pbnZhbGlkYXRlKCk7CisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CisgICAgbV9mb3JlZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lci5pbnZhbGlkYXRlKCk7CisjZW5k
aWYKICAgICBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzID0gbnVsbHB0cjsKICAgICBt
X2F1ZGlibGVNZWRpYUFjdGl2aXR5ID0gV1RGOjpudWxsb3B0OwogCkBAIC01MzgsNyArNTQ0LDcg
QEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZEV4aXN0aW5nV2ViUGFnZShXZWJQYWdlUHJveHkm
IHdlYlBhZ2UsIEJlZ2luc1VzaW5nRGF0YVMKICAgICBnbG9iYWxQYWdlTWFwKCkuc2V0KHdlYlBh
Z2UuaWRlbnRpZmllcigpLCAmd2ViUGFnZSk7CiAKICAgICB1cGRhdGVSZWdpc3RyYXRpb25XaXRo
RGF0YVN0b3JlKCk7Ci0gICAgdXBkYXRlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsK
KyAgICB1cGRhdGVQZXJpb2RpY1Jlc3BvbnNpdmVuZXNzVGltZXJzKCk7CiB9CiAKIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjptYXJrSXNOb0xvbmdlckluUHJld2FybWVkUG9vbCgpCkBAIC01NjUsNyAr
NTcxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnJlbW92ZVdlYlBhZ2UoV2ViUGFnZVByb3h5
JiB3ZWJQYWdlLCBFbmRzVXNpbmdEYXRhU3RvcmUgZW4KICAgICByZW1vdmVWaXNpdGVkTGlua1N0
b3JlVXNlcih3ZWJQYWdlLnZpc2l0ZWRMaW5rU3RvcmUoKSwgd2ViUGFnZS5pZGVudGlmaWVyKCkp
OwogICAgIHVwZGF0ZVJlZ2lzdHJhdGlvbldpdGhEYXRhU3RvcmUoKTsKICAgICB1cGRhdGVBdWRp
YmxlTWVkaWFBc3NlcnRpb25zKCk7Ci0gICAgdXBkYXRlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNz
VGltZXIoKTsKKyAgICB1cGRhdGVQZXJpb2RpY1Jlc3BvbnNpdmVuZXNzVGltZXJzKCk7CiAKICAg
ICBtYXliZVNodXREb3duKCk7CiB9CkBAIC0xMDI5LDcgKzEwMzUsNyBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQ
Qzo6Q29ubmVjdAogICAgIG1fd2ViQ29ubmVjdGlvbiA9IFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmNyZWF0ZSh0aGlzKTsKIAogICAgIG1fcHJvY2Vzc1Bvb2wtPnByb2Nlc3NEaWRGaW5pc2hM
YXVuY2hpbmcoKnRoaXMpOwotICAgIG1fYmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIudXBk
YXRlU3RhdGUoKTsKKyAgICB1cGRhdGVQZXJpb2RpY1Jlc3BvbnNpdmVuZXNzVGltZXJzKCk7CiAK
ICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIGlmIChtX2lnbm9yZUludmFsaWRNZXNz
YWdlRm9yVGVzdGluZykKQEAgLTExMjUsNyArMTEzMSwxMSBAQCBSZWZQdHI8QVBJOjpVc2VySW5p
dGlhdGVkQWN0aW9uPiBXZWJQcm9jZXNzUHJveHk6OnVzZXJJbml0aWF0ZWRBY3Rpdml0eSh1aW50
NjRfdAogCiBib29sIFdlYlByb2Nlc3NQcm94eTo6aXNSZXNwb25zaXZlKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV9yZXNwb25zaXZlbmVzc1RpbWVyLmlzUmVzcG9uc2l2ZSgpICYmIG1fYmFja2dy
b3VuZFJlc3BvbnNpdmVuZXNzVGltZXIuaXNSZXNwb25zaXZlKCk7CisgICAgcmV0dXJuIG1fcmVz
cG9uc2l2ZW5lc3NUaW1lci5pc1Jlc3BvbnNpdmUoKSAmJiBtX2JhY2tncm91bmRSZXNwb25zaXZl
bmVzc1RpbWVyLmlzUmVzcG9uc2l2ZSgpCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
UEUpCisgICAgICAgICYmIG1fZm9yZWdyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIuaXNSZXNwb25z
aXZlKCk7CisjZW5kaWYKKyAgICA7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0
cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCBpZGVudGlmaWVyKQpAQCAtMTU2Miw2ICsxNTcy
LDkgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NUZXJtaW5hdGVkKCkKIHsKICAgICBt
X3Jlc3BvbnNpdmVuZXNzVGltZXIucHJvY2Vzc1Rlcm1pbmF0ZWQoKTsKICAgICBtX2JhY2tncm91
bmRSZXNwb25zaXZlbmVzc1RpbWVyLnByb2Nlc3NUZXJtaW5hdGVkKCk7CisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCisgICAgbV9mb3JlZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1l
ci5wcm9jZXNzVGVybWluYXRlZCgpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
Ojpsb2dEaWFnbm9zdGljTWVzc2FnZUZvclJlc291cmNlTGltaXRUZXJtaW5hdGlvbihjb25zdCBT
dHJpbmcmIGxpbWl0S2V5KQpAQCAtMTYyMyw5ICsxNjM2LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpkaWRFeGNlZWRDUFVMaW1pdCgpCiAgICAgcmVxdWVzdFRlcm1pbmF0aW9uKFByb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRDUFVMaW1pdCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vz
c1Byb3h5Ojp1cGRhdGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigpCit2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6dXBkYXRlUGVyaW9kaWNSZXNwb25zaXZlbmVzc1RpbWVycygpCiB7CiAgICAg
bV9iYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lci51cGRhdGVTdGF0ZSgpOworI2lmIFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorICAgIG1fZm9yZWdyb3VuZFJlc3BvbnNpdmVuZXNz
VGltZXIudXBkYXRlU3RhdGUoKTsKKyNlbmRpZgogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpA
QCAtMTkwOSw3ICsxOTI1LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpc2FibGVTZXJ2aWNl
V29ya2VycygpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc2VydmljZVdvcmtlckluZm9ybWF0
aW9uID0geyB9OwotICAgIHVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7Cisg
ICAgdXBkYXRlUGVyaW9kaWNSZXNwb25zaXZlbmVzc1RpbWVycygpOwogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogICAgIHByb2Nlc3NQb29sKCkucmVtb3ZlRnJvbVNlcnZpY2VXb3JrZXJQ
cm9jZXNzZXMoKnRoaXMpOwpAQCAtMTk1MSw3ICsxOTY3LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmVuYWJsZVNlcnZpY2VXb3JrZXJzKGNvbnN0IFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50
aWZpZXIKICAgICAgICAgbnVsbHB0ciwKICAgICAgICAgeyB9CiAgICAgfTsKLSAgICB1cGRhdGVC
YWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigpOworICAgIHVwZGF0ZVBlcmlvZGljUmVzcG9u
c2l2ZW5lc3NUaW1lcnMoKTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdXBkYXRl
U2VydmljZVdvcmtlclByb2Nlc3NBc3NlcnRpb24oKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAxNzEwNTU4NDUyOTY5OTE5NjEyNTYzZWEw
YzI4NmVhM2U4ZTJhMTdjLi5hMjhiZmM4ODE5YjRhZmIwZDllNDIwZTVlMTAzYTBhNzZkY2VmYjk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNjIsNiAr
NjIsMTAgQEAKICNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9XZWFrSGFzaFNldC5oPgogCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisj
aW5jbHVkZSAiRm9yZWdyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmgiCisjZW5kaWYK
KwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBOYXZpZ2F0aW9uOwogY2xhc3MgUGFnZUNvbmZpZ3Vy
YXRpb247CkBAIC00NzQsNyArNDc4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgTWVt
b3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4mIHBsYXRmb3JtUGF0
aHNXaXRoQXNzdW1lZFJlYWRBY2Nlc3MoKTsKIAogICAgIFJlc3BvbnNpdmVuZXNzVGltZXImIHJl
c3BvbnNpdmVuZXNzVGltZXIoKSB7IHJldHVybiBtX3Jlc3BvbnNpdmVuZXNzVGltZXI7IH0KLSAg
ICB2b2lkIHVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CisgICAgdm9pZCB1
cGRhdGVQZXJpb2RpY1Jlc3BvbnNpdmVuZXNzVGltZXJzKCk7CiAKICAgICB2b2lkIHByb2Nlc3NE
aWRUZXJtaW5hdGVPckZhaWxlZFRvTGF1bmNoKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CiAK
QEAgLTUxMiw2ICs1MTYsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1dlYkNvbnRleHQoVXNlck1lc3NhZ2UmJik7
CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvV2ViQ29udGV4dFdpdGhSZXBseShVc2VyTWVzc2FnZSYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFVzZXJNZXNzYWdlJiYpPiYmKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVGb3JlZ3JvdW5kUmVzcG9uc2l2ZW5lc3NQaW5nKCk7CiAjZW5kaWYKIAogICAgIHZv
aWQgZGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiByZWFzb24sIGJvb2wgZGlzcGxheSk7CkBAIC01NjAsNiArNTY1LDkg
QEAgcHJpdmF0ZToKIAogICAgIFJlc3BvbnNpdmVuZXNzVGltZXIgbV9yZXNwb25zaXZlbmVzc1Rp
bWVyOwogICAgIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lciBtX2JhY2tncm91
bmRSZXNwb25zaXZlbmVzc1RpbWVyOworI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KQorICAgIEZvcmVncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lciBtX2ZvcmVncm91bmRS
ZXNwb25zaXZlbmVzc1RpbWVyOworI2VuZGlmCiAgICAgCiAgICAgUmVmUHRyPFdlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M+IG1fd2ViQ29ubmVjdGlvbjsKICAgICBXZWFrT3JTdHJvbmdQdHI8V2Vi
UHJvY2Vzc1Bvb2w+IG1fcHJvY2Vzc1Bvb2w7IC8vIFByZS13YXJtZWQgYW5kIGNhY2hlZCBwcm9j
ZXNzZXMgZG8gbm90IGhvbGQgYSBzdHJvbmcgcmVmZXJlbmNlIHRvIHRoZWlyIHBvb2wuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggZGE2NDIzY2FiNTliZTAwM2MyNmQ4OGE5ZmI4NTg0ZDU3ZjRhYzU5MS4uMWI4YmM3ZTg2
MjRiMTQ4NWRjMzUyNDgxY2Q2MzQ3MzFiNzBkY2IyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtODAsNiArODAsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogI2lmIFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFNlbmRNZXNzYWdlVG9XZWJDb250ZXh0KHN0
cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKQogICAgIFNlbmRNZXNzYWdlVG9X
ZWJDb250ZXh0V2l0aFJlcGx5KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdl
KSAtPiAoc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgcmVwbHlNZXNzYWdlKSBBc3luYworICAg
IERpZFJlY2VpdmVGb3JlZ3JvdW5kUmVzcG9uc2l2ZW5lc3NQaW5nKCkKICNlbmRpZgogCiAgICAg
RGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBTdHJpbmcgcmVhc29uLCBib29sIGRpc3BsYXkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQcm94eUdMaWIuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUHJveHlHTGliLmNwcAppbmRleCAyN2Yy
M2VhMDY1ZGM3NWNlNGE4MjcwYzU3NmVhMmFhNTVhYjBkYzhmLi5mZDMyOGE4ZWNjYTA2NGU4Mzg1
YzlhOTY2NWIwMTU1MGRkMTE2MjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9nbGliL1dlYlByb2Nlc3NQcm94eUdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2dsaWIvV2ViUHJvY2Vzc1Byb3h5R0xpYi5jcHAKQEAgLTY4LDQgKzY4LDkgQEAgdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OnNlbmRNZXNzYWdlVG9XZWJDb250ZXh0KFVzZXJNZXNzYWdlJiYgbWVz
c2FnZSkKICAgICBzZW5kTWVzc2FnZVRvV2ViQ29udGV4dFdpdGhSZXBseShXVEZNb3ZlKG1lc3Nh
Z2UpLCBbXShVc2VyTWVzc2FnZSYmKSB7IH0pOwogfQogCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZUZvcmVncm91bmRSZXNwb25zaXZlbmVzc1BpbmcoKQoreworICAgIG1fZm9yZWdy
b3VuZFJlc3BvbnNpdmVuZXNzVGltZXIuZGlkUmVjZWl2ZUZvcmVncm91bmRSZXNwb25zaXZlbmVz
c1BvbmcoKTsKK30KKwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4
IDdjOGE2M2ZkMjFiMzBlYzc4OGVlODU2YmYyZDIyODdmOGFkNGJiMmUuLmNhMThhODg5NDg5ZDg0
MmY1NDBhZjQ5NjQ2MDU1NjYyNDliNDM1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaApAQCAtNTcyLDYgKzU3Miw3IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdQRSkKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9XZWJFeHRlbnNpb24oVXNl
ck1lc3NhZ2UmJik7CisgICAgdm9pZCBmb3JlZ3JvdW5kUmVzcG9uc2l2ZW5lc3NQaW5nKCk7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykgJiYgIVVTRShHVEs0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhOTkyYTQ0NjM0YzRl
MTdmZWZjZGNiMzk0NjA2YWNmZDEwMzQ0MDJjLi5iZDJhM2JhZWY1ZmYzNWY2NDFjMTk4ZDliNjA4
Mzc5YzQ2MzdkYmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgpAQCAtMTU2LDYgKzE1Niw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAKICNpZiBQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFdQRSkKICAgICBTZW5kTWVzc2FnZVRvV2ViRXh0ZW5zaW9uKHN0cnVjdCBXZWJLaXQ6
OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKQorICAgIEZvcmVncm91bmRSZXNwb25zaXZlbmVzc1Bp
bmcoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwCmluZGV4
IGJhZDAwMTQ2ZDg4NjM1MjMwYjBhNTcxYTk5MzljMjFjZDhhNjQ4MjIuLjdlMGY2YWNiZGNmODk3
NzFiZTY0ODc4YmRmODgyMWViYzk3NmE0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJXZWJLaXRFeHRlbnNpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViRXh0ZW5zaW9u
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogCiAjaWYgVVNFKEdTVFJFQU1FUikK
ICNpbmNsdWRlIDxXZWJDb3JlL0dTdHJlYW1lckNvbW1vbi5oPgpAQCAtMTQwLDQgKzE0MSw5IEBA
IHZvaWQgV2ViUHJvY2Vzczo6c3dpdGNoRnJvbVN0YXRpY0ZvbnRSZWdpc3RyeVRvVXNlckZvbnRS
ZWdpc3RyeShXZWJLaXQ6OlNhbmRib3hFCiB7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6Zm9yZWdy
b3VuZFJlc3BvbnNpdmVuZXNzUGluZygpCit7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRSZWNlaXZlRm9yZWdyb3VuZFJl
c3BvbnNpdmVuZXNzUGluZygpLCAwKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426902</attachid>
            <date>2021-04-23 06:29:44 -0700</date>
            <delta_ts>2021-04-26 07:42:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224862-20210423152943.patch</filename>
            <type>text/plain</type>
            <size>15046</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMzZTEzMWYyN2MzZjAzNGY3
ZDUwMjI4YzQyMWQ2Y2VmNGMwMmJkNDkuLjY4NTlhZDFkNmQyYTUzYjRmNzc4ZjEyMjM3Zjc4NGY4
MTFmMWVjNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMDQtMjMgIE1pZ3VlbCBH
b21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEFkZCBhIHRp
bWVyIHRvIHBlcmlvZGljYWxseSBjaGVjayB0aGUgcmVzcG9uc2l2ZW5lc3Mgb2Ygd2ViIHByb2Nl
c3NlcyB3aXRoIHZpc2libGUgcGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNDg2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0byB0aGUgUmVzcG9uc2l2ZW5lc3NUaW1lciB0aGUgY2FwYWJp
bGl0eSB0byBwZXJpb2RpY2FsbHkgY2hlY2sgdGhlIHJlc3BvbnNpdmVuZXNzIG9mIHRoZSB3ZWIK
KyAgICAgICAgcHJvY2Vzcy4gVGhpcyBoYXBwZW5zIGV2ZXJ5IDEwIHNlY29uZHMgd2l0aCBhIHRp
bWVvdXQgb2YgMyBzZWNvbmRzLCBhbmQgaXMgZW5hYmxlZCBmb3IgR1RLIGFuZAorICAgICAgICBX
UEUgcG9ydHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlc3BvbnNpdmVuZXNzVGltZXI6OlJlc3BvbnNpdmVuZXNzVGlt
ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZXNwb25zaXZlbmVzc1RpbWVyOjppbnZhbGlkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6UmVzcG9uc2l2ZW5lc3NUaW1lcjo6dGltZXJGaXJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlc3BvbnNpdmVuZXNzVGltZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0
OjpSZXNwb25zaXZlbmVzc1RpbWVyOjpzZXRSZXNwb25zaXZlKToKKyAgICAgICAgKFdlYktpdDo6
UmVzcG9uc2l2ZW5lc3NUaW1lcjo6Y2xpZW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVz
cG9uc2l2ZW5lc3NUaW1lcjo6ZGlkUmVjZWl2ZU1haW5UaHJlYWRQZXJpb2RpY2FsUGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlc3BvbnNpdmVuZXNzVGltZXI6OnBlcmlvZGljYWxDaGVja1RpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpSZXNwb25zaXZlbmVzc1RpbWVyOjpwZXJpb2RpY2Fs
Q2hlY2tUaW1lb3V0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlc3BvbnNpdmVuZXNz
VGltZXI6OnVwZGF0ZVBlcmlvZGljYWxDaGVja1N0YXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVz
cG9uc2l2ZW5lc3NUaW1lcjo6c2hvdWxkVXNlUGVyaW9kaWNhbENoZWNrIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVzcG9uc2l2ZW5lc3NUaW1lcjo6aXNQZXJpb2RpY2FsQ2hlY2tBY3RpdmUg
Y29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjphZGRFeGlzdGluZ1dlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OnJlbW92ZVdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OmRpZFJlY2VpdmVNYWluVGhyZWFkUGVyaW9kaWNhbFBpbmcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHk6OnVwZGF0ZVJlc3BvbnNpdmVuZXNzVGltZXJzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaXNhYmxlU2VydmljZVdvcmtlcnMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVNlcnZpY2VXb3JrZXJzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5l
c3NUaW1lcik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6bWFpblRocmVhZFBlcmlvZGljYWxQaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46
CisKIDIwMjEtMDQtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVudCBQYWdlQ2xpZW50OjptYWtlVmlld0JsYW5rKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKaW5k
ZXggMDdiOGNlZGNjYmZlMGRiMTBiODMxNjAzNDk0NWNlNGQ3ZTBjZjU5Mi4uYjFlMzhlNmE2OWEx
ZWJlNDQxYzgxNGM5ZjJhZjQyN2I1MDk4ZWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKQEAgLTI5LDEwICsyOSwxMyBAQAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHN0YXRpYyBjb25zdCBTZWNvbmRzIHJlc3BvbnNpdmVuZXNzVGltZW91
dCB7IDNfcyB9Oworc3RhdGljIGNvbnN0IFNlY29uZHMgcGVyaW9kaWNhbENoZWNrSW50ZXJ2YWwg
eyAxMF9zIH07CiAKLVJlc3BvbnNpdmVuZXNzVGltZXI6OlJlc3BvbnNpdmVuZXNzVGltZXIoUmVz
cG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50JiBjbGllbnQpCi0gICAgOiBtX2NsaWVudChjbGllbnQp
CitSZXNwb25zaXZlbmVzc1RpbWVyOjpSZXNwb25zaXZlbmVzc1RpbWVyKFdlYlByb2Nlc3NQcm94
eSYgd2ViUHJvY2Vzc1Byb3h5KQorICAgIDogbV93ZWJQcm9jZXNzUHJveHkod2ViUHJvY2Vzc1By
b3h5KQogICAgICwgbV90aW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZSZXNwb25zaXZlbmVz
c1RpbWVyOjp0aW1lckZpcmVkKQorICAgICwgbV9wZXJpb2RpY2FsQ2hlY2tUaW1lcihSdW5Mb29w
OjptYWluKCksIHRoaXMsICZSZXNwb25zaXZlbmVzc1RpbWVyOjpwZXJpb2RpY2FsQ2hlY2tUaW1l
ckZpcmVkKQorICAgICwgbV9wZXJpb2RpY2FsQ2hlY2tUaW1lb3V0VGltZXIoUnVuTG9vcDo6bWFp
bigpLCB0aGlzLCAmUmVzcG9uc2l2ZW5lc3NUaW1lcjo6cGVyaW9kaWNhbENoZWNrVGltZW91dFRp
bWVyRmlyZWQpCiB7CiB9CiAKQEAgLTQxLDYgKzQ0LDggQEAgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6
flJlc3BvbnNpdmVuZXNzVGltZXIoKSA9IGRlZmF1bHQ7CiB2b2lkIFJlc3BvbnNpdmVuZXNzVGlt
ZXI6OmludmFsaWRhdGUoKQogewogICAgIG1fdGltZXIuc3RvcCgpOworICAgIG1fcGVyaW9kaWNh
bENoZWNrVGltZXIuc3RvcCgpOworICAgIG1fcGVyaW9kaWNhbENoZWNrVGltZW91dFRpbWVyLnN0
b3AoKTsKICAgICBtX3Jlc3RhcnRGaXJlVGltZSA9IE1vbm90b25pY1RpbWUoKTsKICAgICBtX3dh
aXRpbmdGb3JUaW1lciA9IGZhbHNlOwogICAgIG1fdXNlTGF6eVN0b3AgPSBmYWxzZTsKQEAgLTY4
LDE5ICs3MywxMyBAQCB2b2lkIFJlc3BvbnNpdmVuZXNzVGltZXI6OnRpbWVyRmlyZWQoKQogICAg
IGlmICghbV9pc1Jlc3BvbnNpdmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gcHJvdGVj
dGVkQ2xpZW50ID0gbWFrZVJlZihtX2NsaWVudCk7Ci0KLSAgICBpZiAoIW1fY2xpZW50Lm1heUJl
Y29tZVVucmVzcG9uc2l2ZSgpKSB7CisgICAgaWYgKCFjbGllbnQoKS5tYXlCZWNvbWVVbnJlc3Bv
bnNpdmUoKSkgewogICAgICAgICBtX3dhaXRpbmdGb3JUaW1lciA9IHRydWU7CiAgICAgICAgIG1f
dGltZXIuc3RhcnRPbmVTaG90KHJlc3BvbnNpdmVuZXNzVGltZW91dCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBtX2NsaWVudC53aWxsQ2hhbmdlSXNSZXNwb25zaXZlKCk7Ci0gICAg
bV9pc1Jlc3BvbnNpdmUgPSBmYWxzZTsKLSAgICBtX2NsaWVudC5kaWRDaGFuZ2VJc1Jlc3BvbnNp
dmUoKTsKLQotICAgIG1fY2xpZW50LmRpZEJlY29tZVVucmVzcG9uc2l2ZSgpOworICAgIHNldFJl
c3BvbnNpdmUoZmFsc2UpOwogfQogICAgIAogdm9pZCBSZXNwb25zaXZlbmVzc1RpbWVyOjpzdGFy
dCgpCkBAIC0xMTQsMTYgKzExMyw3IEBAIHZvaWQgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6c3RhcnRX
aXRoTGF6eVN0b3AoKQogCiB2b2lkIFJlc3BvbnNpdmVuZXNzVGltZXI6OnN0b3AoKQogewotICAg
IGlmICghbV9pc1Jlc3BvbnNpdmUpIHsKLSAgICAgICAgYXV0byBwcm90ZWN0ZWRDbGllbnQgPSBt
YWtlUmVmKG1fY2xpZW50KTsKLQotICAgICAgICAvLyBXZSBnb3QgYSBsaWZlIHNpZ24gZnJvbSB0
aGUgd2ViIHByb2Nlc3MuCi0gICAgICAgIG1fY2xpZW50LndpbGxDaGFuZ2VJc1Jlc3BvbnNpdmUo
KTsKLSAgICAgICAgbV9pc1Jlc3BvbnNpdmUgPSB0cnVlOwotICAgICAgICBtX2NsaWVudC5kaWRD
aGFuZ2VJc1Jlc3BvbnNpdmUoKTsKLQotICAgICAgICBtX2NsaWVudC5kaWRCZWNvbWVSZXNwb25z
aXZlKCk7Ci0gICAgfQorICAgIHNldFJlc3BvbnNpdmUodHJ1ZSk7CiAKICAgICBtX3dhaXRpbmdG
b3JUaW1lciA9IGZhbHNlOwogCkBAIC0xMzMsOSArMTIzLDkxIEBAIHZvaWQgUmVzcG9uc2l2ZW5l
c3NUaW1lcjo6c3RvcCgpCiAgICAgICAgIG1fdGltZXIuc3RvcCgpOwogfQogCit2b2lkIFJlc3Bv
bnNpdmVuZXNzVGltZXI6OnNldFJlc3BvbnNpdmUoYm9vbCBpc1Jlc3BvbnNpdmUpCit7CisgICAg
aWYgKG1faXNSZXNwb25zaXZlID09IGlzUmVzcG9uc2l2ZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgYXV0byBwcm90ZWN0ZWRDbGllbnQgPSBtYWtlUmVmKGNsaWVudCgpKTsKKworICAgIGNsaWVu
dCgpLndpbGxDaGFuZ2VJc1Jlc3BvbnNpdmUoKTsKKyAgICBtX2lzUmVzcG9uc2l2ZSA9IGlzUmVz
cG9uc2l2ZTsKKyAgICBjbGllbnQoKS5kaWRDaGFuZ2VJc1Jlc3BvbnNpdmUoKTsKKworICAgIGlm
IChtX2lzUmVzcG9uc2l2ZSkKKyAgICAgICAgY2xpZW50KCkuZGlkQmVjb21lUmVzcG9uc2l2ZSgp
OworICAgIGVsc2UKKyAgICAgICAgY2xpZW50KCkuZGlkQmVjb21lVW5yZXNwb25zaXZlKCk7Cit9
CisKIHZvaWQgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6cHJvY2Vzc1Rlcm1pbmF0ZWQoKQogewogICAg
IGludmFsaWRhdGUoKTsKIH0KIAorUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50JiBSZXNwb25z
aXZlbmVzc1RpbWVyOjpjbGllbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3dlYlByb2Nlc3NQ
cm94eTsKK30KKwordm9pZCBSZXNwb25zaXZlbmVzc1RpbWVyOjpkaWRSZWNlaXZlTWFpblRocmVh
ZFBlcmlvZGljYWxQaW5nKCkKK3sKKyAgICBpZiAoIW1fcGVyaW9kaWNhbENoZWNrVGltZW91dFRp
bWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGVyaW9kaWNhbENoZWNr
VGltZW91dFRpbWVyLnN0b3AoKTsKKyAgICBtX3BlcmlvZGljYWxDaGVja1RpbWVyLnN0YXJ0T25l
U2hvdChwZXJpb2RpY2FsQ2hlY2tJbnRlcnZhbCk7CisgICAgc2V0UmVzcG9uc2l2ZSh0cnVlKTsK
K30KKwordm9pZCBSZXNwb25zaXZlbmVzc1RpbWVyOjpwZXJpb2RpY2FsQ2hlY2tUaW1lckZpcmVk
KCkKK3sKKyAgICBBU1NFUlQoc2hvdWxkVXNlUGVyaW9kaWNhbENoZWNrKCkpOworCisgICAgbV9w
ZXJpb2RpY2FsQ2hlY2tUaW1lb3V0VGltZXIuc3RhcnRPbmVTaG90KHJlc3BvbnNpdmVuZXNzVGlt
ZW91dCk7CisgICAgbV93ZWJQcm9jZXNzUHJveHkuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
TWFpblRocmVhZFBlcmlvZGljYWxQaW5nKCksIDApOworfQorCit2b2lkIFJlc3BvbnNpdmVuZXNz
VGltZXI6OnBlcmlvZGljYWxDaGVja1RpbWVvdXRUaW1lckZpcmVkKCkKK3sKKyAgICBBU1NFUlQo
c2hvdWxkVXNlUGVyaW9kaWNhbENoZWNrKCkpOworCisgICAgbV9wZXJpb2RpY2FsQ2hlY2tUaW1l
ci5zdGFydE9uZVNob3QocGVyaW9kaWNhbENoZWNrSW50ZXJ2YWwpOworCisgICAgaWYgKCFtX2lz
UmVzcG9uc2l2ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFjbGllbnQoKS5tYXlCZWNv
bWVVbnJlc3BvbnNpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2V0UmVzcG9uc2l2ZShm
YWxzZSk7Cit9CisKK3ZvaWQgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6dXBkYXRlUGVyaW9kaWNhbENo
ZWNrU3RhdGUoKQoreworICAgIGlmICghc2hvdWxkVXNlUGVyaW9kaWNhbENoZWNrKCkpIHsKKyAg
ICAgICAgbV9wZXJpb2RpY2FsQ2hlY2tUaW1lci5zdG9wKCk7CisgICAgICAgIG1fcGVyaW9kaWNh
bENoZWNrVGltZW91dFRpbWVyLnN0b3AoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICghaXNQZXJpb2RpY2FsQ2hlY2tBY3RpdmUoKSkKKyAgICAgICAgbV9wZXJpb2RpY2FsQ2hl
Y2tUaW1lci5zdGFydE9uZVNob3QocGVyaW9kaWNhbENoZWNrSW50ZXJ2YWwpOworfQorCitib29s
IFJlc3BvbnNpdmVuZXNzVGltZXI6OnNob3VsZFVzZVBlcmlvZGljYWxDaGVjaygpIGNvbnN0Cit7
CisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisgICAgcmV0dXJuIG1fd2ViUHJv
Y2Vzc1Byb3h5LnZpc2libGVQYWdlQ291bnQoKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIFJlc3BvbnNpdmVuZXNzVGltZXI6OmlzUGVyaW9kaWNhbENoZWNrQWN0aXZl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wZXJpb2RpY2FsQ2hlY2tUaW1lci5pc0FjdGl2ZSgp
IHx8IG1fcGVyaW9kaWNhbENoZWNrVGltZW91dFRpbWVyLmlzQWN0aXZlKCk7Cit9CisKKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZXNwb25zaXZlbmVzc1RpbWVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNwb25zaXZl
bmVzc1RpbWVyLmgKaW5kZXggNWFhNjU0M2E1ZDQ2ZDZmNzNmOTI1ZTFlMDg3ZjFlMGI1NGFhNDUz
ZS4uZTc5ZTM0MmY0N2NhMTllMTkxM2RjYjFkNDA3MmY5M2EwZjJhMzVkOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaApAQCAtMzAsNiArMzAsOCBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCiBjbGFz
cyBSZXNwb25zaXZlbmVzc1RpbWVyIHsKIHB1YmxpYzoKICAgICBjbGFzcyBDbGllbnQgewpAQCAt
NDcsNyArNDksNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpID0gMDsK
ICAgICB9OwogCi0gICAgZXhwbGljaXQgUmVzcG9uc2l2ZW5lc3NUaW1lcihSZXNwb25zaXZlbmVz
c1RpbWVyOjpDbGllbnQmKTsKKyAgICBleHBsaWNpdCBSZXNwb25zaXZlbmVzc1RpbWVyKFdlYlBy
b2Nlc3NQcm94eSYpOwogICAgIH5SZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICB2b2lkIHN0
YXJ0KCk7CkBAIC03NCwxMiArNzYsMjEgQEAgcHVibGljOgogCiAgICAgdm9pZCBwcm9jZXNzVGVy
bWluYXRlZCgpOwogCisgICAgdm9pZCB1cGRhdGVQZXJpb2RpY2FsQ2hlY2tTdGF0ZSgpOworICAg
IHZvaWQgZGlkUmVjZWl2ZU1haW5UaHJlYWRQZXJpb2RpY2FsUGluZygpOwogcHJpdmF0ZToKICAg
ICB2b2lkIHRpbWVyRmlyZWQoKTsKLQotICAgIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCYg
bV9jbGllbnQ7Ci0KKyAgICB2b2lkIHBlcmlvZGljYWxDaGVja1RpbWVyRmlyZWQoKTsKKyAgICB2
b2lkIHBlcmlvZGljYWxDaGVja1RpbWVvdXRUaW1lckZpcmVkKCk7CisgICAgYm9vbCBzaG91bGRV
c2VQZXJpb2RpY2FsQ2hlY2soKSBjb25zdDsKKyAgICBib29sIGlzUGVyaW9kaWNhbENoZWNrQWN0
aXZlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRSZXNwb25zaXZlKGJvb2wpOworICAgIFJlc3BvbnNp
dmVuZXNzVGltZXI6OkNsaWVudCYgY2xpZW50KCkgY29uc3Q7CisKKyAgICBXZWJQcm9jZXNzUHJv
eHkmIG1fd2ViUHJvY2Vzc1Byb3h5OwogICAgIFJ1bkxvb3A6OlRpbWVyPFJlc3BvbnNpdmVuZXNz
VGltZXI+IG1fdGltZXI7CisgICAgUnVuTG9vcDo6VGltZXI8UmVzcG9uc2l2ZW5lc3NUaW1lcj4g
bV9wZXJpb2RpY2FsQ2hlY2tUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxSZXNwb25zaXZlbmVz
c1RpbWVyPiBtX3BlcmlvZGljYWxDaGVja1RpbWVvdXRUaW1lcjsKICAgICBNb25vdG9uaWNUaW1l
IG1fcmVzdGFydEZpcmVUaW1lOwogCiAgICAgYm9vbCBtX2lzUmVzcG9uc2l2ZSB7IHRydWUgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGJjZjJh
OWYxNGFlOGJhMTRjYjY5ZDZiYzVmZjRiZThlZWFmM2UwZDMuLjBjOWYxODA5OThlZDYyM2Q5MDgx
OGQwOTY4ODNhOTAzNzAyNTIxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtMjAyLDcgKzIwMiw3IEBAIFdlYlByb2Nlc3NQcm94eTo6V2ViUHJv
Y2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSoK
ICAgICAsIG1fcm91dGluZ0FyYml0cmF0b3IobWFrZVVuaXF1ZVJlZjxBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5PigqdGhpcykpCiAjZW5kaWYKICAgICAsIG1faXNSZXNwb25zaXZl
KE5vT3JNYXliZTo6TWF5YmUpCi0gICAgLCBtX3Zpc2libGVQYWdlQ291bnRlcihbdGhpc10oUmVm
Q291bnRlckV2ZW50KSB7IHVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7IH0p
CisgICAgLCBtX3Zpc2libGVQYWdlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHVw
ZGF0ZVJlc3BvbnNpdmVuZXNzVGltZXJzKCk7IH0pCiAgICAgLCBtX3dlYnNpdGVEYXRhU3RvcmUo
d2Vic2l0ZURhdGFTdG9yZSkKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICAsIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShtYWtlVW5pcXVlPFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+KG1ha2VVbmlxdWVSZWY8VUlQcm94eUZvckNhcHR1
cmU+KCp0aGlzKSkpCkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmFk
ZEV4aXN0aW5nV2ViUGFnZShXZWJQYWdlUHJveHkmIHdlYlBhZ2UsIEJlZ2luc1VzaW5nRGF0YVMK
ICAgICBnbG9iYWxQYWdlTWFwKCkuc2V0KHdlYlBhZ2UuaWRlbnRpZmllcigpLCAmd2ViUGFnZSk7
CiAKICAgICB1cGRhdGVSZWdpc3RyYXRpb25XaXRoRGF0YVN0b3JlKCk7Ci0gICAgdXBkYXRlQmFj
a2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKKyAgICB1cGRhdGVSZXNwb25zaXZlbmVzc1Rp
bWVycygpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6bWFya0lzTm9Mb25nZXJJblByZXdh
cm1lZFBvb2woKQpAQCAtNTY1LDcgKzU2NSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpyZW1v
dmVXZWJQYWdlKFdlYlBhZ2VQcm94eSYgd2ViUGFnZSwgRW5kc1VzaW5nRGF0YVN0b3JlIGVuCiAg
ICAgcmVtb3ZlVmlzaXRlZExpbmtTdG9yZVVzZXIod2ViUGFnZS52aXNpdGVkTGlua1N0b3JlKCks
IHdlYlBhZ2UuaWRlbnRpZmllcigpKTsKICAgICB1cGRhdGVSZWdpc3RyYXRpb25XaXRoRGF0YVN0
b3JlKCk7CiAgICAgdXBkYXRlQXVkaWJsZU1lZGlhQXNzZXJ0aW9ucygpOwotICAgIHVwZGF0ZUJh
Y2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CisgICAgdXBkYXRlUmVzcG9uc2l2ZW5lc3NU
aW1lcnMoKTsKIAogICAgIG1heWJlU2h1dERvd24oKTsKIH0KQEAgLTE1NTMsNiArMTU1MywxMSBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1haW5UaHJlYWRQaW5nKCkKICAgICAg
ICAgY2FsbGJhY2soaXNXZWJQcm9jZXNzUmVzcG9uc2l2ZSk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlTWFpblRocmVhZFBlcmlvZGljYWxQaW5nKCkKK3sKKyAgICByZXNw
b25zaXZlbmVzc1RpbWVyKCkuZGlkUmVjZWl2ZU1haW5UaHJlYWRQZXJpb2RpY2FsUGluZygpOwor
fQorCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUJhY2tncm91bmRSZXNwb25zaXZl
bmVzc1BpbmcoKQogewogICAgIG1fYmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIuZGlkUmVj
ZWl2ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1BvbmcoKTsKQEAgLTE2MjMsOSArMTYyOCwxMCBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQ1BVTGltaXQoKQogICAgIHJlcXVlc3RU
ZXJtaW5hdGlvbihQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQ1BVTGltaXQpOwog
fQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6dXBkYXRlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNz
VGltZXIoKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnVwZGF0ZVJlc3BvbnNpdmVuZXNzVGltZXJz
KCkKIHsKICAgICBtX2JhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyLnVwZGF0ZVN0YXRlKCk7
CisgICAgbV9yZXNwb25zaXZlbmVzc1RpbWVyLnVwZGF0ZVBlcmlvZGljYWxDaGVja1N0YXRlKCk7
CiB9CiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCkBAIC0xOTA5LDcgKzE5MTUsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZGlzYWJsZVNlcnZpY2VXb3JrZXJzKCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24gPSB7IH07Ci0gICAgdXBkYXRlQmFja2dy
b3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKKyAgICB1cGRhdGVSZXNwb25zaXZlbmVzc1RpbWVy
cygpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHByb2Nlc3NQb29sKCkucmVt
b3ZlRnJvbVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKnRoaXMpOwpAQCAtMTk1MSw3ICsxOTU3LDcg
QEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVNlcnZpY2VXb3JrZXJzKGNvbnN0IFVzZXJD
b250ZW50Q29udHJvbGxlcklkZW50aWZpZXIKICAgICAgICAgbnVsbHB0ciwKICAgICAgICAgeyB9
CiAgICAgfTsKLSAgICB1cGRhdGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigpOworICAg
IHVwZGF0ZVJlc3BvbnNpdmVuZXNzVGltZXJzKCk7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQogICAgIHVwZGF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzQXNzZXJ0aW9uKCk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMTcxMDU1ODQ1Mjk2
OTkxOTYxMjU2M2VhMGMyODZlYTNlOGUyYTE3Yy4uNjNmNTM3MWIxNDNhMTYzYWI4MzE3YmNlYjI5
NWM2MzMwMzg5NjVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKQEAgLTI2Miw2ICsyNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpc1Jlc3BvbnNpdmUoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sIGlzV2ViUHJvY2Vzc1Jlc3BvbnNpdmUpPiYmKTsKICAg
ICB2b2lkIGlzUmVzcG9uc2l2ZVdpdGhMYXp5U3RvcCgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1h
aW5UaHJlYWRQaW5nKCk7CisgICAgdm9pZCBkaWRSZWNlaXZlTWFpblRocmVhZFBlcmlvZGljYWxQ
aW5nKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzUGluZygp
OwogCiAgICAgdm9pZCBtZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQoYm9vbCBpc1VuZGVyTWVt
b3J5UHJlc3N1cmUpIHsgbV9pc1VuZGVyTWVtb3J5UHJlc3N1cmUgPSBpc1VuZGVyTWVtb3J5UHJl
c3N1cmU7IH0KQEAgLTQ3NCw3ICs0NzUsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBN
ZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiYgcGxhdGZvcm1Q
YXRoc1dpdGhBc3N1bWVkUmVhZEFjY2VzcygpOwogCiAgICAgUmVzcG9uc2l2ZW5lc3NUaW1lciYg
cmVzcG9uc2l2ZW5lc3NUaW1lcigpIHsgcmV0dXJuIG1fcmVzcG9uc2l2ZW5lc3NUaW1lcjsgfQot
ICAgIHZvaWQgdXBkYXRlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKKyAgICB2b2lk
IHVwZGF0ZVJlc3BvbnNpdmVuZXNzVGltZXJzKCk7CiAKICAgICB2b2lkIHByb2Nlc3NEaWRUZXJt
aW5hdGVPckZhaWxlZFRvTGF1bmNoKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCBkYTY0MjNjYWI1OWJlMDAzYzI2ZDg4YTlmYjg1ODRkNTdmNGFjNTkxLi4wZTYyN2JlNWZm
NTQ5YjY2ZTVkNTA4NDcyNjBmMTQzYTJmNDFmZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC01NSw2ICs1NSw3IEBA
IG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU3RvcFJl
c3BvbnNpdmVuZXNzVGltZXIoKQogCiAgICAgRGlkUmVjZWl2ZU1haW5UaHJlYWRQaW5nKCkKKyAg
ICBEaWRSZWNlaXZlTWFpblRocmVhZFBlcmlvZGljYWxQaW5nKCkKICAgICBEaWRSZWNlaXZlQmFj
a2dyb3VuZFJlc3BvbnNpdmVuZXNzUGluZygpCiAKICAgICBNZW1vcnlQcmVzc3VyZVN0YXR1c0No
YW5nZWQoYm9vbCBpc1VuZGVyTWVtb3J5UHJlc3N1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggYmI0Y2NkYjZmOTMzMTlhZTVkZWNiZDU2YmQ2YTBlMDA1NWQ3
NDY0Yy4uOTBlMDE1ZGU2NzZlNmQyNWRkNWJmYzQ0MWI4Y2ZhNmJiNDY0MDg0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtOTU3LDYgKzk1NywxMSBAQCB2b2lk
IFdlYlByb2Nlc3M6Om1haW5UaHJlYWRQaW5nKCkKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZFJlY2VpdmVNYWluVGhyZWFk
UGluZygpLCAwKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzOjptYWluVGhyZWFkUGVyaW9kaWNhbFBp
bmcoKQoreworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6RGlkUmVjZWl2ZU1haW5UaHJlYWRQZXJpb2RpY2FsUGluZygpLCAwKTsK
K30KKwogdm9pZCBXZWJQcm9jZXNzOjpiYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NQaW5nKCkKIHsK
ICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
UHJveHk6OkRpZFJlY2VpdmVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NQaW5nKCksIDApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggODMwOWRiOGQ1MDU1MTA3MDFlNGVj
ODU2ZjNkYzg3YjYwMTFlZDg4My4uYzhiMjc4YjU2YTE3OGVjOTg3Mzg0OTZiZDJhY2IzYjA5MjI4
ZGRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC00NDUsNiArNDQ1
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEphdmFTY3JpcHRHYXJiYWdlQ29sbGVjdG9yVGlt
ZXJFbmFibGVkKGJvb2wgZmxhZyk7CiAKICAgICB2b2lkIG1haW5UaHJlYWRQaW5nKCk7CisgICAg
dm9pZCBtYWluVGhyZWFkUGVyaW9kaWNhbFBpbmcoKTsKICAgICB2b2lkIGJhY2tncm91bmRSZXNw
b25zaXZlbmVzc1BpbmcoKTsKIAogI2lmIEVOQUJMRShHQU1FUEFEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhOTkyYTQ0NjM0YzRl
MTdmZWZjZGNiMzk0NjA2YWNmZDEwMzQ0MDJjLi43NWQ5OTUwZWNlYmVjYWI0NTYxMDI3NTNiMTIx
OTI1NzA1MGRiMTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgpAQCAtOTEsNiArOTEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIFByb2Nlc3NEaWRSZXN1bWUoKQogCiAg
ICAgTWFpblRocmVhZFBpbmcoKQorICAgIE1haW5UaHJlYWRQZXJpb2RpY2FsUGluZygpOwogICAg
IEJhY2tncm91bmRSZXNwb25zaXZlbmVzc1BpbmcoKQogCiAjaWYgRU5BQkxFKEdBTUVQQUQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427044</attachid>
            <date>2021-04-26 07:42:46 -0700</date>
            <delta_ts>2021-04-26 08:17:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224862-20210426164244.patch</filename>
            <type>text/plain</type>
            <size>8522</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFkNGI3MDM1ZTI1NzMzNzcw
ZTNhODZiOGI5YjA4OWQ5MGUxMzQ5MDAuLjQyNGJiZTIwYjhiMjBhZjkxNDA4YjBiMjI1NDRhNTIy
MzU3NzczMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMDQtMjYgIE1pZ3VlbCBH
b21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEFkZCBhIHRp
bWVyIHRvIHBlcmlvZGljYWxseSBjaGVjayB0aGUgcmVzcG9uc2l2ZW5lc3Mgb2Ygd2ViIHByb2Nl
c3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0
ODYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHRvIHRoZSBSZXNwb25zaXZlbmVzc1RpbWVyIHRoZSBjYXBhYmlsaXR5IHRvIHBlcmlvZGljYWxs
eSBjaGVjayB0aGUgcmVzcG9uc2l2ZW5lc3Mgb2YgdGhlIHdlYgorICAgICAgICBwcm9jZXNzLiBU
aGlzIGhhcHBlbnMgZXZlcnkgdGVuIHNlY29uZHMgYWZ0ZXIgdGhlIGxhc3QgbWVzc2FnZSBmcm9t
IHRoZSB3ZWIgcHJvY2VzcyB3YXMgcmVjZWl2ZWQsIGFuZAorICAgICAgICBpdCdzIGVuYWJsZWQg
Zm9yIHRoZSBHVEsgYW5kIFdQRSBwb3J0cyBvbmx5LgorCisgICAgICAgICogVUlQcm9jZXNzL1Jl
c3BvbnNpdmVuZXNzVGltZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNwb25zaXZlbmVzc1Rp
bWVyOjpSZXNwb25zaXZlbmVzc1RpbWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVzcG9uc2l2ZW5l
c3NUaW1lcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlc3BvbnNpdmVuZXNzVGlt
ZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpSZXNwb25zaXZlbmVzc1RpbWVyOjpz
dG9wKToKKyAgICAgICAgKFdlYktpdDo6UmVzcG9uc2l2ZW5lc3NUaW1lcjo6c2NoZWR1bGVOZXh0
UGVyaW9kaWNhbENoZWNrSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZXNwb25zaXZlbmVz
c1RpbWVyOjpwZXJpb2RpY2FsQ2hlY2tUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVz
cG9uc2l2ZW5lc3NUaW1lcjo6c2hvdWxkVXNlUGVyaW9kaWNhbENoZWNrIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVzcG9uc2l2ZW5lc3NUaW1lcjo6aXNQZXJpb2RpY2FsQ2hlY2tBY3RpdmUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZXNwb25zaXZlbmVzc1RpbWVyOjpjbGllbnQgY29u
c3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmg6CisKIDIwMjEt
MDQtMjUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBg
QUxXQVlTX0xPR19XSVRIX1NUUkVBTWAgbWFjcm8gZm9yIGVhc2llciBkZXZlbG9wbWVudC9kZWJ1
Z2dpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNz
VGltZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5j
cHAKaW5kZXggMDdiOGNlZGNjYmZlMGRiMTBiODMxNjAzNDk0NWNlNGQ3ZTBjZjU5Mi4uMDdiODE4
Y2EzZDE1ODU4ZjRkZGJmNzg4MDdiZWZjMjY1ZGQ3NGE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKQEAgLTI1LDE0ICsyNSwxNyBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzcG9uc2l2ZW5lc3NUaW1lci5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3Rh
dGljIGNvbnN0IFNlY29uZHMgcmVzcG9uc2l2ZW5lc3NUaW1lb3V0IHsgM19zIH07CitzdGF0aWMg
Y29uc3QgU2Vjb25kcyBwZXJpb2RpY2FsQ2hlY2tJbnRlcnZhbCB7IDEwX3MgfTsKIAotUmVzcG9u
c2l2ZW5lc3NUaW1lcjo6UmVzcG9uc2l2ZW5lc3NUaW1lcihSZXNwb25zaXZlbmVzc1RpbWVyOjpD
bGllbnQmIGNsaWVudCkKLSAgICA6IG1fY2xpZW50KGNsaWVudCkKK1Jlc3BvbnNpdmVuZXNzVGlt
ZXI6OlJlc3BvbnNpdmVuZXNzVGltZXIoV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHkp
CisgICAgOiBtX3dlYlByb2Nlc3NQcm94eSh3ZWJQcm9jZXNzUHJveHkpCiAgICAgLCBtX3RpbWVy
KFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlJlc3BvbnNpdmVuZXNzVGltZXI6OnRpbWVyRmlyZWQp
CisgICAgLCBtX3BlcmlvZGljYWxDaGVja1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlJl
c3BvbnNpdmVuZXNzVGltZXI6OnBlcmlvZGljYWxDaGVja1RpbWVyRmlyZWQpCiB7CiB9CiAKQEAg
LTQ0LDYgKzQ3LDggQEAgdm9pZCBSZXNwb25zaXZlbmVzc1RpbWVyOjppbnZhbGlkYXRlKCkKICAg
ICBtX3Jlc3RhcnRGaXJlVGltZSA9IE1vbm90b25pY1RpbWUoKTsKICAgICBtX3dhaXRpbmdGb3JU
aW1lciA9IGZhbHNlOwogICAgIG1fdXNlTGF6eVN0b3AgPSBmYWxzZTsKKyAgICBtX3BlcmlvZGlj
YWxDaGVja1RpbWVyLnN0b3AoKTsKKyAgICBtX2xhc3RXZWJQcm9jZXNzUmVwbHlUaW1lID0gTW9u
b3RvbmljVGltZSgpOwogfQogCiB2b2lkIFJlc3BvbnNpdmVuZXNzVGltZXI6OnRpbWVyRmlyZWQo
KQpAQCAtNjgsMTkgKzczLDE5IEBAIHZvaWQgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6dGltZXJGaXJl
ZCgpCiAgICAgaWYgKCFtX2lzUmVzcG9uc2l2ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0
byBwcm90ZWN0ZWRDbGllbnQgPSBtYWtlUmVmKG1fY2xpZW50KTsKKyAgICBhdXRvIHByb3RlY3Rl
ZENsaWVudCA9IG1ha2VSZWYoY2xpZW50KCkpOwogCi0gICAgaWYgKCFtX2NsaWVudC5tYXlCZWNv
bWVVbnJlc3BvbnNpdmUoKSkgeworICAgIGlmICghY2xpZW50KCkubWF5QmVjb21lVW5yZXNwb25z
aXZlKCkpIHsKICAgICAgICAgbV93YWl0aW5nRm9yVGltZXIgPSB0cnVlOwogICAgICAgICBtX3Rp
bWVyLnN0YXJ0T25lU2hvdChyZXNwb25zaXZlbmVzc1RpbWVvdXQpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgbV9jbGllbnQud2lsbENoYW5nZUlzUmVzcG9uc2l2ZSgpOworICAgIGNs
aWVudCgpLndpbGxDaGFuZ2VJc1Jlc3BvbnNpdmUoKTsKICAgICBtX2lzUmVzcG9uc2l2ZSA9IGZh
bHNlOwotICAgIG1fY2xpZW50LmRpZENoYW5nZUlzUmVzcG9uc2l2ZSgpOworICAgIGNsaWVudCgp
LmRpZENoYW5nZUlzUmVzcG9uc2l2ZSgpOwogCi0gICAgbV9jbGllbnQuZGlkQmVjb21lVW5yZXNw
b25zaXZlKCk7CisgICAgY2xpZW50KCkuZGlkQmVjb21lVW5yZXNwb25zaXZlKCk7CiB9CiAgICAg
CiB2b2lkIFJlc3BvbnNpdmVuZXNzVGltZXI6OnN0YXJ0KCkKQEAgLTExNSwxNCArMTIwLDE0IEBA
IHZvaWQgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6c3RhcnRXaXRoTGF6eVN0b3AoKQogdm9pZCBSZXNw
b25zaXZlbmVzc1RpbWVyOjpzdG9wKCkKIHsKICAgICBpZiAoIW1faXNSZXNwb25zaXZlKSB7Ci0g
ICAgICAgIGF1dG8gcHJvdGVjdGVkQ2xpZW50ID0gbWFrZVJlZihtX2NsaWVudCk7CisgICAgICAg
IGF1dG8gcHJvdGVjdGVkQ2xpZW50ID0gbWFrZVJlZihjbGllbnQoKSk7CiAKICAgICAgICAgLy8g
V2UgZ290IGEgbGlmZSBzaWduIGZyb20gdGhlIHdlYiBwcm9jZXNzLgotICAgICAgICBtX2NsaWVu
dC53aWxsQ2hhbmdlSXNSZXNwb25zaXZlKCk7CisgICAgICAgIGNsaWVudCgpLndpbGxDaGFuZ2VJ
c1Jlc3BvbnNpdmUoKTsKICAgICAgICAgbV9pc1Jlc3BvbnNpdmUgPSB0cnVlOwotICAgICAgICBt
X2NsaWVudC5kaWRDaGFuZ2VJc1Jlc3BvbnNpdmUoKTsKKyAgICAgICAgY2xpZW50KCkuZGlkQ2hh
bmdlSXNSZXNwb25zaXZlKCk7CiAKLSAgICAgICAgbV9jbGllbnQuZGlkQmVjb21lUmVzcG9uc2l2
ZSgpOworICAgICAgICBjbGllbnQoKS5kaWRCZWNvbWVSZXNwb25zaXZlKCk7CiAgICAgfQogCiAg
ICAgbV93YWl0aW5nRm9yVGltZXIgPSBmYWxzZTsKQEAgLTEzMSw2ICsxMzYsMTUgQEAgdm9pZCBS
ZXNwb25zaXZlbmVzc1RpbWVyOjpzdG9wKCkKICAgICAgICAgbV91c2VMYXp5U3RvcCA9IGZhbHNl
OwogICAgIGVsc2UKICAgICAgICAgbV90aW1lci5zdG9wKCk7CisKKyAgICAvLyBXZSBqdXN0IGVu
YWJsZSB0aGUgcGVyaW9kaWNhbCBjaGVjayBoZXJlLCB3ZXJlIHdlIGp1c3QgcmVjZWl2ZWQgc29t
ZSBtZXNzYWdlIGZyb20gdGhlCisgICAgLy8gd2ViIHByb2Nlc3MgYW5kIHdlIGtub3cgaXQncyBy
ZXNwb25zaXZlLgorICAgIC8vCisgICAgLy8gSWYgdGhlIHdlYiBwcm9jZXNzIGhhcyBiZWVuIG1h
cmtlZCBhcyB1bnJlc3BvbnNpdmUgd2UgZG9uJ3QgZG8gcGVyaW9kaWNhbCBjaGVja3MgYXMgdGhl
eQorICAgIC8vIHdvdWxkIGJlIHVzZWxlc3MuIElmIGF0IHNvbWUgcG9pbnQgdGhlIHByb2Nlc3Mg
YmVjb21lcyByZXNwb25zaXZlIGFnYWluLCBzb21lIHBlbmRpbmcgbWVzc2FnZQorICAgIC8vIHdp
bGwgYXJyaXZlIGZyb20gdGhlIHdlYiBwcm9jZXNzIHRoYXQgd2lsbCBjYXVzZSBhIGNhbGwgdG8g
c3RvcCgpLCBtYXJraW5nIHRoZSBwcm9jZXNzIHJlc3BvbnNpdmUKKyAgICAvLyBhZ2FpbmcgYW5k
IHJlZW5hYmxpbmcgdGhlIHBlcmlvZGljYWwgY2hlY2tzLgorICAgIHNjaGVkdWxlTmV4dFBlcmlv
ZGljYWxDaGVja0lmTmVlZGVkKCk7CiB9CiAKIHZvaWQgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6cHJv
Y2Vzc1Rlcm1pbmF0ZWQoKQpAQCAtMTM4LDQgKzE1Miw2NiBAQCB2b2lkIFJlc3BvbnNpdmVuZXNz
VGltZXI6OnByb2Nlc3NUZXJtaW5hdGVkKCkKICAgICBpbnZhbGlkYXRlKCk7CiB9CiAKK3ZvaWQg
UmVzcG9uc2l2ZW5lc3NUaW1lcjo6c2NoZWR1bGVOZXh0UGVyaW9kaWNhbENoZWNrSWZOZWVkZWQo
KQoreworICAgIGlmICghc2hvdWxkVXNlUGVyaW9kaWNhbENoZWNrKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIFRoZSBjaGVjayB0aW1lciBpcyBhbHJlYWR5IHJ1bm5pbmcsIGJ1dCB3ZSBo
YWQgc29tZSBmZWVkYmFjayBmcm9tIHRoZSB3ZWIgcHJvY2Vzcy4gV2Ugc2hvdWxkIHJlc3RhcnQK
KyAgICAvLyB0aGUgdGltZXIgdG8gY2hlY2sgYWdhaW4gaW4gMTAgc2Vjb25kcy4gSW5zdGVhZCBv
ZiB0aGF0LCBzdG9yZSB0aGUgdGltZSB3aGVuIHRoaXMgY2FsbCBoYXBwZW5lZCBhbmQKKyAgICAv
LyBsZXQgdGhlIHRpbWVyIGNvbnRpbnVlLiBXaGVuIGl0IHRyaWdnZXJzLCB3ZSB3aWxsIHJlc3Rh
cnQgdGhlIHRpbWVyIGFnYWluIHdpdGggdGhlIHRpbWUgcmVtYWluaW5nCisgICAgLy8gdG8gY291
bnQgMTAgc2Vjb25kcyBmcm9tIG5vdy4gVGhpcyBpcyBkb25lIGJlY2F1c2UgdGhlIHN0YXJ0KCkv
c3RvcCgpIGZ1bmN0aW9ucyBjYW4gYmUgY2FsbGVkIGEKKyAgICAvLyBsb3Qgb2YgdGltZXMsIHNv
IHdlIHNhdmUgcmVzY2hlZHVsaW5nIHRoZSB0aW1lciBldmVyeSB0aW1lLgorICAgIGlmIChpc1Bl
cmlvZGljYWxDaGVja0FjdGl2ZSgpKSB7CisgICAgICAgIG1fbGFzdFdlYlByb2Nlc3NSZXBseVRp
bWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IC8vIFNjaGVkdWxlIHRoZSBjaGVjayB0aW1lcjogd2Ugd2FudCB0byB3YWl0IDEwIHNlY29uZHMg
c2luY2UgdGhlIGxhc3Qgd2ViIHByb2Nlc3MgcmVwbHkuIElmIGxlc3MgdGhhbiAxMAorICAgIC8v
IHNlY29uZHMgaGF2ZSBwYXNzZWQgc2luY2UgdGhlIGxhc3QgcmVwbHksIHJlc2NoZWR1bGUgdGhl
IHRpbWVyIGZvciB0aGUgcmVtYWluaW5nIHRpbWUuCisgICAgU2Vjb25kcyBpbnRlcnZhbCA9IHBl
cmlvZGljYWxDaGVja0ludGVydmFsOworICAgIGlmIChtX2xhc3RXZWJQcm9jZXNzUmVwbHlUaW1l
KSB7CisgICAgICAgIGludGVydmFsIC09IE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9sYXN0V2Vi
UHJvY2Vzc1JlcGx5VGltZTsKKyAgICAgICAgbV9sYXN0V2ViUHJvY2Vzc1JlcGx5VGltZSA9IE1v
bm90b25pY1RpbWUoKTsKKyAgICB9CisKKyAgICBtX3BlcmlvZGljYWxDaGVja1RpbWVyLnN0YXJ0
T25lU2hvdChpbnRlcnZhbCk7Cit9CisKK3ZvaWQgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6cGVyaW9k
aWNhbENoZWNrVGltZXJGaXJlZCgpCit7CisgICAgLy8gSWYgdGhlcmUgd2FzIHNvbWUgbWVzc2Fn
ZSBmcm9tIHRoZSB3ZWIgcHJvY2VzcyBkdXJpbmcgdGhlIHdhaXRpbmcgcGVyaW9kLCByZXNjaGVk
dWxlIHRoZQorICAgIC8vIHRpbWVyIGZvciB0aGUgcmVtYWluaW5nIHRpbWUuCisgICAgaWYgKG1f
bGFzdFdlYlByb2Nlc3NSZXBseVRpbWUpIHsKKyAgICAgICAgc2NoZWR1bGVOZXh0UGVyaW9kaWNh
bENoZWNrSWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIElmIHNv
bWUgZXZlbnQgaGFzIGFscmVhZHkgY2FsbGVkIHN0YXJ0KCkgb3IgdGhlIHByb2Nlc3MgaXMgdW5y
ZXNwb25zaXZlIGRvbid0IGRvIGFueXRoaW5nLgorICAgIC8vIFRoZSBjYWxsIHRvIHN0b3AoKSB3
aWxsIHJlc2NoZWR1bGUgdGhlIHBlcmlvZGljYWwgdGltZXIuCisgICAgaWYgKG1fd2FpdGluZ0Zv
clRpbWVyIHx8ICFtX2lzUmVzcG9uc2l2ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3RhcnQo
KTsKKyAgICBtX3dlYlByb2Nlc3NQcm94eS5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpNYWlu
VGhyZWFkUGluZygpLCAwKTsKK30KKworYm9vbCBSZXNwb25zaXZlbmVzc1RpbWVyOjpzaG91bGRV
c2VQZXJpb2RpY2FsQ2hlY2soKSBjb25zdAoreworI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQorICAgIHJldHVybiB0cnVlOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIFJlc3BvbnNpdmVuZXNzVGltZXI6OmlzUGVyaW9kaWNhbENoZWNrQWN0aXZlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wZXJpb2RpY2FsQ2hlY2tUaW1lci5pc0FjdGl2ZSgpOworfQor
CitSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGllbnQmIFJlc3BvbnNpdmVuZXNzVGltZXI6OmNsaWVu
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd2ViUHJvY2Vzc1Byb3h5OworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc3Bv
bnNpdmVuZXNzVGltZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNz
VGltZXIuaAppbmRleCA1YWE2NTQzYTVkNDZkNmY3M2Y5MjVlMWUwODdmMWUwYjU0YWE0NTNlLi45
N2JkNDUzMmYwMjg1OTYyODE1ZDNmMTQ4ZjY5ODZhMjFiYzc1ZTY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCkBAIC0zMCw2ICszMCw4IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisKIGNsYXNzIFJl
c3BvbnNpdmVuZXNzVGltZXIgewogcHVibGljOgogICAgIGNsYXNzIENsaWVudCB7CkBAIC00Nyw3
ICs0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgPSAwOwogICAg
IH07CiAKLSAgICBleHBsaWNpdCBSZXNwb25zaXZlbmVzc1RpbWVyKFJlc3BvbnNpdmVuZXNzVGlt
ZXI6OkNsaWVudCYpOworICAgIGV4cGxpY2l0IFJlc3BvbnNpdmVuZXNzVGltZXIoV2ViUHJvY2Vz
c1Byb3h5Jik7CiAgICAgflJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIAogICAgIHZvaWQgc3RhcnQo
KTsKQEAgLTc2LDExICs3OCwxNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCB0aW1l
ckZpcmVkKCk7CisgICAgdm9pZCBzY2hlZHVsZU5leHRQZXJpb2RpY2FsQ2hlY2tJZk5lZWRlZCgp
OworICAgIHZvaWQgcGVyaW9kaWNhbENoZWNrVGltZXJGaXJlZCgpOworICAgIGJvb2wgc2hvdWxk
VXNlUGVyaW9kaWNhbENoZWNrKCkgY29uc3Q7CisgICAgYm9vbCBpc1BlcmlvZGljYWxDaGVja0Fj
dGl2ZSgpIGNvbnN0OworICAgIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCYgY2xpZW50KCkg
Y29uc3Q7CiAKLSAgICBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGllbnQmIG1fY2xpZW50OwotCisg
ICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3dlYlByb2Nlc3NQcm94eTsKICAgICBSdW5Mb29wOjpUaW1l
cjxSZXNwb25zaXZlbmVzc1RpbWVyPiBtX3RpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFJlc3Bv
bnNpdmVuZXNzVGltZXI+IG1fcGVyaW9kaWNhbENoZWNrVGltZXI7CiAgICAgTW9ub3RvbmljVGlt
ZSBtX3Jlc3RhcnRGaXJlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFdlYlByb2Nlc3NS
ZXBseVRpbWU7CiAKICAgICBib29sIG1faXNSZXNwb25zaXZlIHsgdHJ1ZSB9OwogICAgIGJvb2wg
bV93YWl0aW5nRm9yVGltZXIgeyBmYWxzZSB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427047</attachid>
            <date>2021-04-26 08:17:23 -0700</date>
            <delta_ts>2021-04-26 08:17:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224862-20210426171721.patch</filename>
            <type>text/plain</type>
            <size>12668</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFkNGI3MDM1ZTI1NzMzNzcw
ZTNhODZiOGI5YjA4OWQ5MGUxMzQ5MDAuLjFjNmNkYTFhNzkzZjY0OTUzMmU5NWJiYTcyNTNjYmUx
ZGZjNjExOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDQtMjYgIE1pZ3VlbCBH
b21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEFkZCBhIHRp
bWVyIHRvIHBlcmlvZGljYWxseSBjaGVjayB0aGUgcmVzcG9uc2l2ZW5lc3Mgb2Ygd2ViIHByb2Nl
c3NlcyB3aXRoIHZpc2libGUgcGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNDg2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0byB0aGUgUmVzcG9uc2l2ZW5lc3NUaW1lciB0aGUgY2FwYWJp
bGl0eSB0byBwZXJpb2RpY2FsbHkgY2hlY2sgdGhlIHJlc3BvbnNpdmVuZXNzIG9mIHRoZSB3ZWIK
KyAgICAgICAgcHJvY2VzcyB3aGVuIHRoZXJlIGFyZSB2aXNpYmxlIHBhZ2VzLiBUaGlzIGhhcHBl
bnMgZXZlcnkgdGVuIHNlY29uZHMgYWZ0ZXIgdGhlIGxhc3QgbWVzc2FnZSBmcm9tIHRoZQorICAg
ICAgICB3ZWIgcHJvY2VzcyB3YXMgcmVjZWl2ZWQsIGFuZCBpdCdzIGVuYWJsZWQgZm9yIHRoZSBH
VEsgYW5kIFdQRSBwb3J0cyBvbmx5LgorCisgICAgICAgICogVUlQcm9jZXNzL1Jlc3BvbnNpdmVu
ZXNzVGltZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNwb25zaXZlbmVzc1RpbWVyOjpSZXNw
b25zaXZlbmVzc1RpbWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVzcG9uc2l2ZW5lc3NUaW1lcjo6
aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlc3BvbnNpdmVuZXNzVGltZXI6OnRpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpSZXNwb25zaXZlbmVzc1RpbWVyOjpzdG9wKToKKyAg
ICAgICAgKFdlYktpdDo6UmVzcG9uc2l2ZW5lc3NUaW1lcjo6c2NoZWR1bGVOZXh0UGVyaW9kaWNh
bENoZWNrSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZXNwb25zaXZlbmVzc1RpbWVyOjpw
ZXJpb2RpY2FsQ2hlY2tUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVzcG9uc2l2ZW5l
c3NUaW1lcjo6c2hvdWxkVXNlUGVyaW9kaWNhbENoZWNrIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6UmVzcG9uc2l2ZW5lc3NUaW1lcjo6aXNQZXJpb2RpY2FsQ2hlY2tBY3RpdmUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZXNwb25zaXZlbmVzc1RpbWVyOjpjbGllbnQgY29uc3QpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojph
ZGRFeGlzdGluZ1dlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnJl
bW92ZVdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnVwZGF0ZVJl
c3BvbnNpdmVuZXNzVGltZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpk
aXNhYmxlU2VydmljZVdvcmtlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmVuYWJsZVNlcnZpY2VXb3JrZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5
Ojp1cGRhdGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcik6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorCiAyMDIxLTA0LTI1ICBEZXZpbiBSb3Vz
c28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYEFMV0FZU19MT0dfV0lUSF9T
VFJFQU1gIG1hY3JvIGZvciBlYXNpZXIgZGV2ZWxvcG1lbnQvZGVidWdnaW5nCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCmluZGV4IDA3YjhjZWRj
Y2JmZTBkYjEwYjgzMTYwMzQ5NDVjZTRkN2UwY2Y1OTIuLjA0ZTkyMzAwNWY1NzhlZDZmYmEyOWJk
ZGUxZjQzNDFhNmVhOGRmZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
c3BvbnNpdmVuZXNzVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc3Bv
bnNpdmVuZXNzVGltZXIuY3BwCkBAIC0yNSwxNCArMjUsMTcgQEAKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlJlc3BvbnNpdmVuZXNzVGltZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHkuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBjb25zdCBTZWNvbmRz
IHJlc3BvbnNpdmVuZXNzVGltZW91dCB7IDNfcyB9Oworc3RhdGljIGNvbnN0IFNlY29uZHMgcGVy
aW9kaWNhbENoZWNrSW50ZXJ2YWwgeyAxMF9zIH07CiAKLVJlc3BvbnNpdmVuZXNzVGltZXI6OlJl
c3BvbnNpdmVuZXNzVGltZXIoUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50JiBjbGllbnQpCi0g
ICAgOiBtX2NsaWVudChjbGllbnQpCitSZXNwb25zaXZlbmVzc1RpbWVyOjpSZXNwb25zaXZlbmVz
c1RpbWVyKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5KQorICAgIDogbV93ZWJQcm9j
ZXNzUHJveHkod2ViUHJvY2Vzc1Byb3h5KQogICAgICwgbV90aW1lcihSdW5Mb29wOjptYWluKCks
IHRoaXMsICZSZXNwb25zaXZlbmVzc1RpbWVyOjp0aW1lckZpcmVkKQorICAgICwgbV9wZXJpb2Rp
Y2FsQ2hlY2tUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZSZXNwb25zaXZlbmVzc1RpbWVy
OjpwZXJpb2RpY2FsQ2hlY2tUaW1lckZpcmVkKQogewogfQogCkBAIC00NCw2ICs0Nyw4IEBAIHZv
aWQgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6aW52YWxpZGF0ZSgpCiAgICAgbV9yZXN0YXJ0RmlyZVRp
bWUgPSBNb25vdG9uaWNUaW1lKCk7CiAgICAgbV93YWl0aW5nRm9yVGltZXIgPSBmYWxzZTsKICAg
ICBtX3VzZUxhenlTdG9wID0gZmFsc2U7CisgICAgbV9wZXJpb2RpY2FsQ2hlY2tUaW1lci5zdG9w
KCk7CisgICAgbV9sYXN0V2ViUHJvY2Vzc1JlcGx5VGltZSA9IE1vbm90b25pY1RpbWUoKTsKIH0K
IAogdm9pZCBSZXNwb25zaXZlbmVzc1RpbWVyOjp0aW1lckZpcmVkKCkKQEAgLTY4LDE5ICs3Mywx
OSBAQCB2b2lkIFJlc3BvbnNpdmVuZXNzVGltZXI6OnRpbWVyRmlyZWQoKQogICAgIGlmICghbV9p
c1Jlc3BvbnNpdmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gcHJvdGVjdGVkQ2xpZW50
ID0gbWFrZVJlZihtX2NsaWVudCk7CisgICAgYXV0byBwcm90ZWN0ZWRDbGllbnQgPSBtYWtlUmVm
KGNsaWVudCgpKTsKIAotICAgIGlmICghbV9jbGllbnQubWF5QmVjb21lVW5yZXNwb25zaXZlKCkp
IHsKKyAgICBpZiAoIWNsaWVudCgpLm1heUJlY29tZVVucmVzcG9uc2l2ZSgpKSB7CiAgICAgICAg
IG1fd2FpdGluZ0ZvclRpbWVyID0gdHJ1ZTsKICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3Qo
cmVzcG9uc2l2ZW5lc3NUaW1lb3V0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1f
Y2xpZW50LndpbGxDaGFuZ2VJc1Jlc3BvbnNpdmUoKTsKKyAgICBjbGllbnQoKS53aWxsQ2hhbmdl
SXNSZXNwb25zaXZlKCk7CiAgICAgbV9pc1Jlc3BvbnNpdmUgPSBmYWxzZTsKLSAgICBtX2NsaWVu
dC5kaWRDaGFuZ2VJc1Jlc3BvbnNpdmUoKTsKKyAgICBjbGllbnQoKS5kaWRDaGFuZ2VJc1Jlc3Bv
bnNpdmUoKTsKIAotICAgIG1fY2xpZW50LmRpZEJlY29tZVVucmVzcG9uc2l2ZSgpOworICAgIGNs
aWVudCgpLmRpZEJlY29tZVVucmVzcG9uc2l2ZSgpOwogfQogICAgIAogdm9pZCBSZXNwb25zaXZl
bmVzc1RpbWVyOjpzdGFydCgpCkBAIC0xMTUsMTQgKzEyMCwxNCBAQCB2b2lkIFJlc3BvbnNpdmVu
ZXNzVGltZXI6OnN0YXJ0V2l0aExhenlTdG9wKCkKIHZvaWQgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6
c3RvcCgpCiB7CiAgICAgaWYgKCFtX2lzUmVzcG9uc2l2ZSkgewotICAgICAgICBhdXRvIHByb3Rl
Y3RlZENsaWVudCA9IG1ha2VSZWYobV9jbGllbnQpOworICAgICAgICBhdXRvIHByb3RlY3RlZENs
aWVudCA9IG1ha2VSZWYoY2xpZW50KCkpOwogCiAgICAgICAgIC8vIFdlIGdvdCBhIGxpZmUgc2ln
biBmcm9tIHRoZSB3ZWIgcHJvY2Vzcy4KLSAgICAgICAgbV9jbGllbnQud2lsbENoYW5nZUlzUmVz
cG9uc2l2ZSgpOworICAgICAgICBjbGllbnQoKS53aWxsQ2hhbmdlSXNSZXNwb25zaXZlKCk7CiAg
ICAgICAgIG1faXNSZXNwb25zaXZlID0gdHJ1ZTsKLSAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdl
SXNSZXNwb25zaXZlKCk7CisgICAgICAgIGNsaWVudCgpLmRpZENoYW5nZUlzUmVzcG9uc2l2ZSgp
OwogCi0gICAgICAgIG1fY2xpZW50LmRpZEJlY29tZVJlc3BvbnNpdmUoKTsKKyAgICAgICAgY2xp
ZW50KCkuZGlkQmVjb21lUmVzcG9uc2l2ZSgpOwogICAgIH0KIAogICAgIG1fd2FpdGluZ0ZvclRp
bWVyID0gZmFsc2U7CkBAIC0xMzEsNiArMTM2LDE1IEBAIHZvaWQgUmVzcG9uc2l2ZW5lc3NUaW1l
cjo6c3RvcCgpCiAgICAgICAgIG1fdXNlTGF6eVN0b3AgPSBmYWxzZTsKICAgICBlbHNlCiAgICAg
ICAgIG1fdGltZXIuc3RvcCgpOworCisgICAgLy8gV2UganVzdCBlbmFibGUgdGhlIHBlcmlvZGlj
YWwgY2hlY2sgaGVyZSwgd2VyZSB3ZSBqdXN0IHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIHRo
ZQorICAgIC8vIHdlYiBwcm9jZXNzIGFuZCB3ZSBrbm93IGl0J3MgcmVzcG9uc2l2ZS4KKyAgICAv
LworICAgIC8vIElmIHRoZSB3ZWIgcHJvY2VzcyBoYXMgYmVlbiBtYXJrZWQgYXMgdW5yZXNwb25z
aXZlIHdlIGRvbid0IGRvIHBlcmlvZGljYWwgY2hlY2tzIGFzIHRoZXkKKyAgICAvLyB3b3VsZCBi
ZSB1c2VsZXNzLiBJZiBhdCBzb21lIHBvaW50IHRoZSBwcm9jZXNzIGJlY29tZXMgcmVzcG9uc2l2
ZSBhZ2Fpbiwgc29tZSBwZW5kaW5nIG1lc3NhZ2UKKyAgICAvLyB3aWxsIGFycml2ZSBmcm9tIHRo
ZSB3ZWIgcHJvY2VzcyB0aGF0IHdpbGwgY2F1c2UgYSBjYWxsIHRvIHN0b3AoKSwgbWFya2luZyB0
aGUgcHJvY2VzcyByZXNwb25zaXZlCisgICAgLy8gYWdhaW5nIGFuZCByZWVuYWJsaW5nIHRoZSBw
ZXJpb2RpY2FsIGNoZWNrcy4KKyAgICBzY2hlZHVsZU5leHRQZXJpb2RpY2FsQ2hlY2tJZk5lZWRl
ZCgpOwogfQogCiB2b2lkIFJlc3BvbnNpdmVuZXNzVGltZXI6OnByb2Nlc3NUZXJtaW5hdGVkKCkK
QEAgLTEzOCw0ICsxNTIsNzQgQEAgdm9pZCBSZXNwb25zaXZlbmVzc1RpbWVyOjpwcm9jZXNzVGVy
bWluYXRlZCgpCiAgICAgaW52YWxpZGF0ZSgpOwogfQogCit2b2lkIFJlc3BvbnNpdmVuZXNzVGlt
ZXI6OnNjaGVkdWxlTmV4dFBlcmlvZGljYWxDaGVja0lmTmVlZGVkKCkKK3sKKyAgICBpZiAoIXNo
b3VsZFVzZVBlcmlvZGljYWxDaGVjaygpKSB7CisgICAgICAgIG1fcGVyaW9kaWNhbENoZWNrVGlt
ZXIuc3RvcCgpOworICAgICAgICBtX2xhc3RXZWJQcm9jZXNzUmVwbHlUaW1lID0gTW9ub3Rvbmlj
VGltZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gVGhlIGNoZWNrIHRpbWVy
IGlzIGFscmVhZHkgcnVubmluZywgYnV0IHdlIGhhZCBzb21lIGZlZWRiYWNrIGZyb20gdGhlIHdl
YiBwcm9jZXNzLiBXZSBzaG91bGQgcmVzdGFydAorICAgIC8vIHRoZSB0aW1lciB0byBjaGVjayBh
Z2FpbiBpbiAxMCBzZWNvbmRzLiBJbnN0ZWFkIG9mIHRoYXQsIHN0b3JlIHRoZSB0aW1lIHdoZW4g
dGhpcyBjYWxsIGhhcHBlbmVkIGFuZAorICAgIC8vIGxldCB0aGUgdGltZXIgY29udGludWUuIFdo
ZW4gaXQgdHJpZ2dlcnMsIHdlIHdpbGwgcmVzdGFydCB0aGUgdGltZXIgYWdhaW4gd2l0aCB0aGUg
dGltZSByZW1haW5pbmcKKyAgICAvLyB0byBjb3VudCAxMCBzZWNvbmRzIGZyb20gbm93LiBUaGlz
IGlzIGRvbmUgYmVjYXVzZSB0aGUgc3RhcnQoKS9zdG9wKCkgZnVuY3Rpb25zIGNhbiBiZSBjYWxs
ZWQgYQorICAgIC8vIGxvdCBvZiB0aW1lcywgc28gd2Ugc2F2ZSByZXNjaGVkdWxpbmcgdGhlIHRp
bWVyIGV2ZXJ5IHRpbWUuCisgICAgaWYgKGlzUGVyaW9kaWNhbENoZWNrQWN0aXZlKCkpIHsKKyAg
ICAgICAgbV9sYXN0V2ViUHJvY2Vzc1JlcGx5VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gU2NoZWR1bGUgdGhlIGNoZWNrIHRpbWVy
OiB3ZSB3YW50IHRvIHdhaXQgMTAgc2Vjb25kcyBzaW5jZSB0aGUgbGFzdCB3ZWIgcHJvY2VzcyBy
ZXBseS4gSWYgbGVzcyB0aGFuIDEwCisgICAgLy8gc2Vjb25kcyBoYXZlIHBhc3NlZCBzaW5jZSB0
aGUgbGFzdCByZXBseSwgcmVzY2hlZHVsZSB0aGUgdGltZXIgZm9yIHRoZSByZW1haW5pbmcgdGlt
ZS4KKyAgICBTZWNvbmRzIGludGVydmFsID0gcGVyaW9kaWNhbENoZWNrSW50ZXJ2YWw7CisgICAg
aWYgKG1fbGFzdFdlYlByb2Nlc3NSZXBseVRpbWUpIHsKKyAgICAgICAgaW50ZXJ2YWwgLT0gTW9u
b3RvbmljVGltZTo6bm93KCkgLSBtX2xhc3RXZWJQcm9jZXNzUmVwbHlUaW1lOworICAgICAgICBt
X2xhc3RXZWJQcm9jZXNzUmVwbHlUaW1lID0gTW9ub3RvbmljVGltZSgpOworICAgIH0KKworICAg
IG1fcGVyaW9kaWNhbENoZWNrVGltZXIuc3RhcnRPbmVTaG90KGludGVydmFsKTsKK30KKwordm9p
ZCBSZXNwb25zaXZlbmVzc1RpbWVyOjpwZXJpb2RpY2FsQ2hlY2tUaW1lckZpcmVkKCkKK3sKKyAg
ICBpZiAoIXNob3VsZFVzZVBlcmlvZGljYWxDaGVjaygpKSB7CisgICAgICAgIG1fbGFzdFdlYlBy
b2Nlc3NSZXBseVRpbWUgPSBNb25vdG9uaWNUaW1lKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAvLyBJZiB0aGVyZSB3YXMgc29tZSBtZXNzYWdlIGZyb20gdGhlIHdlYiBwcm9jZXNz
IGR1cmluZyB0aGUgd2FpdGluZyBwZXJpb2QsIHJlc2NoZWR1bGUgdGhlCisgICAgLy8gdGltZXIg
Zm9yIHRoZSByZW1haW5pbmcgdGltZS4KKyAgICBpZiAobV9sYXN0V2ViUHJvY2Vzc1JlcGx5VGlt
ZSkgeworICAgICAgICBzY2hlZHVsZU5leHRQZXJpb2RpY2FsQ2hlY2tJZk5lZWRlZCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gSWYgc29tZSBldmVudCBoYXMgYWxyZWFkeSBj
YWxsZWQgc3RhcnQoKSBvciB0aGUgcHJvY2VzcyBpcyB1bnJlc3BvbnNpdmUgZG9uJ3QgZG8gYW55
dGhpbmcuCisgICAgLy8gVGhlIGNhbGwgdG8gc3RvcCgpIHdpbGwgcmVzY2hlZHVsZSB0aGUgcGVy
aW9kaWNhbCB0aW1lci4KKyAgICBpZiAobV93YWl0aW5nRm9yVGltZXIgfHwgIW1faXNSZXNwb25z
aXZlKQorICAgICAgICByZXR1cm47CisKKyAgICBzdGFydCgpOworICAgIG1fd2ViUHJvY2Vzc1By
b3h5LnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6Ok1haW5UaHJlYWRQaW5nKCksIDApOworfQor
Citib29sIFJlc3BvbnNpdmVuZXNzVGltZXI6OnNob3VsZFVzZVBlcmlvZGljYWxDaGVjaygpIGNv
bnN0Cit7CisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisgICAgcmV0dXJuIG1f
d2ViUHJvY2Vzc1Byb3h5LnZpc2libGVQYWdlQ291bnQoKTsKKyNlbmRpZgorICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBSZXNwb25zaXZlbmVzc1RpbWVyOjppc1BlcmlvZGljYWxDaGVja0Fj
dGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGVyaW9kaWNhbENoZWNrVGltZXIuaXNBY3Rp
dmUoKTsKK30KKworUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50JiBSZXNwb25zaXZlbmVzc1Rp
bWVyOjpjbGllbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3dlYlByb2Nlc3NQcm94eTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNw
b25zaXZlbmVzc1RpbWVyLmgKaW5kZXggNWFhNjU0M2E1ZDQ2ZDZmNzNmOTI1ZTFlMDg3ZjFlMGI1
NGFhNDUzZS4uZWIzYzM3NWNkNDgwNWYxZmYwNWJjM2NjMDYwMGI0YzA2ZWY5NjlkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaApAQCAtMzAsNiAr
MzAsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViUHJvY2Vzc1Byb3h5Owor
CiBjbGFzcyBSZXNwb25zaXZlbmVzc1RpbWVyIHsKIHB1YmxpYzoKICAgICBjbGFzcyBDbGllbnQg
ewpAQCAtNDcsNyArNDksNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZXJlZigp
ID0gMDsKICAgICB9OwogCi0gICAgZXhwbGljaXQgUmVzcG9uc2l2ZW5lc3NUaW1lcihSZXNwb25z
aXZlbmVzc1RpbWVyOjpDbGllbnQmKTsKKyAgICBleHBsaWNpdCBSZXNwb25zaXZlbmVzc1RpbWVy
KFdlYlByb2Nlc3NQcm94eSYpOwogICAgIH5SZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICB2
b2lkIHN0YXJ0KCk7CkBAIC03NCwxMyArNzYsMjAgQEAgcHVibGljOgogCiAgICAgdm9pZCBwcm9j
ZXNzVGVybWluYXRlZCgpOwogCisgICAgdm9pZCBzY2hlZHVsZU5leHRQZXJpb2RpY2FsQ2hlY2tJ
Zk5lZWRlZCgpOworCiBwcml2YXRlOgogICAgIHZvaWQgdGltZXJGaXJlZCgpOworICAgIHZvaWQg
cGVyaW9kaWNhbENoZWNrVGltZXJGaXJlZCgpOworICAgIGJvb2wgc2hvdWxkVXNlUGVyaW9kaWNh
bENoZWNrKCkgY29uc3Q7CisgICAgYm9vbCBpc1BlcmlvZGljYWxDaGVja0FjdGl2ZSgpIGNvbnN0
OworICAgIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCYgY2xpZW50KCkgY29uc3Q7CiAKLSAg
ICBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGllbnQmIG1fY2xpZW50OwotCisgICAgV2ViUHJvY2Vz
c1Byb3h5JiBtX3dlYlByb2Nlc3NQcm94eTsKICAgICBSdW5Mb29wOjpUaW1lcjxSZXNwb25zaXZl
bmVzc1RpbWVyPiBtX3RpbWVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFJlc3BvbnNpdmVuZXNzVGlt
ZXI+IG1fcGVyaW9kaWNhbENoZWNrVGltZXI7CiAgICAgTW9ub3RvbmljVGltZSBtX3Jlc3RhcnRG
aXJlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFdlYlByb2Nlc3NSZXBseVRpbWU7CiAK
ICAgICBib29sIG1faXNSZXNwb25zaXZlIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV93YWl0aW5nRm9y
VGltZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggYmNmMmE5ZjE0YWU4YmExNGNiNjlkNmJjNWZmNGJlOGVlYWYzZTBkMy4uNjMx
ZDIxNDJkNzQ5MjgzMjYwYmE1ZjhmZmNjMjU4M2FhNDUzMWZjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0yMDIsNyArMjAyLDcgQEAgV2ViUHJv
Y2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBX
ZWJzaXRlRGF0YVN0b3JlKgogICAgICwgbV9yb3V0aW5nQXJiaXRyYXRvcihtYWtlVW5pcXVlUmVm
PEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk+KCp0aGlzKSkKICNlbmRpZgogICAg
ICwgbV9pc1Jlc3BvbnNpdmUoTm9Pck1heWJlOjpNYXliZSkKLSAgICAsIG1fdmlzaWJsZVBhZ2VD
b3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlQmFja2dyb3VuZFJlc3BvbnNp
dmVuZXNzVGltZXIoKTsgfSkKKyAgICAsIG1fdmlzaWJsZVBhZ2VDb3VudGVyKFt0aGlzXShSZWZD
b3VudGVyRXZlbnQpIHsgdXBkYXRlUmVzcG9uc2l2ZW5lc3NUaW1lcnMoKTsgfSkKICAgICAsIG1f
d2Vic2l0ZURhdGFTdG9yZSh3ZWJzaXRlRGF0YVN0b3JlKQogI2lmIFBMQVRGT1JNKENPQ09BKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgICwgbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5KG1ha2VVbmlxdWU8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4obWFrZVVuaXF1ZVJl
ZjxVSVByb3h5Rm9yQ2FwdHVyZT4oKnRoaXMpKSkKQEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6YWRkRXhpc3RpbmdXZWJQYWdlKFdlYlBhZ2VQcm94eSYgd2ViUGFnZSwg
QmVnaW5zVXNpbmdEYXRhUwogICAgIGdsb2JhbFBhZ2VNYXAoKS5zZXQod2ViUGFnZS5pZGVudGlm
aWVyKCksICZ3ZWJQYWdlKTsKIAogICAgIHVwZGF0ZVJlZ2lzdHJhdGlvbldpdGhEYXRhU3RvcmUo
KTsKLSAgICB1cGRhdGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigpOworICAgIHVwZGF0
ZVJlc3BvbnNpdmVuZXNzVGltZXJzKCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjptYXJr
SXNOb0xvbmdlckluUHJld2FybWVkUG9vbCgpCkBAIC01NjUsNyArNTY1LDcgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OnJlbW92ZVdlYlBhZ2UoV2ViUGFnZVByb3h5JiB3ZWJQYWdlLCBFbmRzVXNp
bmdEYXRhU3RvcmUgZW4KICAgICByZW1vdmVWaXNpdGVkTGlua1N0b3JlVXNlcih3ZWJQYWdlLnZp
c2l0ZWRMaW5rU3RvcmUoKSwgd2ViUGFnZS5pZGVudGlmaWVyKCkpOwogICAgIHVwZGF0ZVJlZ2lz
dHJhdGlvbldpdGhEYXRhU3RvcmUoKTsKICAgICB1cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25z
KCk7Ci0gICAgdXBkYXRlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKKyAgICB1cGRh
dGVSZXNwb25zaXZlbmVzc1RpbWVycygpOwogCiAgICAgbWF5YmVTaHV0RG93bigpOwogfQpAQCAt
MTYyMyw5ICsxNjIzLDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRDUFVMaW1p
dCgpCiAgICAgcmVxdWVzdFRlcm1pbmF0aW9uKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6RXhj
ZWVkZWRDUFVMaW1pdCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVCYWNrZ3Jv
dW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6dXBkYXRlUmVz
cG9uc2l2ZW5lc3NUaW1lcnMoKQogewogICAgIG1fYmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGlt
ZXIudXBkYXRlU3RhdGUoKTsKKyAgICBtX3Jlc3BvbnNpdmVuZXNzVGltZXIuc2NoZWR1bGVOZXh0
UGVyaW9kaWNhbENoZWNrSWZOZWVkZWQoKTsKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkKQEAg
LTE5MDksNyArMTkxMCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaXNhYmxlU2VydmljZVdv
cmtlcnMoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlv
biA9IHsgfTsKLSAgICB1cGRhdGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigpOworICAg
IHVwZGF0ZVJlc3BvbnNpdmVuZXNzVGltZXJzKCk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCiAgICAgcHJvY2Vzc1Bvb2woKS5yZW1vdmVGcm9tU2VydmljZVdvcmtlclByb2Nlc3Nlcygq
dGhpcyk7CkBAIC0xOTUxLDcgKzE5NTIsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZW5hYmxl
U2VydmljZVdvcmtlcnMoY29uc3QgVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcgogICAg
ICAgICBudWxscHRyLAogICAgICAgICB7IH0KICAgICB9OwotICAgIHVwZGF0ZUJhY2tncm91bmRS
ZXNwb25zaXZlbmVzc1RpbWVyKCk7CisgICAgdXBkYXRlUmVzcG9uc2l2ZW5lc3NUaW1lcnMoKTsK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdXBkYXRlU2VydmljZVdvcmtlclByb2Nl
c3NBc3NlcnRpb24oKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAppbmRleCAxNzEwNTU4NDUyOTY5OTE5NjEyNTYzZWEwYzI4NmVhM2U4ZTJhMTdjLi45
ODRkZWQ1NjkzN2QwYThmNWY0MTEzZWFmZjQ1ZjM5YzQwNzViOTllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNDc0LDcgKzQ3NCw3IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNl
dDxTdHJpbmc+JiBwbGF0Zm9ybVBhdGhzV2l0aEFzc3VtZWRSZWFkQWNjZXNzKCk7CiAKICAgICBS
ZXNwb25zaXZlbmVzc1RpbWVyJiByZXNwb25zaXZlbmVzc1RpbWVyKCkgeyByZXR1cm4gbV9yZXNw
b25zaXZlbmVzc1RpbWVyOyB9Ci0gICAgdm9pZCB1cGRhdGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5l
c3NUaW1lcigpOworICAgIHZvaWQgdXBkYXRlUmVzcG9uc2l2ZW5lc3NUaW1lcnMoKTsKIAogICAg
IHZvaWQgcHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVkVG9MYXVuY2goUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uKTsKIAo=
</data>
<flag name="review"
          id="447528"
          type_id="1"
          status="?"
          setter="magomez"
    />
          </attachment>
      

    </bug>

</bugzilla>