<?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>211668</bug_id>
          
          <creation_ts>2020-05-09 12:30:18 -0700</creation_ts>
          <short_desc>Tighten up logic in DocumentTimelinesController::updateAnimationsAndSendEvents</short_desc>
          <delta_ts>2020-05-10 14:23:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>dino</cc>
    
    <cc>graouts</cc>
    
    <cc>graouts</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1650941</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-09 12:30:18 -0700</bug_when>
    <thetext>Tighten up logic in DocumentTimelinesController::updateAnimationsAndSendEvents</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650942</commentid>
    <comment_count>1</comment_count>
      <attachid>398932</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-09 12:34:34 -0700</bug_when>
    <thetext>Created attachment 398932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650943</commentid>
    <comment_count>2</comment_count>
      <attachid>398933</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-09 12:36:09 -0700</bug_when>
    <thetext>Created attachment 398933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650990</commentid>
    <comment_count>3</comment_count>
      <attachid>398945</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-09 16:32:41 -0700</bug_when>
    <thetext>Created attachment 398945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651066</commentid>
    <comment_count>4</comment_count>
      <attachid>398945</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-10 01:45:51 -0700</bug_when>
    <thetext>Comment on attachment 398945
Patch

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

r=me, but there are a couple of things you should adjust before landing based on feedback.

&gt; Source/WebCore/animation/DocumentTimelinesController.cpp:136
&gt; +        // 2. Within events with equal scheduled event times, sort by their composite order. FIXME: Need to do this.
&gt; +        return lhs-&gt;timelineTime() &lt; rhs-&gt;timelineTime();

I&apos;m not sure about that bit. How does this work if one of those two values is WTF::nullopt?

&gt; Source/WebCore/animation/DocumentTimelinesController.cpp:149
&gt; +                // FIXME: Should this use WebAnimation::remove instead of Timeline::removeAnimation?

Calling `WebAnimation::remove()` is not correct here. All we want to do is remove the animation from the list of relevant animations for this timeline, but we do not want to alter its animation-to-timeline or animation-to-effect relationships, which is what `WebAnimation::remove()` would do. Indeed, there may be JS references to that animation, and we cannot alter this object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651107</commentid>
    <comment_count>5</comment_count>
      <attachid>398945</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-10 13:52:16 -0700</bug_when>
    <thetext>Comment on attachment 398945
Patch

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

&gt;&gt; Source/WebCore/animation/DocumentTimelinesController.cpp:136
&gt;&gt; +        return lhs-&gt;timelineTime() &lt; rhs-&gt;timelineTime();
&gt; 
&gt; I&apos;m not sure about that bit. How does this work if one of those two values is WTF::nullopt?

nullopt compares as less than any non-nullopt

And that’s exactly what’s the code above was doing. Except for a bug where the code was returning “true” when both are nullopt. That‘a not really OK, but it probably did no harm in practice in the sort.

&gt;&gt; Source/WebCore/animation/DocumentTimelinesController.cpp:149
&gt;&gt; +                // FIXME: Should this use WebAnimation::remove instead of Timeline::removeAnimation?
&gt; 
&gt; Calling `WebAnimation::remove()` is not correct here. All we want to do is remove the animation from the list of relevant animations for this timeline, but we do not want to alter its animation-to-timeline or animation-to-effect relationships, which is what `WebAnimation::remove()` would do. Indeed, there may be JS references to that animation, and we cannot alter this object.

OK, I will not check in this FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651111</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-10 14:22:03 -0700</bug_when>
    <thetext>Committed r261459: &lt;https://trac.webkit.org/changeset/261459&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651113</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-10 14:23:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/63069361&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398932</attachid>
            <date>2020-05-09 12:34:34 -0700</date>
            <delta_ts>2020-05-09 12:36:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211668-20200509123431.patch</filename>
            <type>text/plain</type>
            <size>8831</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNkYzdkY2Q4MzYzY2I5
