<?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>225663</bug_id>
          
          <creation_ts>2021-05-11 11:15:51 -0700</creation_ts>
          <short_desc>Display-frequency animations in ScrollController should be externally driven</short_desc>
          <delta_ts>2021-05-11 19:46:19 -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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cathiechen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1758996</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-11 11:15:51 -0700</bug_when>
    <thetext>Display-frequency animations in ScrollController should be externally driven</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758999</commentid>
    <comment_count>1</comment_count>
      <attachid>428299</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-11 11:19:41 -0700</bug_when>
    <thetext>Created attachment 428299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759002</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-11 11:21:57 -0700</bug_when>
    <thetext>ScrollAnimation will get the same treatment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759139</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-11 19:45:58 -0700</bug_when>
    <thetext>Committed r277350 (237608@main): &lt;https://commits.webkit.org/237608@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428299.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759140</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-11 19:46:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/77876677&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428299</attachid>
            <date>2021-05-11 11:19:41 -0700</date>
            <delta_ts>2021-05-11 19:46:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225663-20210511111940.patch</filename>
            <type>text/plain</type>
            <size>28828</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRiYjdiNWIyOGI3ZjAx
YTYxZWM2ZDQwNDg5NTE0MzczZTMwMWQ3ZC4uZTI0MTFiZjQxOTI5MWE1MTJjMGJhNDVjNzAwMDEy
M2EzZTcyNGEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDIxLTA1LTExICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIERpc3BsYXktZnJl
cXVlbmN5IGFuaW1hdGlvbnMgaW4gU2Nyb2xsQ29udHJvbGxlciBzaG91bGQgYmUgZXh0ZXJuYWxs
eSBkcml2ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNTY2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IERpc3BsYXktZnJlcXVlbmN5IGFuaW1hdGlvbnMgKGkuZS4gdGhvc2UgZHJpdmVuIGJ5IDEvNjBf
cyB0aW1lcnMpIHNob3VsZCB1bHRpbWF0ZWx5CisgICAgICAgIGJlIGRyaXZlbiBieSBQYWdlOjp1
cGRhdGVSZW5kZXJpbmcoKSwgc2luY2UgdGhlaXIgb3V0cHV0IHNob3VsZCBiZSBzeW5jaHJvbml6
ZWQgd2l0aAorICAgICAgICByZW5kZXJpbmcgdXBkYXRlcy4KKworICAgICAgICBBcyB0aGUgZmly
c3Qgc3RlcCwgcmVtb3ZlIG1fc25hcFJ1YmJlcmJhbmRUaW1lciBhbmQgbV9zY3JvbGxTbmFwVGlt
ZXIgZnJvbQorICAgICAgICBTY3JvbGxDb250cm9sbGVyIGFuZCBoYXZlIGl0IGV4cG9zZSBmdW5j
dGlvbnMgdGhhdCB0ZWxsIGl0cyBjbGllbnQgdG8gc3RhcnQgYW5kIHN0b3AKKyAgICAgICAgdGhl
IGFuaW1hdGlvbiwgYW5kIGEgcGVyLWZyYW1lIGNhbGxiYWNrLiBHaXZlIFNjcm9sbEFuaW1hdG9y
IGEgMS82MF9zIHRpbWVyCisgICAgICAgIHRvIGRyaXZlIHRoaXMsIHRlbXBvcmFyaWx5LgorCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnN0YXJ0QW5pbWF0aW9uQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3Rv
cEFuaW1hdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVNYWM6OnNjcm9sbENvbnRyb2xsZXJBbmltYXRpb25UaW1lckZpcmVk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3I6OnN0YXJ0QW5pbWF0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0b3I6OnN0b3BBbmltYXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvcjo6c2Nyb2xsQ29udHJvbGxlckFuaW1hdGlvblRpbWVyRmlyZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmg6CisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9s
bGVyOjphbmltYXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9s
bGVyOjpzdGFydE9yU3RvcEFuaW1hdGlvbkNhbGxiYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxDb250cm9sbGVyOjpzZXRJc0FuaW1hdGluZ1J1YmJlckJhbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c2V0SXNBbmltYXRpbmdTY3JvbGxTbmFwKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnVwZGF0ZVNjcm9sbFNuYXBBbmltYXRpbmdT
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjp1cGRhdGVSdWJiZXJC
YW5kQW5pbWF0aW5nU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6Y3VycmVudEFuaW1hdGVkU2Ny
b2xsT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxTbmFwQW5pbWF0b3JT
dGF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxDb250cm9sbGVyLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c3RvcEFsbFRpbWVycyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnVwZGF0ZVJ1YmJlckJhbmRBbmltYXRpbmdTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjppc1Njcm9sbFNuYXBJblBy
b2dyZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0b3BS
dWJiZXJiYW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0YXJ0
UnViYmVyYmFuZEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVy
OjpzdG9wU25hcFJ1YmJlcmJhbmRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Q29udHJvbGxlcjo6c25hcFJ1YmJlckJhbmQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29u
dHJvbGxlcjo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzc0ludGVybmFsIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnNjaGVkdWxlU3RhdGVsZXNzU2Nyb2xsU25hcCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdGF0ZWxlc3NTbmFwVHJhbnNp
dGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6cHJv
Y2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENv
bnRyb2xsZXI6OnN0YXJ0U2Nyb2xsU25hcEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxDb250cm9sbGVyOjpzdG9wU2Nyb2xsU25hcEFuaW1hdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxDb250cm9sbGVyOjp1cGRhdGVTY3JvbGxTbmFwQW5pbWF0aW5nU3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c25hcFJ1YmJlckJhbmRUaW1lckZp
cmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0YXJ0
U25hcFJ1YmJlcmJhbmRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxD
b250cm9sbGVyOjpzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdGFydFNjcm9sbFNuYXBUaW1lcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdG9wU2Nyb2xsU25hcFRpbWVy
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnNjcm9sbFNu
YXBUaW1lckZpcmVkKTogRGVsZXRlZC4KKwogMjAyMS0wNC0zMCAgUm9iIEJ1aXMgIDxyYnVpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIE1vdmUgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGlu
ZyB0byBSZW5kZXJMYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjLmgKaW5kZXggOWExMWI2YTFmNWRkNjYzOWMxYmU3YWVkY2ViYzMwNDhmMmJkZTY2MC4u
YzFhMDY3NjRkNzdjZjJmYzFlZTJjMjBjMDZmZWZiNjBhYzhiYWEzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCkBAIC0zMCw2ICszMCw3IEBACiAj
aWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQogCiAjaW5jbHVkZSAi
U2Nyb2xsQ29udHJvbGxlci5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIE9CSkNfQ0xB
U1MgTlNTY3JvbGxlckltcDsKIApAQCAtNzMsNiArNzQsOSBAQCBwcml2YXRlOgogCiAgICAgLy8g
U2Nyb2xsQ29udHJvbGxlckNsaWVudC4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJv
bGxlclRpbWVyPiBjcmVhdGVUaW1lcihGdW5jdGlvbjx2b2lkKCk+JiYpIGZpbmFsOworICAgIHZv
aWQgc3RhcnRBbmltYXRpb25DYWxsYmFjayhTY3JvbGxDb250cm9sbGVyJikgZmluYWw7CisgICAg
dm9pZCBzdG9wQW5pbWF0aW9uQ2FsbGJhY2soU2Nyb2xsQ29udHJvbGxlciYpIGZpbmFsOworCiAg
ICAgYm9vbCBhbGxvd3NIb3Jpem9udGFsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmKSBjb25zdCBmaW5hbDsKICAgICBib29sIGFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZyhjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdCBmaW5hbDsKICAgICBJbnRTaXplIHN0cmV0Y2hB
bW91bnQoKSBjb25zdCBmaW5hbDsKQEAgLTg4LDYgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGFkanVzdFNjcm9sbFBvc2l0aW9uVG9Cb3VuZHNJZk5lY2Vzc2FyeSgpIGZpbmFsOwogCiAgICAg
Ym9vbCBzY3JvbGxQb3NpdGlvbklzTm90UnViYmVyYmFuZGluZ0VkZ2UoY29uc3QgRmxvYXRQb2lu
dCYpIGNvbnN0OworICAgIHZvaWQgc2Nyb2xsQ29udHJvbGxlckFuaW1hdGlvblRpbWVyRmlyZWQo
KTsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgRmxvYXRQb2ludCBzY3JvbGxP
ZmZzZXQoKSBjb25zdCBvdmVycmlkZTsKQEAgLTEwMiwxMSArMTA3LDEzIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZWxlYXNlUmVmZXJlbmNlc1RvU2Nyb2xsZXJJbXBzT25UaGVNYWluVGhyZWFkKCk7
CiAKICAgICBTY3JvbGxDb250cm9sbGVyIG1fc2Nyb2xsQ29udHJvbGxlcjsKLSAgICAKLSAgICBi
b29sIG1faW5Nb21lbnR1bVBoYXNlIHsgZmFsc2UgfTsKIAogICAgIFJldGFpblB0cjxOU1Njcm9s
bGVySW1wPiBtX3ZlcnRpY2FsU2Nyb2xsZXJJbXA7CiAgICAgUmV0YWluUHRyPE5TU2Nyb2xsZXJJ
bXA+IG1faG9yaXpvbnRhbFNjcm9sbGVySW1wOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFJ1bkxv
b3A6OlRpbWVyPFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM+PiBtX3Njcm9s
bENvbnRyb2xsZXJBbmltYXRpb25UaW1lcjsKKworICAgIGJvb2wgbV9pbk1vbWVudHVtUGhhc2Ug
eyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQppbmRleCBhNWI0OGMyMDM0MTVhYjdi
MDljZTljM2ZhOTljMTVlYTYzNzQwZTQ1Li4zMGU2OTYwOTMxMmFkMjljNmNiZDcyZjI5YzE1YTcx
ODVkYjgxZGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYy5tbQpAQCAtMjI1LDYgKzIyNSwyOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJv
bGxlclRpbWVyPiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpjcgogICAg
IH0pOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnN0
YXJ0QW5pbWF0aW9uQ2FsbGJhY2soU2Nyb2xsQ29udHJvbGxlciYpCit7CisgICAgaWYgKCFtX3Nj
cm9sbENvbnRyb2xsZXJBbmltYXRpb25UaW1lcikKKyAgICAgICAgbV9zY3JvbGxDb250cm9sbGVy
QW5pbWF0aW9uVGltZXIgPSBXVEY6Om1ha2VVbmlxdWU8UnVuTG9vcDo6VGltZXI8U2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYz4+KFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywg
JlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnNjcm9sbENvbnRyb2xsZXJB
bmltYXRpb25UaW1lckZpcmVkKTsKKworICAgIGlmIChtX3Njcm9sbENvbnRyb2xsZXJBbmltYXRp
b25UaW1lci0+aXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zY3JvbGxDb250
cm9sbGVyQW5pbWF0aW9uVGltZXItPnN0YXJ0UmVwZWF0aW5nKDFfcyAvIDYwLik7Cit9CisKK3Zv
aWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RvcEFuaW1hdGlvbkNh
bGxiYWNrKFNjcm9sbENvbnRyb2xsZXImKQoreworICAgIGlmIChtX3Njcm9sbENvbnRyb2xsZXJB
bmltYXRpb25UaW1lcikKKyAgICAgICAgbV9zY3JvbGxDb250cm9sbGVyQW5pbWF0aW9uVGltZXIt
PnN0b3AoKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
OjpzY3JvbGxDb250cm9sbGVyQW5pbWF0aW9uVGltZXJGaXJlZCgpCit7CisgICAgbV9zY3JvbGxD
b250cm9sbGVyLmFuaW1hdGlvbkNhbGxiYWNrKE1vbm90b25pY1RpbWU6Om5vdygpKTsKK30KKwog
Ym9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjphbGxvd3NIb3Jpem9u
dGFsU3RyZXRjaGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpIGNvbnN0
CiB7CiAgICAgc3dpdGNoIChob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKaW5kZXggNzZkZTcyOWEwOWU3NmJj
ZjEwNTA2M2VlMzczMjUyOWI3YTdhYTM3ZC4uOGQ2MmUwMjk2MzBlNDlhYmRhY2U5MDg4ZmYzMWVh
ZTgyZWYyYzc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNw
cApAQCAtNTYsNiArNTYsNyBAQCBTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3IoU2Nyb2xs
YWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhKQogICAgIDogbV9zY3JvbGxhYmxlQXJlYShzY3JvbGxh
YmxlQXJlYSkKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JB
TkRJTkcpCiAgICAgLCBtX3Njcm9sbENvbnRyb2xsZXIoKnRoaXMpCisgICAgLCBtX3Njcm9sbENv
bnRyb2xsZXJBbmltYXRpb25UaW1lcigqdGhpcywgJlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxDb250
cm9sbGVyQW5pbWF0aW9uVGltZXJGaXJlZCkKICNlbmRpZgogICAgICwgbV9zY3JvbGxBbmltYXRp
b24obWFrZVVuaXF1ZTxTY3JvbGxBbmltYXRpb25TbW9vdGg+KAogICAgICAgICBbdGhpc10oKSAt
PiBTY3JvbGxFeHRlbnRzIHsKQEAgLTMzMyw2ICszMzQsMjQgQEAgc3RkOjp1bmlxdWVfcHRyPFNj
cm9sbENvbnRyb2xsZXJUaW1lcj4gU2Nyb2xsQW5pbWF0b3I6OmNyZWF0ZVRpbWVyKEZ1bmN0aW9u
PHZvaWQKICAgICAgICAgZnVuY3Rpb24oKTsKICAgICB9KTsKIH0KKwordm9pZCBTY3JvbGxBbmlt
YXRvcjo6c3RhcnRBbmltYXRpb25DYWxsYmFjayhTY3JvbGxDb250cm9sbGVyJikKK3sKKyAgICBp
ZiAobV9zY3JvbGxDb250cm9sbGVyQW5pbWF0aW9uVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAg
cmV0dXJuOworICAgICAgICAKKyAgICBtX3Njcm9sbENvbnRyb2xsZXJBbmltYXRpb25UaW1lci5z
dGFydFJlcGVhdGluZygxX3MgLyA2MC4pOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpzdG9w
QW5pbWF0aW9uQ2FsbGJhY2soU2Nyb2xsQ29udHJvbGxlciYpCit7CisgICAgbV9zY3JvbGxDb250
cm9sbGVyQW5pbWF0aW9uVGltZXIuc3RvcCgpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpz
Y3JvbGxDb250cm9sbGVyQW5pbWF0aW9uVGltZXJGaXJlZCgpCit7CisgICAgbV9zY3JvbGxDb250
cm9sbGVyLmFuaW1hdGlvbkNhbGxiYWNrKE1vbm90b25pY1RpbWU6Om5vdygpKTsKK30KICNlbmRp
ZgogCiAjaWYgKEVOQUJMRShDU1NfU0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElO
RykpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ci5oCmluZGV4IGRjYjRiNDhkYmU1MDRiODc4MDhhZWZkZjZiYmI5ODVhMDE4N2M3MjkuLmI2MTYz
YTEyMjBmZmZjZTIwMDg2ZTFhOGM3NmJlMTkwMTA4NDBmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkZsb2F0
UG9pbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJTY3Jv
bGxUeXBlcy5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RN
b25pdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgpAQCAtMTQ2LDYgKzE0NywxMSBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoQ1NTX1ND
Uk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNjcm9sbENvbnRyb2xsZXJUaW1lcj4gY3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSBm
aW5hbDsKKworICAgIHZvaWQgc3RhcnRBbmltYXRpb25DYWxsYmFjayhTY3JvbGxDb250cm9sbGVy
JikgZmluYWw7CisgICAgdm9pZCBzdG9wQW5pbWF0aW9uQ2FsbGJhY2soU2Nyb2xsQ29udHJvbGxl
ciYpIGZpbmFsOworCisgICAgdm9pZCBzY3JvbGxDb250cm9sbGVyQW5pbWF0aW9uVGltZXJGaXJl
ZCgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQpAQCAtMTgwLDYgKzE4
Niw3IEBAIHByb3RlY3RlZDoKICAgICBSZWZQdHI8V2hlZWxFdmVudFRlc3RNb25pdG9yPiBtX3do
ZWVsRXZlbnRUZXN0TW9uaXRvcjsKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFC
TEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgU2Nyb2xsQ29udHJvbGxlciBtX3Njcm9sbENvbnRyb2xs
ZXI7CisgICAgVGltZXIgbV9zY3JvbGxDb250cm9sbGVyQW5pbWF0aW9uVGltZXI7CiAjZW5kaWYK
ICAgICBGbG9hdFBvaW50IG1fY3VycmVudFBvc2l0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbENvbnRyb2xsZXIuY3BwCmluZGV4IGZiMzQ1ZDdhNjhmYzlkMTZkZGVmNWQ0
ODllN2ZlNzYxODc4Y2U0NGUuLjBmYjU0NmFhMzYwN2E1ZjRhMDY1NTU5NGQyZjdkOTQ2YTA2NTA5
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbENvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbENvbnRyb2xsZXIuY3BwCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
V2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0TW9uaXRvci5oIgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVAp
CiAjaW5jbHVkZSAiU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuaCIKQEAgLTQ1LDYgKzQ2LDQ4IEBA
IFNjcm9sbENvbnRyb2xsZXI6OlNjcm9sbENvbnRyb2xsZXIoU2Nyb2xsQ29udHJvbGxlckNsaWVu
dCYgY2xpZW50KQogewogfQogCit2b2lkIFNjcm9sbENvbnRyb2xsZXI6OmFuaW1hdGlvbkNhbGxi
YWNrKE1vbm90b25pY1RpbWUgY3VycmVudFRpbWUpCit7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNj
cm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIGFuaW1h
dGlvbkNhbGxiYWNrOiBpc0FuaW1hdGluZ1J1YmJlckJhbmQgIiA8PCBtX2lzQW5pbWF0aW5nUnVi
YmVyQmFuZCA8PCAiIGlzQW5pbWF0aW5nU2Nyb2xsU25hcCAiIDw8IG1faXNBbmltYXRpbmdTY3Jv
bGxTbmFwKTsKKworICAgIHVwZGF0ZVNjcm9sbFNuYXBBbmltYXRpbmdTdGF0ZShjdXJyZW50VGlt
ZSk7CisgICAgdXBkYXRlUnViYmVyQmFuZEFuaW1hdGluZ1N0YXRlKGN1cnJlbnRUaW1lKTsKK30K
Kwordm9pZCBTY3JvbGxDb250cm9sbGVyOjpzdGFydE9yU3RvcEFuaW1hdGlvbkNhbGxiYWNrcygp
Cit7CisgICAgYm9vbCBuZWVkc0NhbGxiYWNrcyA9IG1faXNBbmltYXRpbmdSdWJiZXJCYW5kIHx8
IG1faXNBbmltYXRpbmdTY3JvbGxTbmFwOworICAgIGlmIChuZWVkc0NhbGxiYWNrcyA9PSBtX2lz
UnVubmluZ0FuaW1hdGluZ0NhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobmVl
ZHNDYWxsYmFja3MpIHsKKyAgICAgICAgbV9jbGllbnQuc3RhcnRBbmltYXRpb25DYWxsYmFjaygq
dGhpcyk7CisgICAgICAgIG1faXNSdW5uaW5nQW5pbWF0aW5nQ2FsbGJhY2sgPSB0cnVlOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9jbGllbnQuc3RvcEFuaW1hdGlvbkNhbGxiYWNr
KCp0aGlzKTsKKyAgICBtX2lzUnVubmluZ0FuaW1hdGluZ0NhbGxiYWNrID0gZmFsc2U7Cit9CisK
K3ZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c2V0SXNBbmltYXRpbmdSdWJiZXJCYW5kKGJvb2wgaXNB
bmltYXRpbmdSdWJiZXJCYW5kKQoreworICAgIGlmIChpc0FuaW1hdGluZ1J1YmJlckJhbmQgPT0g
bV9pc0FuaW1hdGluZ1J1YmJlckJhbmQpCisgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAg
bV9pc0FuaW1hdGluZ1J1YmJlckJhbmQgPSBpc0FuaW1hdGluZ1J1YmJlckJhbmQ7CisgICAgc3Rh
cnRPclN0b3BBbmltYXRpb25DYWxsYmFja3MoKTsKK30KKwordm9pZCBTY3JvbGxDb250cm9sbGVy
OjpzZXRJc0FuaW1hdGluZ1Njcm9sbFNuYXAoYm9vbCBpc0FuaW1hdGluZ1Njcm9sbFNuYXApCit7
CisgICAgaWYgKGlzQW5pbWF0aW5nU2Nyb2xsU25hcCA9PSBtX2lzQW5pbWF0aW5nU2Nyb2xsU25h
cCkKKyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICBtX2lzQW5pbWF0aW5nU2Nyb2xsU25h
cCA9IGlzQW5pbWF0aW5nU2Nyb2xsU25hcDsKKyAgICBzdGFydE9yU3RvcEFuaW1hdGlvbkNhbGxi
YWNrcygpOworfQorCiBib29sIFNjcm9sbENvbnRyb2xsZXI6OnVzZXNTY3JvbGxTbmFwKCkgY29u
c3QKIHsKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQpAQCAtMTY3LDYgKzIxMCwxNiBAQCB2
b2lkIFNjcm9sbENvbnRyb2xsZXI6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiB7CiB9CiAKK3Zv
aWQgU2Nyb2xsQ29udHJvbGxlcjo6dXBkYXRlU2Nyb2xsU25hcEFuaW1hdGluZ1N0YXRlKE1vbm90
b25pY1RpbWUpCit7CisKK30KKwordm9pZCBTY3JvbGxDb250cm9sbGVyOjp1cGRhdGVSdWJiZXJC
YW5kQW5pbWF0aW5nU3RhdGUoTW9ub3RvbmljVGltZSkKK3sKKworfQorCiAjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxDb250cm9sbGVyLmgKaW5kZXggZGQ1M2FkYTkwYTJmNWYyOTA4ODAxMDIzYzNl
NWEzYzQzMWVmNjE2Mi4uOTNhZjU4YjMzM2U4YzRkMzJkZTNkMTI0MDMzYTk1YWVmYmIzMTZhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQ29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbENvbnRyb2xsZXIuaApAQCAtNzAsOCAr
NzAsMTIgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflNjcm9sbENvbnRyb2xsZXJDbGllbnQo
KSA9IGRlZmF1bHQ7CiAKIHB1YmxpYzoKKyAgICAvLyBPbmx5IHVzZWQgZm9yIG5vbi1hbmltYXRp
b24gdGltZXJzLgogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJU
aW1lcj4gY3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSA9IDA7CiAKKyAgICB2aXJ0dWFs
IHZvaWQgc3RhcnRBbmltYXRpb25DYWxsYmFjayhTY3JvbGxDb250cm9sbGVyJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzdG9wQW5pbWF0aW9uQ2FsbGJhY2soU2Nyb2xsQ29udHJvbGxlciYpID0g
MDsKKwogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dz
SG9yaXpvbnRhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JikgY29uc3QgPSAwOwpAQCAtMTMwLDYgKzEzNCw5IEBAIHB1YmxpYzoKICAg
ICBib29sIHVzZXNTY3JvbGxTbmFwKCkgY29uc3Q7CiAgICAgdm9pZCBzdG9wQWxsVGltZXJzKCk7
CiAgICAgdm9pZCBzY3JvbGxQb3NpdGlvbkNoYW5nZWQoKTsKKyAgICAKKyAgICAvLyBTaG91bGQg
YmUgY2FsbGVkIHBlcmlvZGljYWxseSBieSB0aGUgY2xpZW50LiBTdGFydGVkIGJ5IHN0YXJ0QW5p
bWF0aW9uQ2FsbGJhY2soKSwgc3RvcHBlZCBieSBzdG9wQW5pbWF0aW9uQ2FsbGJhY2soKS4KKyAg
ICB2b2lkIGFuaW1hdGlvbkNhbGxiYWNrKE1vbm90b25pY1RpbWUpOwogCiAjaWYgRU5BQkxFKENT
U19TQ1JPTExfU05BUCkKICAgICB2b2lkIHVwZGF0ZVNjcm9sbFNuYXBQb2ludHMoY29uc3QgTGF5
b3V0U2Nyb2xsU25hcE9mZnNldHNJbmZvJik7CkBAIC0xNzEsMTEgKzE3OCwxNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0TmVhcmVzdFNjcm9sbFNuYXBJbmRleEZvckF4aXNBbmRPZmZzZXQoU2Ny
b2xsRXZlbnRBeGlzLCBpbnQpOwogI2VuZGlmCiAKKyAgICB2b2lkIHVwZGF0ZVNjcm9sbFNuYXBB
bmltYXRpbmdTdGF0ZShNb25vdG9uaWNUaW1lKTsKKyAgICB2b2lkIHVwZGF0ZVJ1YmJlckJhbmRB
bmltYXRpbmdTdGF0ZShNb25vdG9uaWNUaW1lKTsKKyAgICAKKyAgICB2b2lkIHNldElzQW5pbWF0
aW5nUnViYmVyQmFuZChib29sKTsKKyAgICB2b2lkIHNldElzQW5pbWF0aW5nU2Nyb2xsU25hcChi
b29sKTsKKwogI2lmIFBMQVRGT1JNKE1BQykKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQot
ICAgIHZvaWQgc2Nyb2xsU25hcFRpbWVyRmlyZWQoKTsKLSAgICB2b2lkIHN0YXJ0U2Nyb2xsU25h
cFRpbWVyKCk7Ci0gICAgdm9pZCBzdG9wU2Nyb2xsU25hcFRpbWVyKCk7CisgICAgdm9pZCBzdGFy
dFNjcm9sbFNuYXBBbmltYXRpb24oKTsKKyAgICB2b2lkIHN0b3BTY3JvbGxTbmFwQW5pbWF0aW9u
KCk7CisKICAgICBib29sIHNob3VsZE92ZXJyaWRlTW9tZW50dW1TY3JvbGxpbmcoKSBjb25zdDsK
ICAgICB2b2lkIHN0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXJGaXJlZCgpOwogICAgIHZvaWQg
c2NoZWR1bGVTdGF0ZWxlc3NTY3JvbGxTbmFwKCk7CkBAIC0xODQsMTAgKzE5NywxMCBAQCBwcml2
YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCi0gICAgdm9pZCBzdGFy
dFNuYXBSdWJiZXJiYW5kVGltZXIoKTsKLSAgICB2b2lkIHN0b3BTbmFwUnViYmVyYmFuZFRpbWVy
KCk7CisgICAgdm9pZCBzdGFydFJ1YmJlcmJhbmRBbmltYXRpb24oKTsKKyAgICB2b2lkIHN0b3BT
bmFwUnViYmVyYmFuZEFuaW1hdGlvbigpOworCiAgICAgdm9pZCBzbmFwUnViYmVyQmFuZCgpOwot
ICAgIHZvaWQgc25hcFJ1YmJlckJhbmRUaW1lckZpcmVkKCk7CiAgICAgYm9vbCBzaG91bGRSdWJi
ZXJCYW5kSW5Ib3Jpem9udGFsRGlyZWN0aW9uKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNv
bnN0OwogICAgIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlv
bikgY29uc3Q7CiAgICAgYm9vbCBpc1J1YmJlckJhbmRJblByb2dyZXNzSW50ZXJuYWwoKSBjb25z
dDsKQEAgLTE5NiwxMiArMjA5LDE4IEBAIHByaXZhdGU6CiAjZW5kaWYKICNlbmRpZgogCisgICAg
dm9pZCBzdGFydE9yU3RvcEFuaW1hdGlvbkNhbGxiYWNrcygpOworCiAgICAgU2Nyb2xsQ29udHJv
bGxlckNsaWVudCYgbV9jbGllbnQ7CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU+IG1fc2Nyb2xsU25hcFN0YXRl
OwogICAgIGJvb2wgbV9hY3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UgeyBmYWxzZSB9Owog
I2VuZGlmCiAKKyAgICBib29sIG1faXNSdW5uaW5nQW5pbWF0aW5nQ2FsbGJhY2sgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9pc0FuaW1hdGluZ1J1YmJlckJhbmQgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9pc0FuaW1hdGluZ1Njcm9sbFNuYXAgeyBmYWxzZSB9OworCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIFdhbGxUaW1lIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wOwogICAgIEZsb2F0U2l6
ZSBtX292ZXJmbG93U2Nyb2xsRGVsdGE7CkBAIC0yMTYsNyArMjM1LDYgQEAgcHJpdmF0ZToKICNp
ZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIEZsb2F0U2l6ZSBtX2RyYWdFbmRlZFNjcm9s
bGluZ1ZlbG9jaXR5OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGltZXI+
IG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lcjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Ny
b2xsQ29udHJvbGxlclRpbWVyPiBtX3Njcm9sbFNuYXBUaW1lcjsKICNlbmRpZgogCiAjaWYgRU5B
QkxFKFJVQkJFUl9CQU5ESU5HKQpAQCAtMjI1LDcgKzI0Myw2IEBAIHByaXZhdGU6CiAgICAgRmxv
YXRTaXplIG1fc3RhcnRTdHJldGNoOwogICAgIEZsb2F0U2l6ZSBtX29yaWdWZWxvY2l0eTsKICAg
ICBSZWN0RWRnZXM8Ym9vbD4gbV9ydWJiZXJCYW5kaW5nRWRnZXM7Ci0gICAgc3RkOjp1bmlxdWVf
cHRyPFNjcm9sbENvbnRyb2xsZXJUaW1lcj4gbV9zbmFwUnViYmVyYmFuZFRpbWVyOwogI2VuZGlm
CiAKICNpZiBBU1NFUlRfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuY3BwCmluZGV4IGRhOTc5MmQwNzU4ZmQxYzU3NzJmN2Y2
M2QxMjY5MjdlYzAwNjU3MmUuLmZkYjI3Nzg4ZjA5M2IyYmVjYzM4NmYzMDRjNTI0NzViNTRjMTA2
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRv
clN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxTbmFwQW5pbWF0
b3JTdGF0ZS5jcHAKQEAgLTc5LDE0ICs3OSwxNCBAQCB2b2lkIFNjcm9sbFNuYXBBbmltYXRvclN0
YXRlOjp0ZWFyZG93bkFuaW1hdGlvbkZvclN0YXRlKFNjcm9sbFNuYXBTdGF0ZSBzdGF0ZSkKICAg
ICBtX2N1cnJlbnRTdGF0ZSA9IHN0YXRlOwogfQogCi1GbG9hdFBvaW50IFNjcm9sbFNuYXBBbmlt
YXRvclN0YXRlOjpjdXJyZW50QW5pbWF0ZWRTY3JvbGxPZmZzZXQoYm9vbCYgaXNBbmltYXRpb25D
b21wbGV0ZSkgY29uc3QKK0Zsb2F0UG9pbnQgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OmN1cnJl
bnRBbmltYXRlZFNjcm9sbE9mZnNldChNb25vdG9uaWNUaW1lIGN1cnJlbnRUaW1lLCBib29sJiBp
c0FuaW1hdGlvbkNvbXBsZXRlKSBjb25zdAogewogICAgIGlmICghbV9tb21lbnR1bUNhbGN1bGF0
b3IpIHsKICAgICAgICAgaXNBbmltYXRpb25Db21wbGV0ZSA9IHRydWU7CiAgICAgICAgIHJldHVy
biB7IH07CiAgICAgfQogCi0gICAgU2Vjb25kcyBlbGFwc2VkVGltZSA9IE1vbm90b25pY1RpbWU6
Om5vdygpIC0gbV9zdGFydFRpbWU7CisgICAgU2Vjb25kcyBlbGFwc2VkVGltZSA9IGN1cnJlbnRU
aW1lIC0gbV9zdGFydFRpbWU7CiAgICAgaXNBbmltYXRpb25Db21wbGV0ZSA9IGVsYXBzZWRUaW1l
ID49IG1fbW9tZW50dW1DYWxjdWxhdG9yLT5hbmltYXRpb25EdXJhdGlvbigpOwogICAgIHJldHVy
biBtX21vbWVudHVtQ2FsY3VsYXRvci0+c2Nyb2xsT2Zmc2V0QWZ0ZXJFbGFwc2VkVGltZShlbGFw
c2VkVGltZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsU25hcEFu
aW1hdG9yU3RhdGUuaAppbmRleCAxZTU1YjM0YzMxOThlZWJjYTQ0NzY1NzgzMjk1MDViZjI1NGMx
NzVlLi5lYWMzNzUyNmJhOTNjNzdmZTUxZGU0YTY2OTkyODFiYWFhMmE0ZmRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmgKQEAgLTkx
LDcgKzkxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9hY3RpdmVTbmFwSW5kZXhZID0gaW5k
ZXg7CiAgICAgfQogCi0gICAgRmxvYXRQb2ludCBjdXJyZW50QW5pbWF0ZWRTY3JvbGxPZmZzZXQo
Ym9vbCYgaXNBbmltYXRpb25Db21wbGV0ZSkgY29uc3Q7CisgICAgRmxvYXRQb2ludCBjdXJyZW50
QW5pbWF0ZWRTY3JvbGxPZmZzZXQoTW9ub3RvbmljVGltZSwgYm9vbCYgaXNBbmltYXRpb25Db21w
bGV0ZSkgY29uc3Q7CiAKICAgICAvLyBTdGF0ZSB0cmFuc2l0aW9uIGhlbHBlcnMuCiAgICAgdm9p
ZCB0cmFuc2l0aW9uVG9TbmFwQW5pbWF0aW9uU3RhdGUoY29uc3QgRmxvYXRTaXplJiBjb250ZW50
U2l6ZSwgY29uc3QgRmxvYXRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHBhZ2VTY2FsZSwgY29u
c3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IDBkZTgxZTA2ZjYzOGU5Yzc3MGQ4NzQ4
NjUzYjBjNWZlNjExYzRlZWEuLjFjNjY4NmY4MTNmOTQ4ZjVlMTE4N2I0ZDVmOGQyZTRjZTM0YzIx
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxDb250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxDb250cm9sbGVy
Lm1tCkBAIC03NywxNyArNzcsOSBAQCBTY3JvbGxDb250cm9sbGVyOjp+U2Nyb2xsQ29udHJvbGxl
cigpCiAKIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c3RvcEFsbFRpbWVycygpCiB7Ci0jaWYgRU5B
QkxFKFJVQkJFUl9CQU5ESU5HKQotICAgIGlmIChtX3NuYXBSdWJiZXJiYW5kVGltZXIpCi0gICAg
ICAgIG1fc25hcFJ1YmJlcmJhbmRUaW1lci0+c3RvcCgpOwotI2VuZGlmCi0KICNpZiBFTkFCTEUo
Q1NTX1NDUk9MTF9TTkFQKQogICAgIGlmIChtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXIp
CiAgICAgICAgIG1fc3RhdGVsZXNzU25hcFRyYW5zaXRpb25UaW1lci0+c3RvcCgpOwotCi0gICAg
aWYgKG1fc2Nyb2xsU25hcFRpbWVyKQotICAgICAgICBtX3Njcm9sbFNuYXBUaW1lci0+c3RvcCgp
OwogI2VuZGlmCiAKICNpZiBBU1NFUlRfRU5BQkxFRApAQCAtMTIyLDIxICsxMTQsMjIgQEAgYm9v
bCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgSW50U2l6ZSBzdHJldGNoQW1vdW50ID0gbV9jbGll
bnQuc3RyZXRjaEFtb3VudCgpOwogICAgICAgICBtX3N0cmV0Y2hTY3JvbGxGb3JjZS5zZXRXaWR0
aChyZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEoc3RyZXRjaEFtb3VudC53aWR0aCgpKSk7CiAg
ICAgICAgIG1fc3RyZXRjaFNjcm9sbEZvcmNlLnNldEhlaWdodChyZWJvdW5kRGVsdGFGb3JFbGFz
dGljRGVsdGEoc3RyZXRjaEFtb3VudC5oZWlnaHQoKSkpOwotICAgICAgICBtX292ZXJmbG93U2Ny
b2xsRGVsdGEgPSBGbG9hdFNpemUoKTsKKyAgICAgICAgbV9vdmVyZmxvd1Njcm9sbERlbHRhID0g
eyB9OwogCi0gICAgICAgIHN0b3BTbmFwUnViYmVyYmFuZFRpbWVyKCk7CisgICAgICAgIHN0b3BT
bmFwUnViYmVyYmFuZEFuaW1hdGlvbigpOwogICAgICAgICB1cGRhdGVSdWJiZXJCYW5kaW5nU3Rh
dGUoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgaWYgKHdoZWVsRXZlbnQu
cGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6RW5kZWQpIHsKKyAgICAgICAgLy8g
RklYTUU6IFRoaXMgdHJpZ2dlcnMgdGhlIHJ1YmJlcmJhbmQgdGltZXIgZXZlbiB3aGVuIHdlIGRv
bid0IHN0YXJ0IHJ1YmJlcmJhbmRpbmcuCiAgICAgICAgIHNuYXBSdWJiZXJCYW5kKCk7CiAgICAg
ICAgIHVwZGF0ZVJ1YmJlckJhbmRpbmdTdGF0ZSgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKICAgICBib29sIGlzTW9tZW50dW1TY3JvbGxFdmVudCA9ICh3aGVlbEV2ZW50Lm1vbWVu
dHVtUGhhc2UoKSAhPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6Tm9uZSk7Ci0gICAgaWYgKG1f
aWdub3JlTW9tZW50dW1TY3JvbGxzICYmIChpc01vbWVudHVtU2Nyb2xsRXZlbnQgfHwgbV9zbmFw
UnViYmVyYmFuZFRpbWVyKSkgeworICAgIGlmIChtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyAmJiAo
aXNNb21lbnR1bVNjcm9sbEV2ZW50IHx8IG1faXNBbmltYXRpbmdSdWJiZXJCYW5kKSkgewogICAg
ICAgICBpZiAod2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50
UGhhc2U6OkVuZGVkKSB7CiAgICAgICAgICAgICBtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyA9IGZh
bHNlOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xNTIsNyArMTQ1LDcgQEAgYm9vbCBT
Y3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCkKICAgICBmbG9hdCBkZWx0YVkgPSBtX292ZXJmbG93U2Nyb2xsRGVsdGEu
aGVpZ2h0KCk7CiAKICAgICAvLyBSZXNldCBvdmVyZmxvdyB2YWx1ZXMgYmVjYXVzZSB3ZSBtYXkg
ZGVjaWRlIHRvIHJlbW92ZSBkZWx0YSBhdCB2YXJpb3VzIHBvaW50cyBhbmQgcHV0IGl0IGludG8g
b3ZlcmZsb3cuCi0gICAgbV9vdmVyZmxvd1Njcm9sbERlbHRhID0gRmxvYXRTaXplKCk7CisgICAg
bV9vdmVyZmxvd1Njcm9sbERlbHRhID0geyB9OwogCiAgICAgSW50U2l6ZSBzdHJldGNoQW1vdW50
ID0gbV9jbGllbnQuc3RyZXRjaEFtb3VudCgpOwogICAgIGJvb2wgaXNWZXJ0aWNhbGx5U3RyZXRj
aGVkID0gc3RyZXRjaEFtb3VudC5oZWlnaHQoKTsKQEAgLTM4NywxNSArMzgwLDE4IEBAIHN0YXRp
YyBpbmxpbmUgZmxvYXQgcm91bmRUb0RldmljZVBpeGVsVG93YXJkWmVybyhmbG9hdCBudW0pCiAg
ICAgcmV0dXJuIHJvdW5kVG93YXJkWmVybyhudW0pOwogfQogCi12b2lkIFNjcm9sbENvbnRyb2xs
ZXI6OnNuYXBSdWJiZXJCYW5kVGltZXJGaXJlZCgpCit2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnVw
ZGF0ZVJ1YmJlckJhbmRBbmltYXRpbmdTdGF0ZShNb25vdG9uaWNUaW1lIGN1cnJlbnRUaW1lKQog
eworICAgIGlmICghbV9pc0FuaW1hdGluZ1J1YmJlckJhbmQpCisgICAgICAgIHJldHVybjsKKwog
ICAgIGlmIChpc1Njcm9sbFNuYXBJblByb2dyZXNzKCkpCiAgICAgICAgIHJldHVybjsKICAgICAK
LSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbENvbnRyb2xs
ZXI6OnNuYXBSdWJiZXJCYW5kVGltZXJGaXJlZCgpIC0gbWFpbiB0aHJlYWQgIiA8PCBpc01haW5U
aHJlYWQoKSk7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3Jv
bGxDb250cm9sbGVyOjp1cGRhdGVSdWJiZXJCYW5kQW5pbWF0aW5nU3RhdGUoKSAtIG1haW4gdGhy
ZWFkICIgPDwgaXNNYWluVGhyZWFkKCkpOwogCiAgICAgaWYgKCFtX21vbWVudHVtU2Nyb2xsSW5Q
cm9ncmVzcyB8fCBtX2lnbm9yZU1vbWVudHVtU2Nyb2xscykgewotICAgICAgICBhdXRvIHRpbWVE
ZWx0YSA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9zdGFydFRpbWU7CisgICAgICAgIGF1dG8g
dGltZURlbHRhID0gY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZTsKIAogICAgICAgICBpZiAobV9z
dGFydFN0cmV0Y2guaXNaZXJvKCkpIHsKICAgICAgICAgICAgIG1fc3RhcnRTdHJldGNoID0gbV9j
bGllbnQuc3RyZXRjaEFtb3VudCgpOwpAQCAtNDM0LDEwICs0MzAsMTAgQEAgdm9pZCBTY3JvbGxD
b250cm9sbGVyOjpzbmFwUnViYmVyQmFuZFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgc3RvcFJ1
YmJlcmJhbmRpbmcoKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fc3RhcnRU
aW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgICAgIG1fc3RhcnRUaW1lID0gY3VycmVu
dFRpbWU7CiAgICAgICAgIG1fc3RhcnRTdHJldGNoID0geyB9OwogICAgICAgICBpZiAoIWlzUnVi
YmVyQmFuZEluUHJvZ3Jlc3NJbnRlcm5hbCgpKQotICAgICAgICAgICAgc3RvcFNuYXBSdWJiZXJi
YW5kVGltZXIoKTsKKyAgICAgICAgICAgIHN0b3BTbmFwUnViYmVyYmFuZEFuaW1hdGlvbigpOwog
ICAgIH0KIAogICAgIHVwZGF0ZVJ1YmJlckJhbmRpbmdTdGF0ZSgpOwpAQCAtNDcxLDcgKzQ2Nyw3
IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCi0g
ICAgaWYgKG1faW5TY3JvbGxHZXN0dXJlIHx8IG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzIHx8
IG1fc2Nyb2xsU25hcFRpbWVyKQorICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVu
dHVtU2Nyb2xsSW5Qcm9ncmVzcyB8fCBtX2lzQW5pbWF0aW5nU2Nyb2xsU25hcCkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAjZW5kaWYKICAgICByZXR1cm4gZmFsc2U7CkBAIC00ODAsNyArNDc2LDcg
QEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKCkgY29uc3QK
IHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c3RvcFJ1YmJlcmJhbmRpbmcoKQogewogI2lmIEVOQUJM
RShSVUJCRVJfQkFORElORykKLSAgICBzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcigpOworICAgIHN0
b3BTbmFwUnViYmVyYmFuZEFuaW1hdGlvbigpOwogICAgIG1fc3RyZXRjaFNjcm9sbEZvcmNlID0g
eyB9OwogICAgIG1fc3RhcnRUaW1lID0geyB9OwogICAgIG1fc3RhcnRTdHJldGNoID0geyB9OwpA
QCAtNDkwLDI3ICs0ODYsMjAgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVyOjpzdG9wUnViYmVyYmFu
ZGluZygpCiB9CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCi12b2lkIFNjcm9sbENvbnRy
b2xsZXI6OnN0YXJ0U25hcFJ1YmJlcmJhbmRUaW1lcigpCit2b2lkIFNjcm9sbENvbnRyb2xsZXI6
OnN0YXJ0UnViYmVyYmFuZEFuaW1hdGlvbigpCiB7CiAgICAgbV9jbGllbnQud2lsbFN0YXJ0UnVi
YmVyQmFuZFNuYXBBbmltYXRpb24oKTsKIAotICAgIC8vIE1ha2UgYSBuZXcgb25lIGVhY2ggdGlt
ZSB0byBlbnN1cmUgaXQgZmlyZXMgb24gdGhlIGN1cnJlbnQgUnVuTG9vcC4KLSAgICBtX3NuYXBS
dWJiZXJiYW5kVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10gewotICAgICAgICBz
bmFwUnViYmVyQmFuZFRpbWVyRmlyZWQoKTsKLSAgICB9KTsKLSAgICBtX3NuYXBSdWJiZXJiYW5k
VGltZXItPnN0YXJ0UmVwZWF0aW5nKDFfcyAvIDYwLik7CisgICAgc2V0SXNBbmltYXRpbmdSdWJi
ZXJCYW5kKHRydWUpOwogCiAgICAgbV9jbGllbnQuZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRp
b25Gb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9s
bGFibGVBcmVhSWRlbnRpZmllcj4odGhpcyksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UnViYmVy
YmFuZEluUHJvZ3Jlc3MpOwogfQogCi12b2lkIFNjcm9sbENvbnRyb2xsZXI6OnN0b3BTbmFwUnVi
YmVyYmFuZFRpbWVyKCkKK3ZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c3RvcFNuYXBSdWJiZXJiYW5k
QW5pbWF0aW9uKCkKIHsKICAgICBtX2NsaWVudC5kaWRTdG9wUnViYmVyYmFuZFNuYXBBbmltYXRp
b24oKTsKIAotICAgIGlmIChtX3NuYXBSdWJiZXJiYW5kVGltZXIpIHsKLSAgICAgICAgbV9zbmFw
UnViYmVyYmFuZFRpbWVyLT5zdG9wKCk7Ci0gICAgICAgIG1fc25hcFJ1YmJlcmJhbmRUaW1lciA9
IG51bGxwdHI7Ci0gICAgfQorICAgIHNldElzQW5pbWF0aW5nUnViYmVyQmFuZChmYWxzZSk7CiAK
ICAgICBtX2NsaWVudC5yZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJl
YXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFy
ZWFJZGVudGlmaWVyPih0aGlzKSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpSdWJiZXJiYW5kSW5Q
cm9ncmVzcyk7CiB9CkBAIC01MjEsMTQgKzUxMCwxNCBAQCB2b2lkIFNjcm9sbENvbnRyb2xsZXI6
OnNuYXBSdWJiZXJCYW5kKCkKICAgICBpZiAobV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAg
JiYgdGltZURlbHRhID49IHNjcm9sbFZlbG9jaXR5WmVyb2luZ1RpbWVvdXQpCiAgICAgICAgIG1f
bW9tZW50dW1WZWxvY2l0eSA9IHsgfTsKIAotICAgIGlmIChtX3NuYXBSdWJiZXJiYW5kVGltZXIp
CisgICAgaWYgKG1faXNBbmltYXRpbmdSdWJiZXJCYW5kKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIG1fc3RhcnRTdHJldGNo
ID0geyB9OwogICAgIG1fb3JpZ1ZlbG9jaXR5ID0geyB9OwogCi0gICAgc3RhcnRTbmFwUnViYmVy
YmFuZFRpbWVyKCk7CisgICAgc3RhcnRSdWJiZXJiYW5kQW5pbWF0aW9uKCk7CiB9CiAKIGJvb2wg
U2Nyb2xsQ29udHJvbGxlcjo6c2hvdWxkUnViYmVyQmFuZEluSG9yaXpvbnRhbERpcmVjdGlvbihj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpIGNvbnN0CkBAIC01NDcsNyArNTM2
LDcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24o
U2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbikgY28KIAogYm9vbCBTY3JvbGxDb250cm9sbGVyOjpp
c1J1YmJlckJhbmRJblByb2dyZXNzSW50ZXJuYWwoKSBjb25zdAogewotICAgIGlmICghbV9pblNj
cm9sbEdlc3R1cmUgJiYgIW1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzICYmICFtX3NuYXBSdWJi
ZXJiYW5kVGltZXIpCisgICAgaWYgKCFtX2luU2Nyb2xsR2VzdHVyZSAmJiAhbV9tb21lbnR1bVNj
cm9sbEluUHJvZ3Jlc3MgJiYgIW1faXNBbmltYXRpbmdSdWJiZXJCYW5kKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICByZXR1cm4gIW1fY2xpZW50LnN0cmV0Y2hBbW91bnQoKS5pc1plcm8o
KTsKQEAgLTY1OSw3ICs2NDgsNyBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6OnNob3VsZE92ZXJy
aWRlTW9tZW50dW1TY3JvbGxpbmcoKSBjb25zdAogCiB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnNj
aGVkdWxlU3RhdGVsZXNzU2Nyb2xsU25hcCgpCiB7Ci0gICAgc3RvcFNjcm9sbFNuYXBUaW1lcigp
OworICAgIHN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKCk7CiAgICAgaWYgKG1fc3RhdGVsZXNzU25h
cFRyYW5zaXRpb25UaW1lcikgewogICAgICAgICBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGlt
ZXItPnN0b3AoKTsKICAgICAgICAgbV9zdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyID0gbnVs
bHB0cjsKQEAgLTY4Myw3ICs2NzIsNyBAQCB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnN0YXRlbGVz
c1NuYXBUcmFuc2l0aW9uVGltZXJGaXJlZCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc2Ny
b2xsU25hcFN0YXRlLT50cmFuc2l0aW9uVG9TbmFwQW5pbWF0aW9uU3RhdGUobV9jbGllbnQuc2Ny
b2xsRXh0ZW50KCksIG1fY2xpZW50LnZpZXdwb3J0U2l6ZSgpLCBtX2NsaWVudC5wYWdlU2NhbGVG
YWN0b3IoKSwgbV9jbGllbnQuc2Nyb2xsT2Zmc2V0KCkpOwotICAgIHN0YXJ0U2Nyb2xsU25hcFRp
bWVyKCk7CisgICAgc3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKCk7CiB9CiAKIHZvaWQgU2Nyb2xs
Q29udHJvbGxlcjo6c3RhcnREZWZlcnJpbmdXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EdWVUb1Nj
cm9sbFNuYXBwaW5nKCkKQEAgLTcxMiwxMyArNzAxLDEzIEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxl
cjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYKICAgICBzd2l0Y2ggKHN0YXR1cykgewogICAgIGNhc2UgV2hlZWxFdmVudFN0YXR1czo6VXNl
clNjcm9sbEJlZ2luOgogICAgIGNhc2UgV2hlZWxFdmVudFN0YXR1czo6VXNlclNjcm9sbGluZzoK
LSAgICAgICAgc3RvcFNjcm9sbFNuYXBUaW1lcigpOworICAgICAgICBzdG9wU2Nyb2xsU25hcEFu
aW1hdGlvbigpOwogICAgICAgICBtX3Njcm9sbFNuYXBTdGF0ZS0+dHJhbnNpdGlvblRvVXNlcklu
dGVyYWN0aW9uU3RhdGUoKTsKICAgICAgICAgbV9kcmFnRW5kZWRTY3JvbGxpbmdWZWxvY2l0eSA9
IC13aGVlbEV2ZW50LnNjcm9sbGluZ1ZlbG9jaXR5KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgV2hlZWxFdmVudFN0YXR1czo6VXNlclNjcm9sbEVuZDoKICAgICAgICAgbV9zY3JvbGxTbmFw
U3RhdGUtPnRyYW5zaXRpb25Ub1NuYXBBbmltYXRpb25TdGF0ZShtX2NsaWVudC5zY3JvbGxFeHRl
bnQoKSwgbV9jbGllbnQudmlld3BvcnRTaXplKCksIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3Rvcigp
LCBtX2NsaWVudC5zY3JvbGxPZmZzZXQoKSk7Ci0gICAgICAgIHN0YXJ0U2Nyb2xsU25hcFRpbWVy
KCk7CisgICAgICAgIHN0YXJ0U2Nyb2xsU25hcEFuaW1hdGlvbigpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6Ok1vbWVudHVtU2Nyb2xsQmVnaW46CiAgICAgICAg
IG1fc2Nyb2xsU25hcFN0YXRlLT50cmFuc2l0aW9uVG9HbGlkZUFuaW1hdGlvblN0YXRlKG1fY2xp
ZW50LnNjcm9sbEV4dGVudCgpLCBtX2NsaWVudC52aWV3cG9ydFNpemUoKSwgbV9jbGllbnQucGFn
ZVNjYWxlRmFjdG9yKCksIG1fY2xpZW50LnNjcm9sbE9mZnNldCgpLCBtX2RyYWdFbmRlZFNjcm9s
bGluZ1ZlbG9jaXR5LCBGbG9hdFNpemUoLXdoZWVsRXZlbnQuZGVsdGFYKCksIC13aGVlbEV2ZW50
LmRlbHRhWSgpKSk7CkBAIC03NTEsNTIgKzc0MCw1MSBAQCB2b2lkIFNjcm9sbENvbnRyb2xsZXI6
OnVwZGF0ZUdlc3R1cmVJblByb2dyZXNzU3RhdGUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aAogICAgIHVwZGF0ZVJ1YmJlckJhbmRpbmdTdGF0ZSgpOwogfQogCi12b2lkIFNjcm9sbENvbnRy
b2xsZXI6OnN0YXJ0U2Nyb2xsU25hcFRpbWVyKCkKK3ZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c3Rh
cnRTY3JvbGxTbmFwQW5pbWF0aW9uKCkKIHsKLSAgICBpZiAobV9zY3JvbGxTbmFwVGltZXIpCisg
ICAgaWYgKG1faXNBbmltYXRpbmdTY3JvbGxTbmFwKQogICAgICAgICByZXR1cm47CiAKLSAgICBM
T0dfV0lUSF9TVFJFQU0oU2Nyb2xsU25hcCwgc3RyZWFtIDw8ICJTY3JvbGxDb250cm9sbGVyICIg
PDwgdGhpcyA8PCAiIHN0YXJ0U2Nyb2xsU25hcFRpbWVyIChtYWluIHRocmVhZCAiIDw8IGlzTWFp
blRocmVhZCgpIDw8ICIpIik7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbFNuYXAsIHN0cmVh
bSA8PCAiU2Nyb2xsQ29udHJvbGxlciAiIDw8IHRoaXMgPDwgIiBzdGFydFNjcm9sbFNuYXBBbmlt
YXRpb24gKG1haW4gdGhyZWFkICIgPDwgaXNNYWluVGhyZWFkKCkgPDwgIikiKTsKIAogICAgIHN0
YXJ0RGVmZXJyaW5nV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRHVlVG9TY3JvbGxTbmFwcGluZygp
OwogICAgIG1fY2xpZW50LndpbGxTdGFydFNjcm9sbFNuYXBBbmltYXRpb24oKTsKLSAgICBtX3Nj
cm9sbFNuYXBUaW1lciA9IG1fY2xpZW50LmNyZWF0ZVRpbWVyKFt0aGlzXSB7Ci0gICAgICAgIHNj
cm9sbFNuYXBUaW1lckZpcmVkKCk7Ci0gICAgfSk7Ci0gICAgbV9zY3JvbGxTbmFwVGltZXItPnN0
YXJ0UmVwZWF0aW5nKDFfcyAvIDYwLik7CisgICAgc2V0SXNBbmltYXRpbmdTY3JvbGxTbmFwKHRy
dWUpOwogfQogCi12b2lkIFNjcm9sbENvbnRyb2xsZXI6OnN0b3BTY3JvbGxTbmFwVGltZXIoKQor
dm9pZCBTY3JvbGxDb250cm9sbGVyOjpzdG9wU2Nyb2xsU25hcEFuaW1hdGlvbigpCiB7Ci0gICAg
aWYgKCFtX3Njcm9sbFNuYXBUaW1lcikKKyAgICBpZiAoIW1faXNBbmltYXRpbmdTY3JvbGxTbmFw
KQogICAgICAgICByZXR1cm47CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsU25hcCwgc3Ry
ZWFtIDw8ICJTY3JvbGxDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIHN0b3BTY3JvbGxTbmFwVGlt
ZXIgKG1haW4gdGhyZWFkICIgPDwgaXNNYWluVGhyZWFkKCkgPDwgIikiKTsKKyAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsU25hcCwgc3RyZWFtIDw8ICJTY3JvbGxDb250cm9sbGVyICIgPDwgdGhp
cyA8PCAiIHN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uIChtYWluIHRocmVhZCAiIDw8IGlzTWFpblRo
cmVhZCgpIDw8ICIpIik7CiAKICAgICBzdG9wRGVmZXJyaW5nV2hlZWxFdmVudFRlc3RDb21wbGV0
aW9uRHVlVG9TY3JvbGxTbmFwcGluZygpOwogICAgIG1fY2xpZW50LmRpZFN0b3BTY3JvbGxTbmFw
QW5pbWF0aW9uKCk7CiAKLSAgICBtX3Njcm9sbFNuYXBUaW1lci0+c3RvcCgpOwotICAgIG1fc2Ny
b2xsU25hcFRpbWVyID0gbnVsbHB0cjsKKyAgICBzZXRJc0FuaW1hdGluZ1Njcm9sbFNuYXAoZmFs
c2UpOwogfQogCi12b2lkIFNjcm9sbENvbnRyb2xsZXI6OnNjcm9sbFNuYXBUaW1lckZpcmVkKCkK
K3ZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6dXBkYXRlU2Nyb2xsU25hcEFuaW1hdGluZ1N0YXRlKE1v
bm90b25pY1RpbWUgY3VycmVudFRpbWUpCiB7CisgICAgaWYgKCFtX2lzQW5pbWF0aW5nU2Nyb2xs
U25hcCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKCF1c2VzU2Nyb2xsU25hcCgpKSB7CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgYm9vbCBpc0FuaW1hdGlvbkNvbXBsZXRlOwotICAgIGF1dG8gYW5pbWF0aW9uT2Zmc2V0ID0g
bV9zY3JvbGxTbmFwU3RhdGUtPmN1cnJlbnRBbmltYXRlZFNjcm9sbE9mZnNldChpc0FuaW1hdGlv
bkNvbXBsZXRlKTsKKyAgICBhdXRvIGFuaW1hdGlvbk9mZnNldCA9IG1fc2Nyb2xsU25hcFN0YXRl
LT5jdXJyZW50QW5pbWF0ZWRTY3JvbGxPZmZzZXQoY3VycmVudFRpbWUsIGlzQW5pbWF0aW9uQ29t
cGxldGUpOwogICAgIGF1dG8gY3VycmVudE9mZnNldCA9IG1fY2xpZW50LnNjcm9sbE9mZnNldCgp
OwogCi0gICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbFNuYXAsIHN0cmVhbSA8PCAiU2Nyb2xsQ29u
dHJvbGxlciAiIDw8IHRoaXMgPDwgIiBzY3JvbGxTbmFwVGltZXJGaXJlZCAtIGlzQW5pbWF0aW9u
Q29tcGxldGUgIiA8PCBpc0FuaW1hdGlvbkNvbXBsZXRlIDw8ICIgY3VycmVudE9mZnNldCAiIDw8
IGN1cnJlbnRPZmZzZXQgPDwgIiAobWFpbiB0aHJlYWQgIiA8PCBpc01haW5UaHJlYWQoKSA8PCAi
KSIpOworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxTbmFwLCBzdHJlYW0gPDwgIlNjcm9sbENv
bnRyb2xsZXIgIiA8PCB0aGlzIDw8ICIgdXBkYXRlU2Nyb2xsU25hcEFuaW1hdGluZ1N0YXRlIC0g
aXNBbmltYXRpb25Db21wbGV0ZSAiIDw8IGlzQW5pbWF0aW9uQ29tcGxldGUgPDwgIiBjdXJyZW50
T2Zmc2V0ICIgPDwgY3VycmVudE9mZnNldCA8PCAiIChtYWluIHRocmVhZCAiIDw8IGlzTWFpblRo
cmVhZCgpIDw8ICIpIik7CiAKICAgICBtX2NsaWVudC5pbW1lZGlhdGVTY3JvbGxCeVdpdGhvdXRD
b250ZW50RWRnZUNvbnN0cmFpbnRzKEZsb2F0U2l6ZShhbmltYXRpb25PZmZzZXQueCgpIC0gY3Vy
cmVudE9mZnNldC54KCksIGFuaW1hdGlvbk9mZnNldC55KCkgLSBjdXJyZW50T2Zmc2V0LnkoKSkp
OwogICAgIGlmIChpc0FuaW1hdGlvbkNvbXBsZXRlKSB7CiAgICAgICAgIG1fc2Nyb2xsU25hcFN0
YXRlLT50cmFuc2l0aW9uVG9EZXN0aW5hdGlvblJlYWNoZWRTdGF0ZSgpOwotICAgICAgICBzdG9w
U2Nyb2xsU25hcFRpbWVyKCk7CisgICAgICAgIHN0b3BTY3JvbGxTbmFwQW5pbWF0aW9uKCk7CiAg
ICAgfQogfQogI2VuZGlmIC8vIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>