<?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>145465</bug_id>
          
          <creation_ts>2015-05-29 13:16:01 -0700</creation_ts>
          <short_desc>Consider throttling DOM timers in iframes outside the viewport</short_desc>
          <delta_ts>2015-06-16 11:34:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=98474</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=144718</see_also>
          <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>
          <dependson>146025</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1098159</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-29 13:16:01 -0700</bug_when>
    <thetext>Consider throttling DOM timers in iframe outside the viewport for performance and power reasons.

Radar: &lt;rdar://problem/20768957&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098170</commentid>
    <comment_count>1</comment_count>
      <attachid>253910</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-29 13:36:59 -0700</bug_when>
    <thetext>Created attachment 253910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098187</commentid>
    <comment_count>2</comment_count>
      <attachid>253910</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-29 14:40:38 -0700</bug_when>
    <thetext>Comment on attachment 253910
Patch

What if the iframe has &lt;audio&gt; or is using the WebAudio API?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098209</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-29 15:13:13 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 253910 [details]
&gt; Patch
&gt; 
&gt; What if the iframe has &lt;audio&gt; or is using the WebAudio API?

First of all, audio would only be a problem here is audio is somehow driven by timers.
I don&apos;t know if there is content doing this but it seems unlikely to me because there is no guarantee your timer will fire *when* you ask it to. It all depends on the load of the system / browser.

Also note that we already throttle timers in background pages and I use the same mechanism here for out-of-viewport iframes. So timer-driven audio would likely already be broken in the case of background pages.

If this turns out to be an issue, we could restrict the throttling to cross-origin iframes for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098232</commentid>
    <comment_count>4</comment_count>
      <attachid>253910</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-29 16:02:56 -0700</bug_when>
    <thetext>Comment on attachment 253910
Patch

Clearing flags on attachment: 253910

Committed r185012: &lt;http://trac.webkit.org/changeset/185012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098233</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-29 16:03:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253910</attachid>
            <date>2015-05-29 13:36:59 -0700</date>
            <delta_ts>2015-05-29 16:02:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145465-20150529133644.patch</filename>
            <type>text/plain</type>
            <size>15904</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0OTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2VkNGM5Mjk1ZTk5NTA2