MjFjZTBkODNjNDQ0M2I0NTZhOTY3M2MzYi4uMWUwZWE1ZmUzN2Q0MmUzODUwZTM3YzBiYWQ4MTBm
YWM2N2RlZDUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA1LTA5ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBUaWdodGVuIHVwIGxvZ2ljIGlu
IERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVu
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTY2
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZl
bnRzKToKKyAgICAgICAgVXNlIFJlZiBpbnN0ZWFkIG9mIFJlZlB0ci4gVXNlIFJlZiBldmVuIGlu
IHRpbWVsaW5lc1RvVXBkYXRlOyBubyBoYXJtIGluIGRvaW5nCisgICAgICAgIGEgbGl0dGxlIGJp
dCBvZiBleHRyYSByZWYnaW5nLiBVc2UgY29weVRvVmVjdG9yIHdoZW4gaXRlcmF0aW5nIHJlbGV2
YW50QW5pbWF0aW9ucworICAgICAgICBzaW5jZSBpdCBjb3VsZCBiZSBhIHByb2JsZW0gaWYgdGhl
IGN1cnJlbnQgYW5pbWF0aW9uIHdhcyByZW1vdmVkIGZyb20gdGhlCisgICAgICAgIExpc3RIYXNo
U2V0IHdoaWxlIHdlIGFyZSBpdGVyYXRpbmcgaXQgYW5kIHRoZXJlIGlzIG5vIG9idmlvdXMgcmVh
c29uIHRoYXQgY2FuJ3QKKyAgICAgICAgaGFwcGVuLiBVc2UgbWFrZVJlZiBpbnN0ZWFkIG9mIG1h
a2VSZWZQdHIuIFRha2UgYWR2YW50YWdlIG9mIHRoZSBiZWhhdmlvciBvZgorICAgICAgICB0aGUg
T3B0aW9uYWwgb3BlcmF0b3I8IGFuZCByZW1vdmUgdW5uZWNlc3NhcnkgY2hlY2tzIHRoYXQgZG8g
dGhlIHNhbWUgdGhpbmcKKyAgICAgICAgZXhwbGljaXRseS4gQWRkIGEgbnVsbCBjaGVjayBvZiB0
aGUgdGltZWxpbmUgd2hlbiBpdGVyYXRpbmcgYW5pbWF0aW9uc1RvUmVtb3ZlCisgICAgICAgIChz
YW1lIG9uZSBhZGRlZCBpbiBhIGRpZmZlcmVudCBwYXRjaCwgc28gd2lsbCBwcm9iYWJseSBiZSBn
b25lIHdoZW4gd2UgcmViYXNlKS4KKyAgICAgICAgQWRkIGEgbnVsbCBjaGVjayBvZiB0aGUgdGlt
ZWxpbmUgd2hlbiBpdGVyYXRpbmcgY29tcGxldGVkVHJhbnNpdGlvbnMuIE5vCisgICAgICAgIG9i
dmlvdXMgZ3VhcmFudGVlIHRoZXkgY291bGQgbm90IGhhdmUgYmVlbiByZW1vdmVkLgorCiAyMDIw
LTA1LTA5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbWlz
c2luZyBudWxsLWNoZWNrIG9mIHBhZ2UgaW4gUmVzb3VyY2VMb2FkZXI6OmxvYWREYXRhVVJMCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0Nv
bnRyb2xsZXIuY3BwCmluZGV4IDY3ZmM0ZmYyNTFmOWVjMTZhM2MxY2Y5OTFjNTEzYjVhODA5MjI0
YjUuLjA4ZDU1MWZhZTQxMzk4ZTY5ODk2NGVlNTZhZGExZDliYjllYWRjNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xs
ZXIuY3BwCkBAIC03MCw5ICs3MCw5IEBAIHZvaWQgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVy
Ojp1cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cyhSZWR1Y2VkUmVzb2x1dGlvCiAgICAgQVNT
RVJUKCFtX3RpbWVsaW5lcy5oYXNOdWxsUmVmZXJlbmNlcygpKTsKIAogICAgIC8vIFdlIG5lZWQg
dG8gY29weSBtX3RpbWVsaW5lcyBiZWZvcmUgaXRlcmF0aW5nIG92ZXIgaXRzIG1lbWJlcnMgc2lu
Y2UgdGhlIHN0ZXBzIGluIHRoaXMgcHJvY2VkdXJlIG1heSBtdXRhdGUgbV90aW1lbGluZXMuCi0g
ICAgVmVjdG9yPFJlZlB0cjxEb2N1bWVudFRpbWVsaW5lPj4gcHJvdGVjdGVkVGltZWxpbmVzOwor
ICAgIFZlY3RvcjxSZWY8RG9jdW1lbnRUaW1lbGluZT4+IHByb3RlY3RlZFRpbWVsaW5lczsKICAg
ICBmb3IgKGF1dG8mIHRpbWVsaW5lIDogbV90aW1lbGluZXMpCi0gICAgICAgIHByb3RlY3RlZFRp
bWVsaW5lcy5hcHBlbmQoJnRpbWVsaW5lKTsKKyAgICAgICAgcHJvdGVjdGVkVGltZWxpbmVzLmFw
cGVuZCh0aW1lbGluZSk7CiAKICAgICAvLyBXZSBuZWVkIHRvIGZyZWV6ZSB0aGUgY3VycmVudCB0
aW1lIGV2ZW4gaWYgbm8gYW5pbWF0aW9uIGlzIHJ1bm5pbmcuCiAgICAgLy8gZG9jdW1lbnQudGlt
ZWxpbmUuY3VycmVudFRpbWUgbWF5IGJlIGNhbGxlZCBmcm9tIGEgckFGIGNhbGxiYWNrIGFuZApA
QCAtODAsMjEgKzgwLDIwIEBAIHZvaWQgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjp1cGRh
dGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cyhSZWR1Y2VkUmVzb2x1dGlvCiAgICAgaWYgKCFtX2lz
U3VzcGVuZGVkKQogICAgICAgICBjYWNoZUN1cnJlbnRUaW1lKHRpbWVzdGFtcCk7CiAKLSAgICAv
LyAxLiBVcGRhdGUgdGhlIGN1cnJlbnQgdGltZSBvZiBhbGwgdGltZWxpbmVzIGFzc29jaWF0ZWQg
d2l0aCBkb2MgcGFzc2luZyBub3cgYXMgdGhlIHRpbWVzdGFtcC4KLSAgICBWZWN0b3I8RG9jdW1l
bnRUaW1lbGluZSo+IHRpbWVsaW5lc1RvVXBkYXRlOwotICAgIFZlY3RvcjxSZWZQdHI8V2ViQW5p
bWF0aW9uPj4gYW5pbWF0aW9uc1RvUmVtb3ZlOwotICAgIFZlY3RvcjxSZWZQdHI8Q1NTVHJhbnNp
dGlvbj4+IGNvbXBsZXRlZFRyYW5zaXRpb25zOworICAgIC8vIDEuIFVwZGF0ZSB0aGUgY3VycmVu
dCB0aW1lIG9mIGFsbCB0aW1lbGluZXMgYXNzb2NpYXRlZCB3aXRoIGRvY3VtZW50IHBhc3Npbmcg
bm93IGFzIHRoZSB0aW1lc3RhbXAuCisgICAgVmVjdG9yPFJlZjxEb2N1bWVudFRpbWVsaW5lPj4g
dGltZWxpbmVzVG9VcGRhdGU7CisgICAgVmVjdG9yPFJlZjxXZWJBbmltYXRpb24+PiBhbmltYXRp
b25zVG9SZW1vdmU7CisgICAgVmVjdG9yPFJlZjxDU1NUcmFuc2l0aW9uPj4gY29tcGxldGVkVHJh
bnNpdGlvbnM7CiAgICAgZm9yIChhdXRvJiB0aW1lbGluZSA6IHByb3RlY3RlZFRpbWVsaW5lcykg
ewogICAgICAgICBhdXRvIHNob3VsZFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzID0gdGlt
ZWxpbmUtPmRvY3VtZW50V2lsbFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKCk7CiAgICAg
ICAgIGlmIChzaG91bGRVcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cyA9PSBEb2N1bWVudFRp
bWVsaW5lOjpTaG91bGRVcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50czo6Tm8pCiAgICAgICAg
ICAgICBjb250aW51ZTsKIAotICAgICAgICB0aW1lbGluZXNUb1VwZGF0ZS5hcHBlbmQodGltZWxp
bmUuZ2V0KCkpOworICAgICAgICB0aW1lbGluZXNUb1VwZGF0ZS5hcHBlbmQodGltZWxpbmUpOwog
Ci0gICAgICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogdGltZWxpbmUtPnJlbGV2YW50QW5pbWF0
aW9ucygpKSB7Ci0gICAgICAgICAgICBpZiAoYW5pbWF0aW9uLT50aW1lbGluZSgpICE9IHRpbWVs
aW5lLmdldCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogY29weVRvVmVjdG9y
KHRpbWVsaW5lLT5yZWxldmFudEFuaW1hdGlvbnMoKSkpIHsKKyAgICAgICAgICAgIGlmIChhbmlt
YXRpb24tPnRpbWVsaW5lKCkgIT0gdGltZWxpbmUucHRyKCkpIHsKICAgICAgICAgICAgICAgICBB
U1NFUlQoIWFuaW1hdGlvbi0+dGltZWxpbmUoKSk7Ci0gICAgICAgICAgICAgICAgYW5pbWF0aW9u
c1RvUmVtb3ZlLmFwcGVuZChhbmltYXRpb24pOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgfQogCkBAIC0xMDMsMTEgKzEwMiwxMSBAQCB2b2lkIERvY3VtZW50VGltZWxp
bmVzQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMoUmVkdWNlZFJlc29s
dXRpbwogICAgICAgICAgICAgYW5pbWF0aW9uLT50aWNrKCk7CiAKICAgICAgICAgICAgIGlmICgh
YW5pbWF0aW9uLT5pc1JlbGV2YW50KCkgJiYgIWFuaW1hdGlvbi0+bmVlZHNUaWNrKCkpCi0gICAg
ICAgICAgICAgICAgYW5pbWF0aW9uc1RvUmVtb3ZlLmFwcGVuZChhbmltYXRpb24pOworICAgICAg
ICAgICAgICAgIGFuaW1hdGlvbnNUb1JlbW92ZS5hcHBlbmQoKmFuaW1hdGlvbik7CiAKLSAgICAg
ICAgICAgIGlmICghYW5pbWF0aW9uLT5uZWVkc1RpY2soKSAmJiBpczxDU1NUcmFuc2l0aW9uPihh
bmltYXRpb24pICYmIGFuaW1hdGlvbi0+cGxheVN0YXRlKCkgPT0gV2ViQW5pbWF0aW9uOjpQbGF5
U3RhdGU6OkZpbmlzaGVkKSB7Ci0gICAgICAgICAgICAgICAgYXV0byogdHJhbnNpdGlvbiA9IGRv
d25jYXN0PENTU1RyYW5zaXRpb24+KGFuaW1hdGlvbi5nZXQoKSk7Ci0gICAgICAgICAgICAgICAg
aWYgKHRyYW5zaXRpb24tPm93bmluZ0VsZW1lbnQoKSkKKyAgICAgICAgICAgIGlmIChpczxDU1NU
cmFuc2l0aW9uPigqYW5pbWF0aW9uKSkgeworICAgICAgICAgICAgICAgIGF1dG8mIHRyYW5zaXRp
b24gPSBkb3duY2FzdDxDU1NUcmFuc2l0aW9uPigqYW5pbWF0aW9uKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIXRyYW5zaXRpb24ubmVlZHNUaWNrKCkgJiYgdHJhbnNpdGlvbi5wbGF5U3RhdGUoKSA9
PSBXZWJBbmltYXRpb246OlBsYXlTdGF0ZTo6RmluaXNoZWQgJiYgdHJhbnNpdGlvbi5vd25pbmdF
bGVtZW50KCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZFRyYW5zaXRpb25zLmFwcGVu
ZCh0cmFuc2l0aW9uKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTE2LDEzICsxMTUs
MTIgQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlvbnNB
bmRTZW5kRXZlbnRzKFJlZHVjZWRSZXNvbHV0aW8KICAgICBpZiAodGltZWxpbmVzVG9VcGRhdGUu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyAyLiBSZW1vdmUgcmVwbGFjZWQg
YW5pbWF0aW9ucyBmb3IgZG9jLgotICAgIGZvciAoYXV0byYgdGltZWxpbmUgOiBtX3RpbWVsaW5l
cykKKyAgICAvLyAyLiBSZW1vdmUgcmVwbGFjZWQgYW5pbWF0aW9ucyBmb3IgZG9jdW1lbnQuCisg
ICAgZm9yIChhdXRvJiB0aW1lbGluZSA6IHByb3RlY3RlZFRpbWVsaW5lcykKICAgICAgICAgdGlt
ZWxpbmUucmVtb3ZlUmVwbGFjZWRBbmltYXRpb25zKCk7CiAKICAgICAvLyAzLiBQZXJmb3JtIGEg
bWljcm90YXNrIGNoZWNrcG9pbnQuCi0gICAgYXV0byBkb2N1bWVudCA9IG1ha2VSZWZQdHIobV9k
b2N1bWVudCk7Ci0gICAgZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVj
a3BvaW50KCk7CisgICAgbWFrZVJlZihtX2RvY3VtZW50KS0+ZXZlbnRMb29wKCkucGVyZm9ybU1p
Y3JvdGFza0NoZWNrcG9pbnQoKTsKIAogICAgIC8vIDQuIExldCBldmVudHMgdG8gZGlzcGF0Y2gg
YmUgYSBjb3B5IG9mIGRvYydzIHBlbmRpbmcgYW5pbWF0aW9uIGV2ZW50IHF1ZXVlLgogICAgIC8v
IDUuIENsZWFyIGRvYydzIHBlbmRpbmcgYW5pbWF0aW9uIGV2ZW50IHF1ZXVlLgpAQCAtMTM0LDE0
ICsxMzIsOCBAQCB2b2lkIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0
aW9uc0FuZFNlbmRFdmVudHMoUmVkdWNlZFJlc29sdXRpbwogICAgIHN0ZDo6c3RhYmxlX3NvcnQo
ZXZlbnRzLmJlZ2luKCksIGV2ZW50cy5lbmQoKSwgW10gKGNvbnN0IFJlZjxBbmltYXRpb25FdmVu
dEJhc2U+JiBsaHMsIGNvbnN0IFJlZjxBbmltYXRpb25FdmVudEJhc2U+JiByaHMpIHsKICAgICAg
ICAgLy8gMS4gU29ydCB0aGUgZXZlbnRzIGJ5IHRoZWlyIHNjaGVkdWxlZCBldmVudCB0aW1lIHN1
Y2ggdGhhdCBldmVudHMgdGhhdCB3ZXJlIHNjaGVkdWxlZCB0byBvY2N1ciBlYXJsaWVyLCBzb3J0
IGJlZm9yZSBldmVudHMgc2NoZWR1bGVkIHRvIG9jY3VyIGxhdGVyCiAgICAgICAgIC8vIGFuZCBl
dmVudHMgd2hvc2Ugc2NoZWR1bGVkIGV2ZW50IHRpbWUgaXMgdW5yZXNvbHZlZCBzb3J0IGJlZm9y
ZSBldmVudHMgd2l0aCBhIHJlc29sdmVkIHNjaGVkdWxlZCBldmVudCB0aW1lLgotICAgICAgICAv
LyAyLiBXaXRoaW4gZXZlbnRzIHdpdGggZXF1YWwgc2NoZWR1bGVkIGV2ZW50IHRpbWVzLCBzb3J0
IGJ5IHRoZWlyIGNvbXBvc2l0ZSBvcmRlci4gRklYTUU6IFdlIGRvbid0IGRvIHRoaXMuCi0gICAg
ICAgIGlmIChsaHMtPnRpbWVsaW5lVGltZSgpICYmICFyaHMtPnRpbWVsaW5lVGltZSgpKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWxocy0+dGltZWxpbmVUaW1lKCkg
JiYgcmhzLT50aW1lbGluZVRpbWUoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICBpZiAoIWxocy0+dGltZWxpbmVUaW1lKCkgJiYgIXJocy0+dGltZWxpbmVUaW1lKCkpCi0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIGxocy0+dGltZWxpbmVUaW1lKCku
dmFsdWUoKSA8IHJocy0+dGltZWxpbmVUaW1lKCkudmFsdWUoKTsKKyAgICAgICAgLy8gMi4gV2l0
aGluIGV2ZW50cyB3aXRoIGVxdWFsIHNjaGVkdWxlZCBldmVudCB0aW1lcywgc29ydCBieSB0aGVp
ciBjb21wb3NpdGUgb3JkZXIuIEZJWE1FOiBOZWVkIHRvIGRvIHRoaXMuCisgICAgICAgIHJldHVy
biBsaHMtPnRpbWVsaW5lVGltZSgpIDwgcmhzLT50aW1lbGluZVRpbWUoKTsKICAgICB9KTsKIAog
ICAgIC8vIDcuIERpc3BhdGNoIGVhY2ggb2YgdGhlIGV2ZW50cyBpbiBldmVudHMgdG8gZGlzcGF0
Y2ggYXQgdGhlaXIgY29ycmVzcG9uZGluZyB0YXJnZXQgdXNpbmcgdGhlIG9yZGVyIGVzdGFibGlz
aGVkIGluIHRoZSBwcmV2aW91cyBzdGVwLgpAQCAtMTUyLDE1ICsxNDQsMjEgQEAgdm9pZCBEb2N1
bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKFJl
ZHVjZWRSZXNvbHV0aW8KICAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IGFuaW1hdGlvbnNUb1Jl
bW92ZSkgewogICAgICAgICAvLyBBbiBhbmltYXRpb24gdGhhdCB3YXMgaW5pdGlhbGx5IG1hcmtl
ZCBhcyBpcnJlbGV2YW50IG1heSBoYXZlIGNoYW5nZWQgd2hpbGUgd2Ugd2VyZSBzZW5kaW5nIGV2
ZW50cywgc28gd2UgcnVuIHRoZSBzYW1lCiAgICAgICAgIC8vIGNoZWNrIHRoYXQgd2UgcmFuIHRv
IGFkZCBpdCB0byBhbmltYXRpb25zVG9SZW1vdmUgaW4gdGhlIGZpcnN0IHBsYWNlLgotICAgICAg
ICBpZiAoIWFuaW1hdGlvbi0+aXNSZWxldmFudCgpICYmICFhbmltYXRpb24tPm5lZWRzVGljaygp
KQotICAgICAgICAgICAgYW5pbWF0aW9uLT50aW1lbGluZSgpLT5yZW1vdmVBbmltYXRpb24oKmFu
aW1hdGlvbik7CisgICAgICAgIGlmIChhdXRvIHRpbWVsaW5lID0gYW5pbWF0aW9uLT50aW1lbGlu
ZSgpKSB7CisgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbi0+aXNSZWxldmFudCgpICYmICFhbmlt
YXRpb24tPm5lZWRzVGljaygpKSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0
aGlzIHVzZSBXZWJBbmltYXRpb246OnJlbW92ZSBpbnN0ZWFkIG9mIFRpbWVsaW5lOjpyZW1vdmVB
bmltYXRpb24/CisgICAgICAgICAgICAgICAgdGltZWxpbmUtPnJlbW92ZUFuaW1hdGlvbihhbmlt
YXRpb24pOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gTm93IHRo
YXQgYW5pbWF0aW9ucyB0aGF0IG5lZWRlZCByZW1vdmFsIGhhdmUgYmVlbiByZW1vdmVkLCBsZXQn
cyB1cGRhdGUgdGhlIGxpc3Qgb2YgY29tcGxldGVkIHRyYW5zaXRpb25zLgorICAgIC8vIE5vdyB0
aGF0IGFuaW1hdGlvbnMgdGhhdCBuZWVkZWQgcmVtb3ZhbCBoYXZlIGJlZW4gcmVtb3ZlZCwgdXBk
YXRlIHRoZSBsaXN0IG9mIGNvbXBsZXRlZCB0cmFuc2l0aW9ucy4KICAgICAvLyBUaGlzIG5lZWRz
IHRvIGhhcHBlbiBhZnRlciBkZWFsaW5nIHdpdGggdGhlIGxpc3Qgb2YgYW5pbWF0aW9ucyB0byBy
ZW1vdmUgYXMgdGhlIGFuaW1hdGlvbiBtYXkgaGF2ZSBiZWVuCiAgICAgLy8gcmVtb3ZlZCBmcm9t
IHRoZSBsaXN0IG9mIGNvbXBsZXRlZCB0cmFuc2l0aW9ucyBvdGhlcndpc2UuCi0gICAgZm9yIChh
dXRvJiBjb21wbGV0ZWRUcmFuc2l0aW9uIDogY29tcGxldGVkVHJhbnNpdGlvbnMpCi0gICAgICAg
IGRvd25jYXN0PERvY3VtZW50VGltZWxpbmU+KCpjb21wbGV0ZWRUcmFuc2l0aW9uLT50aW1lbGlu
ZSgpKS50cmFuc2l0aW9uRGlkQ29tcGxldGUoY29tcGxldGVkVHJhbnNpdGlvbik7CisgICAgZm9y
IChhdXRvJiBjb21wbGV0ZWRUcmFuc2l0aW9uIDogY29tcGxldGVkVHJhbnNpdGlvbnMpIHsKKyAg
ICAgICAgaWYgKGF1dG8gdGltZWxpbmUgPSBjb21wbGV0ZWRUcmFuc2l0aW9uLT50aW1lbGluZSgp
KQorICAgICAgICAgICAgZG93bmNhc3Q8RG9jdW1lbnRUaW1lbGluZT4oKnRpbWVsaW5lKS50cmFu
c2l0aW9uRGlkQ29tcGxldGUoV1RGTW92ZShjb21wbGV0ZWRUcmFuc2l0aW9uKSk7CisgICAgfQog
CiAgICAgZm9yIChhdXRvJiB0aW1lbGluZSA6IHRpbWVsaW5lc1RvVXBkYXRlKQogICAgICAgICB0
aW1lbGluZS0+ZG9jdW1lbnREaWRVcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398933</attachid>
            <date>2020-05-09 12:36:09 -0700</date>
            <delta_ts>2020-05-09 16:32:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211668-20200509123607.patch</filename>
            <type>text/plain</type>
            <size>8832</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNkYzdkY2Q4MzYzY2I5
