<?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>181165</bug_id>
          
          <creation_ts>2017-12-26 15:13:30 -0800</creation_ts>
          <short_desc>[JSC] Remove std::chrono completely</short_desc>
          <delta_ts>2018-01-02 12:59:13 -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>New Bugs</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1384752</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-26 15:13:30 -0800</bug_when>
    <thetext>[JSC] Remove std::chrono completely</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384753</commentid>
    <comment_count>1</comment_count>
      <attachid>330204</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-26 15:24:04 -0800</bug_when>
    <thetext>Created attachment 330204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384754</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-12-26 15:26:50 -0800</bug_when>
    <thetext>Attachment 330204 did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:389:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384756</commentid>
    <comment_count>3</comment_count>
      <attachid>330204</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-12-26 16:01:09 -0800</bug_when>
    <thetext>Comment on attachment 330204
Patch

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

&gt; Source/JavaScriptCore/runtime/Watchdog.cpp:41
&gt; +    , m_wallClockDeadline(MonotonicTime::infinity())

This variable doesn&apos;t hold wall clock time anymore

&gt; Source/JavaScriptCore/runtime/Watchdog.cpp:135
&gt; +    auto wallClockTime = MonotonicTime::now();

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384757</commentid>
    <comment_count>4</comment_count>
      <attachid>330204</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-26 16:05:22 -0800</bug_when>
    <thetext>Comment on attachment 330204
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/Watchdog.cpp:41
&gt;&gt; +    , m_wallClockDeadline(MonotonicTime::infinity())
&gt; 
&gt; This variable doesn&apos;t hold wall clock time anymore

Fixed. Even before this patch, it was not wall clock since we used std::chrono::steady_clock.

&gt;&gt; Source/JavaScriptCore/runtime/Watchdog.cpp:135
&gt;&gt; +    auto wallClockTime = MonotonicTime::now();
&gt; 
&gt; Ditto

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384758</commentid>
    <comment_count>5</comment_count>
      <attachid>330205</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-26 16:09:11 -0800</bug_when>
    <thetext>Created attachment 330205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384759</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-12-26 16:10:57 -0800</bug_when>
    <thetext>Attachment 330205 did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:389:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384760</commentid>
    <comment_count>7</comment_count>
      <attachid>330205</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-12-26 16:22:57 -0800</bug_when>
    <thetext>Comment on attachment 330205
Patch

r=me

it seems like CLOCK_THREAD_CPUTIME_ID is available on other BSDs too, maybe it makes sense to broaden condition</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384761</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-26 16:33:17 -0800</bug_when>
    <thetext>Committed r226295: &lt;https://trac.webkit.org/changeset/226295&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385215</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-02 12:59:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/36260885&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330204</attachid>
            <date>2017-12-26 15:24:04 -0800</date>
            <delta_ts>2017-12-26 16:09:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181165-20171227082403.patch</filename>
            <type>text/plain</type>
            <size>41964</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2Mjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NDc4NTY0MzJjOGM1ZmFlMmIxMWI3ZDY1MmFkM2VhMjc1YjA3YWE2Li41OWRhMzY5ZWQ3NGI1ZjY0