ZDZlNzcxOTBkODNkMDFjZTExYzIwYzczOC4uZmZkOGUxYmUzZjA3ZTkwYzAwNGJkNDE2NDE2OWY4
Y2E2NmEwM2E3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE1LTA1LTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ29uc2lkZXIgdGhyb3R0bGlu
ZyBET00gdGltZXJzIGluIGlmcmFtZXMgb3V0c2lkZSB0aGUgdmlld3BvcnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTQ2NQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjA3Njg5NTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhyb3R0bGUgRE9NIHRpbWVycyBpbiBpZnJhbWVzIHRoYXQgYXJlIG91
dHNpZGUgdGhlIHZpZXdwb3J0IHRvIGRlY3JlYXNlCisgICAgICAgIENQVSB1c2FnZSwgaW1wcm92
ZSBwZXJmb3JtYW5jZSBhbmQgcmVkdWNlIHBvd2VyIHVzZS4KKworICAgICAgICBUaGUgYXBwcm9h
Y2ggaXMgc2ltaWxhciB0byB3aGF0IHdlIGFscmVhZHkgZGlkIGZvciByZXF1ZXN0QW5pbWF0aW9u
RnJhbWUKKyAgICAgICAgaW4gcjE4Mzk5OC4KKworICAgICAgICBXZSBhbHJlYWR5IGhhcyBzdXBw
b3J0IGZvciB0aHJvdHRsaW5nIERPTSB0aW1lcnMgYXQ6CisgICAgICAgIC0gUGFnZSBsZXZlbDog
Zm9yIGJhY2tnb3VuZCBwYWdlcworICAgICAgICAtIERPTSB0aW1lciBsZXZlbDogZm9yIHRpbWVy
cyBjaGFuZ2luZyB0aGUgc3R5bGUgb2YgYW4gZWxlbWVudCBvdXRzaWRlCisgICAgICAgICAgdGhl
IHZpZXdwb3J0IG9yIGRyYXdpbmcgb24gYSBjYW52YXMgb3V0c2lkZSB0aGUgdmlld3BvcnQuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRocm90dGxpbmcgRE9NIHRpbWVy
cyBhdCBEb2N1bWVudCBsZXZlbCBzbworICAgICAgICB3ZSBjYW4gdGhyb3R0bGUgYWxsIHRpbWVy
cyBpbnNpZGUgYSBzcGVjaWZpYyBpZnJhbWUgLyBEb2N1bWVudC4gSXQgcmVsaWVzCisgICAgICAg
IG9uIHRoZSBzYW1lIHRpbWVyQWxpZ25tZW50SW50ZXJ2YWwgdGhhdCBpcyB1c2VkIGZvciB0aHJv
dHRsaW5nIGF0IFBhZ2UKKyAgICAgICAgbGV2ZWwgd2l0aCB0d2Vha3Mgc28gdGhhdCBkaWZmZXJl
bnQgRG9jdW1lbnRzIGluc2lkZSB0aGUgc2FtZSBQYWdlIGNhbgorICAgICAgICBoYXZlIGEgZGlm
ZmVyZW50IHRpbWVyQWxpZ25tZW50SW50ZXJ2YWwuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20v
dGltZXItdGhyb3R0bGluZy1zdWJmcmFtZS5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFRpbWVyVGhyb3R0bGluZ0VuYWJs
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRpbWVyQWxpZ25tZW50SW50ZXJ2YWwp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmlzVGltZXJUaHJvdHRsaW5nRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9ET01UaW1lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6YWxpZ25lZEZpcmVUaW1lKToKKyAgICAgICAg
VGhlIHByZXZpb3VzIGNvZGUgd2FzIG5vdCB0aHJvdHRsaW5nIHRoZSB0aW1lciBpZiBpdHMgZmly
ZVRpbWUgd2FzIGluCisgICAgICAgIHRoZSBwYXN0LiBUaGlzIHdhcyBjYXVzaW5nIHNvbWUgYWdn
cmVzc2l2ZSB0aW1lcnMgb24gbWFzaGFibGUuY29tIHRvCisgICAgICAgIG5vdCBiZSB0aHJvdHRs
ZWQgc28gSSBnb3QgcmlkIG9mIHRoaXMgYmVoYXZpb3IuIEkgZG9uJ3Qgc2VlIGFueSByZWFzb24K
KyAgICAgICAgd2h5IHdlIHdvdWxkIG5vdCB0aHJvdHRsZSBhIHRpbWVyIHNpbXBseSBiZWNhdXNl
IGl0IGlzIHN1cHBvc2VkIHRvIGhhdmUKKyAgICAgICAgZmlyZWQgYWxyZWFkeS4KKworICAgICAg
ICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dmll
d3BvcnRDb250ZW50c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRh
dGVTY3JpcHRlZEFuaW1hdGlvbnNBbmRUaW1lcnNUaHJvdHRsaW5nU3RhdGUpOgorICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3Lmg6CisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmFyZVRpbWVyc1Rocm90dGxlZCk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6
CisgICAgICAgIEFkZCBBUEkgdG8gZmFjaWxpdGF0ZSBsYXlvdXQgdGVzdGluZyBvZiB0aGlzIGZ1
bmN0aW9uYWxpdHkuCisKIDIwMTUtMDUtMjggIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2Fs
dmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlvdWVubiBGYWJsZXQgPHlvdWVubi5mYWJsZXRAY3JmLmNh
bm9uLmZyPgogCiAgICAgICAgIFtTdHJlYW1zIEFQSV0gUmVhZGFibGVTdHJlYW1SZWFkZXIgc2hv
dWxkIG5vdCBiZSBleHBvc2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAwMzg1YzQ5Y2Fh
ZGM4MjAzZWQ3YTIyNTUyNjZlZWYwMTY4YTZkNTgyLi40NmExM2Q1MTBkYmY3OTk1ZTQ2NzljZmUy
MjU4MmE3NzIyYjUxMTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI3NTAsOCArMjc1
MCwyNCBAQCBkb3VibGUgRG9jdW1lbnQ6Om1pbmltdW1UaW1lckludGVydmFsKCkgY29uc3QKICAg
ICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS5taW5pbXVtRE9NVGltZXJJbnRlcnZhbCgpOwogfQog
Cit2b2lkIERvY3VtZW50OjpzZXRUaW1lclRocm90dGxpbmdFbmFibGVkKGJvb2wgc2hvdWxkVGhy
b3R0bGUpCit7CisgICAgaWYgKG1faXNUaW1lclRocm90dGxpbmdFbmFibGVkID09IHNob3VsZFRo
cm90dGxlKQorICAgICAgICByZXR1cm47CisKKyAgICBkb3VibGUgcHJldmlvdXNJbnRlcnZhbCA9
IHRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKTsKKworICAgIG1faXNUaW1lclRocm90dGxpbmdFbmFi
bGVkID0gc2hvdWxkVGhyb3R0bGU7CisKKyAgICBpZiAocHJldmlvdXNJbnRlcnZhbCAhPSB0aW1l
ckFsaWdubWVudEludGVydmFsKCkpCisgICAgICAgIGRpZENoYW5nZVRpbWVyQWxpZ25tZW50SW50
ZXJ2YWwoKTsKK30KKwogZG91YmxlIERvY3VtZW50Ojp0aW1lckFsaWdubWVudEludGVydmFsKCkg
Y29uc3QKIHsKKyAgICBpZiAobV9pc1RpbWVyVGhyb3R0bGluZ0VuYWJsZWQpCisgICAgICAgIHJl
dHVybiBET01UaW1lcjo6aGlkZGVuUGFnZUFsaWdubWVudEludGVydmFsKCk7CisKICAgICBQYWdl
KiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKaW5kZXggY2MxYzAzOGM1MWM3OWQ3MWY2NzM2M2YxMTFhZmRkMzQwNzA3YjlhNC4u
YWMzOTk5YWIzMWQ4MWE1NDFjNjVmMzA5M2MwMzM5MTFkYWFmM2IyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKQEAgLTQzMSw2ICs0MzEsOSBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHZpc2liaWxpdHlT
dGF0ZSgpIGNvbnN0OwogICAgIGJvb2wgaGlkZGVuKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldFRp
bWVyVGhyb3R0bGluZ0VuYWJsZWQoYm9vbCk7CisgICAgYm9vbCBpc1RpbWVyVGhyb3R0bGluZ0Vu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzVGltZXJUaHJvdHRsaW5nRW5hYmxlZDsgfQorCiAj
aWYgRU5BQkxFKENTUF9ORVhUKQogICAgIERPTVNlY3VyaXR5UG9saWN5JiBzZWN1cml0eVBvbGlj
eSgpOwogI2VuZGlmCkBAIC0xNjg4LDYgKzE2OTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9o
YXNQcmVwYXJlZEZvckRlc3RydWN0aW9uOwogCiAgICAgYm9vbCBtX2hhc1N0eWxlV2l0aFZpZXdw
b3J0VW5pdHM7CisgICAgYm9vbCBtX2lzVGltZXJUaHJvdHRsaW5nRW5hYmxlZCB7IGZhbHNlIH07
CiAKICAgICBIYXNoU2V0PE1lZGlhUHJvZHVjZXIqPiBtX2F1ZGlvUHJvZHVjZXJzOwogICAgIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX21lZGlhU3RhdGUgeyBNZWRpYVByb2R1Y2Vy
OjpJc05vdFBsYXlpbmcgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKaW5kZXggNWE0N2UyYzgz
MDgxYzIwMzlkY2I5OWVhZWM3ZTQ2ZGVlOWI0NzRjZi4uYmMyZTBjMDZmZDAyMWZjMjQ0MzU4ZDZm
NWNjODE2NmNmNTlkMDBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKQEAgLTUwNywxNSAr
NTA3LDggQEAgZG91YmxlIERPTVRpbWVyOjppbnRlcnZhbENsYW1wZWRUb01pbmltdW0oKSBjb25z
dAogCiBkb3VibGUgRE9NVGltZXI6OmFsaWduZWRGaXJlVGltZShkb3VibGUgZmlyZVRpbWUpIGNv
bnN0CiB7Ci0gICAgZG91YmxlIGFsaWdubWVudEludGVydmFsID0gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT50aW1lckFsaWdubWVudEludGVydmFsKCk7Ci0gICAgaWYgKGFsaWdubWVudEludGVy
dmFsKSB7Ci0gICAgICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpOwotICAgICAgICBpZiAoZmlyZVRpbWUgPD0gY3VycmVudFRpbWUpCi0gICAgICAg
ICAgICByZXR1cm4gZmlyZVRpbWU7Ci0KLSAgICAgICAgZG91YmxlIGFsaWduZWRUaW1lID0gY2Vp
bChmaXJlVGltZSAvIGFsaWdubWVudEludGVydmFsKSAqIGFsaWdubWVudEludGVydmFsOwotICAg
ICAgICByZXR1cm4gYWxpZ25lZFRpbWU7Ci0gICAgfQorICAgIGlmIChkb3VibGUgYWxpZ25tZW50
SW50ZXJ2YWwgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnRpbWVyQWxpZ25tZW50SW50ZXJ2
YWwoKSkKKyAgICAgICAgcmV0dXJuIGNlaWwoZmlyZVRpbWUgLyBhbGlnbm1lbnRJbnRlcnZhbCkg
KiBhbGlnbm1lbnRJbnRlcnZhbDsKIAogICAgIHJldHVybiBmaXJlVGltZTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAppbmRleCBmMmY0OWY3YjBkOTY0ZWNiMzk5NzIxNmU1NWNjOTU1Y2Ix
YjU3MTI1Li4wNjFkM2Q5Y2ZhZGVmYmFkNjE1MTI5YmZhNmE4NTA1ZDc4NzhjOWJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xODA3LDcgKzE4MDcsNyBAQCB2b2lkIEZyYW1lVmll
dzo6dmlld3BvcnRDb250ZW50c0NoYW5nZWQoKQogICAgIGFwcGx5UmVjdXJzaXZlbHlXaXRoVmlz
aWJsZVJlY3QoW10gKEZyYW1lVmlldyYgZnJhbWVWaWV3LCBjb25zdCBJbnRSZWN0JiB2aXNpYmxl
UmVjdCkgewogICAgICAgICBmcmFtZVZpZXcucmVzdW1lVmlzaWJsZUltYWdlQW5pbWF0aW9ucyh2
aXNpYmxlUmVjdCk7CiAgICAgICAgIGZyYW1lVmlldy51cGRhdGVUaHJvdHRsZWRET01UaW1lcnNT
dGF0ZSh2aXNpYmxlUmVjdCk7Ci0gICAgICAgIGZyYW1lVmlldy51cGRhdGVTY3JpcHRlZEFuaW1h
dGlvbnNUaHJvdHRsaW5nU3RhdGUodmlzaWJsZVJlY3QpOworICAgICAgICBmcmFtZVZpZXcudXBk
YXRlU2NyaXB0ZWRBbmltYXRpb25zQW5kVGltZXJzVGhyb3R0bGluZ1N0YXRlKHZpc2libGVSZWN0
KTsKICAgICB9KTsKIH0KIApAQCAtMjE2OCw5ICsyMTY4LDggQEAgdm9pZCBGcmFtZVZpZXc6OnJl
c3VtZVZpc2libGVJbWFnZUFuaW1hdGlvbnMoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpCiAg
ICAgICAgIHJlbmRlclZpZXctPnJlc3VtZVBhdXNlZEltYWdlQW5pbWF0aW9uc0lmTmVlZGVkKHZp
c2libGVSZWN0KTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZVNjcmlwdGVkQW5pbWF0aW9u
c1Rocm90dGxpbmdTdGF0ZShjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmVjdCkKK3ZvaWQgRnJhbWVW
aWV3Ojp1cGRhdGVTY3JpcHRlZEFuaW1hdGlvbnNBbmRUaW1lcnNUaHJvdHRsaW5nU3RhdGUoY29u
c3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpCiB7Ci0jaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FKQogICAgIGlmIChmcmFtZSgpLmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMjE3OCwxNyArMjE3NywxNiBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlU2NyaXB0ZWRB
bmltYXRpb25zVGhyb3R0bGluZ1N0YXRlKGNvbnN0IEludFJlY3QmIHZpc2libGVSZQogICAgIGlm
ICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8qIHNjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlciA9IGRvY3VtZW50LT5zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKTsK
LSAgICBpZiAoIXNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuOwot
CiAgICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCB3b3JrIGZvciBzdWJmcmFtZXMgb2YgYSAiZGlz
cGxheTogbm9uZSIgZnJhbWUgYmVjYXVzZQogICAgIC8vIHRoZXkgaGF2ZSBhIG5vbi1udWxsIG93
bmVyUmVuZGVyZXIuCiAgICAgYm9vbCBzaG91bGRUaHJvdHRsZSA9ICFmcmFtZSgpLm93bmVyUmVu
ZGVyZXIoKSB8fCB2aXNpYmxlUmVjdC5pc0VtcHR5KCk7Ci0gICAgc2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyLT5zZXRUaHJvdHRsZWQoc2hvdWxkVGhyb3R0bGUpOwotI2Vsc2UKLSAgICBVTlVT
RURfUEFSQU0odmlzaWJsZVJlY3QpOworCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FKQorICAgIGlmIChhdXRvKiBzY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIgPSBkb2N1bWVu
dC0+c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKCkpCisgICAgICAgIHNjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci0+c2V0VGhyb3R0bGVkKHNob3VsZFRocm90dGxlKTsKICNlbmRpZgorCisg
ICAgZG9jdW1lbnQtPnNldFRpbWVyVGhyb3R0bGluZ0VuYWJsZWQoc2hvdWxkVGhyb3R0bGUpOwog
fQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDZhNjMyZTMwNWQ2ZTVkMGFlMzI5NWMx
ZWIzNmJiZDNjZWRmM2M5NGIuLmU2MWMxYTYyMTE1ODkxMDZkMzhmYTlhZjIyYTJkOWM3MWYzOGUx
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNjA2LDcgKzYwNiw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBhcHBseVJlY3Vyc2l2ZWx5V2l0aFZpc2libGVSZWN0KGNvbnN0IHN0ZDo6ZnVu
Y3Rpb248dm9pZCAoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNvbnN0IEludFJlY3QmIHZpc2libGVS
ZWN0KT4mKTsKICAgICB2b2lkIHVwZGF0ZVRocm90dGxlZERPTVRpbWVyc1N0YXRlKGNvbnN0IElu
dFJlY3QmIHZpc2libGVSZWN0KTsKICAgICB2b2lkIHJlc3VtZVZpc2libGVJbWFnZUFuaW1hdGlv
bnMoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpOwotICAgIHZvaWQgdXBkYXRlU2NyaXB0ZWRB
bmltYXRpb25zVGhyb3R0bGluZ1N0YXRlKGNvbnN0IEludFJlY3QmIHZpc2libGVSZWN0KTsKKyAg
ICB2b2lkIHVwZGF0ZVNjcmlwdGVkQW5pbWF0aW9uc0FuZFRpbWVyc1Rocm90dGxpbmdTdGF0ZShj
b25zdCBJbnRSZWN0JiB2aXNpYmxlUmVjdCk7CiAKICAgICB2b2lkIHVwZGF0ZUxheWVyRmx1c2hU
aHJvdHRsaW5nKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGp1c3RUaWxlZEJhY2tpbmdD
b3ZlcmFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDEwMzRlOGI4
ZTFjZDM2OWM0MGUwMjdmMGZhNTNjNjEwMTdhZmM1ODcuLjIxYzE3YmJlZjAyODU0ODc3ZjU5NjI5
ZWRlNjMwODJjZDJlNzNmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTc5OSw2ICs3OTksMTEgQEAgYm9vbCBJbnRlcm5hbHM6OmlzUmVxdWVzdEFuaW1hdGlvbkZyYW1l
VGhyb3R0bGVkKCkgY29uc3QKICNlbmRpZgogfQogCitib29sIEludGVybmFsczo6YXJlVGltZXJz
VGhyb3R0bGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29udGV4dERvY3VtZW50KCktPmlzVGlt
ZXJUaHJvdHRsaW5nRW5hYmxlZCgpOworfQorCiBTdHJpbmcgSW50ZXJuYWxzOjp2aXNpYmxlUGxh
Y2Vob2xkZXIoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBpZiAoaXM8SFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQ+KGVsZW1lbnQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRl
eCBhOTk4NGE2MjYzNWU2YTc5YTZjMDRlZDBmNjY2ZmFjYTc4YTQxNGYwLi5lZTZjZThiMTA1YTkx
NmExZjUxN2FmMjRkNmEyNTRjMTYyNTBjYjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKQEAgLTExNiw2ICsxMTYsNyBAQCBwdWJsaWM6CiAgICAgLy8gRE9NVGltZXJzIHRocm90dGxp
bmcgdGVzdGluZy4KICAgICBib29sIGlzVGltZXJUaHJvdHRsZWQoaW50IHRpbWVvdXRJZCwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIGJvb2wgaXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVUaHJvdHRsZWQo
KSBjb25zdDsKKyAgICBib29sIGFyZVRpbWVyc1Rocm90dGxlZCgpIGNvbnN0OwogCiAgICAgLy8g
U3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgdW5zaWduZWQgbGFzdFNwYXRpYWxOYXZp
Z2F0aW9uQ2FuZGlkYXRlQ291bnQoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGZhZTkxMWU4ZjlmZjBkZGJmYzJkNzU4YzFjYmFjZWEy
ZjU2NjBjNmUuLjVkZGY4MWU5MDQwMjJmZDZhZWE1OWQ2M2E2NmNmZjFlZjg3ZTNmYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTI4NSw2ICsyODUsNyBAQCBlbnVtIFJl
c291cmNlTG9hZFByaW9yaXR5IHsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIGlzVGlt
ZXJUaHJvdHRsZWQobG9uZyB0aW1lckhhbmRsZSk7CiAKICAgICBib29sZWFuIGlzUmVxdWVzdEFu
aW1hdGlvbkZyYW1lVGhyb3R0bGVkKCk7CisgICAgYm9vbGVhbiBhcmVUaW1lcnNUaHJvdHRsZWQo
KTsKIAogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnRUcmFja2luZ1N0eWxlUmVjYWxj
cygpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHVuc2lnbmVkIGxvbmcgc3R5bGVSZWNhbGNDb3Vu
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDJlODg5M2U3Yzg0MWVmNGMzOTc1ZWY2Mzg0MDVlYzU0ZTJkOGE4ODIuLjk4
MTMxYzhkZTg5YzI5NDAwNzZjMjNhYjgyMDE3N2FhYzRlMjA5MmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAxNS0wNS0yOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIENvbnNpZGVyIHRocm90dGxpbmcgRE9NIHRpbWVycyBpbiBpZnJhbWVzIG91dHNpZGUgdGhl
IHZpZXdwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDU0NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIwNzY4OTU3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGxheW91dCB0ZXN0IHRv
IGNoZWNrIHRoYXQgRE9NIHRpbWVycyBpbiBpZnJhbWVzIG91dHNpZGUgdGhlCisgICAgICAgIHZp
ZXdwb3J0IGdldCB0aHJvdHRsZWQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9yZXNvdXJjZXMvdGlt
ZXItZnJhbWUtMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9yZXNvdXJjZXMvdGlt
ZXItZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vdGltZXItdGhyb3R0bGlu
Zy1zdWJmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3RpbWVy
LXRocm90dGxpbmctc3ViZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMTUtMDUtMjggIFhhYmllciBS
b2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlvdWVubiBGYWJsZXQg
PHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIFtTdHJlYW1zIEFQSV0gUmVh
ZGFibGVTdHJlYW1SZWFkZXIgc2hvdWxkIG5vdCBiZSBleHBvc2VkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvdGltZXItZnJhbWUtMi5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vcmVzb3VyY2VzL3RpbWVyLWZyYW1lLTIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTdj
MWE0Zjk3ZTIwNGM0NTY0YzdkZDQ5NTNiZmE2YTNiNTc4ZmFhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL3RpbWVyLWZyYW1lLTIuaHRtbApAQCAtMCww
ICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0PgordmFy
IGkgPSAwOworc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CisgIGkrKzsKK30sIDEwMCk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3Jlc291cmNlcy90aW1lci1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3Vy
Y2VzL3RpbWVyLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjk2ZWE3YTRjYmVjNTNhNWUxZDk3Zjgw
ZGQ1ZTdjN2U1NmY5ZjkyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3Jlc291cmNlcy90aW1lci1mcmFtZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8Ym9keT4KKzxpZnJhbWUgaWQ9ImdyYW5kQ2hpbGRGcmFtZSIgc3JjPSJ0
aW1lci1mcmFtZS0yLmh0bWwiPjwvaWZyYW1lPgorPHNjcmlwdD4KK3ZhciBpID0gMDsKK3NldElu
dGVydmFsKGZ1bmN0aW9uKCkgeworICBpKys7Cit9LCAxMDApOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci10aHJvdHRs
aW5nLXN1YmZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLXRo
cm90dGxpbmctc3ViZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiOTI2MWI1MDJhYTRm
ZjlhZTc3NzIyZGU3ZDMyYzJkMjcyY2Q3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS90aW1lci10aHJvdHRsaW5nLXN1YmZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDI0IEBACitUZXN0cyB0aGF0IHRpbWVycyBhcmUgdGhyb3R0bGVkIGluIHN1YmZyYW1lcyB0
aGF0IGFyZSBvdXRzaWRlIHRoZSB2aWV3cG9ydAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworRnJhbWUgaXMgaW5pdGlhbGx5IG91dHNpZGUgdGhlIHZpZXdwb3J0IHNvIHRpbWVycyBz
aG91bGQgYmUgdGhyb3R0bGVkCitQQVNTIHRlc3RGcmFtZS5jb250ZW50V2luZG93LmludGVybmFs
cy5hcmVUaW1lcnNUaHJvdHRsZWQoKSBiZWNhbWUgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuYXJlVGlt
ZXJzVGhyb3R0bGVkKCkgaXMgZmFsc2UKK1BBU1MgdGVzdEZyYW1lLmNvbnRlbnRXaW5kb3cuaW50
ZXJuYWxzLmFyZVRpbWVyc1Rocm90dGxlZCgpIGlzIHRydWUKK1BBU1MgZ3JhbmRDaGlsZEZyYW1l
LmNvbnRlbnRXaW5kb3cuaW50ZXJuYWxzLmFyZVRpbWVyc1Rocm90dGxlZCgpIGlzIHRydWUKK1Nj
cm9sbGluZyBmcmFtZSBpbnRvIHZpZXcuCitUaW1lcnMgc2hvdWxkIG5vIGxvbmdlciBiZSB0aHJv
dHRsZWQKK1BBU1MgaW50ZXJuYWxzLmFyZVRpbWVyc1Rocm90dGxlZCgpIGlzIGZhbHNlCitQQVNT
IHRlc3RGcmFtZS5jb250ZW50V2luZG93LmludGVybmFscy5hcmVUaW1lcnNUaHJvdHRsZWQoKSBp
cyBmYWxzZQorUEFTUyBncmFuZENoaWxkRnJhbWUuY29udGVudFdpbmRvdy5pbnRlcm5hbHMuYXJl
VGltZXJzVGhyb3R0bGVkKCkgaXMgZmFsc2UKK1Njcm9sbGluZyBmcmFtZSBvdXQgb2YgdmlldyBh
Z2Fpbi4KK1BBU1MgaW50ZXJuYWxzLmFyZVRpbWVyc1Rocm90dGxlZCgpIGlzIGZhbHNlCitQQVNT
IHRlc3RGcmFtZS5jb250ZW50V2luZG93LmludGVybmFscy5hcmVUaW1lcnNUaHJvdHRsZWQoKSBi
ZWNhbWUgdHJ1ZQorUEFTUyB0ZXN0RnJhbWUuY29udGVudFdpbmRvdy5pbnRlcm5hbHMuYXJlVGlt
ZXJzVGhyb3R0bGVkKCkgaXMgdHJ1ZQorUEFTUyBncmFuZENoaWxkRnJhbWUuY29udGVudFdpbmRv
dy5pbnRlcm5hbHMuYXJlVGltZXJzVGhyb3R0bGVkKCkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3RpbWVyLXRocm90dGxpbmctc3ViZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3RpbWVyLXRocm90dGxpbmctc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWIy
NjE2ODY4NjcwMmNlMWJhMWVjZjZjZDRkZmU3NmRhNTg4ZTc4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItdGhyb3R0bGluZy1zdWJmcmFtZS5odG1sCkBAIC0w
LDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRpbWVycyBhcmUgdGhyb3R0bGVkIGluIHN1YmZyYW1lcyB0
aGF0IGFyZSBvdXRzaWRlIHRoZSB2aWV3cG9ydCIpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworCitmdW5jdGlvbiBjaGVja1N1YmZyYW1lc1Rocm90dGxlZCgpCit7CisgICAgc2hvdWxk
QmVUcnVlKCJ0ZXN0RnJhbWUuY29udGVudFdpbmRvdy5pbnRlcm5hbHMuYXJlVGltZXJzVGhyb3R0
bGVkKCkiKTsKKyAgICBzaG91bGRCZVRydWUoImdyYW5kQ2hpbGRGcmFtZS5jb250ZW50V2luZG93
LmludGVybmFscy5hcmVUaW1lcnNUaHJvdHRsZWQoKSIpOworCisgICAgZmluaXNoSlNUZXN0KCk7
Cit9CisKK2Z1bmN0aW9uIHNjcm9sbEZyYW1lT3V0T2ZWaWV3KCkKK3sKKyAgICBkZWJ1ZygiU2Ny
b2xsaW5nIGZyYW1lIG91dCBvZiB2aWV3IGFnYWluLiIpOworICAgIHdpbmRvdy5zY3JvbGwoMCwg
MCk7CisKKyAgICBzaG91bGRCZUZhbHNlKCJpbnRlcm5hbHMuYXJlVGltZXJzVGhyb3R0bGVkKCki
KTsKKyAgICBzaG91bGRCZWNvbWVFcXVhbCgidGVzdEZyYW1lLmNvbnRlbnRXaW5kb3cuaW50ZXJu
YWxzLmFyZVRpbWVyc1Rocm90dGxlZCgpIiwgInRydWUiLCBjaGVja1N1YmZyYW1lc1Rocm90dGxl
ZCk7Cit9CisKK2Z1bmN0aW9uIHNjcm9sbEZyYW1lSW50b1ZpZXcoKQoreworICAgIHNob3VsZEJl
RmFsc2UoImludGVybmFscy5hcmVUaW1lcnNUaHJvdHRsZWQoKSIpOworICAgIHNob3VsZEJlVHJ1
ZSgidGVzdEZyYW1lLmNvbnRlbnRXaW5kb3cuaW50ZXJuYWxzLmFyZVRpbWVyc1Rocm90dGxlZCgp
Iik7CisgICAgc2hvdWxkQmVUcnVlKCJncmFuZENoaWxkRnJhbWUuY29udGVudFdpbmRvdy5pbnRl
cm5hbHMuYXJlVGltZXJzVGhyb3R0bGVkKCkiKTsKKworICAgIGRlYnVnKCJTY3JvbGxpbmcgZnJh
bWUgaW50byB2aWV3LiIpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2Nyb2xsRWxlbWVudFRvUmVj
dCh0ZXN0RnJhbWUsIDAsIDAsIDMwMCwgMzAwKTsKKworICAgIGRlYnVnKCJUaW1lcnMgc2hvdWxk
IG5vIGxvbmdlciBiZSB0aHJvdHRsZWQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpbnRlcm5hbHMu
YXJlVGltZXJzVGhyb3R0bGVkKCkiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0RnJhbWUuY29u
dGVudFdpbmRvdy5pbnRlcm5hbHMuYXJlVGltZXJzVGhyb3R0bGVkKCkiKTsKKyAgICBzaG91bGRC
ZUZhbHNlKCJncmFuZENoaWxkRnJhbWUuY29udGVudFdpbmRvdy5pbnRlcm5hbHMuYXJlVGltZXJz
VGhyb3R0bGVkKCkiKTsKKworICAgIHNjcm9sbEZyYW1lT3V0T2ZWaWV3KCk7Cit9CisKK2Z1bmN0
aW9uIHJ1blRlc3QoKQoreworICAgIHRlc3RGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXN0RnJhbWUiKTsKKyAgICBncmFuZENoaWxkRnJhbWUgPSB0ZXN0RnJhbWUuY29udGVudERv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmFuZENoaWxkRnJhbWUiKTsKKyAgICBkZWJ1ZygiRnJh
bWUgaXMgaW5pdGlhbGx5IG91dHNpZGUgdGhlIHZpZXdwb3J0IHNvIHRpbWVycyBzaG91bGQgYmUg
dGhyb3R0bGVkIik7CisgICAgc2hvdWxkQmVjb21lRXF1YWwoInRlc3RGcmFtZS5jb250ZW50V2lu
ZG93LmludGVybmFscy5hcmVUaW1lcnNUaHJvdHRsZWQoKSIsICJ0cnVlIiwgc2Nyb2xsRnJhbWVJ
bnRvVmlldyk7Cit9CisKK3ZhciBpID0gMDsKK3NldEludGVydmFsKGZ1bmN0aW9uKCkgeworICAg
IGkrKzsKK30sIDEwMCk7Cis8L3NjcmlwdD4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2
ZTsgd2lkdGg6IDE2MDBweDsgaGVpZ2h0OiAyNDAwcHg7IGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OyI+CisgICAgPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNlcy90aW1lci1mcmFt
ZS5odG1sIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6IDYwMHB4OyB0b3A6IDgwMHB4
OyIgb25sb2FkPSJydW5UZXN0KCkiPjwvaWZyYW1lPgorPC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>