MjFjZTBkODNjNDQ0M2I0NTZhOTY3M2MzYi4uMWUwZWE1ZmUzN2Q0MmUzODUwZTM3YzBiYWQ4MTBm
YWM2N2RlZDUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA1LTA5ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBUaWdodGVuIHVwIGxvZ2ljIGlu
IERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVu
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTY2
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZl
bnRzKToKKyAgICAgICAgVXNlIFJlZiBpbnN0ZWFkIG9mIFJlZlB0ci4gVXNlIFJlZiBldmVuIGlu
IHRpbWVsaW5lc1RvVXBkYXRlOyBubyBoYXJtIGluIGRvaW5nCisgICAgICAgIGEgbGl0dGxlIGJp
dCBvZiBleHRyYSByZWYnaW5nLiBVc2UgY29weVRvVmVjdG9yIHdoZW4gaXRlcmF0aW5nIHJlbGV2
YW50QW5pbWF0aW9ucworICAgICAgICBzaW5jZSBpdCBjb3VsZCBiZSBhIHByb2JsZW0gaWYgdGhl
IGN1cnJlbnQgYW5pbWF0aW9uIHdhcyByZW1vdmVkIGZyb20gdGhlCisgICAgICAgIExpc3RIYXNo
U2V0IHdoaWxlIHdlIGFyZSBpdGVyYXRpbmcgaXQgYW5kIHRoZXJlIGlzIG5vIG9idmlvdXMgcmVh
c29uIHRoYXQgY2FuJ3QKKyAgICAgICAgaGFwcGVuLiBVc2UgbWFrZVJlZiBpbnN0ZWFkIG9mIG1h
a2VSZWZQdHIuIFRha2UgYWR2YW50YWdlIG9mIHRoZSBiZWhhdmlvciBvZgorICAgICAgICB0aGUg
T3B0aW9uYWwgb3BlcmF0b3I8IGFuZCByZW1vdmUgdW5uZWNlc3NhcnkgY2hlY2tzIHRoYXQgZG8g
dGhlIHNhbWUgdGhpbmcKKyAgICAgICAgZXhwbGljaXRseS4gQWRkIGEgbnVsbCBjaGVjayBvZiB0
aGUgdGltZWxpbmUgd2hlbiBpdGVyYXRpbmcgYW5pbWF0aW9uc1RvUmVtb3ZlCisgICAgICAgIChz
YW1lIG9uZSBhZGRlZCBpbiBhIGRpZmZlcmVudCBwYXRjaCwgc28gd2lsbCBwcm9iYWJseSBiZSBn
b25lIHdoZW4gd2UgcmViYXNlKS4KKyAgICAgICAgQWRkIGEgbnVsbCBjaGVjayBvZiB0aGUgdGlt
ZWxpbmUgd2hlbiBpdGVyYXRpbmcgY29tcGxldGVkVHJhbnNpdGlvbnMuIE5vCisgICAgICAgIG9i
dmlvdXMgZ3VhcmFudGVlIHRoZXkgY291bGQgbm90IGhhdmUgYmVlbiByZW1vdmVkLgorCiAyMDIw
LTA1LTA5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbWlz
c2luZyBudWxsLWNoZWNrIG9mIHBhZ2UgaW4gUmVzb3VyY2VMb2FkZXI6OmxvYWREYXRhVVJMCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0Nv
bnRyb2xsZXIuY3BwCmluZGV4IDY3ZmM0ZmYyNTFmOWVjMTZhM2MxY2Y5OTFjNTEzYjVhODA5MjI0
YjUuLjU0NGFlMDQ0ZmI5OGE3MmNmNjdlMmRhMTEyOGYzMzBlN2IyYzVhY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xs
ZXIuY3BwCkBAIC03MCw5ICs3MCw5IEBAIHZvaWQgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVy
Ojp1cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cyhSZWR1Y2VkUmVzb2x1dGlvCiAgICAgQVNT
RVJUKCFtX3RpbWVsaW5lcy5oYXNOdWxsUmVmZXJlbmNlcygpKTsKIAogICAgIC8vIFdlIG5lZWQg
dG8gY29weSBtX3RpbWVsaW5lcyBiZWZvcmUgaXRlcmF0aW5nIG92ZXIgaXRzIG1lbWJlcnMgc2lu
Y2UgdGhlIHN0ZXBzIGluIHRoaXMgcHJvY2VkdXJlIG1heSBtdXRhdGUgbV90aW1lbGluZXMuCi0g
ICAgVmVjdG9yPFJlZlB0cjxEb2N1bWVudFRpbWVsaW5lPj4gcHJvdGVjdGVkVGltZWxpbmVzOwor
ICAgIFZlY3RvcjxSZWY8RG9jdW1lbnRUaW1lbGluZT4+IHByb3RlY3RlZFRpbWVsaW5lczsKICAg
ICBmb3IgKGF1dG8mIHRpbWVsaW5lIDogbV90aW1lbGluZXMpCi0gICAgICAgIHByb3RlY3RlZFRp
bWVsaW5lcy5hcHBlbmQoJnRpbWVsaW5lKTsKKyAgICAgICAgcHJvdGVjdGVkVGltZWxpbmVzLmFw
cGVuZCh0aW1lbGluZSk7CiAKICAgICAvLyBXZSBuZWVkIHRvIGZyZWV6ZSB0aGUgY3VycmVudCB0
aW1lIGV2ZW4gaWYgbm8gYW5pbWF0aW9uIGlzIHJ1bm5pbmcuCiAgICAgLy8gZG9jdW1lbnQudGlt
ZWxpbmUuY3VycmVudFRpbWUgbWF5IGJlIGNhbGxlZCBmcm9tIGEgckFGIGNhbGxiYWNrIGFuZApA
QCAtODAsMjEgKzgwLDIwIEBAIHZvaWQgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjp1cGRh
dGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cyhSZWR1Y2VkUmVzb2x1dGlvCiAgICAgaWYgKCFtX2lz
U3VzcGVuZGVkKQogICAgICAgICBjYWNoZUN1cnJlbnRUaW1lKHRpbWVzdGFtcCk7CiAKLSAgICAv
LyAxLiBVcGRhdGUgdGhlIGN1cnJlbnQgdGltZSBvZiBhbGwgdGltZWxpbmVzIGFzc29jaWF0ZWQg
d2l0aCBkb2MgcGFzc2luZyBub3cgYXMgdGhlIHRpbWVzdGFtcC4KLSAgICBWZWN0b3I8RG9jdW1l
bnRUaW1lbGluZSo+IHRpbWVsaW5lc1RvVXBkYXRlOwotICAgIFZlY3RvcjxSZWZQdHI8V2ViQW5p
bWF0aW9uPj4gYW5pbWF0aW9uc1RvUmVtb3ZlOwotICAgIFZlY3RvcjxSZWZQdHI8Q1NTVHJhbnNp
dGlvbj4+IGNvbXBsZXRlZFRyYW5zaXRpb25zOworICAgIC8vIDEuIFVwZGF0ZSB0aGUgY3VycmVu
dCB0aW1lIG9mIGFsbCB0aW1lbGluZXMgYXNzb2NpYXRlZCB3aXRoIGRvY3VtZW50IHBhc3Npbmcg
bm93IGFzIHRoZSB0aW1lc3RhbXAuCisgICAgVmVjdG9yPFJlZjxEb2N1bWVudFRpbWVsaW5lPj4g
dGltZWxpbmVzVG9VcGRhdGU7CisgICAgVmVjdG9yPFJlZjxXZWJBbmltYXRpb24+PiBhbmltYXRp
b25zVG9SZW1vdmU7CisgICAgVmVjdG9yPFJlZjxDU1NUcmFuc2l0aW9uPj4gY29tcGxldGVkVHJh
bnNpdGlvbnM7CiAgICAgZm9yIChhdXRvJiB0aW1lbGluZSA6IHByb3RlY3RlZFRpbWVsaW5lcykg
ewogICAgICAgICBhdXRvIHNob3VsZFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzID0gdGlt
ZWxpbmUtPmRvY3VtZW50V2lsbFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKCk7CiAgICAg
ICAgIGlmIChzaG91bGRVcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cyA9PSBEb2N1bWVudFRp
bWVsaW5lOjpTaG91bGRVcGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50czo6Tm8pCiAgICAgICAg
ICAgICBjb250aW51ZTsKIAotICAgICAgICB0aW1lbGluZXNUb1VwZGF0ZS5hcHBlbmQodGltZWxp
bmUuZ2V0KCkpOworICAgICAgICB0aW1lbGluZXNUb1VwZGF0ZS5hcHBlbmQoKnRpbWVsaW5lKTsK
IAotICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IHRpbWVsaW5lLT5yZWxldmFudEFuaW1h
dGlvbnMoKSkgewotICAgICAgICAgICAgaWYgKGFuaW1hdGlvbi0+dGltZWxpbmUoKSAhPSB0aW1l
bGluZS5nZXQoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IGNvcHlUb1ZlY3Rv
cih0aW1lbGluZS0+cmVsZXZhbnRBbmltYXRpb25zKCkpKSB7CisgICAgICAgICAgICBpZiAoYW5p
bWF0aW9uLT50aW1lbGluZSgpICE9IHRpbWVsaW5lLnB0cigpKSB7CiAgICAgICAgICAgICAgICAg
QVNTRVJUKCFhbmltYXRpb24tPnRpbWVsaW5lKCkpOwotICAgICAgICAgICAgICAgIGFuaW1hdGlv
bnNUb1JlbW92ZS5hcHBlbmQoYW5pbWF0aW9uKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgIH0KIApAQCAtMTAzLDExICsxMDIsMTEgQEAgdm9pZCBEb2N1bWVudFRpbWVs
aW5lc0NvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKFJlZHVjZWRSZXNv
bHV0aW8KICAgICAgICAgICAgIGFuaW1hdGlvbi0+dGljaygpOwogCiAgICAgICAgICAgICBpZiAo
IWFuaW1hdGlvbi0+aXNSZWxldmFudCgpICYmICFhbmltYXRpb24tPm5lZWRzVGljaygpKQotICAg
ICAgICAgICAgICAgIGFuaW1hdGlvbnNUb1JlbW92ZS5hcHBlbmQoYW5pbWF0aW9uKTsKKyAgICAg
ICAgICAgICAgICBhbmltYXRpb25zVG9SZW1vdmUuYXBwZW5kKCphbmltYXRpb24pOwogCi0gICAg
ICAgICAgICBpZiAoIWFuaW1hdGlvbi0+bmVlZHNUaWNrKCkgJiYgaXM8Q1NTVHJhbnNpdGlvbj4o
YW5pbWF0aW9uKSAmJiBhbmltYXRpb24tPnBsYXlTdGF0ZSgpID09IFdlYkFuaW1hdGlvbjo6UGxh
eVN0YXRlOjpGaW5pc2hlZCkgewotICAgICAgICAgICAgICAgIGF1dG8qIHRyYW5zaXRpb24gPSBk
b3duY2FzdDxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24uZ2V0KCkpOwotICAgICAgICAgICAgICAg
IGlmICh0cmFuc2l0aW9uLT5vd25pbmdFbGVtZW50KCkpCisgICAgICAgICAgICBpZiAoaXM8Q1NT
VHJhbnNpdGlvbj4oKmFuaW1hdGlvbikpIHsKKyAgICAgICAgICAgICAgICBhdXRvJiB0cmFuc2l0
aW9uID0gZG93bmNhc3Q8Q1NTVHJhbnNpdGlvbj4oKmFuaW1hdGlvbik7CisgICAgICAgICAgICAg
ICAgaWYgKCF0cmFuc2l0aW9uLm5lZWRzVGljaygpICYmIHRyYW5zaXRpb24ucGxheVN0YXRlKCkg
PT0gV2ViQW5pbWF0aW9uOjpQbGF5U3RhdGU6OkZpbmlzaGVkICYmIHRyYW5zaXRpb24ub3duaW5n
RWxlbWVudCgpKQogICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWRUcmFuc2l0aW9ucy5hcHBl
bmQodHJhbnNpdGlvbik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTExNiwxMyArMTE1
LDEyIEBAIHZvaWQgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjp1cGRhdGVBbmltYXRpb25z
QW5kU2VuZEV2ZW50cyhSZWR1Y2VkUmVzb2x1dGlvCiAgICAgaWYgKHRpbWVsaW5lc1RvVXBkYXRl
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gMi4gUmVtb3ZlIHJlcGxhY2Vk
IGFuaW1hdGlvbnMgZm9yIGRvYy4KLSAgICBmb3IgKGF1dG8mIHRpbWVsaW5lIDogbV90aW1lbGlu
ZXMpCisgICAgLy8gMi4gUmVtb3ZlIHJlcGxhY2VkIGFuaW1hdGlvbnMgZm9yIGRvY3VtZW50Lgor
ICAgIGZvciAoYXV0byYgdGltZWxpbmUgOiBwcm90ZWN0ZWRUaW1lbGluZXMpCiAgICAgICAgIHRp
bWVsaW5lLnJlbW92ZVJlcGxhY2VkQW5pbWF0aW9ucygpOwogCiAgICAgLy8gMy4gUGVyZm9ybSBh
IG1pY3JvdGFzayBjaGVja3BvaW50LgotICAgIGF1dG8gZG9jdW1lbnQgPSBtYWtlUmVmUHRyKG1f
ZG9jdW1lbnQpOwotICAgIGRvY3VtZW50LT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hl
Y2twb2ludCgpOworICAgIG1ha2VSZWYobV9kb2N1bWVudCktPmV2ZW50TG9vcCgpLnBlcmZvcm1N
aWNyb3Rhc2tDaGVja3BvaW50KCk7CiAKICAgICAvLyA0LiBMZXQgZXZlbnRzIHRvIGRpc3BhdGNo
IGJlIGEgY29weSBvZiBkb2MncyBwZW5kaW5nIGFuaW1hdGlvbiBldmVudCBxdWV1ZS4KICAgICAv
LyA1LiBDbGVhciBkb2MncyBwZW5kaW5nIGFuaW1hdGlvbiBldmVudCBxdWV1ZS4KQEAgLTEzNCwx
NCArMTMyLDggQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI6OnVwZGF0ZUFuaW1h
dGlvbnNBbmRTZW5kRXZlbnRzKFJlZHVjZWRSZXNvbHV0aW8KICAgICBzdGQ6OnN0YWJsZV9zb3J0
KGV2ZW50cy5iZWdpbigpLCBldmVudHMuZW5kKCksIFtdIChjb25zdCBSZWY8QW5pbWF0aW9uRXZl
bnRCYXNlPiYgbGhzLCBjb25zdCBSZWY8QW5pbWF0aW9uRXZlbnRCYXNlPiYgcmhzKSB7CiAgICAg
ICAgIC8vIDEuIFNvcnQgdGhlIGV2ZW50cyBieSB0aGVpciBzY2hlZHVsZWQgZXZlbnQgdGltZSBz
dWNoIHRoYXQgZXZlbnRzIHRoYXQgd2VyZSBzY2hlZHVsZWQgdG8gb2NjdXIgZWFybGllciwgc29y
dCBiZWZvcmUgZXZlbnRzIHNjaGVkdWxlZCB0byBvY2N1ciBsYXRlcgogICAgICAgICAvLyBhbmQg
ZXZlbnRzIHdob3NlIHNjaGVkdWxlZCBldmVudCB0aW1lIGlzIHVucmVzb2x2ZWQgc29ydCBiZWZv
cmUgZXZlbnRzIHdpdGggYSByZXNvbHZlZCBzY2hlZHVsZWQgZXZlbnQgdGltZS4KLSAgICAgICAg
Ly8gMi4gV2l0aGluIGV2ZW50cyB3aXRoIGVxdWFsIHNjaGVkdWxlZCBldmVudCB0aW1lcywgc29y
dCBieSB0aGVpciBjb21wb3NpdGUgb3JkZXIuIEZJWE1FOiBXZSBkb24ndCBkbyB0aGlzLgotICAg
ICAgICBpZiAobGhzLT50aW1lbGluZVRpbWUoKSAmJiAhcmhzLT50aW1lbGluZVRpbWUoKSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFsaHMtPnRpbWVsaW5lVGltZSgp
ICYmIHJocy0+dGltZWxpbmVUaW1lKCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgaWYgKCFsaHMtPnRpbWVsaW5lVGltZSgpICYmICFyaHMtPnRpbWVsaW5lVGltZSgpKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIHJldHVybiBsaHMtPnRpbWVsaW5lVGltZSgp
LnZhbHVlKCkgPCByaHMtPnRpbWVsaW5lVGltZSgpLnZhbHVlKCk7CisgICAgICAgIC8vIDIuIFdp
dGhpbiBldmVudHMgd2l0aCBlcXVhbCBzY2hlZHVsZWQgZXZlbnQgdGltZXMsIHNvcnQgYnkgdGhl
aXIgY29tcG9zaXRlIG9yZGVyLiBGSVhNRTogTmVlZCB0byBkbyB0aGlzLgorICAgICAgICByZXR1
cm4gbGhzLT50aW1lbGluZVRpbWUoKSA8IHJocy0+dGltZWxpbmVUaW1lKCk7CiAgICAgfSk7CiAK
ICAgICAvLyA3LiBEaXNwYXRjaCBlYWNoIG9mIHRoZSBldmVudHMgaW4gZXZlbnRzIHRvIGRpc3Bh
dGNoIGF0IHRoZWlyIGNvcnJlc3BvbmRpbmcgdGFyZ2V0IHVzaW5nIHRoZSBvcmRlciBlc3RhYmxp
c2hlZCBpbiB0aGUgcHJldmlvdXMgc3RlcC4KQEAgLTE1MiwxNSArMTQ0LDIxIEBAIHZvaWQgRG9j
dW1lbnRUaW1lbGluZXNDb250cm9sbGVyOjp1cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cyhS
ZWR1Y2VkUmVzb2x1dGlvCiAgICAgZm9yIChhdXRvJiBhbmltYXRpb24gOiBhbmltYXRpb25zVG9S
ZW1vdmUpIHsKICAgICAgICAgLy8gQW4gYW5pbWF0aW9uIHRoYXQgd2FzIGluaXRpYWxseSBtYXJr
ZWQgYXMgaXJyZWxldmFudCBtYXkgaGF2ZSBjaGFuZ2VkIHdoaWxlIHdlIHdlcmUgc2VuZGluZyBl
dmVudHMsIHNvIHdlIHJ1biB0aGUgc2FtZQogICAgICAgICAvLyBjaGVjayB0aGF0IHdlIHJhbiB0
byBhZGQgaXQgdG8gYW5pbWF0aW9uc1RvUmVtb3ZlIGluIHRoZSBmaXJzdCBwbGFjZS4KLSAgICAg
ICAgaWYgKCFhbmltYXRpb24tPmlzUmVsZXZhbnQoKSAmJiAhYW5pbWF0aW9uLT5uZWVkc1RpY2so
KSkKLSAgICAgICAgICAgIGFuaW1hdGlvbi0+dGltZWxpbmUoKS0+cmVtb3ZlQW5pbWF0aW9uKCph
bmltYXRpb24pOworICAgICAgICBpZiAoYXV0byB0aW1lbGluZSA9IGFuaW1hdGlvbi0+dGltZWxp
bmUoKSkgeworICAgICAgICAgICAgaWYgKCFhbmltYXRpb24tPmlzUmVsZXZhbnQoKSAmJiAhYW5p
bWF0aW9uLT5uZWVkc1RpY2soKSkgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQg
dGhpcyB1c2UgV2ViQW5pbWF0aW9uOjpyZW1vdmUgaW5zdGVhZCBvZiBUaW1lbGluZTo6cmVtb3Zl
QW5pbWF0aW9uPworICAgICAgICAgICAgICAgIHRpbWVsaW5lLT5yZW1vdmVBbmltYXRpb24oYW5p
bWF0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAotICAgIC8vIE5vdyB0
aGF0IGFuaW1hdGlvbnMgdGhhdCBuZWVkZWQgcmVtb3ZhbCBoYXZlIGJlZW4gcmVtb3ZlZCwgbGV0
J3MgdXBkYXRlIHRoZSBsaXN0IG9mIGNvbXBsZXRlZCB0cmFuc2l0aW9ucy4KKyAgICAvLyBOb3cg
dGhhdCBhbmltYXRpb25zIHRoYXQgbmVlZGVkIHJlbW92YWwgaGF2ZSBiZWVuIHJlbW92ZWQsIHVw
ZGF0ZSB0aGUgbGlzdCBvZiBjb21wbGV0ZWQgdHJhbnNpdGlvbnMuCiAgICAgLy8gVGhpcyBuZWVk
cyB0byBoYXBwZW4gYWZ0ZXIgZGVhbGluZyB3aXRoIHRoZSBsaXN0IG9mIGFuaW1hdGlvbnMgdG8g
cmVtb3ZlIGFzIHRoZSBhbmltYXRpb24gbWF5IGhhdmUgYmVlbgogICAgIC8vIHJlbW92ZWQgZnJv
bSB0aGUgbGlzdCBvZiBjb21wbGV0ZWQgdHJhbnNpdGlvbnMgb3RoZXJ3aXNlLgotICAgIGZvciAo
YXV0byYgY29tcGxldGVkVHJhbnNpdGlvbiA6IGNvbXBsZXRlZFRyYW5zaXRpb25zKQotICAgICAg
ICBkb3duY2FzdDxEb2N1bWVudFRpbWVsaW5lPigqY29tcGxldGVkVHJhbnNpdGlvbi0+dGltZWxp
bmUoKSkudHJhbnNpdGlvbkRpZENvbXBsZXRlKGNvbXBsZXRlZFRyYW5zaXRpb24pOworICAgIGZv
ciAoYXV0byYgY29tcGxldGVkVHJhbnNpdGlvbiA6IGNvbXBsZXRlZFRyYW5zaXRpb25zKSB7Cisg
ICAgICAgIGlmIChhdXRvIHRpbWVsaW5lID0gY29tcGxldGVkVHJhbnNpdGlvbi0+dGltZWxpbmUo
KSkKKyAgICAgICAgICAgIGRvd25jYXN0PERvY3VtZW50VGltZWxpbmU+KCp0aW1lbGluZSkudHJh
bnNpdGlvbkRpZENvbXBsZXRlKFdURk1vdmUoY29tcGxldGVkVHJhbnNpdGlvbikpOworICAgIH0K
IAogICAgIGZvciAoYXV0byYgdGltZWxpbmUgOiB0aW1lbGluZXNUb1VwZGF0ZSkKICAgICAgICAg
dGltZWxpbmUtPmRvY3VtZW50RGlkVXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398945</attachid>
            <date>2020-05-09 16:32:41 -0700</date>
            <delta_ts>2020-05-10 01:45:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211668-20200509163238.patch</filename>
            <type>text/plain</type>
            <size>8682</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTczN2QyNDFjNjQ2NDk2