NDI2NGE5NTBjOWU3MmZkZWQwMzE0MjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxNy0xMi0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBSZW1vdmUgc3RkOjpjaHJvbm8gY29tcGxldGVseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMTY1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBy
ZW1vdmVzIHN0ZDo6Y2hyb25vIHVzZSBjb21wbGV0ZWx5IGZyb20gSlNDLgorCisgICAgICAgICog
QVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAgIChKU0NvbnRleHRHcm91cFNldEV4ZWN1dGlv
blRpbWVMaW1pdCk6CisgICAgICAgICogQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3Qu
Y3BwOgorICAgICAgICAoY3VycmVudENQVVRpbWVBc0pTRnVuY3Rpb25DYWxsYmFjayk6CisgICAg
ICAgICh0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxv
Y2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OkNvZGVCbG9jayk6CisgICAgICAgIChK
U0M6OnRpbWVUb0xpdmUpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OnRpbWVTaW5jZUNyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpT
YW1wbGluZ1Byb2ZpbGVyKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6dGltZXJM
b29wKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6dGFrZVNhbXBsZSk6CisgICAg
ICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnJlcG9ydFRvcEZ1bmN0aW9ucyk6CisgICAgICAg
IChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnJlcG9ydFRvcEJ5dGVjb2Rlcyk6CisgICAgICAgICog
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmg6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmls
ZXI6OnNldFRpbWluZ0ludGVydmFsKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAg
ICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1dhdGNoZG9nLmNwcDoKKyAgICAg
ICAgKEpTQzo6V2F0Y2hkb2c6OldhdGNoZG9nKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnNl
dFRpbWVMaW1pdCk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpzaG91bGRUZXJtaW5hdGUpOgor
ICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3RhcnRUaW1lcik6CisgICAgICAgIChKU0M6OmN1cnJl
bnRXYWxsQ2xvY2tUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dhdGNoZG9nLmg6
CisKIDIwMTctMTItMjYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04ocjIyNjI2OSk6IDYwIEpTQyB0ZXN0IGZhaWx1cmVzIG9uIEFSTXY3
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CmluZGV4IGRjNDEyOTE3ZDgwYmJiNTljMTA2Y2YyYjdmZjI0MDczOTYxMDAyNmUuLmNiN2M5YjBl
OWFhNzgwMWYyMWVlODRlNzgzYzBiNTRjNWE1MjMxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTctMTItMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgW0pTQ10gUmVtb3ZlIHN0ZDo6Y2hyb25vIGNvbXBsZXRlbHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTE2NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdURjo6Y3VycmVudENQVVRpbWUgbm93IHJl
dHVybnMgV1RGOjpTZWNvbmRzLgorICAgICAgICBXZSBhbHNvIGFkZCB0aGUgaW1wbGVtZW50YWl0
b24gZm9yIExpbnV4IGFuZCBGcmVlQlNELgorCisgICAgICAgICogd3RmL0N1cnJlbnRUaW1lLmNw
cDoKKyAgICAgICAgKFdURjo6Y3VycmVudENQVVRpbWUpOgorICAgICAgICAqIHd0Zi9DdXJyZW50
VGltZS5oOgorCiAyMDE3LTEyLTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHRyeSB0byBmaXggdGhlIFNpZXJyYSBidWlsZCBh
ZnRlciByMjI2Mjc3LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nv
bnRleHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3Bw
CmluZGV4IGE4MDY1Y2E2N2Q5ODhkODVhMDUyM2Y2ZDFmMWQyMGMwOTMwNzEzODEuLjAyNWViYTRl
OTljYmJkODNiODIyMDc2M2Y1OTYxNWU2OGNlYmUzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKQEAgLTk5LDkgKzk5LDkgQEAgdm9pZCBKU0NvbnRleHRH
cm91cFNldEV4ZWN1dGlvblRpbWVMaW1pdChKU0NvbnRleHRHcm91cFJlZiBncm91cCwgZG91Ymxl
IGxpbWl0LAogICAgIFdhdGNoZG9nJiB3YXRjaGRvZyA9IHZtLmVuc3VyZVdhdGNoZG9nKCk7CiAg
ICAgaWYgKGNhbGxiYWNrKSB7CiAgICAgICAgIHZvaWQqIGNhbGxiYWNrUHRyID0gcmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4oY2FsbGJhY2spOwotICAgICAgICB3YXRjaGRvZy5zZXRUaW1lTGltaXQo
c3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcz4oc3Rk
OjpjaHJvbm86OmR1cmF0aW9uPGRvdWJsZT4obGltaXQpKSwgaW50ZXJuYWxTY3JpcHRUaW1lb3V0
Q2FsbGJhY2ssIGNhbGxiYWNrUHRyLCBjYWxsYmFja0RhdGEpOworICAgICAgICB3YXRjaGRvZy5z
ZXRUaW1lTGltaXQoU2Vjb25kcyB7IGxpbWl0IH0sIGludGVybmFsU2NyaXB0VGltZW91dENhbGxi
YWNrLCBjYWxsYmFja1B0ciwgY2FsbGJhY2tEYXRhKTsKICAgICB9IGVsc2UKLSAgICAgICAgd2F0
Y2hkb2cuc2V0VGltZUxpbWl0KHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25v
OjptaWNyb3NlY29uZHM+KHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxkb3VibGU+KGxpbWl0KSkpOwor
ICAgICAgICB3YXRjaGRvZy5zZXRUaW1lTGltaXQoU2Vjb25kcyB7IGxpbWl0IH0pOwogfQogCiB2
b2lkIEpTQ29udGV4dEdyb3VwQ2xlYXJFeGVjdXRpb25UaW1lTGltaXQoSlNDb250ZXh0R3JvdXBS
ZWYgZ3JvdXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4
ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcAppbmRleCAwNWMwMTE0OGY2MzhiNDI1MDdlYWQw
OTgzYjhjOTg0NDZmOWY4MGRhLi5mOTgyYmIyNTdmNzEyYmEyYjNkNjc1MzkwMDIyZDNjMmJkNTk5
ZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlv
blRpbWVMaW1pdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
RXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJK
YXZhU2NyaXB0LmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogCi0jaW5jbHVkZSA8Y2hyb25vPgog
I2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtNDMsNyArNDIsNiBAQAogI2luY2x1ZGUgPGRp
c3BhdGNoL2Rpc3BhdGNoLmg+CiAjZW5kaWYKIAotdXNpbmcgbmFtZXNwYWNlIHN0ZDo6Y2hyb25v
OwogdXNpbmcgSlNDOjpPcHRpb25zOwogCiBzdGF0aWMgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRl
eHQgPSBudWxscHRyOwpAQCAtNTcsNyArNTUsNyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBjdXJyZW50
Q1BVVGltZUFzSlNGdW5jdGlvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0Ugog
ICAgIFVOVVNFRF9QQVJBTShleGNlcHRpb24pOwogICAgIAogICAgIEFTU0VSVChKU0NvbnRleHRH
ZXRHbG9iYWxDb250ZXh0KGN0eCkgPT0gY29udGV4dCk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtl
TnVtYmVyKGN0eCwgY3VycmVudENQVVRpbWUoKS5jb3VudCgpIC8gMTAwMDAwMC4pOworICAgIHJl
dHVybiBKU1ZhbHVlTWFrZU51bWJlcihjdHgsIGN1cnJlbnRDUFVUaW1lKCkuc2Vjb25kcygpKTsK
IH0KIAogYm9vbCBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwpAQCAt
OTcsNyArOTUsNyBAQCBzdGF0aWMgYm9vbCBkaXNwYXRjaFRlcm1pdGF0ZUNhbGxiYWNrKEpTQ29u
dGV4dFJlZiwgdm9pZCopCiAKIHN0cnVjdCBUaWVyT3B0aW9ucyB7CiAgICAgY29uc3QgY2hhciog
dGllcjsKLSAgICB1bnNpZ25lZCB0aW1lTGltaXRBZGp1c3RtZW50TWlsbGlzOworICAgIFNlY29u
ZHMgdGltZUxpbWl0QWRqdXN0bWVudDsKICAgICBjb25zdCBjaGFyKiBvcHRpb25zU3RyOwogfTsK
IApAQCAtMTIwLDEwICsxMTgsMTAgQEAgc3RhdGljIHZvaWQgdGVzdFJlc2V0QWZ0ZXJUaW1lb3V0
KGJvb2wmIGZhaWxlZCkKIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKIHsKICAgICBzdGF0
aWMgY29uc3QgVGllck9wdGlvbnMgdGllck9wdGlvbnNMaXN0W10gPSB7Ci0gICAgICAgIHsgIkxM
SU5UIiwgICAgMCwgICAiLS11c2VDb25jdXJyZW50SklUPWZhbHNlIC0tdXNlTExJbnQ9dHJ1ZSAt
LXVzZUpJVD1mYWxzZSIgfSwKLSAgICAgICAgeyAiQmFzZWxpbmUiLCAwLCAgICItLXVzZUNvbmN1
cnJlbnRKSVQ9ZmFsc2UgLS11c2VMTEludD10cnVlIC0tdXNlSklUPXRydWUgLS11c2VERkdKSVQ9
ZmFsc2UiIH0sCi0gICAgICAgIHsgIkRGRyIsICAgICAgMjAwLCAgICItLXVzZUNvbmN1cnJlbnRK
SVQ9ZmFsc2UgLS11c2VMTEludD10cnVlIC0tdXNlSklUPXRydWUgLS11c2VERkdKSVQ9dHJ1ZSAt
LXVzZUZUTEpJVD1mYWxzZSIgfSwKLSAgICAgICAgeyAiRlRMIiwgICAgICA1MDAsICItLXVzZUNv
bmN1cnJlbnRKSVQ9ZmFsc2UgLS11c2VMTEludD10cnVlIC0tdXNlSklUPXRydWUgLS11c2VERkdK
SVQ9dHJ1ZSAtLXVzZUZUTEpJVD10cnVlIiB9LAorICAgICAgICB7ICJMTElOVCIsICAgIDBfbXMs
ICAgIi0tdXNlQ29uY3VycmVudEpJVD1mYWxzZSAtLXVzZUxMSW50PXRydWUgLS11c2VKSVQ9ZmFs
c2UiIH0sCisgICAgICAgIHsgIkJhc2VsaW5lIiwgMF9tcywgICAiLS11c2VDb25jdXJyZW50SklU
PWZhbHNlIC0tdXNlTExJbnQ9dHJ1ZSAtLXVzZUpJVD10cnVlIC0tdXNlREZHSklUPWZhbHNlIiB9
LAorICAgICAgICB7ICJERkciLCAgICAgIDIwMF9tcywgICAiLS11c2VDb25jdXJyZW50SklUPWZh
bHNlIC0tdXNlTExJbnQ9dHJ1ZSAtLXVzZUpJVD10cnVlIC0tdXNlREZHSklUPXRydWUgLS11c2VG
VExKSVQ9ZmFsc2UiIH0sCisgICAgICAgIHsgIkZUTCIsICAgICAgNTAwX21zLCAiLS11c2VDb25j
dXJyZW50SklUPWZhbHNlIC0tdXNlTExJbnQ9dHJ1ZSAtLXVzZUpJVD10cnVlIC0tdXNlREZHSklU
PXRydWUgLS11c2VGVExKSVQ9dHJ1ZSIgfSwKICAgICB9OwogICAgIAogICAgIGJvb2wgZmFpbGVk
ID0gZmFsc2U7CkBAIC0xMzcsOCArMTM1LDggQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQo
KQogCiAgICAgICAgIE9wdGlvbnM6OnNldE9wdGlvbnModGllck9wdGlvbnMub3B0aW9uc1N0cik7
CiAgICAgICAgIAotICAgICAgICB1bnNpZ25lZCB0aWVyQWRqdXN0bWVudE1pbGxpcyA9IHRpZXJP
cHRpb25zLnRpbWVMaW1pdEFkanVzdG1lbnRNaWxsaXM7Ci0gICAgICAgIGRvdWJsZSB0aW1lTGlt
aXQ7CisgICAgICAgIFNlY29uZHMgdGllckFkanVzdG1lbnQgPSB0aWVyT3B0aW9ucy50aW1lTGlt
aXRBZGp1c3RtZW50OworICAgICAgICBTZWNvbmRzIHRpbWVMaW1pdDsKIAogICAgICAgICBjb250
ZXh0ID0gSlNHbG9iYWxDb250ZXh0Q3JlYXRlSW5Hcm91cChudWxscHRyLCBudWxscHRyKTsKIApA
QCAtMTU0LDEwICsxNTIsMTAgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAg
ICBKU1N0cmluZ1JlbGVhc2UoY3VycmVudENQVVRpbWVTdHIpOwogCiAgICAgICAgIC8qIFRlc3Qg
c2NyaXB0IG9uIGFub3RoZXIgdGhyZWFkOiAqLwotICAgICAgICB0aW1lTGltaXQgPSAoMTAwICsg
dGllckFkanVzdG1lbnRNaWxsaXMpIC8gMTAwMC4wOwotICAgICAgICBKU0NvbnRleHRHcm91cFNl
dEV4ZWN1dGlvblRpbWVMaW1pdChjb250ZXh0R3JvdXAsIHRpbWVMaW1pdCwgc2hvdWxkVGVybWlu
YXRlQ2FsbGJhY2ssIDApOworICAgICAgICB0aW1lTGltaXQgPSAxMDBfbXMgKyB0aWVyQWRqdXN0
bWVudDsKKyAgICAgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4
dEdyb3VwLCB0aW1lTGltaXQuc2Vjb25kcygpLCBzaG91bGRUZXJtaW5hdGVDYWxsYmFjaywgMCk7
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIHRpbWVBZnRlcldhdGNoZG9nU2hvdWxk
SGF2ZUZpcmVkID0gMzAwICsgdGllckFkanVzdG1lbnRNaWxsaXM7CisgICAgICAgICAgICBTZWNv
bmRzIHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkID0gMzAwX21zICsgdGllckFkanVz
dG1lbnQ7CiAKICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJmdW5jdGlvbiBmb28oKSB7IHdoaWxlICh0cnVlKSB7IH0gfSBmb28o
KTsiKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CkBAIC0xNjcsNyArMTY1LDcg
QEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgICAgIEpTRXZhbHVh
dGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCBleG4pOwogICAg
ICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgIHNsZWVwKFNlY29uZHModGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQgLyAxMDAwLjApKTsKKyAgICAgICAgICAgIHNsZWVwKHRpbWVBZnRl
cldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKTsKIAogICAgICAgICAgICAgaWYgKHNob3VsZFRlcm1p
bmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMg
c2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwpAQCAt
MTg2LDE0ICsxODQsMTQgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICB9
CiAKICAgICAgICAgLyogVGVzdCBzY3JpcHQgdGltZW91dDogKi8KLSAgICAgICAgdGltZUxpbWl0
ID0gKDEwMCArIHRpZXJBZGp1c3RtZW50TWlsbGlzKSAvIDEwMDAuMDsKLSAgICAgICAgSlNDb250
ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4dEdyb3VwLCB0aW1lTGltaXQsIHNo
b3VsZFRlcm1pbmF0ZUNhbGxiYWNrLCAwKTsKKyAgICAgICAgdGltZUxpbWl0ID0gMTAwX21zICsg
dGllckFkanVzdG1lbnQ7CisgICAgICAgIEpTQ29udGV4dEdyb3VwU2V0RXhlY3V0aW9uVGltZUxp
bWl0KGNvbnRleHRHcm91cCwgdGltZUxpbWl0LnNlY29uZHMoKSwgc2hvdWxkVGVybWluYXRlQ2Fs
bGJhY2ssIDApOwogICAgICAgICB7Ci0gICAgICAgICAgICB1bnNpZ25lZCB0aW1lQWZ0ZXJXYXRj
aGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMwMCArIHRpZXJBZGp1c3RtZW50TWlsbGlzOworICAgICAg
ICAgICAgU2Vjb25kcyB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMwMF9tcyAr
IHRpZXJBZGp1c3RtZW50OwogCiAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxk
ZXI7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoImZ1bmN0aW9uIGZv
bygpIHsgdmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHdoaWxlICh0cnVlKSB7IGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKTsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFy
dFRpbWUgPiAiKTsKLSAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVB
ZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkIC8gMTAwMC4wKTsKKyAgICAgICAgICAgIHNjcmlw
dEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNl
Y29uZHMoKSk7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJl
YWs7IH0gfSBmb28oKTsiKTsKIAogICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOwpAQCAtMjAzLDEwICsyMDEsMTAgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGlt
aXQoKQogICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxw
dHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwogICAgICAgICAgICAgYXV0byBlbmRUaW1lID0g
Y3VycmVudENQVVRpbWUoKTsKIAotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGlt
ZSkgPCBtaWxsaXNlY29uZHModGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpKSAmJiBz
aG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgIGlmICgoKGVuZFRp
bWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIHNo
b3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgIHByaW50Zigi
UEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0g
c3RhcnRUaW1lKSA+PSBtaWxsaXNlY29uZHModGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmly
ZWQpKQorICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFm
dGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCiAgICAgICAgICAgICAgICAgICAgIHByaW50Zigi
RkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNr
V2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0
aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CkBA
IC0yMjIsMTAgKzIyMCwxMCBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAg
IH0KIAogICAgICAgICAvKiBUZXN0IHNjcmlwdCB0aW1lb3V0IHdpdGggdGFpbCBjYWxsczogKi8K
LSAgICAgICAgdGltZUxpbWl0ID0gKDEwMCArIHRpZXJBZGp1c3RtZW50TWlsbGlzKSAvIDEwMDAu
MDsKLSAgICAgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4dEdy
b3VwLCB0aW1lTGltaXQsIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrLCAwKTsKKyAgICAgICAgdGlt
ZUxpbWl0ID0gMTAwX21zICsgdGllckFkanVzdG1lbnQ7CisgICAgICAgIEpTQ29udGV4dEdyb3Vw
U2V0RXhlY3V0aW9uVGltZUxpbWl0KGNvbnRleHRHcm91cCwgdGltZUxpbWl0LnNlY29uZHMoKSwg
c2hvdWxkVGVybWluYXRlQ2FsbGJhY2ssIDApOwogICAgICAgICB7Ci0gICAgICAgICAgICB1bnNp
Z25lZCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMwMCArIHRpZXJBZGp1c3Rt
ZW50TWlsbGlzOworICAgICAgICAgICAgU2Vjb25kcyB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhh
dmVGaXJlZCA9IDMwMF9tcyArIHRpZXJBZGp1c3RtZW50OwogCiAgICAgICAgICAgICBTdHJpbmdC
dWlsZGVyIHNjcmlwdEJ1aWxkZXI7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExp
dGVyYWwoInZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyIKQEAgLTIzMyw3ICsyMzEs
NyBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIid1c2Ugc3RyaWN0JzsiCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImlmIChpICUgMTAwMCA9PT0gMCkgeyIKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiIp
OwotICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQgLyAxMDAwLjApOworICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5h
cHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsK
ICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgICAgICkgeyByZXR1
cm47IH0iKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIH0i
KTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHJldHVybiBy
ZWN1cnNlKGkgKyAxKTsgfSIpOwpAQCAtMjQ2LDEwICsyNDQsMTAgQEAgaW50IHRlc3RFeGVjdXRp
b25UaW1lTGltaXQoKQogICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3Jp
cHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwogICAgICAgICAgICAgYXV0byBl
bmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKIAotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAt
IHN0YXJ0VGltZSkgPCBtaWxsaXNlY29uZHModGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmly
ZWQpKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgIGlm
ICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmly
ZWQpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAg
IHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHdpdGggaW5maW5pdGUgdGFpbCBjYWxscyB0aW1lZCBv
dXQgYXMgZXhwZWN0ZWQgLlxuIiwgdGllck9wdGlvbnMudGllcik7CiAgICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IG1pbGxpc2Vj
b25kcyh0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpCisgICAgICAgICAgICAgICAg
aWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVG
aXJlZCkKICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBp
bmZpbml0ZSB0YWlsIGNhbGxzIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVy
T3B0aW9ucy50aWVyKTsKICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxi
YWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlw
dCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMnIHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxs
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAgLTI2NSwxNCArMjYzLDE0IEBAIGludCB0ZXN0
RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgfQogCiAgICAgICAgIC8qIFRlc3QgdGhlIHNj
cmlwdCB0aW1lb3V0J3MgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiBzaG91bGQgTk9UIGJl
IGNhdGNoYWJsZTogKi8KLSAgICAgICAgdGltZUxpbWl0ID0gKDEwMCArIHRpZXJBZGp1c3RtZW50
TWlsbGlzKSAvIDEwMDAuMDsKLSAgICAgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1l
TGltaXQoY29udGV4dEdyb3VwLCB0aW1lTGltaXQsIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrLCAw
KTsKKyAgICAgICAgdGltZUxpbWl0ID0gMTAwX21zICsgdGllckFkanVzdG1lbnQ7CisgICAgICAg
IEpTQ29udGV4dEdyb3VwU2V0RXhlY3V0aW9uVGltZUxpbWl0KGNvbnRleHRHcm91cCwgdGltZUxp
bWl0LnNlY29uZHMoKSwgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2ssIDApOwogICAgICAgICB7Ci0g
ICAgICAgICAgICB1bnNpZ25lZCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMw
MCArIHRpZXJBZGp1c3RtZW50TWlsbGlzOworICAgICAgICAgICAgU2Vjb25kcyB0aW1lQWZ0ZXJX
YXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMwMF9tcyArIHRpZXJBZGp1c3RtZW50OwogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7CiAgICAgICAg
ICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoImZ1bmN0aW9uIGZvbygpIHsgdmFyIHN0
YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHRyeSB7IHdoaWxlICh0cnVlKSB7IGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDsgaSsrKTsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUg
PiAiKTsKLSAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldh
dGNoZG9nU2hvdWxkSGF2ZUZpcmVkIC8gMTAwMC4wKTsKKyAgICAgICAgICAgIHNjcmlwdEJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNlY29uZHMo
KSk7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0g
fSBjYXRjaChlKSB7IH0gfSBmb28oKTsiKTsKIAogICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2Ny
aXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtMjgzLDggKzI4MSw4IEBAIGludCB0ZXN0RXhlY3V0aW9u
VGltZUxpbWl0KCkKICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0
LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKICAgICAgICAgICAgIGF1dG8gZW5k
VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICgo
KGVuZFRpbWUgLSBzdGFydFRpbWUpID49IG1pbGxpc2Vjb25kcyh0aW1lQWZ0ZXJXYXRjaGRvZ1No
b3VsZEhhdmVGaXJlZCkpIHx8ICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkgewot
ICAgICAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25k
cyh0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpKQorICAgICAgICAgICAgaWYgKCgo
ZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQp
IHx8ICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkgeworICAgICAgICAgICAgICAg
IGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2
ZUZpcmVkKSkKICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlk
IG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwogICAgICAg
ICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCiAgICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2Fz
IG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAgLTMwMiwxNCArMzAwLDE0IEBA
IGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgLyogVGVzdCBzY3JpcHQgdGltZW91dCB3aXRoIG5vIGNhbGxiYWNrOiAqLwotICAgICAgICB0
aW1lTGltaXQgPSAoMTAwICsgdGllckFkanVzdG1lbnRNaWxsaXMpIC8gMTAwMC4wOwotICAgICAg
ICBKU0NvbnRleHRHcm91cFNldEV4ZWN1dGlvblRpbWVMaW1pdChjb250ZXh0R3JvdXAsIHRpbWVM
aW1pdCwgMCwgMCk7CisgICAgICAgIHRpbWVMaW1pdCA9IDEwMF9tcyArIHRpZXJBZGp1c3RtZW50
OworICAgICAgICBKU0NvbnRleHRHcm91cFNldEV4ZWN1dGlvblRpbWVMaW1pdChjb250ZXh0R3Jv
dXAsIHRpbWVMaW1pdC5zZWNvbmRzKCksIDAsIDApOwogICAgICAgICB7Ci0gICAgICAgICAgICB1
bnNpZ25lZCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMwMCArIHRpZXJBZGp1
c3RtZW50TWlsbGlzOworICAgICAgICAgICAgU2Vjb25kcyB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3Vs
ZEhhdmVGaXJlZCA9IDMwMF9tcyArIHRpZXJBZGp1c3RtZW50OwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7CiAgICAgICAgICAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZExpdGVyYWwoImZ1bmN0aW9uIGZvbygpIHsgdmFyIHN0YXJ0VGltZSA9IGN1
cnJlbnRDUFVUaW1lKCk7IHdoaWxlICh0cnVlKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsg
aSsrKTsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAiKTsKLSAgICAgICAgICAg
IHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZp
cmVkIC8gMTAwMC4wKTsKKyAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRp
bWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNlY29uZHMoKSk7CiAgICAgICAgICAgICBz
Y3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpA
QCAtMzIwLDEwICszMTgsMTAgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAg
ICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIs
IDEsICZleGNlcHRpb24pOwogICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gY3VycmVudENQVVRp
bWUoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGlt
ZSkgPCBtaWxsaXNlY29uZHModGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpKSAmJiAh
c2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICBpZiAoKChlbmRU
aW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiAh
c2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCiAgICAgICAgICAgICAgICAgcHJpbnRm
KCJQQVNTOiAlcyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVkIHdoZW4gbm8gY2FsbGJhY2sg
aXMgc3BlY2lmaWVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CiAgICAgICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IG1pbGxpc2Vjb25k
cyh0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpCisgICAgICAgICAgICAgICAgaWYg
KChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJl
ZCkKICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0
aW1lIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg
ICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgY2FsbGVkIHN0YWxlIGNhbGxiYWNrIGZ1bmN0aW9u
LlxuIiwgdGllck9wdGlvbnMudGllcik7CkBAIC0zMzksMTQgKzMzNywxNCBAQCBpbnQgdGVzdEV4
ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8qIFRlc3Qg
c2NyaXB0IHRpbWVvdXQgY2FuY2VsbGF0aW9uOiAqLwotICAgICAgICB0aW1lTGltaXQgPSAoMTAw
ICsgdGllckFkanVzdG1lbnRNaWxsaXMpIC8gMTAwMC4wOwotICAgICAgICBKU0NvbnRleHRHcm91
cFNldEV4ZWN1dGlvblRpbWVMaW1pdChjb250ZXh0R3JvdXAsIHRpbWVMaW1pdCwgY2FuY2VsVGVy
bWluYXRlQ2FsbGJhY2ssIDApOworICAgICAgICB0aW1lTGltaXQgPSAxMDBfbXMgKyB0aWVyQWRq
dXN0bWVudDsKKyAgICAgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29u
dGV4dEdyb3VwLCB0aW1lTGltaXQuc2Vjb25kcygpLCBjYW5jZWxUZXJtaW5hdGVDYWxsYmFjaywg
MCk7CiAgICAgICAgIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIHRpbWVBZnRlcldhdGNoZG9nU2hv
dWxkSGF2ZUZpcmVkID0gMzAwICsgdGllckFkanVzdG1lbnRNaWxsaXM7CisgICAgICAgICAgICBT
ZWNvbmRzIHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkID0gMzAwX21zICsgdGllckFk
anVzdG1lbnQ7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0
QnVpbGRlcjsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZnVuY3Rp
b24gZm9vKCkgeyB2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUp
IHsgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspOyBpZiAoY3VycmVudENQVVRpbWUoKSAt
IHN0YXJ0VGltZSA+ICIpOwotICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIo
dGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQgLyAxMDAwLjApOworICAgICAgICAgICAg
c2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmly
ZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
KSBicmVhazsgfSB9IGZvbygpOyIpOwogCiAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQg
PSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CkBAIC0zNTcsMTAgKzM1NSwxMCBAQCBpbnQgdGVzdEV4ZWN1dGlvblRp
bWVMaW1pdCgpCiAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwg
bnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CiAgICAgICAgICAgICBhdXRvIGVuZFRp
bWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoKChl
bmRUaW1lIC0gc3RhcnRUaW1lKSA+PSBtaWxsaXNlY29uZHModGltZUFmdGVyV2F0Y2hkb2dTaG91
bGRIYXZlRmlyZWQpKSAmJiBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCAmJiAhZXhj
ZXB0aW9uKQorICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFm
dGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2Fz
Q2FsbGVkICYmICFleGNlcHRpb24pCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBz
Y3JpcHQgdGltZW91dCB3YXMgY2FuY2VsbGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMu
dGllcik7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1l
IC0gc3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25kcyh0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVG
aXJlZCkpIHx8IGV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3Rh
cnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSB8fCBleGNlcHRpb24p
CiAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2Fz
IG5vdCBjYW5jZWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKICAgICAgICAgICAgICAgICBp
ZiAoIWNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgICAg
ICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVk
LlxuIiwgdGllck9wdGlvbnMudGllcik7CkBAIC0zNzQsMTYgKzM3MiwxNiBAQCBpbnQgdGVzdEV4
ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8qIFRlc3Qg
c2NyaXB0IHRpbWVvdXQgZXh0ZW5zaW9uOiAqLwotICAgICAgICB0aW1lTGltaXQgPSAoMTAwICsg
dGllckFkanVzdG1lbnRNaWxsaXMpIC8gMTAwMC4wOwotICAgICAgICBKU0NvbnRleHRHcm91cFNl
dEV4ZWN1dGlvblRpbWVMaW1pdChjb250ZXh0R3JvdXAsIHRpbWVMaW1pdCwgZXh0ZW5kVGVybWlu
YXRlQ2FsbGJhY2ssIDApOworICAgICAgICB0aW1lTGltaXQgPSAxMDBfbXMgKyB0aWVyQWRqdXN0
bWVudDsKKyAgICAgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4
dEdyb3VwLCB0aW1lTGltaXQuc2Vjb25kcygpLCBleHRlbmRUZXJtaW5hdGVDYWxsYmFjaywgMCk7
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIHRpbWVCZWZvcmVFeHRlbmRlZERlYWRs
aW5lID0gMjUwICsgdGllckFkanVzdG1lbnRNaWxsaXM7Ci0gICAgICAgICAgICB1bnNpZ25lZCB0
aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lID0gNjAwICsgdGllckFkanVzdG1lbnRNaWxsaXM7Ci0g
ICAgICAgICAgICB1bnNpZ25lZCBtYXhCdXN5TG9vcFRpbWUgPSA3NTAgKyB0aWVyQWRqdXN0bWVu
dE1pbGxpczsKKyAgICAgICAgICAgIFNlY29uZHMgdGltZUJlZm9yZUV4dGVuZGVkRGVhZGxpbmUg
PSAyNTBfbXMgKyB0aWVyQWRqdXN0bWVudDsKKyAgICAgICAgICAgIFNlY29uZHMgdGltZUFmdGVy
RXh0ZW5kZWREZWFkbGluZSA9IDYwMF9tcyArIHRpZXJBZGp1c3RtZW50OworICAgICAgICAgICAg
U2Vjb25kcyBtYXhCdXN5TG9vcFRpbWUgPSA3NTBfbXMgKyB0aWVyQWRqdXN0bWVudDsKIAogICAg
ICAgICAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOwogICAgICAgICAgICAgc2NyaXB0
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJmdW5jdGlvbiBmb28oKSB7IHZhciBzdGFydFRpbWUgPSBj
dXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7
IGkrKyk7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gIik7Ci0gICAgICAgICAg
ICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhCdXN5TG9vcFRpbWUgLyAxMDAwLjApOyAv
LyBpbiBzZWNvbmRzLgorICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIobWF4
QnVzeUxvb3BUaW1lLnNlY29uZHMoKSk7IC8vIGluIHNlY29uZHMuCiAgICAgICAgICAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKIAogICAgICAg
ICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
c2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtMzk1LDEyICszOTMs
MTIgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgYXV0byBlbmRU
aW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgICAgIGF1dG8gZGVsdGFUaW1lID0gZW5k
VGltZSAtIHN0YXJ0VGltZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKChkZWx0YVRp
bWUgPj0gbWlsbGlzZWNvbmRzKHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKSkgJiYgKGRlbHRh
VGltZSA8IG1pbGxpc2Vjb25kcyh0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lKSkgJiYgKGV4dGVu
ZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID09IDIpICYmIGV4Y2VwdGlvbikKKyAgICAgICAgICAg
IGlmICgoZGVsdGFUaW1lID49IHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKSAmJiAoZGVsdGFU
aW1lIDwgdGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkgJiYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxi
YWNrQ2FsbGVkID09IDIpICYmIGV4Y2VwdGlvbikKICAgICAgICAgICAgICAgICBwcmludGYoIlBB
U1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJP
cHRpb25zLnRpZXIpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRl
bHRhVGltZSA8IG1pbGxpc2Vjb25kcyh0aW1lQmVmb3JlRXh0ZW5kZWREZWFkbGluZSkpCisgICAg
ICAgICAgICAgICAgaWYgKGRlbHRhVGltZSA8IHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKQog
ICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBu
b3QgZXh0ZW5kZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAg
ICAgICAgICBlbHNlIGlmIChkZWx0YVRpbWUgPj0gbWlsbGlzZWNvbmRzKHRpbWVBZnRlckV4dGVu
ZGVkRGVhZGxpbmUpKQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSB0aW1l
QWZ0ZXJFeHRlbmRlZERlYWRsaW5lKQogICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6
ICVzIHNjcmlwdCBkaWQgbm90IHRpbWVvdXQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tD
YWxsZWQgPCAxKQpAQCAtNDE3LDE0ICs0MTUsMTQgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGlt
aXQoKQogCiAjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCiAgICAgICAgIC8qIFRlc3Qgc2NyaXB0
IHRpbWVvdXQgZnJvbSBkaXNwYXRjaCBxdWV1ZTogKi8KLSAgICAgICAgdGltZUxpbWl0ID0gKDEw
MCArIHRpZXJBZGp1c3RtZW50TWlsbGlzKSAvIDEwMDAuMDsKLSAgICAgICAgSlNDb250ZXh0R3Jv
dXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4dEdyb3VwLCB0aW1lTGltaXQsIGRpc3BhdGNo
VGVybWl0YXRlQ2FsbGJhY2ssIDApOworICAgICAgICB0aW1lTGltaXQgPSAxMDBfbXMgKyB0aWVy
QWRqdXN0bWVudDsKKyAgICAgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQo
Y29udGV4dEdyb3VwLCB0aW1lTGltaXQuc2Vjb25kcygpLCBkaXNwYXRjaFRlcm1pdGF0ZUNhbGxi
YWNrLCAwKTsKICAgICAgICAgewotICAgICAgICAgICAgdW5zaWduZWQgdGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQgPSAzMDAgKyB0aWVyQWRqdXN0bWVudE1pbGxpczsKKyAgICAgICAg
ICAgIFNlY29uZHMgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQgPSAzMDBfbXMgKyB0
aWVyQWRqdXN0bWVudDsKIAogICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVy
OwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJmdW5jdGlvbiBmb28o
KSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRU
aW1lID4gIik7Ci0gICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCAvIDEwMDAuMCk7CisgICAgICAgICAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNv
bmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFr
OyB9IH0gZm9vKCk7Iik7CiAKICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKQEAgLTQ0MywxMSArNDQxLDExIEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0
KCkKICAgICAgICAgICAgIGJvb2wgZGlkU3luY2hyb25pemUgPSBmYWxzZTsKICAgICAgICAgICAg
IGJvb2wmIGRpZFN5bmNocm9uaXplUmVmID0gZGlkU3luY2hyb25pemU7CiAKLSAgICAgICAgICAg
IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgc3RhcnRUaW1lOwotICAgICAgICAgICAgc3RkOjpj
aHJvbm86Om1pY3Jvc2Vjb25kcyBlbmRUaW1lOworICAgICAgICAgICAgU2Vjb25kcyBzdGFydFRp
bWU7CisgICAgICAgICAgICBTZWNvbmRzIGVuZFRpbWU7CiAKLSAgICAgICAgICAgIHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHMmIHN0YXJ0VGltZVJlZiA9IHN0YXJ0VGltZTsKLSAgICAgICAgICAg
IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMmIGVuZFRpbWVSZWYgPSBlbmRUaW1lOworICAgICAg
ICAgICAgU2Vjb25kcyYgc3RhcnRUaW1lUmVmID0gc3RhcnRUaW1lOworICAgICAgICAgICAgU2Vj
b25kcyYgZW5kVGltZVJlZiA9IGVuZFRpbWU7CiAKICAgICAgICAgICAgIGRpc3BhdGNoX2dyb3Vw
X3QgZ3JvdXAgPSBkaXNwYXRjaF9ncm91cF9jcmVhdGUoKTsKICAgICAgICAgICAgIGRpc3BhdGNo
X2dyb3VwX2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKDAsIDApLCBeewpA
QCAtNDYyLDEwICs0NjAsMTAgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAg
ICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhzeW5jTG9jayk7CiAgICAgICAgICAgICBzeW5j
aHJvbml6ZS53YWl0KHN5bmNMb2NrLCBbJl0geyByZXR1cm4gZGlkU3luY2hyb25pemU7IH0pOwog
Ci0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25kcyh0
aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpICYmIGRpc3BhdGNoVGVybWluYXRlQ2Fs
bGJhY2tDYWxsZWQpCisgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRp
bWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBkaXNwYXRjaFRlcm1pbmF0ZUNhbGxi
YWNrQ2FsbGVkKQogICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IG9uIGRp
c3BhdGNoIHF1ZXVlIHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIp
OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3Rh
cnRUaW1lKSA+PSBtaWxsaXNlY29uZHModGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQp
KQorICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVy
V2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCiAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJ
TDogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRl
cm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3Qg
Y2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDJkMjEyMDdkNmYyYmRhYjJkZWFkM2Q5OTA5OWNk
NjNiYTUwN2ZhZmEuLmNkMWVkZDA4MzJkY2M1NzI4ZDM2MzM2MjRmYTNlM2FlOTVhMzVhMmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0zMjgs
NyArMzI4LDcgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soVk0qIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgQ29weVBhcnNlZEJsb2NrVGFnLCBDb2RlQmxvY2sKICAgICAsIG1fb3NyRXhpdENvdW50
ZXIoMCkKICAgICAsIG1fb3B0aW1pemF0aW9uRGVsYXlDb3VudGVyKDApCiAgICAgLCBtX3Jlb3B0
aW1pemF0aW9uUmV0cnlDb3VudGVyKDApCi0gICAgLCBtX2NyZWF0aW9uVGltZShzdGQ6OmNocm9u
bzo6c3RlYWR5X2Nsb2NrOjpub3coKSkKKyAgICAsIG1fY3JlYXRpb25UaW1lKE1vbm90b25pY1Rp
bWU6Om5vdygpKQogewogICAgIG1fdmlzaXRXZWFrbHlIYXNCZWVuQ2FsbGVkID0gZmFsc2U7CiAK
QEAgLTM4Niw3ICszODYsNyBAQCBDb2RlQmxvY2s6OkNvZGVCbG9jayhWTSogdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBTY3JpcHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dAogICAgICwgbV9vc3JF
eGl0Q291bnRlcigwKQogICAgICwgbV9vcHRpbWl6YXRpb25EZWxheUNvdW50ZXIoMCkKICAgICAs
IG1fcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXIoMCkKLSAgICAsIG1fY3JlYXRpb25UaW1lKHN0
ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpKQorICAgICwgbV9jcmVhdGlvblRpbWUoTW9u
b3RvbmljVGltZTo6bm93KCkpCiB7CiAgICAgbV92aXNpdFdlYWtseUhhc0JlZW5DYWxsZWQgPSBm
YWxzZTsKIApAQCAtMTA4OSwzNiArMTA4OSwzNiBAQCBib29sIENvZGVCbG9jazo6c2hvdWxkSmV0
dGlzb25EdWVUb1dlYWtSZWZlcmVuY2UoKQogICAgIHJldHVybiAhSGVhcDo6aXNNYXJrZWQodGhp
cyk7CiB9CiAKLXN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVUb0xpdmUoSklU
Q29kZTo6SklUVHlwZSBqaXRUeXBlKQorc3RhdGljIFNlY29uZHMgdGltZVRvTGl2ZShKSVRDb2Rl
OjpKSVRUeXBlIGppdFR5cGUpCiB7CiAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUVhZ2Vy
Q29kZUJsb2NrSmV0dGlzb25UaW1pbmcoKSkpIHsKICAgICAgICAgc3dpdGNoIChqaXRUeXBlKSB7
CiAgICAgICAgIGNhc2UgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuazoKLSAgICAgICAgICAgIHJl
dHVybiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwKTsKKyAgICAgICAgICAgIHJldHVybiAx
MF9tczsKICAgICAgICAgY2FzZSBKSVRDb2RlOjpCYXNlbGluZUpJVDoKLSAgICAgICAgICAgIHJl
dHVybiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwICsgMjApOworICAgICAgICAgICAgcmV0
dXJuIDMwX21zOwogICAgICAgICBjYXNlIEpJVENvZGU6OkRGR0pJVDoKLSAgICAgICAgICAgIHJl
dHVybiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDQwKTsKKyAgICAgICAgICAgIHJldHVybiA0
MF9tczsKICAgICAgICAgY2FzZSBKSVRDb2RlOjpGVExKSVQ6Ci0gICAgICAgICAgICByZXR1cm4g
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygxMjApOworICAgICAgICAgICAgcmV0dXJuIDEyMF9t
czsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzOjptYXgoKTsKKyAgICAgICAgICAgIHJldHVybiBTZWNvbmRzOjppbmZpbml0eSgp
OwogICAgICAgICB9CiAgICAgfQogCiAgICAgc3dpdGNoIChqaXRUeXBlKSB7CiAgICAgY2FzZSBK
SVRDb2RlOjpJbnRlcnByZXRlclRodW5rOgotICAgICAgICByZXR1cm4gc3RkOjpjaHJvbm86OmR1
cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oc3RkOjpjaHJvbm86OnNlY29u
ZHMoNSkpOworICAgICAgICByZXR1cm4gNV9zOwogICAgIGNhc2UgSklUQ29kZTo6QmFzZWxpbmVK
SVQ6CiAgICAgICAgIC8vIEVmZmVjdGl2ZWx5IDEwIGFkZGl0aW9uYWwgc2Vjb25kcywgc2luY2Ug
QmFzZWxpbmVKSVQgYW5kCiAgICAgICAgIC8vIEludGVycHJldGVyVGh1bmsgc2hhcmUgYSBDb2Rl
QmxvY2suCi0gICAgICAgIHJldHVybiBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzPihzdGQ6OmNocm9ubzo6c2Vjb25kcyg1ICsgMTApKTsKKyAgICAg
ICAgcmV0dXJuIDE1X3M7CiAgICAgY2FzZSBKSVRDb2RlOjpERkdKSVQ6Ci0gICAgICAgIHJldHVy
biBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPihz
dGQ6OmNocm9ubzo6c2Vjb25kcygyMCkpOworICAgICAgICByZXR1cm4gMjBfczsKICAgICBjYXNl
IEpJVENvZGU6OkZUTEpJVDoKLSAgICAgICAgcmV0dXJuIHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9j
YXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDYwKSk7
CisgICAgICAgIHJldHVybiA2MF9zOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzOjptYXgoKTsKKyAgICAgICAgcmV0dXJuIFNlY29uZHM6Omlu
ZmluaXR5KCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgKaW5kZXggNzBhNzZhYzIyMDU4ZWQwZTUxYjI4OWExMTliMTU0YjIzN2Y3ZjVkZS4u
ZGMzNGU2MzVmYTQzMDVkYzg2ZTgwNWRkMGE0NDMxYmUxN2RkOTA1YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAtOTM5LDEwICs5MzksOSBAQCBjbGFz
cyBDb2RlQmxvY2sgOiBwdWJsaWMgSlNDZWxsIHsKICAgICB2b2lkIHN0cm9uZ2x5VmlzaXRXZWFr
UmVmZXJlbmNlcyhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImLCBTbG90VmlzaXRvciYpOwogICAg
IHZvaWQgdmlzaXRPU1JFeGl0VGFyZ2V0cyhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImLCBTbG90
VmlzaXRvciYpOwogCi0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lU2luY2VDcmVh
dGlvbigpCisgICAgU2Vjb25kcyB0aW1lU2luY2VDcmVhdGlvbigpCiAgICAgewotICAgICAgICBy
ZXR1cm4gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cz4oCi0gICAgICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSAtIG1fY3Jl
YXRpb25UaW1lKTsKKyAgICAgICAgcmV0dXJuIE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9jcmVh
dGlvblRpbWU7CiAgICAgfQogCiAgICAgdm9pZCBjcmVhdGVSYXJlRGF0YUlmTmVjZXNzYXJ5KCkK
QEAgLTEwMjcsNyArMTAyNiw3IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBKU0NlbGwgewog
ICAgIHVpbnQxNl90IG1fb3B0aW1pemF0aW9uRGVsYXlDb3VudGVyOwogICAgIHVpbnQxNl90IG1f
cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXI7CiAKLSAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Ns
b2NrOjp0aW1lX3BvaW50IG1fY3JlYXRpb25UaW1lOworICAgIE1vbm90b25pY1RpbWUgbV9jcmVh
dGlvblRpbWU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmFyZURhdGE+IG1fcmFyZURhdGE7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmls
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5j
cHAKaW5kZXggM2JjZjZjMzY1ZDBhOTA0OTdkZDY2MTFkMjYyYjk3ZThhMDY0N2UwZC4uOTcyN2Mx
OGZkYmNjMGQ1ZTFiOWIyMjdkZmZkMzgyMWZjZDZjZTdjYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKQEAgLTI3OCw3ICsyNzgs
NyBAQCBTYW1wbGluZ1Byb2ZpbGVyOjpTYW1wbGluZ1Byb2ZpbGVyKFZNJiB2bSwgUmVmUHRyPFN0
b3B3YXRjaD4mJiBzdG9wd2F0Y2gpCiAgICAgOiBtX3ZtKHZtKQogICAgICwgbV93ZWFrUmFuZG9t
KCkKICAgICAsIG1fc3RvcHdhdGNoKFdURk1vdmUoc3RvcHdhdGNoKSkKLSAgICAsIG1fdGltaW5n
SW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyhPcHRpb25zOjpzYW1wbGVJbnRlcnZh
bCgpKSkKKyAgICAsIG1fdGltaW5nSW50ZXJ2YWwoU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhP
cHRpb25zOjpzYW1wbGVJbnRlcnZhbCgpKSkKICAgICAsIG1faXNQYXVzZWQoZmFsc2UpCiAgICAg
LCBtX2lzU2h1dERvd24oZmFsc2UpCiB7CkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBTYW1wbGlu
Z1Byb2ZpbGVyOjpjcmVhdGVUaHJlYWRJZk5lY2Vzc2FyeShjb25zdCBBYnN0cmFjdExvY2tlciYp
CiB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnRpbWVyTG9vcCgpCiB7CiAgICAgd2hpbGUgKHRydWUp
IHsKLSAgICAgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBzdGFja1RyYWNlUHJvY2Vzc2lu
Z1RpbWUgPSBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzKDApOworICAgICAgICBTZWNvbmRzIHN0
YWNrVHJhY2VQcm9jZXNzaW5nVGltZSA9IDBfczsKICAgICAgICAgewogICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShtX2lzU2h1
dERvd24pKQpAQCAtMzI3LDEyICszMjcsMTIgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjp0aW1l
ckxvb3AoKQogICAgICAgICAvLyB3aXRoIHNvbWUgc3lzdGVtIHByb2Nlc3Mgc3VjaCBhcyBhIHNj
aGVkdWxlZCBjb250ZXh0IHN3aXRjaC4KICAgICAgICAgLy8gaHR0cDovL3Bsdi5jb2xvcmFkby5l
ZHUvcGFwZXJzL215dGtvd2ljei1wbGRpMTAucGRmCiAgICAgICAgIGRvdWJsZSByYW5kb21TaWdu
ZWROdW1iZXIgPSAobV93ZWFrUmFuZG9tLmdldCgpICogMi4wKSAtIDEuMDsgLy8gQSByYW5kb20g
bnVtYmVyIGJldHdlZW4gWy0xLCAxKS4KLSAgICAgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25k
cyByYW5kb21GbHVjdHVhdGlvbiA9IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMoc3RhdGljX2Nh
c3Q8aW50NjRfdD4ocmFuZG9tU2lnbmVkTnVtYmVyICogc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3Rp
bWluZ0ludGVydmFsLmNvdW50KCkpICogMC4yMGwpKTsKLSAgICAgICAgc3RkOjp0aGlzX3RocmVh
ZDo6c2xlZXBfZm9yKG1fdGltaW5nSW50ZXJ2YWwgLSBzdGQ6Om1pbihtX3RpbWluZ0ludGVydmFs
LCBzdGFja1RyYWNlUHJvY2Vzc2luZ1RpbWUpICsgcmFuZG9tRmx1Y3R1YXRpb24pOworICAgICAg
ICBTZWNvbmRzIHJhbmRvbUZsdWN0dWF0aW9uID0gbV90aW1pbmdJbnRlcnZhbCAqIDAuMiAqIHJh
bmRvbVNpZ25lZE51bWJlcjsKKyAgICAgICAgV1RGOjpzbGVlcChtX3RpbWluZ0ludGVydmFsIC0g
c3RkOjptaW4obV90aW1pbmdJbnRlcnZhbCwgc3RhY2tUcmFjZVByb2Nlc3NpbmdUaW1lKSArIHJh
bmRvbUZsdWN0dWF0aW9uKTsKICAgICB9CiB9CiAKLXZvaWQgU2FtcGxpbmdQcm9maWxlcjo6dGFr
ZVNhbXBsZShjb25zdCBBYnN0cmFjdExvY2tlciYsIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMm
IHN0YWNrVHJhY2VQcm9jZXNzaW5nVGltZSkKK3ZvaWQgU2FtcGxpbmdQcm9maWxlcjo6dGFrZVNh
bXBsZShjb25zdCBBYnN0cmFjdExvY2tlciYsIFNlY29uZHMmIHN0YWNrVHJhY2VQcm9jZXNzaW5n
VGltZSkKIHsKICAgICBBU1NFUlQobV9sb2NrLmlzTG9ja2VkKCkpOwogICAgIGlmIChtX3ZtLmVu
dHJ5U2NvcGUpIHsKQEAgLTM5Miw3ICszOTIsNyBAQCB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnRh
a2VTYW1wbGUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbgog
CiAgICAgICAgICAgICBtX2pzY0V4ZWN1dGlvblRocmVhZC0+cmVzdW1lKCk7CiAKLSAgICAgICAg
ICAgIGF1dG8gc3RhcnRUaW1lID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7Cisg
ICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgICAg
ICAgICAgLy8gV2UgY2FuIG5vdyB1c2UgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgbWFsbG9jLCBhbmQg
ZG8gb3RoZXIgaW50ZXJlc3RpbmcgdGhpbmdzLCBhZ2Fpbi4KIAogICAgICAgICAgICAgLy8gRklY
TUU6IEl0J2QgYmUgaW50ZXJlc3RpbmcgdG8gdGFrZSBkYXRhIGFib3V0IHRoZSBwcm9ncmFtJ3Mg
c3RhdGUgd2hlbgpAQCAtNDEzLDggKzQxMyw4IEBAIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6dGFr
ZVNhbXBsZShjb25zdCBBYnN0cmFjdExvY2tlciYsIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uCiAg
ICAgICAgICAgICAgICAgICAgIG1fY3VycmVudEZyYW1lcy5ncm93KG1fY3VycmVudEZyYW1lcy5z
aXplKCkgKiAxLjI1KTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byBlbmRUaW1l
ID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7Ci0gICAgICAgICAgICBzdGFja1Ry
YWNlUHJvY2Vzc2luZ1RpbWUgPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9u
bzo6bWljcm9zZWNvbmRzPihlbmRUaW1lIC0gc3RhcnRUaW1lKTsKKyAgICAgICAgICAgIGF1dG8g
ZW5kVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgICAgICAgICAgc3RhY2tUcmFjZVBy
b2Nlc3NpbmdUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTsKICAgICAgICAgfQogICAgIH0KIH0K
QEAgLTk4MCw3ICs5ODAsNyBAQCB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnJlcG9ydFRvcEZ1bmN0
aW9ucyhQcmludFN0cmVhbSYgb3V0KQogICAgIH07CiAKICAgICBpZiAoT3B0aW9uczo6c2FtcGxp
bmdQcm9maWxlclRvcEZ1bmN0aW9uc0NvdW50KCkpIHsKLSAgICAgICAgb3V0LnByaW50KCJcblxu
U2FtcGxpbmcgcmF0ZTogIiwgbV90aW1pbmdJbnRlcnZhbC5jb3VudCgpLCAiIG1pY3Jvc2Vjb25k
c1xuIik7CisgICAgICAgIG91dC5wcmludCgiXG5cblNhbXBsaW5nIHJhdGU6ICIsIG1fdGltaW5n
SW50ZXJ2YWwubWljcm9zZWNvbmRzKCksICIgbWljcm9zZWNvbmRzXG4iKTsKICAgICAgICAgb3V0
LnByaW50KCJUb3AgZnVuY3Rpb25zIGFzIDxudW1TYW1wbGVzICAnZnVuY3Rpb25OYW1lOnNvdXJj
ZUlEJz5cbiIpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE9wdGlvbnM6OnNhbXBs
aW5nUHJvZmlsZXJUb3BGdW5jdGlvbnNDb3VudCgpOyBpKyspIHsKICAgICAgICAgICAgIGF1dG8g
cGFpciA9IHRha2VNYXgoKTsKQEAgLTEwNTMsNyArMTA1Myw3IEBAIHZvaWQgU2FtcGxpbmdQcm9m
aWxlcjo6cmVwb3J0VG9wQnl0ZWNvZGVzKFByaW50U3RyZWFtJiBvdXQpCiAgICAgfTsKIAogICAg
IGlmIChPcHRpb25zOjpzYW1wbGluZ1Byb2ZpbGVyVG9wQnl0ZWNvZGVzQ291bnQoKSkgewotICAg
ICAgICBvdXQucHJpbnQoIlxuXG5TYW1wbGluZyByYXRlOiAiLCBtX3RpbWluZ0ludGVydmFsLmNv
dW50KCksICIgbWljcm9zZWNvbmRzXG4iKTsKKyAgICAgICAgb3V0LnByaW50KCJcblxuU2FtcGxp
bmcgcmF0ZTogIiwgbV90aW1pbmdJbnRlcnZhbC5taWNyb3NlY29uZHMoKSwgIiBtaWNyb3NlY29u
ZHNcbiIpOwogICAgICAgICBvdXQucHJpbnQoIkhvdHRlc3QgYnl0ZWNvZGVzIGFzIDxudW1TYW1w
bGVzICAgJ2Z1bmN0aW9uTmFtZSNoYXNoOkpJVFR5cGU6Ynl0ZWNvZGVJbmRleCc+XG4iKTsKICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBPcHRpb25zOjpzYW1wbGluZ1Byb2ZpbGVyVG9w
Qnl0ZWNvZGVzQ291bnQoKTsgaSsrKSB7CiAgICAgICAgICAgICBhdXRvIHBhaXIgPSB0YWtlTWF4
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1By
b2ZpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVy
LmgKaW5kZXggMzhhMTc5Y2E4YzZmMWFlY2M4YzAzY2Q2NDQwYWY4NjcwZmRmOWRhYi4uN2Q5MWFk
NDhlNTJkNTI3NjI5YWM0M2ZhMTk5OGY3OThiYmNhOTQxYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtMTYyLDcgKzE2Miw3IEBA
IGNsYXNzIFNhbXBsaW5nUHJvZmlsZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2Ft
cGxpbmdQcm9maWxlcj4gewogICAgIHZvaWQgc2h1dGRvd24oKTsKICAgICB2b2lkIHZpc2l0KFNs
b3RWaXNpdG9yJik7CiAgICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQotICAg
IHZvaWQgc2V0VGltaW5nSW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBpbnRlcnZh
bCkgeyBtX3RpbWluZ0ludGVydmFsID0gaW50ZXJ2YWw7IH0KKyAgICB2b2lkIHNldFRpbWluZ0lu
dGVydmFsKFNlY29uZHMgaW50ZXJ2YWwpIHsgbV90aW1pbmdJbnRlcnZhbCA9IGludGVydmFsOyB9
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RhcnQoY29u
c3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICBWZWN0b3I8U3RhY2tUcmFjZT4gcmVsZWFzZVN0YWNr
VHJhY2VzKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CkBAIC0xODUsMTQgKzE4NSwxNCBAQCBjbGFz
cyBTYW1wbGluZ1Byb2ZpbGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNhbXBsaW5n
UHJvZmlsZXI+IHsKIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVUaHJlYWRJZk5lY2Vzc2FyeShj
b25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIHZvaWQgdGltZXJMb29wKCk7Ci0gICAgdm9pZCB0
YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25k
cyYgc3RhY2tUcmFjZVByb2Nlc3NpbmdUaW1lKTsKKyAgICB2b2lkIHRha2VTYW1wbGUoY29uc3Qg
QWJzdHJhY3RMb2NrZXImLCBTZWNvbmRzJiBzdGFja1RyYWNlUHJvY2Vzc2luZ1RpbWUpOwogCiAg
ICAgVk0mIG1fdm07CiAgICAgV2Vha1JhbmRvbSBtX3dlYWtSYW5kb207CiAgICAgUmVmUHRyPFN0
b3B3YXRjaD4gbV9zdG9wd2F0Y2g7CiAgICAgVmVjdG9yPFN0YWNrVHJhY2U+IG1fc3RhY2tUcmFj
ZXM7CiAgICAgVmVjdG9yPFVucHJvY2Vzc2VkU3RhY2tUcmFjZT4gbV91bnByb2Nlc3NlZFN0YWNr
VHJhY2VzOwotICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbV90aW1pbmdJbnRlcnZhbDsK
KyAgICBTZWNvbmRzIG1fdGltaW5nSW50ZXJ2YWw7CiAgICAgZG91YmxlIG1fbGFzdFRpbWU7CiAg
ICAgTG9jayBtX2xvY2s7CiAgICAgUmVmUHRyPFRocmVhZD4gbV90aHJlYWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggM2ZkMmFmZDNjZmI0OWRkNWQ2YjdlMzVmYTE2ODk0
Zjk1YzEyNzc3Yi4uMWJlOGIwMjMwYzQ0MzVjMmJkN2RmYmI1N2M3ZDI1ZjczOGIwZDlhMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtNDE4LDkgKzQxOCw4IEBAIFZNOjpW
TShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAgICAgc2V0U2hvdWxkQnVp
bGRQQ1RvQ29kZU9yaWdpbk1hcHBpbmcoKTsKIAogICAgIGlmIChPcHRpb25zOjp3YXRjaGRvZygp
KSB7Ci0gICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dE1pbGxpcyhPcHRp
b25zOjp3YXRjaGRvZygpKTsKICAgICAgICAgV2F0Y2hkb2cmIHdhdGNoZG9nID0gZW5zdXJlV2F0
Y2hkb2coKTsKLSAgICAgICAgd2F0Y2hkb2cuc2V0VGltZUxpbWl0KHRpbWVvdXRNaWxsaXMpOwor
ICAgICAgICB3YXRjaGRvZy5zZXRUaW1lTGltaXQoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhP
cHRpb25zOjp3YXRjaGRvZygpKSk7CiAgICAgfQogCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgYW55
IHN0dWJzIHRoYXQgdGhlIEpJVCBpcyBnb2luZyB0byB1c2UgYXJlIGluaXRpYWxpemVkIGluIG5v
bi1jb21waWxhdGlvbiB0aHJlYWRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV2F0Y2hkb2cuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0
Y2hkb2cuY3BwCmluZGV4IDI2NzEyMWMyZmQyZmJkY2QxODY2YmQxZWNiOWIyMDVjZDQyMThiZmYu
LjQ1NDU5NTU0M2E2MmZjNjdlMzg1OWQ5NjJlZWYyMmM1MzhkN2Y2ZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAKQEAgLTMyLDE5ICszMiwxMyBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAotY29uc3Qgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBXYXRjaGRv
Zzo6bm9UaW1lTGltaXQgPSBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzOjptYXgoKTsKLQotc3Rh
dGljIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgY3VycmVudFdhbGxDbG9ja1RpbWUoKQotewot
ICAgIGF1dG8gc3RlYWR5VGltZVNpbmNlRXBvY2ggPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2Nr
Ojpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCk7Ci0gICAgcmV0dXJuIHN0ZDo6Y2hyb25vOjpkdXJh
dGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM+KHN0ZWFkeVRpbWVTaW5jZUVwb2No
KTsKLX0KK2NvbnN0IFNlY29uZHMgV2F0Y2hkb2c6Om5vVGltZUxpbWl0IHsgU2Vjb25kczo6aW5m
aW5pdHkoKSB9OwogCiBXYXRjaGRvZzo6V2F0Y2hkb2coVk0qIHZtKQogICAgIDogbV92bSh2bSkK
ICAgICAsIG1fdGltZUxpbWl0KG5vVGltZUxpbWl0KQogICAgICwgbV9jcHVEZWFkbGluZShub1Rp
bWVMaW1pdCkKLSAgICAsIG1fd2FsbENsb2NrRGVhZGxpbmUobm9UaW1lTGltaXQpCisgICAgLCBt
X3dhbGxDbG9ja0RlYWRsaW5lKE1vbm90b25pY1RpbWU6OmluZmluaXR5KCkpCiAgICAgLCBtX2Nh
bGxiYWNrKDApCiAgICAgLCBtX2NhbGxiYWNrRGF0YTEoMCkKICAgICAsIG1fY2FsbGJhY2tEYXRh
MigwKQpAQCAtNTIsNyArNDYsNyBAQCBXYXRjaGRvZzo6V2F0Y2hkb2coVk0qIHZtKQogewogfQog
Ci12b2lkIFdhdGNoZG9nOjpzZXRUaW1lTGltaXQoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBs
aW1pdCwKK3ZvaWQgV2F0Y2hkb2c6OnNldFRpbWVMaW1pdChTZWNvbmRzIGxpbWl0LAogICAgIFNo
b3VsZFRlcm1pbmF0ZUNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBkYXRhMSwgdm9pZCogZGF0YTIp
CiB7CiAgICAgQVNTRVJUKG1fdm0tPmN1cnJlbnRUaHJlYWRJc0hvbGRpbmdBUElMb2NrKCkpOwpA
QCAtNjksMTIgKzYzLDEyIEBAIHZvaWQgV2F0Y2hkb2c6OnNldFRpbWVMaW1pdChzdGQ6OmNocm9u
bzo6bWljcm9zZWNvbmRzIGxpbWl0LAogYm9vbCBXYXRjaGRvZzo6c2hvdWxkVGVybWluYXRlKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBU1NFUlQobV92bS0+Y3VycmVudFRocmVhZElzSG9sZGlu
Z0FQSUxvY2soKSk7Ci0gICAgaWYgKGN1cnJlbnRXYWxsQ2xvY2tUaW1lKCkgPCBtX3dhbGxDbG9j
a0RlYWRsaW5lKQorICAgIGlmIChNb25vdG9uaWNUaW1lOjpub3coKSA8IG1fd2FsbENsb2NrRGVh
ZGxpbmUpCiAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gSnVzdCBhIHN0YWxlIHRpbWVyIGZpcmlu
Zy4gTm90aGluZyB0byBkby4KIAogICAgIC8vIFNldCBtX3dhbGxDbG9ja0RlYWRsaW5lIHRvIG5v
VGltZUxpbWl0IGhlcmUgc28gdGhhdCB3ZSBjYW4gcmVqZWN0IGFsbCBmdXR1cmUKICAgICAvLyBz
cHVyaW91cyB3YWtlcy4KLSAgICBtX3dhbGxDbG9ja0RlYWRsaW5lID0gbm9UaW1lTGltaXQ7Cisg
ICAgbV93YWxsQ2xvY2tEZWFkbGluZSA9IE1vbm90b25pY1RpbWU6OmluZmluaXR5KCk7CiAKICAg
ICBhdXRvIGNwdVRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgIGlmIChjcHVUaW1lIDwgbV9j
cHVEZWFkbGluZSkgewpAQCAtMTMwLDcgKzEyNCw3IEBAIHZvaWQgV2F0Y2hkb2c6OmV4aXRlZFZN
KCkKICAgICBtX2hhc0VudGVyZWRWTSA9IGZhbHNlOwogfQogCi12b2lkIFdhdGNoZG9nOjpzdGFy
dFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgdGltZUxpbWl0KQordm9pZCBXYXRjaGRv
Zzo6c3RhcnRUaW1lcihTZWNvbmRzIHRpbWVMaW1pdCkKIHsKICAgICBBU1NFUlQobV9oYXNFbnRl
cmVkVk0pOwogICAgIEFTU0VSVChtX3ZtLT5jdXJyZW50VGhyZWFkSXNIb2xkaW5nQVBJTG9jaygp
KTsKQEAgLTEzOCw3ICsxMzIsNyBAQCB2b2lkIFdhdGNoZG9nOjpzdGFydFRpbWVyKHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHMgdGltZUxpbWl0KQogICAgIEFTU0VSVCh0aW1lTGltaXQgPD0gbV90
aW1lTGltaXQpOwogCiAgICAgbV9jcHVEZWFkbGluZSA9IGN1cnJlbnRDUFVUaW1lKCkgKyB0aW1l
TGltaXQ7Ci0gICAgYXV0byB3YWxsQ2xvY2tUaW1lID0gY3VycmVudFdhbGxDbG9ja1RpbWUoKTsK
KyAgICBhdXRvIHdhbGxDbG9ja1RpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICBhdXRv
IHdhbGxDbG9ja0RlYWRsaW5lID0gd2FsbENsb2NrVGltZSArIHRpbWVMaW1pdDsKIAogICAgIGlm
ICgod2FsbENsb2NrVGltZSA8IG1fd2FsbENsb2NrRGVhZGxpbmUpCkBAIC0xNTMsNyArMTQ3LDcg
QEAgdm9pZCBXYXRjaGRvZzo6c3RhcnRUaW1lcihzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIHRp
bWVMaW1pdCkKICAgICAvLyBTbywgd2UgYWx3YXlzIG5lZWQgdG8gbnVsbCBjaGVjayBtX3ZtIGJl
Zm9yZSB1c2luZyBpdC4gVGhlIFZNIHdpbGwgbm90aWZ5IHRoZSBXYXRjaGRvZwogICAgIC8vIHZp
YSB3aWxsRGVzdHJveVZNKCkgYmVmb3JlIGl0IGdvZXMgYXdheS4KICAgICBSZWZQdHI8V2F0Y2hk
b2c+IHByb3RlY3RlZFRoaXMgPSB0aGlzOwotICAgIG1fdGltZXJRdWV1ZS0+ZGlzcGF0Y2hBZnRl
cihTZWNvbmRzOjpmcm9tTWljcm9zZWNvbmRzKHRpbWVMaW1pdC5jb3VudCgpKSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXNdIHsKKyAgICBtX3RpbWVyUXVldWUtPmRpc3BhdGNoQWZ0ZXIodGltZUxpbWl0
LCBbdGhpcywgcHJvdGVjdGVkVGhpc10gewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xv
Y2spOwogICAgICAgICBpZiAobV92bSkKICAgICAgICAgICAgIG1fdm0tPm5vdGlmeU5lZWRXYXRj
aGRvZ0NoZWNrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
YXRjaGRvZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAppbmRl
eCAyOTMzNjExYzBiZmY0ZjY0OTFiMTljMmFlN2RlM2NmYjIzMmUxOGE1Li5hZTdlZjRmYzI1NDJh
NDY4MWExOTIyY2FkN2ZmYzNiM2ViZWJkOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9XYXRjaGRvZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dhdGNoZG9nLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgV2F0Y2hkb2cgOiBwdWJsaWMg
V1RGOjpUaHJlYWRTYWZlUmVmQ291bnRlZDxXYXRjaGRvZz4gewogICAgIHZvaWQgd2lsbERlc3Ry
b3lWTShWTSopOwogCiAgICAgdHlwZWRlZiBib29sICgqU2hvdWxkVGVybWluYXRlQ2FsbGJhY2sp
KEV4ZWNTdGF0ZSosIHZvaWQqIGRhdGExLCB2b2lkKiBkYXRhMik7Ci0gICAgdm9pZCBzZXRUaW1l
TGltaXQoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBsaW1pdCwgU2hvdWxkVGVybWluYXRlQ2Fs
bGJhY2sgPSAwLCB2b2lkKiBkYXRhMSA9IDAsIHZvaWQqIGRhdGEyID0gMCk7CisgICAgdm9pZCBz
ZXRUaW1lTGltaXQoU2Vjb25kcyBsaW1pdCwgU2hvdWxkVGVybWluYXRlQ2FsbGJhY2sgPSAwLCB2
b2lkKiBkYXRhMSA9IDAsIHZvaWQqIGRhdGEyID0gMCk7CiAKICAgICBib29sIHNob3VsZFRlcm1p
bmF0ZShFeGVjU3RhdGUqKTsKIApAQCAtNTIsMTkgKzUyLDE5IEBAIGNsYXNzIFdhdGNoZG9nIDog
cHVibGljIFdURjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2F0Y2hkb2c+IHsKICAgICB2b2lkIGVu
dGVyZWRWTSgpOwogICAgIHZvaWQgZXhpdGVkVk0oKTsKIAotICAgIHN0YXRpYyBjb25zdCBzdGQ6
OmNocm9ubzo6bWljcm9zZWNvbmRzIG5vVGltZUxpbWl0OworICAgIHN0YXRpYyBjb25zdCBTZWNv
bmRzIG5vVGltZUxpbWl0OwogCiBwcml2YXRlOgotICAgIHZvaWQgc3RhcnRUaW1lcihzdGQ6OmNo
cm9ubzo6bWljcm9zZWNvbmRzIHRpbWVMaW1pdCk7CisgICAgdm9pZCBzdGFydFRpbWVyKFNlY29u
ZHMgdGltZUxpbWl0KTsKICAgICB2b2lkIHN0b3BUaW1lcigpOwogCiAgICAgTG9jayBtX2xvY2s7
IC8vIEd1YXJkcyBhY2Nlc3MgdG8gbV92bS4KICAgICBWTSogbV92bTsKIAotICAgIHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHMgbV90aW1lTGltaXQ7CisgICAgU2Vjb25kcyBtX3RpbWVMaW1pdDsK
IAotICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbV9jcHVEZWFkbGluZTsKLSAgICBzdGQ6
OmNocm9ubzo6bWljcm9zZWNvbmRzIG1fd2FsbENsb2NrRGVhZGxpbmU7CisgICAgU2Vjb25kcyBt
X2NwdURlYWRsaW5lOworICAgIE1vbm90b25pY1RpbWUgbV93YWxsQ2xvY2tEZWFkbGluZTsKIAog
ICAgIGJvb2wgbV9oYXNFbnRlcmVkVk0geyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9DdXJyZW50VGltZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAK
aW5kZXggNzFhZmViZTQ0MTUyN2FkODlhMjA2ZjQ5OTU1Y2M3M2JiZWQ3ZGUxOC4uMTczNWFmNDhl
MDRlNzQ4YTJjNGE3YTllNmY1NWJlZjcxZjhhMDU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvQ3VycmVudFRpbWUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmNwcApA
QCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ3VycmVu
dFRpbWUuaCIKKyNpbmNsdWRlICJNb25vdG9uaWNUaW1lLmgiCiAKICNpbmNsdWRlICJDb25kaXRp
b24uaCIKICNpbmNsdWRlICJMb2NrLmgiCkBAIC0yODAsNyArMjgxLDcgQEAgZG91YmxlIG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpCiAKICNlbmRpZgogCi1zdGQ6OmNocm9ubzo6bWljcm9z
ZWNvbmRzIGN1cnJlbnRDUFVUaW1lKCkKK1NlY29uZHMgY3VycmVudENQVVRpbWUoKQogewogI2lm
IE9TKERBUldJTikKICAgICBtYWNoX21zZ190eXBlX251bWJlcl90IGluZm9Db3VudCA9IFRIUkVB
RF9CQVNJQ19JTkZPX0NPVU5UOwpAQCAtMjkxLDcgKzI5Miw3IEBAIHN0ZDo6Y2hyb25vOjptaWNy
b3NlY29uZHMgY3VycmVudENQVVRpbWUoKQogICAgIHRocmVhZF9pbmZvKHRocmVhZFBvcnQsIFRI
UkVBRF9CQVNJQ19JTkZPLCByZWludGVycHJldF9jYXN0PHRocmVhZF9pbmZvX3Q+KCZpbmZvKSwg
JmluZm9Db3VudCk7CiAgICAgbWFjaF9wb3J0X2RlYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwg
dGhyZWFkUG9ydCk7CiAKLSAgICByZXR1cm4gc3RkOjpjaHJvbm86OnNlY29uZHMoaW5mby51c2Vy
X3RpbWUuc2Vjb25kcyArIGluZm8uc3lzdGVtX3RpbWUuc2Vjb25kcykgKyBzdGQ6OmNocm9ubzo6
bWljcm9zZWNvbmRzKGluZm8udXNlcl90aW1lLm1pY3Jvc2Vjb25kcyArIGluZm8uc3lzdGVtX3Rp
bWUubWljcm9zZWNvbmRzKTsKKyAgICByZXR1cm4gU2Vjb25kcyhpbmZvLnVzZXJfdGltZS5zZWNv
bmRzICsgaW5mby5zeXN0ZW1fdGltZS5zZWNvbmRzKSArIFNlY29uZHM6OmZyb21NaWNyb3NlY29u
ZHMoaW5mby51c2VyX3RpbWUubWljcm9zZWNvbmRzICsgaW5mby5zeXN0ZW1fdGltZS5taWNyb3Nl
Y29uZHMpOwogI2VsaWYgT1MoV0lORE9XUykKICAgICB1bmlvbiB7CiAgICAgICAgIEZJTEVUSU1F
IGZpbGVUaW1lOwpAQCAtMzA0LDEyICszMDUsMTYgQEAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25k
cyBjdXJyZW50Q1BVVGltZSgpCiAgICAgCiAgICAgR2V0VGhyZWFkVGltZXMoR2V0Q3VycmVudFRo
cmVhZCgpLCAmY3JlYXRpb25UaW1lLCAmZXhpdFRpbWUsICZrZXJuZWxUaW1lLmZpbGVUaW1lLCAm
dXNlclRpbWUuZmlsZVRpbWUpOwogCi0gICAgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29u
ZHMoKHVzZXJUaW1lLmZpbGVUaW1lQXNMb25nICsga2VybmVsVGltZS5maWxlVGltZUFzTG9uZykg
LyAxMCk7CisgICAgcmV0dXJuIFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoKHVzZXJUaW1lLmZp
bGVUaW1lQXNMb25nICsga2VybmVsVGltZS5maWxlVGltZUFzTG9uZykgLyAxMCk7CisjZWxpZiBP
UyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkKKyAgICBzdHJ1Y3QgdGltZXNwZWMgdHMgeyB9OworICAg
IGNsb2NrX2dldHRpbWUoQ0xPQ0tfVEhSRUFEX0NQVVRJTUVfSUQsICZ0cyk7CisgICAgcmV0dXJu
IFNlY29uZHModHMudHZfc2VjKSArIFNlY29uZHM6OmZyb21OYW5vc2Vjb25kcyh0cy50dl9uc2Vj
KTsKICNlbHNlCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZXR1cm4gdGhlIHRpbWUgdGhlIGN1
cnJlbnQgdGhyZWFkIGhhcyBzcGVudCBleGVjdXRpbmcuCiAKLSAgICBzdGF0aWMgYXV0byBmaXJz
dFRpbWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKLSAgICByZXR1cm4gc3Rk
OjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcz4oc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgLSBmaXJzdFRpbWUpOworICAgIHN0YXRpYyBNb25v
dG9uaWNUaW1lIGZpcnN0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIHJldHVybiBN
b25vdG9uaWNUaW1lOjpub3coKSAtIGZpcnN0VGltZTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5oIGIvU291cmNlL1dURi93dGYvQ3VycmVudFRp
bWUuaAppbmRleCA3NGIyMzZmNzkxODJiN2U1ZTRkZGZhZjU3Y2U4MjMxMmM1NGVhZDQ3Li5hZmMz
MjVmNzM4NDYwZWYwZWMxMWU5ZWI4ZDUzYTRlZTg4OGViOGZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9DdXJyZW50VGltZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmgK
QEAgLTMyLDggKzMyLDggQEAKICNpZm5kZWYgQ3VycmVudFRpbWVfaAogI2RlZmluZSBDdXJyZW50
VGltZV9oCiAKLSNpbmNsdWRlIDxjaHJvbm8+CiAjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUg
PHd0Zi9TZWNvbmRzLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC02NCw3ICs2NCw3IEBAIGlu
bGluZSBkb3VibGUgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lTVMoKQogLy8gUmV0dXJucyB0
aGUgY3VycmVudCBDUFUgdGltZSBvZiB0aGUgY3VycmVudCB0aHJlYWQuCiAvLyBQcmVjaXNpb24g
dmFyaWVzIGRlcGVuZGluZyBvbiBwbGF0Zm9ybSBidXQgaXMgdXN1YWxseSBhcyBnb29kIG9yIGJl
dHRlcgogLy8gdGhhbiBhIG1pbGxpc2Vjb25kLgotV1RGX0VYUE9SVF9QUklWQVRFIHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHMgY3VycmVudENQVVRpbWUoKTsKK1dURl9FWFBPUlRfUFJJVkFURSBT
ZWNvbmRzIGN1cnJlbnRDUFVUaW1lKCk7CiAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNsZWVw
KGRvdWJsZSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330205</attachid>
            <date>2017-12-26 16:09:11 -0800</date>
            <delta_ts>2017-12-26 16:22:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181165-20171227090910.patch</filename>
            <type>text/plain</type>
            <size>42491</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2Mjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NDc4NTY0MzJjOGM1ZmFlMmIxMWI3ZDY1MmFkM2VhMjc1YjA3YWE2Li41OWRhMzY5ZWQ3NGI1ZjY0