OTRlYmVhMzIxNTY3N2VlZjA3ODkzZDdjZi4uNjk3MjFmZDU3ZTQ1Njk0MDQwNDBiNjRlZGFhM2Ew
OWNkZDliZjUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA1LTA5ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBUaWdodGVuIHVwIGxvZ2ljIGlu
IERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVu
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTY2
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZl
bnRzKToKKyAgICAgICAgVXNlIFJlZiBpbnN0ZWFkIG9mIFJlZlB0ci4gVXNlIFJlZiBldmVuIGlu
IHRpbWVsaW5lc1RvVXBkYXRlOyBubyBoYXJtIGluIGRvaW5nCisgICAgICAgIGEgbGl0dGxlIGJp
dCBvZiBleHRyYSByZWYnaW5nLiBVc2UgY29weVRvVmVjdG9yIHdoZW4gaXRlcmF0aW5nIHJlbGV2
YW50QW5pbWF0aW9ucworICAgICAgICBzaW5jZSBpdCBjb3VsZCBiZSBhIHByb2JsZW0gaWYgdGhl
IGN1cnJlbnQgYW5pbWF0aW9uIHdhcyByZW1vdmVkIGZyb20gdGhlCisgICAgICAgIExpc3RIYXNo
U2V0IHdoaWxlIHdlIGFyZSBpdGVyYXRpbmcgaXQgYW5kIHRoZXJlIGlzIG5vIG9idmlvdXMgcmVh
c29uIHRoYXQgY2FuJ3QKKyAgICAgICAgaGFwcGVuLiBVc2UgbWFrZVJlZiBpbnN0ZWFkIG9mIG1h
a2VSZWZQdHIuIFRha2UgYWR2YW50YWdlIG9mIHRoZSBiZWhhdmlvciBvZgorICAgICAgICB0aGUg
T3B0aW9uYWwgb3BlcmF0b3I8IGFuZCByZW1vdmUgdW5uZWNlc3NhcnkgY2hlY2tzIHRoYXQgZG8g
dGhlIHNhbWUgdGhpbmcKKyAgICAgICAgZXhwbGljaXRseS4gQWRkIGEgbnVsbCBjaGVjayBvZiB0
aGUgdGltZWxpbmUgd2hlbiBpdGVyYXRpbmcgY29tcGxldGVkVHJhbnNpdGlvbnMuCisgICAgICAg
IE5vIG9idmlvdXMgZ3VhcmFudGVlIHRoZXkgY291bGQgbm90IGhhdmUgYmVlbiByZW1vdmVkLgor
CiAyMDIwLTA1LTA5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgWE1MIGV4dGVybmFsIGVudGl0eSByZXNvdXJjZXMgc2hvdWxkIG9ubHkgYmUgbG9hZGVkIGZy
b20gWE1MIE1JTUUgdHlwZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9E
b2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHAKaW5kZXggZWNmNmE5M2RiMzBkZDgzNTc0
MGE5MGExMTUzNDc0MDZhNDQyOGRjNy4uZTQxYjdjOWU3OThmZTA1YWQ4NDg0ZGU0YjJiMzAxY2Uz
YmZkM2E2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGlt
ZWxpbmVzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHAKQEAgLTcwLDkgKzcwLDkgQEAgdm9pZCBEb2N1bWVu
dFRpbWVsaW5lc0NvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKFJlZHVj
ZWRSZXNvbHV0aW8KICAgICBBU1NFUlQoIW1fdGltZWxpbmVzLmhhc051bGxSZWZlcmVuY2VzKCkp
OwogCiAgICAgLy8gV2UgbmVlZCB0byBjb3B5IG1fdGltZWxpbmVzIGJlZm9yZSBpdGVyYXRpbmcg
b3ZlciBpdHMgbWVtYmVycyBzaW5jZSB0aGUgc3RlcHMgaW4gdGhpcyBwcm9jZWR1cmUgbWF5IG11
dGF0ZSBtX3RpbWVsaW5lcy4KLSAgICBWZWN0b3I8UmVmUHRyPERvY3VtZW50VGltZWxpbmU+PiBw
cm90ZWN0ZWRUaW1lbGluZXM7CisgICAgVmVjdG9yPFJlZjxEb2N1bWVudFRpbWVsaW5lPj4gcHJv
dGVjdGVkVGltZWxpbmVzOwogICAgIGZvciAoYXV0byYgdGltZWxpbmUgOiBtX3RpbWVsaW5lcykK
LSAgICAgICAgcHJvdGVjdGVkVGltZWxpbmVzLmFwcGVuZCgmdGltZWxpbmUpOworICAgICAgICBw
cm90ZWN0ZWRUaW1lbGluZXMuYXBwZW5kKHRpbWVsaW5lKTsKIAogICAgIC8vIFdlIG5lZWQgdG8g
ZnJlZXplIHRoZSBjdXJyZW50IHRpbWUgZXZlbiBpZiBubyBhbmltYXRpb24gaXMgcnVubmluZy4K
ICAgICAvLyBkb2N1bWVudC50aW1lbGluZS5jdXJyZW50VGltZSBtYXkgYmUgY2FsbGVkIGZyb20g
YSByQUYgY2FsbGJhY2sgYW5kCkBAIC04MCwyMSArODAsMjAgQEAgdm9pZCBEb2N1bWVudFRpbWVs
aW5lc0NvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKFJlZHVjZWRSZXNv
bHV0aW8KICAgICBpZiAoIW1faXNTdXNwZW5kZWQpCiAgICAgICAgIGNhY2hlQ3VycmVudFRpbWUo
dGltZXN0YW1wKTsKIAotICAgIC8vIDEuIFVwZGF0ZSB0aGUgY3VycmVudCB0aW1lIG9mIGFsbCB0
aW1lbGluZXMgYXNzb2NpYXRlZCB3aXRoIGRvYyBwYXNzaW5nIG5vdyBhcyB0aGUgdGltZXN0YW1w
LgotICAgIFZlY3RvcjxEb2N1bWVudFRpbWVsaW5lKj4gdGltZWxpbmVzVG9VcGRhdGU7Ci0gICAg
VmVjdG9yPFJlZlB0cjxXZWJBbmltYXRpb24+PiBhbmltYXRpb25zVG9SZW1vdmU7Ci0gICAgVmVj
dG9yPFJlZlB0cjxDU1NUcmFuc2l0aW9uPj4gY29tcGxldGVkVHJhbnNpdGlvbnM7CisgICAgLy8g
MS4gVXBkYXRlIHRoZSBjdXJyZW50IHRpbWUgb2YgYWxsIHRpbWVsaW5lcyBhc3NvY2lhdGVkIHdp
dGggZG9jdW1lbnQgcGFzc2luZyBub3cgYXMgdGhlIHRpbWVzdGFtcC4KKyAgICBWZWN0b3I8UmVm
PERvY3VtZW50VGltZWxpbmU+PiB0aW1lbGluZXNUb1VwZGF0ZTsKKyAgICBWZWN0b3I8UmVmPFdl
YkFuaW1hdGlvbj4+IGFuaW1hdGlvbnNUb1JlbW92ZTsKKyAgICBWZWN0b3I8UmVmPENTU1RyYW5z
aXRpb24+PiBjb21wbGV0ZWRUcmFuc2l0aW9uczsKICAgICBmb3IgKGF1dG8mIHRpbWVsaW5lIDog
cHJvdGVjdGVkVGltZWxpbmVzKSB7CiAgICAgICAgIGF1dG8gc2hvdWxkVXBkYXRlQW5pbWF0aW9u
c0FuZFNlbmRFdmVudHMgPSB0aW1lbGluZS0+ZG9jdW1lbnRXaWxsVXBkYXRlQW5pbWF0aW9uc0Fu
ZFNlbmRFdmVudHMoKTsKICAgICAgICAgaWYgKHNob3VsZFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5k
RXZlbnRzID09IERvY3VtZW50VGltZWxpbmU6OlNob3VsZFVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5k
RXZlbnRzOjpObykKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHRpbWVsaW5lc1Rv
VXBkYXRlLmFwcGVuZCh0aW1lbGluZS5nZXQoKSk7CisgICAgICAgIHRpbWVsaW5lc1RvVXBkYXRl
LmFwcGVuZCh0aW1lbGluZS5jb3B5UmVmKCkpOwogCi0gICAgICAgIGZvciAoYXV0byYgYW5pbWF0
aW9uIDogdGltZWxpbmUtPnJlbGV2YW50QW5pbWF0aW9ucygpKSB7Ci0gICAgICAgICAgICBpZiAo
YW5pbWF0aW9uLT50aW1lbGluZSgpICE9IHRpbWVsaW5lLmdldCgpKSB7CisgICAgICAgIGZvciAo
YXV0byYgYW5pbWF0aW9uIDogY29weVRvVmVjdG9yKHRpbWVsaW5lLT5yZWxldmFudEFuaW1hdGlv
bnMoKSkpIHsKKyAgICAgICAgICAgIGlmIChhbmltYXRpb24tPnRpbWVsaW5lKCkgIT0gdGltZWxp
bmUucHRyKCkpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoIWFuaW1hdGlvbi0+dGltZWxpbmUo
KSk7Ci0gICAgICAgICAgICAgICAgYW5pbWF0aW9uc1RvUmVtb3ZlLmFwcGVuZChhbmltYXRpb24p
OwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCkBAIC0xMDMsMTEg
KzEwMiwxMSBAQCB2b2lkIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0
aW9uc0FuZFNlbmRFdmVudHMoUmVkdWNlZFJlc29sdXRpbwogICAgICAgICAgICAgYW5pbWF0aW9u
LT50aWNrKCk7CiAKICAgICAgICAgICAgIGlmICghYW5pbWF0aW9uLT5pc1JlbGV2YW50KCkgJiYg
IWFuaW1hdGlvbi0+bmVlZHNUaWNrKCkpCi0gICAgICAgICAgICAgICAgYW5pbWF0aW9uc1RvUmVt
b3ZlLmFwcGVuZChhbmltYXRpb24pOworICAgICAgICAgICAgICAgIGFuaW1hdGlvbnNUb1JlbW92
ZS5hcHBlbmQoKmFuaW1hdGlvbik7CiAKLSAgICAgICAgICAgIGlmICghYW5pbWF0aW9uLT5uZWVk
c1RpY2soKSAmJiBpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24pICYmIGFuaW1hdGlvbi0+cGxh
eVN0YXRlKCkgPT0gV2ViQW5pbWF0aW9uOjpQbGF5U3RhdGU6OkZpbmlzaGVkKSB7Ci0gICAgICAg
ICAgICAgICAgYXV0byogdHJhbnNpdGlvbiA9IGRvd25jYXN0PENTU1RyYW5zaXRpb24+KGFuaW1h
dGlvbi5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKHRyYW5zaXRpb24tPm93bmluZ0VsZW1l
bnQoKSkKKyAgICAgICAgICAgIGlmIChpczxDU1NUcmFuc2l0aW9uPigqYW5pbWF0aW9uKSkgewor
ICAgICAgICAgICAgICAgIGF1dG8mIHRyYW5zaXRpb24gPSBkb3duY2FzdDxDU1NUcmFuc2l0aW9u
PigqYW5pbWF0aW9uKTsKKyAgICAgICAgICAgICAgICBpZiAoIXRyYW5zaXRpb24ubmVlZHNUaWNr
KCkgJiYgdHJhbnNpdGlvbi5wbGF5U3RhdGUoKSA9PSBXZWJBbmltYXRpb246OlBsYXlTdGF0ZTo6
RmluaXNoZWQgJiYgdHJhbnNpdGlvbi5vd25pbmdFbGVtZW50KCkpCiAgICAgICAgICAgICAgICAg
ICAgIGNvbXBsZXRlZFRyYW5zaXRpb25zLmFwcGVuZCh0cmFuc2l0aW9uKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpAQCAtMTE2LDEzICsxMTUsMTIgQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5l
c0NvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlvbnNBbmRTZW5kRXZlbnRzKFJlZHVjZWRSZXNvbHV0
aW8KICAgICBpZiAodGltZWxpbmVzVG9VcGRhdGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICAvLyAyLiBSZW1vdmUgcmVwbGFjZWQgYW5pbWF0aW9ucyBmb3IgZG9jLgotICAgIGZv
ciAoYXV0byYgdGltZWxpbmUgOiBtX3RpbWVsaW5lcykKLSAgICAgICAgdGltZWxpbmUucmVtb3Zl
UmVwbGFjZWRBbmltYXRpb25zKCk7CisgICAgLy8gMi4gUmVtb3ZlIHJlcGxhY2VkIGFuaW1hdGlv
bnMgZm9yIGRvY3VtZW50LgorICAgIGZvciAoYXV0byYgdGltZWxpbmUgOiBwcm90ZWN0ZWRUaW1l
bGluZXMpCisgICAgICAgIHRpbWVsaW5lLT5yZW1vdmVSZXBsYWNlZEFuaW1hdGlvbnMoKTsKIAog
ICAgIC8vIDMuIFBlcmZvcm0gYSBtaWNyb3Rhc2sgY2hlY2twb2ludC4KLSAgICBhdXRvIGRvY3Vt
ZW50ID0gbWFrZVJlZlB0cihtX2RvY3VtZW50KTsKLSAgICBkb2N1bWVudC0+ZXZlbnRMb29wKCku
cGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKKyAgICBtYWtlUmVmKG1fZG9jdW1lbnQpLT5l
dmVudExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwogCiAgICAgLy8gNC4gTGV0
IGV2ZW50cyB0byBkaXNwYXRjaCBiZSBhIGNvcHkgb2YgZG9jJ3MgcGVuZGluZyBhbmltYXRpb24g
ZXZlbnQgcXVldWUuCiAgICAgLy8gNS4gQ2xlYXIgZG9jJ3MgcGVuZGluZyBhbmltYXRpb24gZXZl
bnQgcXVldWUuCkBAIC0xMzQsMTQgKzEzMiw4IEBAIHZvaWQgRG9jdW1lbnRUaW1lbGluZXNDb250
cm9sbGVyOjp1cGRhdGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cyhSZWR1Y2VkUmVzb2x1dGlvCiAg
ICAgc3RkOjpzdGFibGVfc29ydChldmVudHMuYmVnaW4oKSwgZXZlbnRzLmVuZCgpLCBbXSAoY29u
c3QgUmVmPEFuaW1hdGlvbkV2ZW50QmFzZT4mIGxocywgY29uc3QgUmVmPEFuaW1hdGlvbkV2ZW50
QmFzZT4mIHJocykgewogICAgICAgICAvLyAxLiBTb3J0IHRoZSBldmVudHMgYnkgdGhlaXIgc2No
ZWR1bGVkIGV2ZW50IHRpbWUgc3VjaCB0aGF0IGV2ZW50cyB0aGF0IHdlcmUgc2NoZWR1bGVkIHRv
IG9jY3VyIGVhcmxpZXIsIHNvcnQgYmVmb3JlIGV2ZW50cyBzY2hlZHVsZWQgdG8gb2NjdXIgbGF0
ZXIKICAgICAgICAgLy8gYW5kIGV2ZW50cyB3aG9zZSBzY2hlZHVsZWQgZXZlbnQgdGltZSBpcyB1
bnJlc29sdmVkIHNvcnQgYmVmb3JlIGV2ZW50cyB3aXRoIGEgcmVzb2x2ZWQgc2NoZWR1bGVkIGV2
ZW50IHRpbWUuCi0gICAgICAgIC8vIDIuIFdpdGhpbiBldmVudHMgd2l0aCBlcXVhbCBzY2hlZHVs
ZWQgZXZlbnQgdGltZXMsIHNvcnQgYnkgdGhlaXIgY29tcG9zaXRlIG9yZGVyLiBGSVhNRTogV2Ug
ZG9uJ3QgZG8gdGhpcy4KLSAgICAgICAgaWYgKGxocy0+dGltZWxpbmVUaW1lKCkgJiYgIXJocy0+
dGltZWxpbmVUaW1lKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICgh
bGhzLT50aW1lbGluZVRpbWUoKSAmJiByaHMtPnRpbWVsaW5lVGltZSgpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIGlmICghbGhzLT50aW1lbGluZVRpbWUoKSAmJiAhcmhzLT50
aW1lbGluZVRpbWUoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICByZXR1cm4g
bGhzLT50aW1lbGluZVRpbWUoKS52YWx1ZSgpIDwgcmhzLT50aW1lbGluZVRpbWUoKS52YWx1ZSgp
OworICAgICAgICAvLyAyLiBXaXRoaW4gZXZlbnRzIHdpdGggZXF1YWwgc2NoZWR1bGVkIGV2ZW50
IHRpbWVzLCBzb3J0IGJ5IHRoZWlyIGNvbXBvc2l0ZSBvcmRlci4gRklYTUU6IE5lZWQgdG8gZG8g
dGhpcy4KKyAgICAgICAgcmV0dXJuIGxocy0+dGltZWxpbmVUaW1lKCkgPCByaHMtPnRpbWVsaW5l
VGltZSgpOwogICAgIH0pOwogCiAgICAgLy8gNy4gRGlzcGF0Y2ggZWFjaCBvZiB0aGUgZXZlbnRz
IGluIGV2ZW50cyB0byBkaXNwYXRjaCBhdCB0aGVpciBjb3JyZXNwb25kaW5nIHRhcmdldCB1c2lu
ZyB0aGUgb3JkZXIgZXN0YWJsaXNoZWQgaW4gdGhlIHByZXZpb3VzIHN0ZXAuCkBAIC0xNTMsMTYg
KzE0NSwyMCBAQCB2b2lkIERvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0
aW9uc0FuZFNlbmRFdmVudHMoUmVkdWNlZFJlc29sdXRpbwogICAgICAgICAvLyBBbiBhbmltYXRp
b24gdGhhdCB3YXMgaW5pdGlhbGx5IG1hcmtlZCBhcyBpcnJlbGV2YW50IG1heSBoYXZlIGNoYW5n
ZWQgd2hpbGUgd2Ugd2VyZSBzZW5kaW5nIGV2ZW50cywgc28gd2UgcnVuIHRoZSBzYW1lCiAgICAg
ICAgIC8vIGNoZWNrIHRoYXQgd2UgcmFuIHRvIGFkZCBpdCB0byBhbmltYXRpb25zVG9SZW1vdmUg
aW4gdGhlIGZpcnN0IHBsYWNlLgogICAgICAgICBpZiAoYXV0byB0aW1lbGluZSA9IGFuaW1hdGlv
bi0+dGltZWxpbmUoKSkgewotICAgICAgICAgICAgaWYgKCFhbmltYXRpb24tPmlzUmVsZXZhbnQo
KSAmJiAhYW5pbWF0aW9uLT5uZWVkc1RpY2soKSkKLSAgICAgICAgICAgICAgICB0aW1lbGluZS0+
cmVtb3ZlQW5pbWF0aW9uKCphbmltYXRpb24pOworICAgICAgICAgICAgaWYgKCFhbmltYXRpb24t
PmlzUmVsZXZhbnQoKSAmJiAhYW5pbWF0aW9uLT5uZWVkc1RpY2soKSkgeworICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBTaG91bGQgdGhpcyB1c2UgV2ViQW5pbWF0aW9uOjpyZW1vdmUgaW5zdGVh
ZCBvZiBUaW1lbGluZTo6cmVtb3ZlQW5pbWF0aW9uPworICAgICAgICAgICAgICAgIHRpbWVsaW5l
LT5yZW1vdmVBbmltYXRpb24oYW5pbWF0aW9uKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0KIAotICAgIC8vIE5vdyB0aGF0IGFuaW1hdGlvbnMgdGhhdCBuZWVkZWQgcmVtb3ZhbCBo
YXZlIGJlZW4gcmVtb3ZlZCwgbGV0J3MgdXBkYXRlIHRoZSBsaXN0IG9mIGNvbXBsZXRlZCB0cmFu
c2l0aW9ucy4KKyAgICAvLyBOb3cgdGhhdCBhbmltYXRpb25zIHRoYXQgbmVlZGVkIHJlbW92YWwg
aGF2ZSBiZWVuIHJlbW92ZWQsIHVwZGF0ZSB0aGUgbGlzdCBvZiBjb21wbGV0ZWQgdHJhbnNpdGlv
bnMuCiAgICAgLy8gVGhpcyBuZWVkcyB0byBoYXBwZW4gYWZ0ZXIgZGVhbGluZyB3aXRoIHRoZSBs
aXN0IG9mIGFuaW1hdGlvbnMgdG8gcmVtb3ZlIGFzIHRoZSBhbmltYXRpb24gbWF5IGhhdmUgYmVl
bgogICAgIC8vIHJlbW92ZWQgZnJvbSB0aGUgbGlzdCBvZiBjb21wbGV0ZWQgdHJhbnNpdGlvbnMg
b3RoZXJ3aXNlLgotICAgIGZvciAoYXV0byYgY29tcGxldGVkVHJhbnNpdGlvbiA6IGNvbXBsZXRl
ZFRyYW5zaXRpb25zKQotICAgICAgICBkb3duY2FzdDxEb2N1bWVudFRpbWVsaW5lPigqY29tcGxl
dGVkVHJhbnNpdGlvbi0+dGltZWxpbmUoKSkudHJhbnNpdGlvbkRpZENvbXBsZXRlKGNvbXBsZXRl
ZFRyYW5zaXRpb24pOworICAgIGZvciAoYXV0byYgY29tcGxldGVkVHJhbnNpdGlvbiA6IGNvbXBs
ZXRlZFRyYW5zaXRpb25zKSB7CisgICAgICAgIGlmIChhdXRvIHRpbWVsaW5lID0gY29tcGxldGVk
VHJhbnNpdGlvbi0+dGltZWxpbmUoKSkKKyAgICAgICAgICAgIGRvd25jYXN0PERvY3VtZW50VGlt
ZWxpbmU+KCp0aW1lbGluZSkudHJhbnNpdGlvbkRpZENvbXBsZXRlKFdURk1vdmUoY29tcGxldGVk
VHJhbnNpdGlvbikpOworICAgIH0KIAogICAgIGZvciAoYXV0byYgdGltZWxpbmUgOiB0aW1lbGlu
ZXNUb1VwZGF0ZSkKICAgICAgICAgdGltZWxpbmUtPmRvY3VtZW50RGlkVXBkYXRlQW5pbWF0aW9u
c0FuZFNlbmRFdmVudHMoKTsK
</data>
<flag name="review"
          id="414353"
          type_id="1"
          status="+"
          setter="graouts"
    />
          </attachment>
      

    </bug>

</bugzilla>