NDI2NGE5NTBjOWU3MmZkZWQwMzE0MjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxNy0xMi0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBSZW1vdmUgc3RkOjpjaHJvbm8gY29tcGxldGVseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMTY1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBy
ZW1vdmVzIHN0ZDo6Y2hyb25vIHVzZSBjb21wbGV0ZWx5IGZyb20gSlNDLgorCisgICAgICAgICog
QVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAgIChKU0NvbnRleHRHcm91cFNldEV4ZWN1dGlv
blRpbWVMaW1pdCk6CisgICAgICAgICogQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3Qu
Y3BwOgorICAgICAgICAoY3VycmVudENQVVRpbWVBc0pTRnVuY3Rpb25DYWxsYmFjayk6CisgICAg
ICAgICh0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxv
Y2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OkNvZGVCbG9jayk6CisgICAgICAgIChK
U0M6OnRpbWVUb0xpdmUpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OnRpbWVTaW5jZUNyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpT
YW1wbGluZ1Byb2ZpbGVyKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6dGltZXJM
b29wKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6dGFrZVNhbXBsZSk6CisgICAg
ICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnJlcG9ydFRvcEZ1bmN0aW9ucyk6CisgICAgICAg
IChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnJlcG9ydFRvcEJ5dGVjb2Rlcyk6CisgICAgICAgICog
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmg6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmls
ZXI6OnNldFRpbWluZ0ludGVydmFsKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAg
ICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1dhdGNoZG9nLmNwcDoKKyAgICAg
ICAgKEpTQzo6V2F0Y2hkb2c6OldhdGNoZG9nKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OnNl
dFRpbWVMaW1pdCk6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpzaG91bGRUZXJtaW5hdGUpOgor
ICAgICAgICAoSlNDOjpXYXRjaGRvZzo6c3RhcnRUaW1lcik6CisgICAgICAgIChKU0M6OmN1cnJl
bnRXYWxsQ2xvY2tUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dhdGNoZG9nLmg6
CisKIDIwMTctMTItMjYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04ocjIyNjI2OSk6IDYwIEpTQyB0ZXN0IGZhaWx1cmVzIG9uIEFSTXY3
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CmluZGV4IGRjNDEyOTE3ZDgwYmJiNTljMTA2Y2YyYjdmZjI0MDczOTYxMDAyNmUuLmNiN2M5YjBl
OWFhNzgwMWYyMWVlODRlNzgzYzBiNTRjNWE1MjMxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTctMTItMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgW0pTQ10gUmVtb3ZlIHN0ZDo6Y2hyb25vIGNvbXBsZXRlbHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTE2NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdURjo6Y3VycmVudENQVVRpbWUgbm93IHJl
dHVybnMgV1RGOjpTZWNvbmRzLgorICAgICAgICBXZSBhbHNvIGFkZCB0aGUgaW1wbGVtZW50YWl0
b24gZm9yIExpbnV4IGFuZCBGcmVlQlNELgorCisgICAgICAgICogd3RmL0N1cnJlbnRUaW1lLmNw
cDoKKyAgICAgICAgKFdURjo6Y3VycmVudENQVVRpbWUpOgorICAgICAgICAqIHd0Zi9DdXJyZW50
VGltZS5oOgorCiAyMDE3LTEyLTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHRyeSB0byBmaXggdGhlIFNpZXJyYSBidWlsZCBh
ZnRlciByMjI2Mjc3LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nv
bnRleHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3Bw
CmluZGV4IGE4MDY1Y2E2N2Q5ODhkODVhMDUyM2Y2ZDFmMWQyMGMwOTMwNzEzODEuLjAyNWViYTRl
OTljYmJkODNiODIyMDc2M2Y1OTYxNWU2OGNlYmUzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKQEAgLTk5LDkgKzk5LDkgQEAgdm9pZCBKU0NvbnRleHRH
cm91cFNldEV4ZWN1dGlvblRpbWVMaW1pdChKU0NvbnRleHRHcm91cFJlZiBncm91cCwgZG91Ymxl
IGxpbWl0LAogICAgIFdhdGNoZG9nJiB3YXRjaGRvZyA9IHZtLmVuc3VyZVdhdGNoZG9nKCk7CiAg
ICAgaWYgKGNhbGxiYWNrKSB7CiAgICAgICAgIHZvaWQqIGNhbGxiYWNrUHRyID0gcmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4oY2FsbGJhY2spOwotICAgICAgICB3YXRjaGRvZy5zZXRUaW1lTGltaXQo
c3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcz4oc3Rk
OjpjaHJvbm86OmR1cmF0aW9uPGRvdWJsZT4obGltaXQpKSwgaW50ZXJuYWxTY3JpcHRUaW1lb3V0
Q2FsbGJhY2ssIGNhbGxiYWNrUHRyLCBjYWxsYmFja0RhdGEpOworICAgICAgICB3YXRjaGRvZy5z
ZXRUaW1lTGltaXQoU2Vjb25kcyB7IGxpbWl0IH0sIGludGVybmFsU2NyaXB0VGltZW91dENhbGxi
YWNrLCBjYWxsYmFja1B0ciwgY2FsbGJhY2tEYXRhKTsKICAgICB9IGVsc2UKLSAgICAgICAgd2F0
Y2hkb2cuc2V0VGltZUxpbWl0KHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25v
OjptaWNyb3NlY29uZHM+KHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxkb3VibGU+KGxpbWl0KSkpOwor
ICAgICAgICB3YXRjaGRvZy5zZXRUaW1lTGltaXQoU2Vjb25kcyB7IGxpbWl0IH0pOwogfQogCiB2
b2lkIEpTQ29udGV4dEdyb3VwQ2xlYXJFeGVjdXRpb25UaW1lTGltaXQoSlNDb250ZXh0R3JvdXBS
ZWYgZ3JvdXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4
ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcAppbmRleCAwNWMwMTE0OGY2MzhiNDI1MDdlYWQw
OTgzYjhjOTg0NDZmOWY4MGRhLi5mOTgyYmIyNTdmNzEyYmEyYjNkNjc1MzkwMDIyZDNjMmJkNTk5
ZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlv
blRpbWVMaW1pdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
RXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJK
YXZhU2NyaXB0LmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogCi0jaW5jbHVkZSA8Y2hyb25vPgog
I2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtNDMsNyArNDIsNiBAQAogI2luY2x1ZGUgPGRp
c3BhdGNoL2Rpc3BhdGNoLmg+CiAjZW5kaWYKIAotdXNpbmcgbmFtZXNwYWNlIHN0ZDo6Y2hyb25v
OwogdXNpbmcgSlNDOjpPcHRpb25zOwogCiBzdGF0aWMgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRl
eHQgPSBudWxscHRyOwpAQCAtNTcsNyArNTUsNyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBjdXJyZW50
Q1BVVGltZUFzSlNGdW5jdGlvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0Ugog
ICAgIFVOVVNFRF9QQVJBTShleGNlcHRpb24pOwogICAgIAogICAgIEFTU0VSVChKU0NvbnRleHRH
ZXRHbG9iYWxDb250ZXh0KGN0eCkgPT0gY29udGV4dCk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtl
TnVtYmVyKGN0eCwgY3VycmVudENQVVRpbWUoKS5jb3VudCgpIC8gMTAwMDAwMC4pOworICAgIHJl
dHVybiBKU1ZhbHVlTWFrZU51bWJlcihjdHgsIGN1cnJlbnRDUFVUaW1lKCkuc2Vjb25kcygpKTsK
IH0KIAogYm9vbCBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwpAQCAt
OTcsNyArOTUsNyBAQCBzdGF0aWMgYm9vbCBkaXNwYXRjaFRlcm1pdGF0ZUNhbGxiYWNrKEpTQ29u
dGV4dFJlZiwgdm9pZCopCiAKIHN0cnVjdCBUaWVyT3B0aW9ucyB7CiAgICAgY29uc3QgY2hhciog
dGllcjsKLSAgICB1bnNpZ25lZCB0aW1lTGltaXRBZGp1c3RtZW50TWlsbGlzOworICAgIFNlY29u
ZHMgdGltZUxpbWl0QWRqdXN0bWVudDsKICAgICBjb25zdCBjaGFyKiBvcHRpb25zU3RyOwogfTsK
IApAQCAtMTIwLDEwICsxMTgsMTAgQEAgc3RhdGljIHZvaWQgdGVzdFJlc2V0QWZ0ZXJUaW1lb3V0
KGJvb2wmIGZhaWxlZCkKIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKIHsKICAgICBzdGF0
aWMgY29uc3QgVGllck9wdGlvbnMgdGllck9wdGlvbnNMaXN0W10gPSB7Ci0gICAgICAgIHsgIkxM
SU5UIiwgICAgMCwgICAiLS11c2VDb25jdXJyZW50SklUPWZhbHNlIC0tdXNlTExJbnQ9dHJ1ZSAt
LXVzZUpJVD1mYWxzZSIgfSwKLSAgICAgICAgeyAiQmFzZWxpbmUiLCAwLCAgICItLXVzZUNvbmN1
cnJlbnRKSVQ9ZmFsc2UgLS11c2VMTEludD10cnVlIC0tdXNlSklUPXRydWUgLS11c2VERkdKSVQ9
ZmFsc2UiIH0sCi0gICAgICAgIHsgIkRGRyIsICAgICAgMjAwLCAgICItLXVzZUNvbmN1cnJlbnRK
SVQ9ZmFsc2UgLS11c2VMTEludD10cnVlIC0tdXNlSklUPXRydWUgLS11c2VERkdKSVQ9dHJ1ZSAt
LXVzZUZUTEpJVD1mYWxzZSIgfSwKLSAgICAgICAgeyAiRlRMIiwgICAgICA1MDAsICItLXVzZUNv
bmN1cnJlbnRKSVQ9ZmFsc2UgLS11c2VMTEludD10cnVlIC0tdXNlSklUPXRydWUgLS11c2VERkdK
SVQ9dHJ1ZSAtLXVzZUZUTEpJVD10cnVlIiB9LAorICAgICAgICB7ICJMTElOVCIsICAgIDBfbXMs
ICAgIi0tdXNlQ29uY3VycmVudEpJVD1mYWxzZSAtLXVzZUxMSW50PXRydWUgLS11c2VKSVQ9ZmFs
c2UiIH0sCisgICAgICAgIHsgIkJhc2VsaW5lIiwgMF9tcywgICAiLS11c2VDb25jdXJyZW50SklU
PWZhbHNlIC0tdXNlTExJbnQ9dHJ1ZSAtLXVzZUpJVD10cnVlIC0tdXNlREZHSklUPWZhbHNlIiB9
LAorICAgICAgICB7ICJERkciLCAgICAgIDIwMF9tcywgICAiLS11c2VDb25jdXJyZW50SklUPWZh
bHNlIC0tdXNlTExJbnQ9dHJ1ZSAtLXVzZUpJVD10cnVlIC0tdXNlREZHSklUPXRydWUgLS11c2VG
VExKSVQ9ZmFsc2UiIH0sCisgICAgICAgIHsgIkZUTCIsICAgICAgNTAwX21zLCAiLS11c2VDb25j
dXJyZW50SklUPWZhbHNlIC0tdXNlTExJbnQ9dHJ1ZSAtLXVzZUpJVD10cnVlIC0tdXNlREZHSklU
PXRydWUgLS11c2VGVExKSVQ9dHJ1ZSIgfSwKICAgICB9OwogICAgIAogICAgIGJvb2wgZmFpbGVk
ID0gZmFsc2U7CkBAIC0xMzcsOCArMTM1LDggQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQo
KQogCiAgICAgICAgIE9wdGlvbnM6OnNldE9wdGlvbnModGllck9wdGlvbnMub3B0aW9uc1N0cik7
CiAgICAgICAgIAotICAgICAgICB1bnNpZ25lZCB0aWVyQWRqdXN0bWVudE1pbGxpcyA9IHRpZXJP
cHRpb25zLnRpbWVMaW1pdEFkanVzdG1lbnRNaWxsaXM7Ci0gICAgICAgIGRvdWJsZSB0aW1lTGlt
aXQ7CisgICAgICAgIFNlY29uZHMgdGllckFkanVzdG1lbnQgPSB0aWVyT3B0aW9ucy50aW1lTGlt
aXRBZGp1c3RtZW50OworICAgICAgICBTZWNvbmRzIHRpbWVMaW1pdDsKIAogICAgICAgICBjb250
ZXh0ID0gSlNHbG9iYWxDb250ZXh0Q3JlYXRlSW5Hcm91cChudWxscHRyLCBudWxscHRyKTsKIApA
QCAtMTU0LDEwICsxNTIsMTAgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAg
ICBKU1N0cmluZ1JlbGVhc2UoY3VycmVudENQVVRpbWVTdHIpOwogCiAgICAgICAgIC8qIFRlc3Qg
c2NyaXB0IG9uIGFub3RoZXIgdGhyZWFkOiAqLwotICAgICAgICB0aW1lTGltaXQgPSAoMTAwICsg
dGllckFkanVzdG1lbnRNaWxsaXMpIC8gMTAwMC4wOwotICAgICAgICBKU0NvbnRleHRHcm91cFNl
dEV4ZWN1dGlvblRpbWVMaW1pdChjb250ZXh0R3JvdXAsIHRpbWVMaW1pdCwgc2hvdWxkVGVybWlu
YXRlQ2FsbGJhY2ssIDApOworICAgICAgICB0aW1lTGltaXQgPSAxMDBfbXMgKyB0aWVyQWRqdXN0
bWVudDsKKyAgICAgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4
dEdyb3VwLCB0aW1lTGltaXQuc2Vjb25kcygpLCBzaG91bGRUZXJtaW5hdGVDYWxsYmFjaywgMCk7
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIHRpbWVBZnRlcldhdGNoZG9nU2hvdWxk
SGF2ZUZpcmVkID0gMzAwICsgdGllckFkanVzdG1lbnRNaWxsaXM7CisgICAgICAgICAgICBTZWNv
bmRzIHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkID0gMzAwX21zICsgdGllckFkanVz
dG1lbnQ7CiAKICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJmdW5jdGlvbiBmb28oKSB7IHdoaWxlICh0cnVlKSB7IH0gfSBmb28o
KTsiKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CkBAIC0xNjcsNyArMTY1LDcg
QEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgICAgIEpTRXZhbHVh
dGVTY3JpcHQoY29udGV4dCwgc2NyaXB0LCBudWxscHRyLCBudWxscHRyLCAxLCBleG4pOwogICAg
ICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgIHNsZWVwKFNlY29uZHModGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQgLyAxMDAwLjApKTsKKyAgICAgICAgICAgIHNsZWVwKHRpbWVBZnRl
cldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKTsKIAogICAgICAgICAgICAgaWYgKHNob3VsZFRlcm1p
bmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMg
c2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwpAQCAt
MTg2LDE0ICsxODQsMTQgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICB9
CiAKICAgICAgICAgLyogVGVzdCBzY3JpcHQgdGltZW91dDogKi8KLSAgICAgICAgdGltZUxpbWl0
ID0gKDEwMCArIHRpZXJBZGp1c3RtZW50TWlsbGlzKSAvIDEwMDAuMDsKLSAgICAgICAgSlNDb250
ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4dEdyb3VwLCB0aW1lTGltaXQsIHNo
b3VsZFRlcm1pbmF0ZUNhbGxiYWNrLCAwKTsKKyAgICAgICAgdGltZUxpbWl0ID0gMTAwX21zICsg
dGllckFkanVzdG1lbnQ7CisgICAgICAgIEpTQ29udGV4dEdyb3VwU2V0RXhlY3V0aW9uVGltZUxp
bWl0KGNvbnRleHRHcm91cCwgdGltZUxpbWl0LnNlY29uZHMoKSwgc2hvdWxkVGVybWluYXRlQ2Fs
bGJhY2ssIDApOwogICAgICAgICB7Ci0gICAgICAgICAgICB1bnNpZ25lZCB0aW1lQWZ0ZXJXYXRj
aGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMwMCArIHRpZXJBZGp1c3RtZW50TWlsbGlzOworICAgICAg
ICAgICAgU2Vjb25kcyB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMwMF9tcyAr
IHRpZXJBZGp1c3RtZW50OwogCiAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxk
ZXI7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoImZ1bmN0aW9uIGZv
bygpIHsgdmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHdoaWxlICh0cnVlKSB7IGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKTsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFy
dFRpbWUgPiAiKTsKLSAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVB
ZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkIC8gMTAwMC4wKTsKKyAgICAgICAgICAgIHNjcmlw
dEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNl
Y29uZHMoKSk7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJl
YWs7IH0gfSBmb28oKTsiKTsKIAogICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOwpAQCAtMjAzLDEwICsyMDEsMTAgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGlt
aXQoKQogICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxw
dHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwogICAgICAgICAgICAgYXV0byBlbmRUaW1lID0g
Y3VycmVudENQVVRpbWUoKTsKIAotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGlt
ZSkgPCBtaWxsaXNlY29uZHModGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpKSAmJiBz
aG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgIGlmICgoKGVuZFRp
bWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIHNo
b3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgIHByaW50Zigi
UEFTUzogJXMgc2NyaXB0IHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRp
ZXIpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0g
c3RhcnRUaW1lKSA+PSBtaWxsaXNlY29uZHModGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmly
ZWQpKQorICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFm
dGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCiAgICAgICAgICAgICAgICAgICAgIHByaW50Zigi
RkFJTDogJXMgc2NyaXB0IGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0
aW9ucy50aWVyKTsKICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxiYWNr
V2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0
aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CkBA
IC0yMjIsMTAgKzIyMCwxMCBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAg
IH0KIAogICAgICAgICAvKiBUZXN0IHNjcmlwdCB0aW1lb3V0IHdpdGggdGFpbCBjYWxsczogKi8K
LSAgICAgICAgdGltZUxpbWl0ID0gKDEwMCArIHRpZXJBZGp1c3RtZW50TWlsbGlzKSAvIDEwMDAu
MDsKLSAgICAgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4dEdy
b3VwLCB0aW1lTGltaXQsIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrLCAwKTsKKyAgICAgICAgdGlt
ZUxpbWl0ID0gMTAwX21zICsgdGllckFkanVzdG1lbnQ7CisgICAgICAgIEpTQ29udGV4dEdyb3Vw
U2V0RXhlY3V0aW9uVGltZUxpbWl0KGNvbnRleHRHcm91cCwgdGltZUxpbWl0LnNlY29uZHMoKSwg
c2hvdWxkVGVybWluYXRlQ2FsbGJhY2ssIDApOwogICAgICAgICB7Ci0gICAgICAgICAgICB1bnNp
Z25lZCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMwMCArIHRpZXJBZGp1c3Rt
ZW50TWlsbGlzOworICAgICAgICAgICAgU2Vjb25kcyB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhh
dmVGaXJlZCA9IDMwMF9tcyArIHRpZXJBZGp1c3RtZW50OwogCiAgICAgICAgICAgICBTdHJpbmdC
dWlsZGVyIHNjcmlwdEJ1aWxkZXI7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExp
dGVyYWwoInZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyIKQEAgLTIzMyw3ICsyMzEs
NyBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIid1c2Ugc3RyaWN0JzsiCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImlmIChpICUgMTAwMCA9PT0gMCkgeyIKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiIp
OwotICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQgLyAxMDAwLjApOworICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5h
cHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQuc2Vjb25kcygpKTsK
ICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgICAgICkgeyByZXR1
cm47IH0iKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIH0i
KTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHJldHVybiBy
ZWN1cnNlKGkgKyAxKTsgfSIpOwpAQCAtMjQ2LDEwICsyNDQsMTAgQEAgaW50IHRlc3RFeGVjdXRp
b25UaW1lTGltaXQoKQogICAgICAgICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3Jp
cHQsIG51bGxwdHIsIG51bGxwdHIsIDEsICZleGNlcHRpb24pOwogICAgICAgICAgICAgYXV0byBl
bmRUaW1lID0gY3VycmVudENQVVRpbWUoKTsKIAotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAt
IHN0YXJ0VGltZSkgPCBtaWxsaXNlY29uZHModGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmly
ZWQpKSAmJiBzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkKKyAgICAgICAgICAgIGlm
ICgoKGVuZFRpbWUgLSBzdGFydFRpbWUpIDwgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmly
ZWQpICYmIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAg
IHByaW50ZigiUEFTUzogJXMgc2NyaXB0IHdpdGggaW5maW5pdGUgdGFpbCBjYWxscyB0aW1lZCBv
dXQgYXMgZXhwZWN0ZWQgLlxuIiwgdGllck9wdGlvbnMudGllcik7CiAgICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IG1pbGxpc2Vj
b25kcyh0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpCisgICAgICAgICAgICAgICAg
aWYgKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVG
aXJlZCkKICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgd2l0aCBp
bmZpbml0ZSB0YWlsIGNhbGxzIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVy
T3B0aW9ucy50aWVyKTsKICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRlcm1pbmF0ZUNhbGxi
YWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlw
dCB3aXRoIGluZmluaXRlIHRhaWwgY2FsbHMnIHRpbWVvdXQgY2FsbGJhY2sgd2FzIG5vdCBjYWxs
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAgLTI2NSwxNCArMjYzLDE0IEBAIGludCB0ZXN0
RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgfQogCiAgICAgICAgIC8qIFRlc3QgdGhlIHNj
cmlwdCB0aW1lb3V0J3MgVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbiBzaG91bGQgTk9UIGJl
IGNhdGNoYWJsZTogKi8KLSAgICAgICAgdGltZUxpbWl0ID0gKDEwMCArIHRpZXJBZGp1c3RtZW50
TWlsbGlzKSAvIDEwMDAuMDsKLSAgICAgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1l
TGltaXQoY29udGV4dEdyb3VwLCB0aW1lTGltaXQsIHNob3VsZFRlcm1pbmF0ZUNhbGxiYWNrLCAw
KTsKKyAgICAgICAgdGltZUxpbWl0ID0gMTAwX21zICsgdGllckFkanVzdG1lbnQ7CisgICAgICAg
IEpTQ29udGV4dEdyb3VwU2V0RXhlY3V0aW9uVGltZUxpbWl0KGNvbnRleHRHcm91cCwgdGltZUxp
bWl0LnNlY29uZHMoKSwgc2hvdWxkVGVybWluYXRlQ2FsbGJhY2ssIDApOwogICAgICAgICB7Ci0g
ICAgICAgICAgICB1bnNpZ25lZCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMw
MCArIHRpZXJBZGp1c3RtZW50TWlsbGlzOworICAgICAgICAgICAgU2Vjb25kcyB0aW1lQWZ0ZXJX
YXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMwMF9tcyArIHRpZXJBZGp1c3RtZW50OwogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7CiAgICAgICAg
ICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoImZ1bmN0aW9uIGZvbygpIHsgdmFyIHN0
YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHRyeSB7IHdoaWxlICh0cnVlKSB7IGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDsgaSsrKTsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUg
PiAiKTsKLSAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldh
dGNoZG9nU2hvdWxkSGF2ZUZpcmVkIC8gMTAwMC4wKTsKKyAgICAgICAgICAgIHNjcmlwdEJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNlY29uZHMo
KSk7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0g
fSBjYXRjaChlKSB7IH0gfSBmb28oKTsiKTsKIAogICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2Ny
aXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtMjgzLDggKzI4MSw4IEBAIGludCB0ZXN0RXhlY3V0aW9u
VGltZUxpbWl0KCkKICAgICAgICAgICAgIEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dCwgc2NyaXB0
LCBudWxscHRyLCBudWxscHRyLCAxLCAmZXhjZXB0aW9uKTsKICAgICAgICAgICAgIGF1dG8gZW5k
VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICgo
KGVuZFRpbWUgLSBzdGFydFRpbWUpID49IG1pbGxpc2Vjb25kcyh0aW1lQWZ0ZXJXYXRjaGRvZ1No
b3VsZEhhdmVGaXJlZCkpIHx8ICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkgewot
ICAgICAgICAgICAgICAgIGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25k
cyh0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpKQorICAgICAgICAgICAgaWYgKCgo
ZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQp
IHx8ICFzaG91bGRUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCkgeworICAgICAgICAgICAgICAg
IGlmICghKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2
ZUZpcmVkKSkKICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlk
IG5vdCB0aW1lIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIpOwogICAgICAg
ICAgICAgICAgIGlmICghc2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCiAgICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgY2FsbGJhY2sgd2Fz
IG5vdCBjYWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKQEAgLTMwMiwxNCArMzAwLDE0IEBA
IGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgLyogVGVzdCBzY3JpcHQgdGltZW91dCB3aXRoIG5vIGNhbGxiYWNrOiAqLwotICAgICAgICB0
aW1lTGltaXQgPSAoMTAwICsgdGllckFkanVzdG1lbnRNaWxsaXMpIC8gMTAwMC4wOwotICAgICAg
ICBKU0NvbnRleHRHcm91cFNldEV4ZWN1dGlvblRpbWVMaW1pdChjb250ZXh0R3JvdXAsIHRpbWVM
aW1pdCwgMCwgMCk7CisgICAgICAgIHRpbWVMaW1pdCA9IDEwMF9tcyArIHRpZXJBZGp1c3RtZW50
OworICAgICAgICBKU0NvbnRleHRHcm91cFNldEV4ZWN1dGlvblRpbWVMaW1pdChjb250ZXh0R3Jv
dXAsIHRpbWVMaW1pdC5zZWNvbmRzKCksIDAsIDApOwogICAgICAgICB7Ci0gICAgICAgICAgICB1
bnNpZ25lZCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMwMCArIHRpZXJBZGp1
c3RtZW50TWlsbGlzOworICAgICAgICAgICAgU2Vjb25kcyB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3Vs
ZEhhdmVGaXJlZCA9IDMwMF9tcyArIHRpZXJBZGp1c3RtZW50OwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7CiAgICAgICAgICAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZExpdGVyYWwoImZ1bmN0aW9uIGZvbygpIHsgdmFyIHN0YXJ0VGltZSA9IGN1
cnJlbnRDUFVUaW1lKCk7IHdoaWxlICh0cnVlKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsg
aSsrKTsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAiKTsKLSAgICAgICAgICAg
IHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZp
cmVkIC8gMTAwMC4wKTsKKyAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRp
bWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkLnNlY29uZHMoKSk7CiAgICAgICAgICAgICBz
Y3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpA
QCAtMzIwLDEwICszMTgsMTAgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAg
ICAgICAgSlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIG51bGxwdHIsIG51bGxwdHIs
IDEsICZleGNlcHRpb24pOwogICAgICAgICAgICAgYXV0byBlbmRUaW1lID0gY3VycmVudENQVVRp
bWUoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGlt
ZSkgPCBtaWxsaXNlY29uZHModGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpKSAmJiAh
c2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCisgICAgICAgICAgICBpZiAoKChlbmRU
aW1lIC0gc3RhcnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiAh
c2hvdWxkVGVybWluYXRlQ2FsbGJhY2tXYXNDYWxsZWQpCiAgICAgICAgICAgICAgICAgcHJpbnRm
KCJQQVNTOiAlcyBzY3JpcHQgdGltZWQgb3V0IGFzIGV4cGVjdGVkIHdoZW4gbm8gY2FsbGJhY2sg
aXMgc3BlY2lmaWVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CiAgICAgICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgICAgICBpZiAoKGVuZFRpbWUgLSBzdGFydFRpbWUpID49IG1pbGxpc2Vjb25k
cyh0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpCisgICAgICAgICAgICAgICAgaWYg
KChlbmRUaW1lIC0gc3RhcnRUaW1lKSA+PSB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJl
ZCkKICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgZGlkIG5vdCB0
aW1lIG91dCBhcyBleHBlY3RlZCB3aGVuIG5vIGNhbGxiYWNrIGlzIHNwZWNpZmllZC5cbiIsIHRp
ZXJPcHRpb25zLnRpZXIpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg
ICAgcHJpbnRmKCJGQUlMOiAlcyBzY3JpcHQgY2FsbGVkIHN0YWxlIGNhbGxiYWNrIGZ1bmN0aW9u
LlxuIiwgdGllck9wdGlvbnMudGllcik7CkBAIC0zMzksMTQgKzMzNywxNCBAQCBpbnQgdGVzdEV4
ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8qIFRlc3Qg
c2NyaXB0IHRpbWVvdXQgY2FuY2VsbGF0aW9uOiAqLwotICAgICAgICB0aW1lTGltaXQgPSAoMTAw
ICsgdGllckFkanVzdG1lbnRNaWxsaXMpIC8gMTAwMC4wOwotICAgICAgICBKU0NvbnRleHRHcm91
cFNldEV4ZWN1dGlvblRpbWVMaW1pdChjb250ZXh0R3JvdXAsIHRpbWVMaW1pdCwgY2FuY2VsVGVy
bWluYXRlQ2FsbGJhY2ssIDApOworICAgICAgICB0aW1lTGltaXQgPSAxMDBfbXMgKyB0aWVyQWRq
dXN0bWVudDsKKyAgICAgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29u
dGV4dEdyb3VwLCB0aW1lTGltaXQuc2Vjb25kcygpLCBjYW5jZWxUZXJtaW5hdGVDYWxsYmFjaywg
MCk7CiAgICAgICAgIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIHRpbWVBZnRlcldhdGNoZG9nU2hv
dWxkSGF2ZUZpcmVkID0gMzAwICsgdGllckFkanVzdG1lbnRNaWxsaXM7CisgICAgICAgICAgICBT
ZWNvbmRzIHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkID0gMzAwX21zICsgdGllckFk
anVzdG1lbnQ7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0
QnVpbGRlcjsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZnVuY3Rp
b24gZm9vKCkgeyB2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUp
IHsgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspOyBpZiAoY3VycmVudENQVVRpbWUoKSAt
IHN0YXJ0VGltZSA+ICIpOwotICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIo
dGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQgLyAxMDAwLjApOworICAgICAgICAgICAg
c2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmly
ZWQuc2Vjb25kcygpKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
KSBicmVhazsgfSB9IGZvbygpOyIpOwogCiAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQg
PSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CkBAIC0zNTcsMTAgKzM1NSwxMCBAQCBpbnQgdGVzdEV4ZWN1dGlvblRp
bWVMaW1pdCgpCiAgICAgICAgICAgICBKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIHNjcmlwdCwg
bnVsbHB0ciwgbnVsbHB0ciwgMSwgJmV4Y2VwdGlvbik7CiAgICAgICAgICAgICBhdXRvIGVuZFRp
bWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoKChl
bmRUaW1lIC0gc3RhcnRUaW1lKSA+PSBtaWxsaXNlY29uZHModGltZUFmdGVyV2F0Y2hkb2dTaG91
bGRIYXZlRmlyZWQpKSAmJiBjYW5jZWxUZXJtaW5hdGVDYWxsYmFja1dhc0NhbGxlZCAmJiAhZXhj
ZXB0aW9uKQorICAgICAgICAgICAgaWYgKCgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFm
dGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpICYmIGNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2Fz
Q2FsbGVkICYmICFleGNlcHRpb24pCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJQQVNTOiAlcyBz
Y3JpcHQgdGltZW91dCB3YXMgY2FuY2VsbGVkIGFzIGV4cGVjdGVkLlxuIiwgdGllck9wdGlvbnMu
dGllcik7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1l
IC0gc3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25kcyh0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVG
aXJlZCkpIHx8IGV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3Rh
cnRUaW1lKSA8IHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSB8fCBleGNlcHRpb24p
CiAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJTDogJXMgc2NyaXB0IHRpbWVvdXQgd2Fz
IG5vdCBjYW5jZWxsZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKICAgICAgICAgICAgICAgICBp
ZiAoIWNhbmNlbFRlcm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgICAg
ICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3QgY2FsbGVk
LlxuIiwgdGllck9wdGlvbnMudGllcik7CkBAIC0zNzQsMTYgKzM3MiwxNiBAQCBpbnQgdGVzdEV4
ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8qIFRlc3Qg
c2NyaXB0IHRpbWVvdXQgZXh0ZW5zaW9uOiAqLwotICAgICAgICB0aW1lTGltaXQgPSAoMTAwICsg
dGllckFkanVzdG1lbnRNaWxsaXMpIC8gMTAwMC4wOwotICAgICAgICBKU0NvbnRleHRHcm91cFNl
dEV4ZWN1dGlvblRpbWVMaW1pdChjb250ZXh0R3JvdXAsIHRpbWVMaW1pdCwgZXh0ZW5kVGVybWlu
YXRlQ2FsbGJhY2ssIDApOworICAgICAgICB0aW1lTGltaXQgPSAxMDBfbXMgKyB0aWVyQWRqdXN0
bWVudDsKKyAgICAgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4
dEdyb3VwLCB0aW1lTGltaXQuc2Vjb25kcygpLCBleHRlbmRUZXJtaW5hdGVDYWxsYmFjaywgMCk7
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIHRpbWVCZWZvcmVFeHRlbmRlZERlYWRs
aW5lID0gMjUwICsgdGllckFkanVzdG1lbnRNaWxsaXM7Ci0gICAgICAgICAgICB1bnNpZ25lZCB0
aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lID0gNjAwICsgdGllckFkanVzdG1lbnRNaWxsaXM7Ci0g
ICAgICAgICAgICB1bnNpZ25lZCBtYXhCdXN5TG9vcFRpbWUgPSA3NTAgKyB0aWVyQWRqdXN0bWVu
dE1pbGxpczsKKyAgICAgICAgICAgIFNlY29uZHMgdGltZUJlZm9yZUV4dGVuZGVkRGVhZGxpbmUg
PSAyNTBfbXMgKyB0aWVyQWRqdXN0bWVudDsKKyAgICAgICAgICAgIFNlY29uZHMgdGltZUFmdGVy
RXh0ZW5kZWREZWFkbGluZSA9IDYwMF9tcyArIHRpZXJBZGp1c3RtZW50OworICAgICAgICAgICAg
U2Vjb25kcyBtYXhCdXN5TG9vcFRpbWUgPSA3NTBfbXMgKyB0aWVyQWRqdXN0bWVudDsKIAogICAg
ICAgICAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOwogICAgICAgICAgICAgc2NyaXB0
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJmdW5jdGlvbiBmb28oKSB7IHZhciBzdGFydFRpbWUgPSBj
dXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7
IGkrKyk7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gIik7Ci0gICAgICAgICAg
ICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcihtYXhCdXN5TG9vcFRpbWUgLyAxMDAwLjApOyAv
LyBpbiBzZWNvbmRzLgorICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIobWF4
QnVzeUxvb3BUaW1lLnNlY29uZHMoKSk7IC8vIGluIHNlY29uZHMuCiAgICAgICAgICAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKIAogICAgICAg
ICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
c2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtMzk1LDEyICszOTMs
MTIgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgYXV0byBlbmRU
aW1lID0gY3VycmVudENQVVRpbWUoKTsKICAgICAgICAgICAgIGF1dG8gZGVsdGFUaW1lID0gZW5k
VGltZSAtIHN0YXJ0VGltZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKChkZWx0YVRp
bWUgPj0gbWlsbGlzZWNvbmRzKHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKSkgJiYgKGRlbHRh
VGltZSA8IG1pbGxpc2Vjb25kcyh0aW1lQWZ0ZXJFeHRlbmRlZERlYWRsaW5lKSkgJiYgKGV4dGVu
ZFRlcm1pbmF0ZUNhbGxiYWNrQ2FsbGVkID09IDIpICYmIGV4Y2VwdGlvbikKKyAgICAgICAgICAg
IGlmICgoZGVsdGFUaW1lID49IHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKSAmJiAoZGVsdGFU
aW1lIDwgdGltZUFmdGVyRXh0ZW5kZWREZWFkbGluZSkgJiYgKGV4dGVuZFRlcm1pbmF0ZUNhbGxi
YWNrQ2FsbGVkID09IDIpICYmIGV4Y2VwdGlvbikKICAgICAgICAgICAgICAgICBwcmludGYoIlBB
U1M6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBleHRlbmRlZCBhcyBleHBlY3RlZC5cbiIsIHRpZXJP
cHRpb25zLnRpZXIpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRl
bHRhVGltZSA8IG1pbGxpc2Vjb25kcyh0aW1lQmVmb3JlRXh0ZW5kZWREZWFkbGluZSkpCisgICAg
ICAgICAgICAgICAgaWYgKGRlbHRhVGltZSA8IHRpbWVCZWZvcmVFeHRlbmRlZERlYWRsaW5lKQog
ICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6ICVzIHNjcmlwdCB0aW1lb3V0IHdhcyBu
b3QgZXh0ZW5kZWQgYXMgZXhwZWN0ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKLSAgICAgICAg
ICAgICAgICBlbHNlIGlmIChkZWx0YVRpbWUgPj0gbWlsbGlzZWNvbmRzKHRpbWVBZnRlckV4dGVu
ZGVkRGVhZGxpbmUpKQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRlbHRhVGltZSA+PSB0aW1l
QWZ0ZXJFeHRlbmRlZERlYWRsaW5lKQogICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZBSUw6
ICVzIHNjcmlwdCBkaWQgbm90IHRpbWVvdXQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoZXh0ZW5kVGVybWluYXRlQ2FsbGJhY2tD
YWxsZWQgPCAxKQpAQCAtNDE3LDE0ICs0MTUsMTQgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGlt
aXQoKQogCiAjaWYgSEFWRShNQUNIX0VYQ0VQVElPTlMpCiAgICAgICAgIC8qIFRlc3Qgc2NyaXB0
IHRpbWVvdXQgZnJvbSBkaXNwYXRjaCBxdWV1ZTogKi8KLSAgICAgICAgdGltZUxpbWl0ID0gKDEw
MCArIHRpZXJBZGp1c3RtZW50TWlsbGlzKSAvIDEwMDAuMDsKLSAgICAgICAgSlNDb250ZXh0R3Jv
dXBTZXRFeGVjdXRpb25UaW1lTGltaXQoY29udGV4dEdyb3VwLCB0aW1lTGltaXQsIGRpc3BhdGNo
VGVybWl0YXRlQ2FsbGJhY2ssIDApOworICAgICAgICB0aW1lTGltaXQgPSAxMDBfbXMgKyB0aWVy
QWRqdXN0bWVudDsKKyAgICAgICAgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQo
Y29udGV4dEdyb3VwLCB0aW1lTGltaXQuc2Vjb25kcygpLCBkaXNwYXRjaFRlcm1pdGF0ZUNhbGxi
YWNrLCAwKTsKICAgICAgICAgewotICAgICAgICAgICAgdW5zaWduZWQgdGltZUFmdGVyV2F0Y2hk
b2dTaG91bGRIYXZlRmlyZWQgPSAzMDAgKyB0aWVyQWRqdXN0bWVudE1pbGxpczsKKyAgICAgICAg
ICAgIFNlY29uZHMgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQgPSAzMDBfbXMgKyB0
aWVyQWRqdXN0bWVudDsKIAogICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVy
OwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJmdW5jdGlvbiBmb28o
KSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRU
aW1lID4gIik7Ci0gICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0
ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCAvIDEwMDAuMCk7CisgICAgICAgICAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZC5zZWNv
bmRzKCkpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFr
OyB9IH0gZm9vKCk7Iik7CiAKICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKQEAgLTQ0MywxMSArNDQxLDExIEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0
KCkKICAgICAgICAgICAgIGJvb2wgZGlkU3luY2hyb25pemUgPSBmYWxzZTsKICAgICAgICAgICAg
IGJvb2wmIGRpZFN5bmNocm9uaXplUmVmID0gZGlkU3luY2hyb25pemU7CiAKLSAgICAgICAgICAg
IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgc3RhcnRUaW1lOwotICAgICAgICAgICAgc3RkOjpj
aHJvbm86Om1pY3Jvc2Vjb25kcyBlbmRUaW1lOworICAgICAgICAgICAgU2Vjb25kcyBzdGFydFRp
bWU7CisgICAgICAgICAgICBTZWNvbmRzIGVuZFRpbWU7CiAKLSAgICAgICAgICAgIHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHMmIHN0YXJ0VGltZVJlZiA9IHN0YXJ0VGltZTsKLSAgICAgICAgICAg
IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMmIGVuZFRpbWVSZWYgPSBlbmRUaW1lOworICAgICAg
ICAgICAgU2Vjb25kcyYgc3RhcnRUaW1lUmVmID0gc3RhcnRUaW1lOworICAgICAgICAgICAgU2Vj
b25kcyYgZW5kVGltZVJlZiA9IGVuZFRpbWU7CiAKICAgICAgICAgICAgIGRpc3BhdGNoX2dyb3Vw
X3QgZ3JvdXAgPSBkaXNwYXRjaF9ncm91cF9jcmVhdGUoKTsKICAgICAgICAgICAgIGRpc3BhdGNo
X2dyb3VwX2FzeW5jKGdyb3VwLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKDAsIDApLCBeewpA
QCAtNDYyLDEwICs0NjAsMTAgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAg
ICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhzeW5jTG9jayk7CiAgICAgICAgICAgICBzeW5j
aHJvbml6ZS53YWl0KHN5bmNMb2NrLCBbJl0geyByZXR1cm4gZGlkU3luY2hyb25pemU7IH0pOwog
Ci0gICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IG1pbGxpc2Vjb25kcyh0
aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCkpICYmIGRpc3BhdGNoVGVybWluYXRlQ2Fs
bGJhY2tDYWxsZWQpCisgICAgICAgICAgICBpZiAoKChlbmRUaW1lIC0gc3RhcnRUaW1lKSA8IHRp
bWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkKSAmJiBkaXNwYXRjaFRlcm1pbmF0ZUNhbGxi
YWNrQ2FsbGVkKQogICAgICAgICAgICAgICAgIHByaW50ZigiUEFTUzogJXMgc2NyaXB0IG9uIGRp
c3BhdGNoIHF1ZXVlIHRpbWVkIG91dCBhcyBleHBlY3RlZC5cbiIsIHRpZXJPcHRpb25zLnRpZXIp
OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKChlbmRUaW1lIC0gc3Rh
cnRUaW1lKSA+PSBtaWxsaXNlY29uZHModGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQp
KQorICAgICAgICAgICAgICAgIGlmICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgPj0gdGltZUFmdGVy
V2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQpCiAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRkFJ
TDogJXMgc2NyaXB0IG9uIGRpc3BhdGNoIHF1ZXVlIGRpZCBub3QgdGltZSBvdXQgYXMgZXhwZWN0
ZWQuXG4iLCB0aWVyT3B0aW9ucy50aWVyKTsKICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFRl
cm1pbmF0ZUNhbGxiYWNrV2FzQ2FsbGVkKQogICAgICAgICAgICAgICAgICAgICBwcmludGYoIkZB
SUw6ICVzIHNjcmlwdCBvbiBkaXNwYXRjaCBxdWV1ZSB0aW1lb3V0IGNhbGxiYWNrIHdhcyBub3Qg
Y2FsbGVkLlxuIiwgdGllck9wdGlvbnMudGllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDJkMjEyMDdkNmYyYmRhYjJkZWFkM2Q5OTA5OWNk
NjNiYTUwN2ZhZmEuLmNkMWVkZDA4MzJkY2M1NzI4ZDM2MzM2MjRmYTNlM2FlOTVhMzVhMmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0zMjgs
NyArMzI4LDcgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soVk0qIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgQ29weVBhcnNlZEJsb2NrVGFnLCBDb2RlQmxvY2sKICAgICAsIG1fb3NyRXhpdENvdW50
ZXIoMCkKICAgICAsIG1fb3B0aW1pemF0aW9uRGVsYXlDb3VudGVyKDApCiAgICAgLCBtX3Jlb3B0
aW1pemF0aW9uUmV0cnlDb3VudGVyKDApCi0gICAgLCBtX2NyZWF0aW9uVGltZShzdGQ6OmNocm9u
bzo6c3RlYWR5X2Nsb2NrOjpub3coKSkKKyAgICAsIG1fY3JlYXRpb25UaW1lKE1vbm90b25pY1Rp
bWU6Om5vdygpKQogewogICAgIG1fdmlzaXRXZWFrbHlIYXNCZWVuQ2FsbGVkID0gZmFsc2U7CiAK
QEAgLTM4Niw3ICszODYsNyBAQCBDb2RlQmxvY2s6OkNvZGVCbG9jayhWTSogdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBTY3JpcHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dAogICAgICwgbV9vc3JF
eGl0Q291bnRlcigwKQogICAgICwgbV9vcHRpbWl6YXRpb25EZWxheUNvdW50ZXIoMCkKICAgICAs
IG1fcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXIoMCkKLSAgICAsIG1fY3JlYXRpb25UaW1lKHN0
ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpKQorICAgICwgbV9jcmVhdGlvblRpbWUoTW9u
b3RvbmljVGltZTo6bm93KCkpCiB7CiAgICAgbV92aXNpdFdlYWtseUhhc0JlZW5DYWxsZWQgPSBm
YWxzZTsKIApAQCAtMTA4OSwzNiArMTA4OSwzNiBAQCBib29sIENvZGVCbG9jazo6c2hvdWxkSmV0
dGlzb25EdWVUb1dlYWtSZWZlcmVuY2UoKQogICAgIHJldHVybiAhSGVhcDo6aXNNYXJrZWQodGhp
cyk7CiB9CiAKLXN0YXRpYyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVUb0xpdmUoSklU
Q29kZTo6SklUVHlwZSBqaXRUeXBlKQorc3RhdGljIFNlY29uZHMgdGltZVRvTGl2ZShKSVRDb2Rl
OjpKSVRUeXBlIGppdFR5cGUpCiB7CiAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUVhZ2Vy
Q29kZUJsb2NrSmV0dGlzb25UaW1pbmcoKSkpIHsKICAgICAgICAgc3dpdGNoIChqaXRUeXBlKSB7
CiAgICAgICAgIGNhc2UgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuazoKLSAgICAgICAgICAgIHJl
dHVybiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwKTsKKyAgICAgICAgICAgIHJldHVybiAx
MF9tczsKICAgICAgICAgY2FzZSBKSVRDb2RlOjpCYXNlbGluZUpJVDoKLSAgICAgICAgICAgIHJl
dHVybiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwICsgMjApOworICAgICAgICAgICAgcmV0
dXJuIDMwX21zOwogICAgICAgICBjYXNlIEpJVENvZGU6OkRGR0pJVDoKLSAgICAgICAgICAgIHJl
dHVybiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDQwKTsKKyAgICAgICAgICAgIHJldHVybiA0
MF9tczsKICAgICAgICAgY2FzZSBKSVRDb2RlOjpGVExKSVQ6Ci0gICAgICAgICAgICByZXR1cm4g
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygxMjApOworICAgICAgICAgICAgcmV0dXJuIDEyMF9t
czsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzOjptYXgoKTsKKyAgICAgICAgICAgIHJldHVybiBTZWNvbmRzOjppbmZpbml0eSgp
OwogICAgICAgICB9CiAgICAgfQogCiAgICAgc3dpdGNoIChqaXRUeXBlKSB7CiAgICAgY2FzZSBK
SVRDb2RlOjpJbnRlcnByZXRlclRodW5rOgotICAgICAgICByZXR1cm4gc3RkOjpjaHJvbm86OmR1
cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oc3RkOjpjaHJvbm86OnNlY29u
ZHMoNSkpOworICAgICAgICByZXR1cm4gNV9zOwogICAgIGNhc2UgSklUQ29kZTo6QmFzZWxpbmVK
SVQ6CiAgICAgICAgIC8vIEVmZmVjdGl2ZWx5IDEwIGFkZGl0aW9uYWwgc2Vjb25kcywgc2luY2Ug
QmFzZWxpbmVKSVQgYW5kCiAgICAgICAgIC8vIEludGVycHJldGVyVGh1bmsgc2hhcmUgYSBDb2Rl
QmxvY2suCi0gICAgICAgIHJldHVybiBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzPihzdGQ6OmNocm9ubzo6c2Vjb25kcyg1ICsgMTApKTsKKyAgICAg
ICAgcmV0dXJuIDE1X3M7CiAgICAgY2FzZSBKSVRDb2RlOjpERkdKSVQ6Ci0gICAgICAgIHJldHVy
biBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPihz
dGQ6OmNocm9ubzo6c2Vjb25kcygyMCkpOworICAgICAgICByZXR1cm4gMjBfczsKICAgICBjYXNl
IEpJVENvZGU6OkZUTEpJVDoKLSAgICAgICAgcmV0dXJuIHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9j
YXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDYwKSk7
CisgICAgICAgIHJldHVybiA2MF9zOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzOjptYXgoKTsKKyAgICAgICAgcmV0dXJuIFNlY29uZHM6Omlu
ZmluaXR5KCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgKaW5kZXggNzBhNzZhYzIyMDU4ZWQwZTUxYjI4OWExMTliMTU0YjIzN2Y3ZjVkZS4u
ZGMzNGU2MzVmYTQzMDVkYzg2ZTgwNWRkMGE0NDMxYmUxN2RkOTA1YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAtOTM5LDEwICs5MzksOSBAQCBjbGFz
cyBDb2RlQmxvY2sgOiBwdWJsaWMgSlNDZWxsIHsKICAgICB2b2lkIHN0cm9uZ2x5VmlzaXRXZWFr
UmVmZXJlbmNlcyhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImLCBTbG90VmlzaXRvciYpOwogICAg
IHZvaWQgdmlzaXRPU1JFeGl0VGFyZ2V0cyhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImLCBTbG90
VmlzaXRvciYpOwogCi0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lU2luY2VDcmVh
dGlvbigpCisgICAgU2Vjb25kcyB0aW1lU2luY2VDcmVhdGlvbigpCiAgICAgewotICAgICAgICBy
ZXR1cm4gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cz4oCi0gICAgICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSAtIG1fY3Jl
YXRpb25UaW1lKTsKKyAgICAgICAgcmV0dXJuIE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9jcmVh
dGlvblRpbWU7CiAgICAgfQogCiAgICAgdm9pZCBjcmVhdGVSYXJlRGF0YUlmTmVjZXNzYXJ5KCkK
QEAgLTEwMjcsNyArMTAyNiw3IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBKU0NlbGwgewog
ICAgIHVpbnQxNl90IG1fb3B0aW1pemF0aW9uRGVsYXlDb3VudGVyOwogICAgIHVpbnQxNl90IG1f
cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXI7CiAKLSAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Ns
b2NrOjp0aW1lX3BvaW50IG1fY3JlYXRpb25UaW1lOworICAgIE1vbm90b25pY1RpbWUgbV9jcmVh
dGlvblRpbWU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmFyZURhdGE+IG1fcmFyZURhdGE7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmls
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5j
cHAKaW5kZXggM2JjZjZjMzY1ZDBhOTA0OTdkZDY2MTFkMjYyYjk3ZThhMDY0N2UwZC4uOTcyN2Mx
OGZkYmNjMGQ1ZTFiOWIyMjdkZmZkMzgyMWZjZDZjZTdjYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKQEAgLTI3OCw3ICsyNzgs
NyBAQCBTYW1wbGluZ1Byb2ZpbGVyOjpTYW1wbGluZ1Byb2ZpbGVyKFZNJiB2bSwgUmVmUHRyPFN0
b3B3YXRjaD4mJiBzdG9wd2F0Y2gpCiAgICAgOiBtX3ZtKHZtKQogICAgICwgbV93ZWFrUmFuZG9t
KCkKICAgICAsIG1fc3RvcHdhdGNoKFdURk1vdmUoc3RvcHdhdGNoKSkKLSAgICAsIG1fdGltaW5n
SW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyhPcHRpb25zOjpzYW1wbGVJbnRlcnZh
bCgpKSkKKyAgICAsIG1fdGltaW5nSW50ZXJ2YWwoU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhP
cHRpb25zOjpzYW1wbGVJbnRlcnZhbCgpKSkKICAgICAsIG1faXNQYXVzZWQoZmFsc2UpCiAgICAg
LCBtX2lzU2h1dERvd24oZmFsc2UpCiB7CkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBTYW1wbGlu
Z1Byb2ZpbGVyOjpjcmVhdGVUaHJlYWRJZk5lY2Vzc2FyeShjb25zdCBBYnN0cmFjdExvY2tlciYp
CiB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnRpbWVyTG9vcCgpCiB7CiAgICAgd2hpbGUgKHRydWUp
IHsKLSAgICAgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBzdGFja1RyYWNlUHJvY2Vzc2lu
Z1RpbWUgPSBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzKDApOworICAgICAgICBTZWNvbmRzIHN0
YWNrVHJhY2VQcm9jZXNzaW5nVGltZSA9IDBfczsKICAgICAgICAgewogICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShtX2lzU2h1
dERvd24pKQpAQCAtMzI3LDEyICszMjcsMTIgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjp0aW1l
ckxvb3AoKQogICAgICAgICAvLyB3aXRoIHNvbWUgc3lzdGVtIHByb2Nlc3Mgc3VjaCBhcyBhIHNj
aGVkdWxlZCBjb250ZXh0IHN3aXRjaC4KICAgICAgICAgLy8gaHR0cDovL3Bsdi5jb2xvcmFkby5l
ZHUvcGFwZXJzL215dGtvd2ljei1wbGRpMTAucGRmCiAgICAgICAgIGRvdWJsZSByYW5kb21TaWdu
ZWROdW1iZXIgPSAobV93ZWFrUmFuZG9tLmdldCgpICogMi4wKSAtIDEuMDsgLy8gQSByYW5kb20g
bnVtYmVyIGJldHdlZW4gWy0xLCAxKS4KLSAgICAgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25k
cyByYW5kb21GbHVjdHVhdGlvbiA9IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMoc3RhdGljX2Nh
c3Q8aW50NjRfdD4ocmFuZG9tU2lnbmVkTnVtYmVyICogc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3Rp
bWluZ0ludGVydmFsLmNvdW50KCkpICogMC4yMGwpKTsKLSAgICAgICAgc3RkOjp0aGlzX3RocmVh
ZDo6c2xlZXBfZm9yKG1fdGltaW5nSW50ZXJ2YWwgLSBzdGQ6Om1pbihtX3RpbWluZ0ludGVydmFs
LCBzdGFja1RyYWNlUHJvY2Vzc2luZ1RpbWUpICsgcmFuZG9tRmx1Y3R1YXRpb24pOworICAgICAg
ICBTZWNvbmRzIHJhbmRvbUZsdWN0dWF0aW9uID0gbV90aW1pbmdJbnRlcnZhbCAqIDAuMiAqIHJh
bmRvbVNpZ25lZE51bWJlcjsKKyAgICAgICAgV1RGOjpzbGVlcChtX3RpbWluZ0ludGVydmFsIC0g
c3RkOjptaW4obV90aW1pbmdJbnRlcnZhbCwgc3RhY2tUcmFjZVByb2Nlc3NpbmdUaW1lKSArIHJh
bmRvbUZsdWN0dWF0aW9uKTsKICAgICB9CiB9CiAKLXZvaWQgU2FtcGxpbmdQcm9maWxlcjo6dGFr
ZVNhbXBsZShjb25zdCBBYnN0cmFjdExvY2tlciYsIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMm
IHN0YWNrVHJhY2VQcm9jZXNzaW5nVGltZSkKK3ZvaWQgU2FtcGxpbmdQcm9maWxlcjo6dGFrZVNh
bXBsZShjb25zdCBBYnN0cmFjdExvY2tlciYsIFNlY29uZHMmIHN0YWNrVHJhY2VQcm9jZXNzaW5n
VGltZSkKIHsKICAgICBBU1NFUlQobV9sb2NrLmlzTG9ja2VkKCkpOwogICAgIGlmIChtX3ZtLmVu
dHJ5U2NvcGUpIHsKQEAgLTM5Miw3ICszOTIsNyBAQCB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnRh
a2VTYW1wbGUoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbgog
CiAgICAgICAgICAgICBtX2pzY0V4ZWN1dGlvblRocmVhZC0+cmVzdW1lKCk7CiAKLSAgICAgICAg
ICAgIGF1dG8gc3RhcnRUaW1lID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7Cisg
ICAgICAgICAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgICAg
ICAgICAgLy8gV2UgY2FuIG5vdyB1c2UgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgbWFsbG9jLCBhbmQg
ZG8gb3RoZXIgaW50ZXJlc3RpbmcgdGhpbmdzLCBhZ2Fpbi4KIAogICAgICAgICAgICAgLy8gRklY
TUU6IEl0J2QgYmUgaW50ZXJlc3RpbmcgdG8gdGFrZSBkYXRhIGFib3V0IHRoZSBwcm9ncmFtJ3Mg
c3RhdGUgd2hlbgpAQCAtNDEzLDggKzQxMyw4IEBAIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6dGFr
ZVNhbXBsZShjb25zdCBBYnN0cmFjdExvY2tlciYsIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uCiAg
ICAgICAgICAgICAgICAgICAgIG1fY3VycmVudEZyYW1lcy5ncm93KG1fY3VycmVudEZyYW1lcy5z
aXplKCkgKiAxLjI1KTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byBlbmRUaW1l
ID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7Ci0gICAgICAgICAgICBzdGFja1Ry
YWNlUHJvY2Vzc2luZ1RpbWUgPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9u
bzo6bWljcm9zZWNvbmRzPihlbmRUaW1lIC0gc3RhcnRUaW1lKTsKKyAgICAgICAgICAgIGF1dG8g
ZW5kVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgICAgICAgICAgc3RhY2tUcmFjZVBy
b2Nlc3NpbmdUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTsKICAgICAgICAgfQogICAgIH0KIH0K
QEAgLTk4MCw3ICs5ODAsNyBAQCB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnJlcG9ydFRvcEZ1bmN0
aW9ucyhQcmludFN0cmVhbSYgb3V0KQogICAgIH07CiAKICAgICBpZiAoT3B0aW9uczo6c2FtcGxp
bmdQcm9maWxlclRvcEZ1bmN0aW9uc0NvdW50KCkpIHsKLSAgICAgICAgb3V0LnByaW50KCJcblxu
U2FtcGxpbmcgcmF0ZTogIiwgbV90aW1pbmdJbnRlcnZhbC5jb3VudCgpLCAiIG1pY3Jvc2Vjb25k
c1xuIik7CisgICAgICAgIG91dC5wcmludCgiXG5cblNhbXBsaW5nIHJhdGU6ICIsIG1fdGltaW5n
SW50ZXJ2YWwubWljcm9zZWNvbmRzKCksICIgbWljcm9zZWNvbmRzXG4iKTsKICAgICAgICAgb3V0
LnByaW50KCJUb3AgZnVuY3Rpb25zIGFzIDxudW1TYW1wbGVzICAnZnVuY3Rpb25OYW1lOnNvdXJj
ZUlEJz5cbiIpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE9wdGlvbnM6OnNhbXBs
aW5nUHJvZmlsZXJUb3BGdW5jdGlvbnNDb3VudCgpOyBpKyspIHsKICAgICAgICAgICAgIGF1dG8g
cGFpciA9IHRha2VNYXgoKTsKQEAgLTEwNTMsNyArMTA1Myw3IEBAIHZvaWQgU2FtcGxpbmdQcm9m
aWxlcjo6cmVwb3J0VG9wQnl0ZWNvZGVzKFByaW50U3RyZWFtJiBvdXQpCiAgICAgfTsKIAogICAg
IGlmIChPcHRpb25zOjpzYW1wbGluZ1Byb2ZpbGVyVG9wQnl0ZWNvZGVzQ291bnQoKSkgewotICAg
ICAgICBvdXQucHJpbnQoIlxuXG5TYW1wbGluZyByYXRlOiAiLCBtX3RpbWluZ0ludGVydmFsLmNv
dW50KCksICIgbWljcm9zZWNvbmRzXG4iKTsKKyAgICAgICAgb3V0LnByaW50KCJcblxuU2FtcGxp
bmcgcmF0ZTogIiwgbV90aW1pbmdJbnRlcnZhbC5taWNyb3NlY29uZHMoKSwgIiBtaWNyb3NlY29u
ZHNcbiIpOwogICAgICAgICBvdXQucHJpbnQoIkhvdHRlc3QgYnl0ZWNvZGVzIGFzIDxudW1TYW1w
bGVzICAgJ2Z1bmN0aW9uTmFtZSNoYXNoOkpJVFR5cGU6Ynl0ZWNvZGVJbmRleCc+XG4iKTsKICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBPcHRpb25zOjpzYW1wbGluZ1Byb2ZpbGVyVG9w
Qnl0ZWNvZGVzQ291bnQoKTsgaSsrKSB7CiAgICAgICAgICAgICBhdXRvIHBhaXIgPSB0YWtlTWF4
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1By
b2ZpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVy
LmgKaW5kZXggMzhhMTc5Y2E4YzZmMWFlY2M4YzAzY2Q2NDQwYWY4NjcwZmRmOWRhYi4uN2Q5MWFk
NDhlNTJkNTI3NjI5YWM0M2ZhMTk5OGY3OThiYmNhOTQxYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtMTYyLDcgKzE2Miw3IEBA
IGNsYXNzIFNhbXBsaW5nUHJvZmlsZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2Ft
cGxpbmdQcm9maWxlcj4gewogICAgIHZvaWQgc2h1dGRvd24oKTsKICAgICB2b2lkIHZpc2l0KFNs
b3RWaXNpdG9yJik7CiAgICAgTG9jayYgZ2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQotICAg
IHZvaWQgc2V0VGltaW5nSW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBpbnRlcnZh
bCkgeyBtX3RpbWluZ0ludGVydmFsID0gaW50ZXJ2YWw7IH0KKyAgICB2b2lkIHNldFRpbWluZ0lu
dGVydmFsKFNlY29uZHMgaW50ZXJ2YWwpIHsgbV90aW1pbmdJbnRlcnZhbCA9IGludGVydmFsOyB9
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RhcnQoY29u
c3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICBWZWN0b3I8U3RhY2tUcmFjZT4gcmVsZWFzZVN0YWNr
VHJhY2VzKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CkBAIC0xODUsMTQgKzE4NSwxNCBAQCBjbGFz
cyBTYW1wbGluZ1Byb2ZpbGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNhbXBsaW5n
UHJvZmlsZXI+IHsKIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVUaHJlYWRJZk5lY2Vzc2FyeShj
b25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIHZvaWQgdGltZXJMb29wKCk7Ci0gICAgdm9pZCB0
YWtlU2FtcGxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25k
cyYgc3RhY2tUcmFjZVByb2Nlc3NpbmdUaW1lKTsKKyAgICB2b2lkIHRha2VTYW1wbGUoY29uc3Qg
QWJzdHJhY3RMb2NrZXImLCBTZWNvbmRzJiBzdGFja1RyYWNlUHJvY2Vzc2luZ1RpbWUpOwogCiAg
ICAgVk0mIG1fdm07CiAgICAgV2Vha1JhbmRvbSBtX3dlYWtSYW5kb207CiAgICAgUmVmUHRyPFN0
b3B3YXRjaD4gbV9zdG9wd2F0Y2g7CiAgICAgVmVjdG9yPFN0YWNrVHJhY2U+IG1fc3RhY2tUcmFj
ZXM7CiAgICAgVmVjdG9yPFVucHJvY2Vzc2VkU3RhY2tUcmFjZT4gbV91bnByb2Nlc3NlZFN0YWNr
VHJhY2VzOwotICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbV90aW1pbmdJbnRlcnZhbDsK
KyAgICBTZWNvbmRzIG1fdGltaW5nSW50ZXJ2YWw7CiAgICAgZG91YmxlIG1fbGFzdFRpbWU7CiAg
ICAgTG9jayBtX2xvY2s7CiAgICAgUmVmUHRyPFRocmVhZD4gbV90aHJlYWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggM2ZkMmFmZDNjZmI0OWRkNWQ2YjdlMzVmYTE2ODk0
Zjk1YzEyNzc3Yi4uMWJlOGIwMjMwYzQ0MzVjMmJkN2RmYmI1N2M3ZDI1ZjczOGIwZDlhMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtNDE4LDkgKzQxOCw4IEBAIFZNOjpW
TShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAgICAgc2V0U2hvdWxkQnVp
bGRQQ1RvQ29kZU9yaWdpbk1hcHBpbmcoKTsKIAogICAgIGlmIChPcHRpb25zOjp3YXRjaGRvZygp
KSB7Ci0gICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dE1pbGxpcyhPcHRp
b25zOjp3YXRjaGRvZygpKTsKICAgICAgICAgV2F0Y2hkb2cmIHdhdGNoZG9nID0gZW5zdXJlV2F0
Y2hkb2coKTsKLSAgICAgICAgd2F0Y2hkb2cuc2V0VGltZUxpbWl0KHRpbWVvdXRNaWxsaXMpOwor
ICAgICAgICB3YXRjaGRvZy5zZXRUaW1lTGltaXQoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhP
cHRpb25zOjp3YXRjaGRvZygpKSk7CiAgICAgfQogCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgYW55
IHN0dWJzIHRoYXQgdGhlIEpJVCBpcyBnb2luZyB0byB1c2UgYXJlIGluaXRpYWxpemVkIGluIG5v
bi1jb21waWxhdGlvbiB0aHJlYWRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV2F0Y2hkb2cuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0
Y2hkb2cuY3BwCmluZGV4IDI2NzEyMWMyZmQyZmJkY2QxODY2YmQxZWNiOWIyMDVjZDQyMThiZmYu
LjNjZDNlZTg3OTgzYjA1MzMwZWRlZGFhYzY5YjM3MGI1ZTI2YzFjOTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAKQEAgLTMyLDE5ICszMiwxMyBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAotY29uc3Qgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBXYXRjaGRv
Zzo6bm9UaW1lTGltaXQgPSBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzOjptYXgoKTsKLQotc3Rh
dGljIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgY3VycmVudFdhbGxDbG9ja1RpbWUoKQotewot
ICAgIGF1dG8gc3RlYWR5VGltZVNpbmNlRXBvY2ggPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2Nr
Ojpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCk7Ci0gICAgcmV0dXJuIHN0ZDo6Y2hyb25vOjpkdXJh
dGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHM+KHN0ZWFkeVRpbWVTaW5jZUVwb2No
KTsKLX0KK2NvbnN0IFNlY29uZHMgV2F0Y2hkb2c6Om5vVGltZUxpbWl0IHsgU2Vjb25kczo6aW5m
aW5pdHkoKSB9OwogCiBXYXRjaGRvZzo6V2F0Y2hkb2coVk0qIHZtKQogICAgIDogbV92bSh2bSkK
ICAgICAsIG1fdGltZUxpbWl0KG5vVGltZUxpbWl0KQogICAgICwgbV9jcHVEZWFkbGluZShub1Rp
bWVMaW1pdCkKLSAgICAsIG1fd2FsbENsb2NrRGVhZGxpbmUobm9UaW1lTGltaXQpCisgICAgLCBt
X2RlYWRsaW5lKE1vbm90b25pY1RpbWU6OmluZmluaXR5KCkpCiAgICAgLCBtX2NhbGxiYWNrKDAp
CiAgICAgLCBtX2NhbGxiYWNrRGF0YTEoMCkKICAgICAsIG1fY2FsbGJhY2tEYXRhMigwKQpAQCAt
NTIsNyArNDYsNyBAQCBXYXRjaGRvZzo6V2F0Y2hkb2coVk0qIHZtKQogewogfQogCi12b2lkIFdh
dGNoZG9nOjpzZXRUaW1lTGltaXQoc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBsaW1pdCwKK3Zv
aWQgV2F0Y2hkb2c6OnNldFRpbWVMaW1pdChTZWNvbmRzIGxpbWl0LAogICAgIFNob3VsZFRlcm1p
bmF0ZUNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBkYXRhMSwgdm9pZCogZGF0YTIpCiB7CiAgICAg
QVNTRVJUKG1fdm0tPmN1cnJlbnRUaHJlYWRJc0hvbGRpbmdBUElMb2NrKCkpOwpAQCAtNjksMTIg
KzYzLDEyIEBAIHZvaWQgV2F0Y2hkb2c6OnNldFRpbWVMaW1pdChzdGQ6OmNocm9ubzo6bWljcm9z
ZWNvbmRzIGxpbWl0LAogYm9vbCBXYXRjaGRvZzo6c2hvdWxkVGVybWluYXRlKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKICAgICBBU1NFUlQobV92bS0+Y3VycmVudFRocmVhZElzSG9sZGluZ0FQSUxvY2so
KSk7Ci0gICAgaWYgKGN1cnJlbnRXYWxsQ2xvY2tUaW1lKCkgPCBtX3dhbGxDbG9ja0RlYWRsaW5l
KQorICAgIGlmIChNb25vdG9uaWNUaW1lOjpub3coKSA8IG1fZGVhZGxpbmUpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsgLy8gSnVzdCBhIHN0YWxlIHRpbWVyIGZpcmluZy4gTm90aGluZyB0byBkby4K
IAotICAgIC8vIFNldCBtX3dhbGxDbG9ja0RlYWRsaW5lIHRvIG5vVGltZUxpbWl0IGhlcmUgc28g
dGhhdCB3ZSBjYW4gcmVqZWN0IGFsbCBmdXR1cmUKKyAgICAvLyBTZXQgbV9kZWFkbGluZSB0byBN
b25vdG9uaWNUaW1lOjppbmZpbml0eSgpIGhlcmUgc28gdGhhdCB3ZSBjYW4gcmVqZWN0IGFsbCBm
dXR1cmUKICAgICAvLyBzcHVyaW91cyB3YWtlcy4KLSAgICBtX3dhbGxDbG9ja0RlYWRsaW5lID0g
bm9UaW1lTGltaXQ7CisgICAgbV9kZWFkbGluZSA9IE1vbm90b25pY1RpbWU6OmluZmluaXR5KCk7
CiAKICAgICBhdXRvIGNwdVRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOwogICAgIGlmIChjcHVUaW1l
IDwgbV9jcHVEZWFkbGluZSkgewpAQCAtMTMwLDcgKzEyNCw3IEBAIHZvaWQgV2F0Y2hkb2c6OmV4
aXRlZFZNKCkKICAgICBtX2hhc0VudGVyZWRWTSA9IGZhbHNlOwogfQogCi12b2lkIFdhdGNoZG9n
OjpzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgdGltZUxpbWl0KQordm9pZCBX
YXRjaGRvZzo6c3RhcnRUaW1lcihTZWNvbmRzIHRpbWVMaW1pdCkKIHsKICAgICBBU1NFUlQobV9o
YXNFbnRlcmVkVk0pOwogICAgIEFTU0VSVChtX3ZtLT5jdXJyZW50VGhyZWFkSXNIb2xkaW5nQVBJ
TG9jaygpKTsKQEAgLTEzOCwyMiArMTMyLDIxIEBAIHZvaWQgV2F0Y2hkb2c6OnN0YXJ0VGltZXIo
c3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyB0aW1lTGltaXQpCiAgICAgQVNTRVJUKHRpbWVMaW1p
dCA8PSBtX3RpbWVMaW1pdCk7CiAKICAgICBtX2NwdURlYWRsaW5lID0gY3VycmVudENQVVRpbWUo
KSArIHRpbWVMaW1pdDsKLSAgICBhdXRvIHdhbGxDbG9ja1RpbWUgPSBjdXJyZW50V2FsbENsb2Nr
VGltZSgpOwotICAgIGF1dG8gd2FsbENsb2NrRGVhZGxpbmUgPSB3YWxsQ2xvY2tUaW1lICsgdGlt
ZUxpbWl0OworICAgIGF1dG8gbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgYXV0byBk
ZWFkbGluZSA9IG5vdyArIHRpbWVMaW1pdDsKIAotICAgIGlmICgod2FsbENsb2NrVGltZSA8IG1f
d2FsbENsb2NrRGVhZGxpbmUpCi0gICAgICAgICYmIChtX3dhbGxDbG9ja0RlYWRsaW5lIDw9IHdh
bGxDbG9ja0RlYWRsaW5lKSkKKyAgICBpZiAoKG5vdyA8IG1fZGVhZGxpbmUpICYmIChtX2RlYWRs
aW5lIDw9IGRlYWRsaW5lKSkKICAgICAgICAgcmV0dXJuOyAvLyBXYWl0IGZvciB0aGUgY3VycmVu
dCBhY3RpdmUgdGltZXIgdG8gZXhwaXJlIGJlZm9yZSBzdGFydGluZyBhIG5ldyBvbmUuCiAKICAg
ICAvLyBFbHNlLCB0aGUgY3VycmVudCBhY3RpdmUgdGltZXIgd29uJ3QgZmlyZSBzb29uIGVub3Vn
aC4gU28sIHN0YXJ0IGEgbmV3IHRpbWVyLgotICAgIG1fd2FsbENsb2NrRGVhZGxpbmUgPSB3YWxs
Q2xvY2tEZWFkbGluZTsKKyAgICBtX2RlYWRsaW5lID0gZGVhZGxpbmU7CiAKICAgICAvLyBXZSBu
ZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBXYXRjaGRvZyBvdXRsaXZlcyB0aGUgdGltZXIuCiAgICAg
Ly8gRm9yIHRoZSBzYW1lIHJlYXNvbiwgdGhlIHRpbWVyIG1heSBhbHNvIG91dGxpdmUgdGhlIFZN
IHRoYXQgdGhlIFdhdGNoZG9nIG9wZXJhdGVzIG9uLgogICAgIC8vIFNvLCB3ZSBhbHdheXMgbmVl
ZCB0byBudWxsIGNoZWNrIG1fdm0gYmVmb3JlIHVzaW5nIGl0LiBUaGUgVk0gd2lsbCBub3RpZnkg
dGhlIFdhdGNoZG9nCiAgICAgLy8gdmlhIHdpbGxEZXN0cm95Vk0oKSBiZWZvcmUgaXQgZ29lcyBh
d2F5LgogICAgIFJlZlB0cjxXYXRjaGRvZz4gcHJvdGVjdGVkVGhpcyA9IHRoaXM7Ci0gICAgbV90
aW1lclF1ZXVlLT5kaXNwYXRjaEFmdGVyKFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHModGltZUxp
bWl0LmNvdW50KCkpLCBbdGhpcywgcHJvdGVjdGVkVGhpc10geworICAgIG1fdGltZXJRdWV1ZS0+
ZGlzcGF0Y2hBZnRlcih0aW1lTGltaXQsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzXSB7CiAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgIGlmIChtX3ZtKQogICAgICAgICAg
ICAgbV92bS0+bm90aWZ5TmVlZFdhdGNoZG9nQ2hlY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XYXRjaGRvZy5oCmluZGV4IDI5MzM2MTFjMGJmZjRmNjQ5MWIxOWMyYWU3ZGUzY2Zi
MjMyZTE4YTUuLjk2M2EyODcyMGVlMDNkMjc3ZjEzMTlkNjRmZTA2ZDAxNjY1ODAyYjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaApAQCAtNDQsNyArNDQsNyBAQCBj
bGFzcyBXYXRjaGRvZyA6IHB1YmxpYyBXVEY6OlRocmVhZFNhZmVSZWZDb3VudGVkPFdhdGNoZG9n
PiB7CiAgICAgdm9pZCB3aWxsRGVzdHJveVZNKFZNKik7CiAKICAgICB0eXBlZGVmIGJvb2wgKCpT
aG91bGRUZXJtaW5hdGVDYWxsYmFjaykoRXhlY1N0YXRlKiwgdm9pZCogZGF0YTEsIHZvaWQqIGRh
dGEyKTsKLSAgICB2b2lkIHNldFRpbWVMaW1pdChzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzIGxp
bWl0LCBTaG91bGRUZXJtaW5hdGVDYWxsYmFjayA9IDAsIHZvaWQqIGRhdGExID0gMCwgdm9pZCog
ZGF0YTIgPSAwKTsKKyAgICB2b2lkIHNldFRpbWVMaW1pdChTZWNvbmRzIGxpbWl0LCBTaG91bGRU
ZXJtaW5hdGVDYWxsYmFjayA9IDAsIHZvaWQqIGRhdGExID0gMCwgdm9pZCogZGF0YTIgPSAwKTsK
IAogICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKEV4ZWNTdGF0ZSopOwogCkBAIC01MiwxOSArNTIs
MTkgQEAgY2xhc3MgV2F0Y2hkb2cgOiBwdWJsaWMgV1RGOjpUaHJlYWRTYWZlUmVmQ291bnRlZDxX
YXRjaGRvZz4gewogICAgIHZvaWQgZW50ZXJlZFZNKCk7CiAgICAgdm9pZCBleGl0ZWRWTSgpOwog
Ci0gICAgc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbm9UaW1lTGltaXQ7
CisgICAgc3RhdGljIGNvbnN0IFNlY29uZHMgbm9UaW1lTGltaXQ7CiAKIHByaXZhdGU6Ci0gICAg
dm9pZCBzdGFydFRpbWVyKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgdGltZUxpbWl0KTsKKyAg
ICB2b2lkIHN0YXJ0VGltZXIoU2Vjb25kcyB0aW1lTGltaXQpOwogICAgIHZvaWQgc3RvcFRpbWVy
KCk7CiAKICAgICBMb2NrIG1fbG9jazsgLy8gR3VhcmRzIGFjY2VzcyB0byBtX3ZtLgogICAgIFZN
KiBtX3ZtOwogCi0gICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBtX3RpbWVMaW1pdDsKKyAg
ICBTZWNvbmRzIG1fdGltZUxpbWl0OwogCi0gICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBt
X2NwdURlYWRsaW5lOwotICAgIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMgbV93YWxsQ2xvY2tE
ZWFkbGluZTsKKyAgICBTZWNvbmRzIG1fY3B1RGVhZGxpbmU7CisgICAgTW9ub3RvbmljVGltZSBt
X2RlYWRsaW5lOwogCiAgICAgYm9vbCBtX2hhc0VudGVyZWRWTSB7IGZhbHNlIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0N1
cnJlbnRUaW1lLmNwcAppbmRleCA3MWFmZWJlNDQxNTI3YWQ4OWEyMDZmNDk5NTVjYzczYmJlZDdk
ZTE4Li4xNzM1YWY0OGUwNGU3NDhhMmM0YTdhOWU2ZjU1YmVmNzFmOGEwNTkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQ3Vy
cmVudFRpbWUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJDdXJyZW50VGltZS5oIgorI2luY2x1ZGUgIk1vbm90b25pY1RpbWUuaCIKIAogI2lu
Y2x1ZGUgIkNvbmRpdGlvbi5oIgogI2luY2x1ZGUgIkxvY2suaCIKQEAgLTI4MCw3ICsyODEsNyBA
QCBkb3VibGUgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkKIAogI2VuZGlmCiAKLXN0ZDo6
Y2hyb25vOjptaWNyb3NlY29uZHMgY3VycmVudENQVVRpbWUoKQorU2Vjb25kcyBjdXJyZW50Q1BV
VGltZSgpCiB7CiAjaWYgT1MoREFSV0lOKQogICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgaW5m
b0NvdW50ID0gVEhSRUFEX0JBU0lDX0lORk9fQ09VTlQ7CkBAIC0yOTEsNyArMjkyLDcgQEAgc3Rk
OjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBjdXJyZW50Q1BVVGltZSgpCiAgICAgdGhyZWFkX2luZm8o
dGhyZWFkUG9ydCwgVEhSRUFEX0JBU0lDX0lORk8sIHJlaW50ZXJwcmV0X2Nhc3Q8dGhyZWFkX2lu
Zm9fdD4oJmluZm8pLCAmaW5mb0NvdW50KTsKICAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNo
X3Rhc2tfc2VsZigpLCB0aHJlYWRQb3J0KTsKIAotICAgIHJldHVybiBzdGQ6OmNocm9ubzo6c2Vj
b25kcyhpbmZvLnVzZXJfdGltZS5zZWNvbmRzICsgaW5mby5zeXN0ZW1fdGltZS5zZWNvbmRzKSAr
IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMoaW5mby51c2VyX3RpbWUubWljcm9zZWNvbmRzICsg
aW5mby5zeXN0ZW1fdGltZS5taWNyb3NlY29uZHMpOworICAgIHJldHVybiBTZWNvbmRzKGluZm8u
dXNlcl90aW1lLnNlY29uZHMgKyBpbmZvLnN5c3RlbV90aW1lLnNlY29uZHMpICsgU2Vjb25kczo6
ZnJvbU1pY3Jvc2Vjb25kcyhpbmZvLnVzZXJfdGltZS5taWNyb3NlY29uZHMgKyBpbmZvLnN5c3Rl
bV90aW1lLm1pY3Jvc2Vjb25kcyk7CiAjZWxpZiBPUyhXSU5ET1dTKQogICAgIHVuaW9uIHsKICAg
ICAgICAgRklMRVRJTUUgZmlsZVRpbWU7CkBAIC0zMDQsMTIgKzMwNSwxNiBAQCBzdGQ6OmNocm9u
bzo6bWljcm9zZWNvbmRzIGN1cnJlbnRDUFVUaW1lKCkKICAgICAKICAgICBHZXRUaHJlYWRUaW1l
cyhHZXRDdXJyZW50VGhyZWFkKCksICZjcmVhdGlvblRpbWUsICZleGl0VGltZSwgJmtlcm5lbFRp
bWUuZmlsZVRpbWUsICZ1c2VyVGltZS5maWxlVGltZSk7CiAKLSAgICByZXR1cm4gc3RkOjpjaHJv
bm86Om1pY3Jvc2Vjb25kcygodXNlclRpbWUuZmlsZVRpbWVBc0xvbmcgKyBrZXJuZWxUaW1lLmZp
bGVUaW1lQXNMb25nKSAvIDEwKTsKKyAgICByZXR1cm4gU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25k
cygodXNlclRpbWUuZmlsZVRpbWVBc0xvbmcgKyBrZXJuZWxUaW1lLmZpbGVUaW1lQXNMb25nKSAv
IDEwKTsKKyNlbGlmIE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKQorICAgIHN0cnVjdCB0aW1lc3Bl
YyB0cyB7IH07CisgICAgY2xvY2tfZ2V0dGltZShDTE9DS19USFJFQURfQ1BVVElNRV9JRCwgJnRz
KTsKKyAgICByZXR1cm4gU2Vjb25kcyh0cy50dl9zZWMpICsgU2Vjb25kczo6ZnJvbU5hbm9zZWNv
bmRzKHRzLnR2X25zZWMpOwogI2Vsc2UKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJldHVybiB0
aGUgdGltZSB0aGUgY3VycmVudCB0aHJlYWQgaGFzIHNwZW50IGV4ZWN1dGluZy4KIAotICAgIHN0
YXRpYyBhdXRvIGZpcnN0VGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwot
ICAgIHJldHVybiBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWljcm9z
ZWNvbmRzPihzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSAtIGZpcnN0VGltZSk7Cisg
ICAgc3RhdGljIE1vbm90b25pY1RpbWUgZmlyc3RUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7
CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWU6Om5vdygpIC0gZmlyc3RUaW1lOwogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmggYi9Tb3VyY2UvV1RG
L3d0Zi9DdXJyZW50VGltZS5oCmluZGV4IDc0YjIzNmY3OTE4MmI3ZTVlNGRkZmFmNTdjZTgyMzEy
YzU0ZWFkNDcuLmFmYzMyNWY3Mzg0NjBlZjBlYzExZTllYjhkNTNhNGVlODg4ZWI4ZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmgKKysrIGIvU291cmNlL1dURi93dGYv
Q3VycmVudFRpbWUuaApAQCAtMzIsOCArMzIsOCBAQAogI2lmbmRlZiBDdXJyZW50VGltZV9oCiAj
ZGVmaW5lIEN1cnJlbnRUaW1lX2gKIAotI2luY2x1ZGUgPGNocm9ubz4KICNpbmNsdWRlIDx0aW1l
Lmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKQEAgLTY0
LDcgKzY0LDcgQEAgaW5saW5lIGRvdWJsZSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWVNUygp
CiAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IENQVSB0aW1lIG9mIHRoZSBjdXJyZW50IHRocmVhZC4K
IC8vIFByZWNpc2lvbiB2YXJpZXMgZGVwZW5kaW5nIG9uIHBsYXRmb3JtIGJ1dCBpcyB1c3VhbGx5
IGFzIGdvb2Qgb3IgYmV0dGVyCiAvLyB0aGFuIGEgbWlsbGlzZWNvbmQuCi1XVEZfRVhQT1JUX1BS
SVZBVEUgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBjdXJyZW50Q1BVVGltZSgpOworV1RGX0VY
UE9SVF9QUklWQVRFIFNlY29uZHMgY3VycmVudENQVVRpbWUoKTsKIAogV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgc2xlZXAoZG91YmxlKTsKIAo=
</data>
<flag name="review"
          id="349241"
          type_id="1"
          status="+"
          setter="annulen"
    />
          </attachment>
      

    </bug>

</bugzilla>