<?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>170198</bug_id>
          
          <creation_ts>2017-03-28 13:57:03 -0700</creation_ts>
          <short_desc>MotionMark tests using Date.now() to drive animations don&apos;t work under web-page-replay</short_desc>
          <delta_ts>2020-05-30 19:10:22 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>vmiura</reporter>
          <assigned_to>vmiura</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>jonlee</cc>
    
    <cc>lforschler</cc>
    
    <cc>mjs</cc>
    
    <cc>rniwa</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1292071</commentid>
    <comment_count>0</comment_count>
    <who name="">vmiura</who>
    <bug_when>2017-03-28 13:57:03 -0700</bug_when>
    <thetext>A number of the MotionMark tests animate properties based on the Date.now() value.  This is via utility methods Stage.dateCounterValue() or Stage.dateFractionalValue().

Chromium&apos;s web-page-replay stubs out Date.now() to improve page replay determinism, and this breaks the animation progression on some of the tests.

Would it make sense to replace the Data.now() usage with consistent use of the Benchmark.timestamp()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292186</commentid>
    <comment_count>1</comment_count>
      <attachid>305671</attachid>
    <who name="">vmiura</who>
    <bug_when>2017-03-28 16:47:14 -0700</bug_when>
    <thetext>Created attachment 305671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292191</commentid>
    <comment_count>2</comment_count>
      <attachid>305671</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-03-28 16:51:40 -0700</bug_when>
    <thetext>Comment on attachment 305671
Patch

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

&gt; PerformanceTests/ChangeLog:7
&gt; +

Thanks for contributing the patch but please describe your change and add inline comments.
r- due to lack of change log comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292225</commentid>
    <comment_count>3</comment_count>
      <attachid>305682</attachid>
    <who name="">vmiura</who>
    <bug_when>2017-03-28 17:30:14 -0700</bug_when>
    <thetext>Created attachment 305682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292227</commentid>
    <comment_count>4</comment_count>
    <who name="">vmiura</who>
    <bug_when>2017-03-28 17:32:22 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #2)
&gt; Comment on attachment 305671 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=305671&amp;action=review
&gt; 
&gt; &gt; PerformanceTests/ChangeLog:7
&gt; &gt; +
&gt; 
&gt; Thanks for contributing the patch but please describe your change and add
&gt; inline comments.
&gt; r- due to lack of change log comments.

Thanks for the quick review.  Added change description.

For inline comments, I tried to match the style of the existing code.  Are there specific parts you think could benefit from additional comments?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292744</commentid>
    <comment_count>5</comment_count>
      <attachid>305682</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-03-30 01:11:18 -0700</bug_when>
    <thetext>Comment on attachment 305682
Patch

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

Useful inline comments would explain why you&apos;re making each code change, and how it impacts the rest of the codebase.

&gt; PerformanceTests/MotionMark/tests/3d/resources/webgl.js:143
&gt; -                this._startTime = Stage.dateCounterValue(1000);
&gt; -            var elapsedTime = Stage.dateCounterValue(1000) - this._startTime;
&gt; +                this._startTime = this.timestampCounterValue(1000);
&gt; +            var elapsedTime = this.timestampCounterValue(1000) - this._startTime;

Why are we replacing Stage.dateCounterValue with this.timestampCounterValue?
What&apos;s the significance of it? e.g. does Stage.dateCounterValue use Date.now() and this.timestampCounterValue doesn&apos;t?
None of that is clear from your main change log description.

&gt; PerformanceTests/MotionMark/tests/master/resources/canvas-tests.js:19
&gt; +        this._stage = stage;

A useful inline comment here would be explaining why we need to store &quot;stage&quot; as an instance variable.

&gt; PerformanceTests/MotionMark/tests/resources/main.js:654
&gt; +    set timestamp(stamp)
&gt; +    {
&gt; +        this._currentTimestamp = stamp;
&gt; +    },
&gt; +
&gt; +    get timestamp()
&gt; +    {
&gt; +        return this._currentTimestamp;
&gt; +    },
&gt; +

What are these getters and setters used for? Who is getting the value?

&gt; PerformanceTests/MotionMark/tests/resources/main.js:676
&gt; +    rotatingColor: function(cycleLengthMs, saturation, lightness)
&gt; +    {

Why are you moving these methods here?
That should be explained in the change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657691</commentid>
    <comment_count>6</comment_count>
      <attachid>305682</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2020-05-30 19:10:22 -0700</bug_when>
    <thetext>Comment on attachment 305682
Patch

Seems like a good idea. Unfortunately, the patch no longer applies as-is.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305671</attachid>
            <date>2017-03-28 16:47:14 -0700</date>
            <delta_ts>2017-03-28 17:30:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170198-20170328164713.patch</filename>
            <type>text/plain</type>
            <size>12203</size>
            <attacher>vmiura</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0NDkyCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU5YTQwOTI1Y2Y0
MDViZGRlMGIyNmRmNWI3ZGVmZjI2MmI0ZTE5MGUuLmQxNmRkY2U2YmIzMmFkMmNkZjUxNzVkY2Y0
MDllYzUyNTBkNTAyMDkgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTctMDMt
MjggIFZpY3RvciBNaXVyYSAgPHZtaXVyYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW90aW9u
TWFyazogVXNlIHRoZSBjdXJyZW50IGJlbmNobWFyayB0aW1lc3RhbXAgaW4gYW5pbWF0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDE5OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW90aW9u
TWFyay90ZXN0cy8zZC9yZXNvdXJjZXMvd2ViZ2wuanM6CisgICAgICAgIChTdGFnZS5jYWxsLmFu
aW1hdGUpOgorICAgICAgICAqIE1vdGlvbk1hcmsvdGVzdHMvZG9tL3Jlc291cmNlcy9kb20tcGFy
dGljbGVzLmpzOgorICAgICAgICAoUGFydGljbGUuY2FsbC5yZXNldCk6CisgICAgICAgICogTW90
aW9uTWFyay90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qczoKKyAgICAgICAg
KENhbnZhc0xpbmVTZWdtZW50LlV0aWxpdGllcy5jcmVhdGVDbGFzcyk6CisgICAgICAgIChkcmF3
KToKKyAgICAgICAgKFNpbXBsZUNhbnZhc1N0YWdlLmNhbGwuYW5pbWF0ZSk6CisgICAgICAgIChT
aW1wbGVDYW52YXNTdGFnZS5jYWxsKToKKyAgICAgICAgKiBNb3Rpb25NYXJrL3Rlc3RzL21hc3Rl
ci9yZXNvdXJjZXMvbGVhdmVzLmpzOgorICAgICAgICAoYW5pbWF0ZSk6CisgICAgICAgICogTW90
aW9uTWFyay90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3N2Zy1wYXJ0aWNsZXMuanM6CisgICAgICAg
IChQYXJ0aWNsZS5jYWxsLnJlc2V0KToKKyAgICAgICAgKiBNb3Rpb25NYXJrL3Rlc3RzL21hc3Rl
ci9yZXNvdXJjZXMvdGV4dC5qczoKKyAgICAgICAgKGFuaW1hdGUpOgorICAgICAgICAqIE1vdGlv
bk1hcmsvdGVzdHMvcmVzb3VyY2VzL21haW4uanM6CisgICAgICAgIChTdGFnZS5VdGlsaXRpZXMu
Y3JlYXRlQ2xhc3MuaW5pdGlhbGl6ZSk6CisgICAgICAgIChTdGFnZS5VdGlsaXRpZXMuY3JlYXRl
Q2xhc3Muc2V0IHRpbWVzdGFtcCk6CisgICAgICAgIChTdGFnZS5VdGlsaXRpZXMuY3JlYXRlQ2xh
c3MuZ2V0IHRpbWVzdGFtcCk6CisgICAgICAgIChTdGFnZS5VdGlsaXRpZXMuY3JlYXRlQ2xhc3Mu
Y2xlYXIpOgorICAgICAgICAoU3RhZ2UuVXRpbGl0aWVzLmNyZWF0ZUNsYXNzLnJvdGF0aW5nQ29s
b3IpOgorICAgICAgICAoU3RhZ2UuVXRpbGl0aWVzLmNyZWF0ZUNsYXNzLnRpbWVzdGFtcEZyYWN0
aW9uYWxWYWx1ZSk6CisgICAgICAgIChTdGFnZS5VdGlsaXRpZXMuY3JlYXRlQ2xhc3MudGltZXN0
YW1wQ291bnRlclZhbHVlKToKKyAgICAgICAgKFN0YWdlLlV0aWxpdGllcy5jcmVhdGVDbGFzcyk6
CisgICAgICAgIChjYXNlLnN0cmluZ19hcHBlYXJlZF9oZXJlLnRoaXMuX2NvbnRyb2xsZXIubmV3
LlJhbXAzMENvbnRyb2xsZXIuX2FuaW1hdGVMb29wKToKKyAgICAgICAgKGNhc2Uuc3RyaW5nX2Fw
cGVhcmVkX2hlcmUudGhpcy5fY29udHJvbGxlci5uZXcuUmFtcDMwQ29udHJvbGxlcik6CisgICAg
ICAgIChyb3RhdGluZ0NvbG9yKTogRGVsZXRlZC4KKyAgICAgICAgKGRhdGVGcmFjdGlvbmFsVmFs
dWUpOiBEZWxldGVkLgorICAgICAgICAoZGF0ZUNvdW50ZXJWYWx1ZSk6IERlbGV0ZWQuCisKIDIw
MTctMDMtMDggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAg
ICAgW0pTQ10gQWRkIGhlbHBlcnMgdG8gcnVuIFNpeCBTcGVlZCB0byBydW4tanNjLWJlbmNobWFy
a3MKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9uTWFyay90ZXN0cy8zZC9yZXNv
dXJjZXMvd2ViZ2wuanMgYi9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsvdGVzdHMvM2QvcmVz
b3VyY2VzL3dlYmdsLmpzCmluZGV4IDU4ZjVkZjM4NWVkNDg4ZWE3YmY1NTkwY2I4NGMwYzdmZTMx
NDYwMzkuLjExYzgwMzMwOGI1NDJiYThlNGQ5NDFmNmNmNzhkODRkOTQ4ZDBlZWQgMTAwNjQ0Ci0t
LSBhL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9uTWFyay90ZXN0cy8zZC9yZXNvdXJjZXMvd2ViZ2wu
anMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rlc3RzLzNkL3Jlc291cmNlcy93
ZWJnbC5qcwpAQCAtMTM5LDggKzEzOSw4IEBAIFdlYkdMU3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRl
U3ViY2xhc3MoU3RhZ2UsCiAgICAgICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklU
KTsKIAogICAgICAgICAgICAgaWYgKCF0aGlzLl9zdGFydFRpbWUpCi0gICAgICAgICAgICAgICAg
dGhpcy5fc3RhcnRUaW1lID0gU3RhZ2UuZGF0ZUNvdW50ZXJWYWx1ZSgxMDAwKTsKLSAgICAgICAg
ICAgIHZhciBlbGFwc2VkVGltZSA9IFN0YWdlLmRhdGVDb3VudGVyVmFsdWUoMTAwMCkgLSB0aGlz
Ll9zdGFydFRpbWU7CisgICAgICAgICAgICAgICAgdGhpcy5fc3RhcnRUaW1lID0gdGhpcy50aW1l
c3RhbXBDb3VudGVyVmFsdWUoMTAwMCk7CisgICAgICAgICAgICB2YXIgZWxhcHNlZFRpbWUgPSB0
aGlzLnRpbWVzdGFtcENvdW50ZXJWYWx1ZSgxMDAwKSAtIHRoaXMuX3N0YXJ0VGltZTsKIAogICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9udW1UcmlhbmdsZXM7ICsraSkgewog
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsvdGVzdHMvZG9tL3Jlc291
cmNlcy9kb20tcGFydGljbGVzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rlc3Rz
L2RvbS9yZXNvdXJjZXMvZG9tLXBhcnRpY2xlcy5qcwppbmRleCA0NzE0NDRiMmU3ZWNlMWJkZjZh
MWQwYjQ1Nzc1NDYwNzgyZmU4NTE2Li40ZThiOGJiMzBiZjRiOWRjYzNmMTZkZmQyNmE3YTQ1Njhk
ZDRmNjk1IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsvdGVzdHMvZG9t
L3Jlc291cmNlcy9kb20tcGFydGljbGVzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9u
TWFyay90ZXN0cy9kb20vcmVzb3VyY2VzL2RvbS1wYXJ0aWNsZXMuanMKQEAgLTE1LDcgKzE1LDcg
QEAgRE9NUGFydGljbGUgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoUGFydGljbGUsCiAKICAg
ICAgICAgdGhpcy5wb3NpdGlvbiA9IFN0YWdlLnJhbmRvbUVsZW1lbnRJbkFycmF5KHRoaXMuc3Rh
Z2UuZW1pdExvY2F0aW9uKTsKIAotICAgICAgICB2YXIgYW5nbGUgPSBTdGFnZS5yYW5kb21JbnQo
MCwgdGhpcy5zdGFnZS5lbWl0U3RlcHMpIC8gdGhpcy5zdGFnZS5lbWl0U3RlcHMgKiBNYXRoLlBJ
ICogMiArIFN0YWdlLmRhdGVDb3VudGVyVmFsdWUoMTAwKSAqIHRoaXMuc3RhZ2UuZW1pc3Npb25T
cGluOworICAgICAgICB2YXIgYW5nbGUgPSBTdGFnZS5yYW5kb21JbnQoMCwgdGhpcy5zdGFnZS5l
bWl0U3RlcHMpIC8gdGhpcy5zdGFnZS5lbWl0U3RlcHMgKiBNYXRoLlBJICogMiArIHRoaXMuc3Rh
Z2UudGltZXN0YW1wQ291bnRlclZhbHVlKDEwMCkgKiB0aGlzLnN0YWdlLmVtaXNzaW9uU3BpbjsK
ICAgICAgICAgdGhpcy52ZWxvY2l0eSA9IG5ldyBQb2ludChNYXRoLnNpbihhbmdsZSksIE1hdGgu
Y29zKGFuZ2xlKSkKICAgICAgICAgICAgIC5tdWx0aXBseShTdGFnZS5yYW5kb20oLjUsIDIuNSkp
OwogCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsvdGVzdHMvbWFzdGVy
L3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsv
dGVzdHMvbWFzdGVyL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMKaW5kZXggNzlmYzg2NzA4Mjk2
NWMxODk4MjFjMWM1MGE2OWVkZDI1Mzk5NTYzNy4uODc2YWQ2OWIxM2NkOGFjZmM3YmNkZWYxZmQ3
ZTJjNWJjMjBjZDQzOSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rl
c3RzL21hc3Rlci9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVz
dHMvTW90aW9uTWFyay90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcwpAQCAt
MTYsNiArMTYsNyBAQCBDYW52YXNMaW5lU2VnbWVudCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygK
ICAgICAgICAgdGhpcy5fc3RhcnRZID0gc3RhZ2UuY2lyY2xlUmFkaXVzICogdGhpcy5fc2luVGhl
dGEgKyBzdGFnZS5jaXJjbGVZW2NpcmNsZV07CiAgICAgICAgIHRoaXMuX2xlbmd0aCA9IE1hdGgu
cG93KFBzZXVkby5yYW5kb20oKSwgOCkgKiBzdGFnZS5saW5lTGVuZ3RoTWF4aW11bSArIHN0YWdl
LmxpbmVNaW5pbXVtOwogICAgICAgICB0aGlzLl9zZWdtZW50RGlyZWN0aW9uID0gUHNldWRvLnJh
bmRvbSgpID4gMC41ID8gLTEgOiAxOworICAgICAgICB0aGlzLl9zdGFnZSA9IHN0YWdlOwogICAg
IH0sIHsKIAogICAgIGRyYXc6IGZ1bmN0aW9uKGNvbnRleHQpCkBAIC0yMyw3ICsyNCw3IEBAIENh
bnZhc0xpbmVTZWdtZW50ID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICBjb250ZXh0
LnN0cm9rZVN0eWxlID0gdGhpcy5fY29sb3I7CiAgICAgICAgIGNvbnRleHQubGluZVdpZHRoID0g
dGhpcy5fbGluZVdpZHRoOwogCi0gICAgICAgIHRoaXMuX2xlbmd0aCArPSBNYXRoLnNpbihTdGFn
ZS5kYXRlQ291bnRlclZhbHVlKDEwMCkgKiB0aGlzLl9vbWVnYSk7CisgICAgICAgIHRoaXMuX2xl
bmd0aCArPSBNYXRoLnNpbih0aGlzLl9zdGFnZS50aW1lc3RhbXBDb3VudGVyVmFsdWUoMTAwKSAq
IHRoaXMuX29tZWdhKTsKIAogICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwogICAgICAgICBj
b250ZXh0Lm1vdmVUbyh0aGlzLl9zdGFydFgsIHRoaXMuX3N0YXJ0WSk7CkBAIC0yMDcsMTIgKzIw
OCwxMiBAQCBDYW52YXNMaW5lU2VnbWVudFN0YWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNz
KFNpbXBsZUNhbnZhc1N0YWdlLAogICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMuY29udGV4dDsK
ICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgdGhpcy5zaXplLngsIHRoaXMuc2l6ZS55
KTsKIAotICAgICAgICB2YXIgYW5nbGUgPSBTdGFnZS5kYXRlRnJhY3Rpb25hbFZhbHVlKDMwMDAp
ICogTWF0aC5QSSAqIDI7CisgICAgICAgIHZhciBhbmdsZSA9IHRoaXMudGltZXN0YW1wRnJhY3Rp
b25hbFZhbHVlKDMwMDApICogTWF0aC5QSSAqIDI7CiAgICAgICAgIHZhciBkeCA9IHRoaXMudHdv
RmlmdGhzU2l6ZVggKiBNYXRoLmNvcyhhbmdsZSk7CiAgICAgICAgIHZhciBkeSA9IHRoaXMudHdv
RmlmdGhzU2l6ZVggKiBNYXRoLnNpbihhbmdsZSk7CiAKICAgICAgICAgdmFyIGdyYWRpZW50ID0g
Y29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCh0aGlzLmhhbGZTaXplLnggKyBkeCwgdGhpcy5o
YWxmU2l6ZS55ICsgZHksIHRoaXMuaGFsZlNpemUueCAtIGR4LCB0aGlzLmhhbGZTaXplLnkgLSBk
eSk7Ci0gICAgICAgIHZhciBncmFkaWVudFN0ZXAgPSAwLjUgKyAwLjUgKiBNYXRoLnNpbihTdGFn
ZS5kYXRlRnJhY3Rpb25hbFZhbHVlKDUwMDApICogTWF0aC5QSSAqIDIpOworICAgICAgICB2YXIg
Z3JhZGllbnRTdGVwID0gMC41ICsgMC41ICogTWF0aC5zaW4odGhpcy50aW1lc3RhbXBGcmFjdGlv
bmFsVmFsdWUoNTAwMCkgKiBNYXRoLlBJICogMik7CiAgICAgICAgIHZhciBjb2xvclN0b3BTdGVw
ID0gVXRpbGl0aWVzLmxlcnAoZ3JhZGllbnRTdGVwLCAtLjEsIC4xKTsKICAgICAgICAgdmFyIGJy
aWdodG5lc3NTdGVwID0gTWF0aC5yb3VuZChVdGlsaXRpZXMubGVycChncmFkaWVudFN0ZXAsIDMy
LCA2NCkpOwogICAgICAgICB2YXIgY29sb3IxU3RlcCA9ICJyZ2JhKCIgKyBicmlnaHRuZXNzU3Rl
cCArICIsIiArIGJyaWdodG5lc3NTdGVwICsgIiwiICsgKGJyaWdodG5lc3NTdGVwIDw8IDEpICsg
IiwuNCkiOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rlc3RzL21h
c3Rlci9yZXNvdXJjZXMvbGVhdmVzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rl
c3RzL21hc3Rlci9yZXNvdXJjZXMvbGVhdmVzLmpzCmluZGV4IDdhMDQ5ODM2ZmYyNDBmOTg4Mjdl
OWRhMGM1NjdmNGZiMWNjZjkzMTUuLmJmNTM4Y2JkZjFlODRiMjgwYTNkNjE5ZGYzODQyNzQxMjNi
NWNmNzYgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9uTWFyay90ZXN0cy9tYXN0
ZXIvcmVzb3VyY2VzL2xlYXZlcy5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsv
dGVzdHMvbWFzdGVyL3Jlc291cmNlcy9sZWF2ZXMuanMKQEAgLTEwMSw3ICsxMDEsNyBAQCBVdGls
aXRpZXMuZXh0ZW5kT2JqZWN0KFBhcnRpY2xlc1N0YWdlLnByb3RvdHlwZSwgewogCiAgICAgYW5p
bWF0ZTogZnVuY3Rpb24odGltZURlbHRhKQogICAgIHsKLSAgICAgICAgdGhpcy5mb2N1c1ggPSAw
LjUgKyAwLjUgKiBNYXRoLnNpbihTdGFnZS5kYXRlRnJhY3Rpb25hbFZhbHVlKDEwMDAwKSAqIE1h
dGguUEkgKiAyKTsKKyAgICAgICAgdGhpcy5mb2N1c1ggPSAwLjUgKyAwLjUgKiBNYXRoLnNpbih0
aGlzLnRpbWVzdGFtcEZyYWN0aW9uYWxWYWx1ZSgxMDAwMCkgKiBNYXRoLlBJICogMik7CiAgICAg
ICAgIHRpbWVEZWx0YSAvPSA0OwogICAgICAgICB0aGlzLnBhcnRpY2xlcy5mb3JFYWNoKGZ1bmN0
aW9uKHBhcnRpY2xlKSB7CiAgICAgICAgICAgICBwYXJ0aWNsZS5hbmltYXRlKHRpbWVEZWx0YSk7
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsvdGVzdHMvbWFzdGVyL3Jl
c291cmNlcy9zdmctcGFydGljbGVzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rl
c3RzL21hc3Rlci9yZXNvdXJjZXMvc3ZnLXBhcnRpY2xlcy5qcwppbmRleCAyY2UyNGI1NmYxYzgy
MTBkOWUwMWQxMzlkMTNlZjllMjRhMWQ5ZDEzLi5kMTVjN2Q0YmM1YzhiZTJmMDc0MDhkYzUxNDBk
YzM1YzBlMjgyMTA1IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsvdGVz
dHMvbWFzdGVyL3Jlc291cmNlcy9zdmctcGFydGljbGVzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVz
dHMvTW90aW9uTWFyay90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3N2Zy1wYXJ0aWNsZXMuanMKQEAg
LTM1LDcgKzM1LDcgQEAgU1ZHUGFydGljbGUgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoUGFy
dGljbGUsCiAgICAgICAgIHRoaXMucG9zaXRpb24gPSBTdGFnZS5yYW5kb21FbGVtZW50SW5BcnJh
eSh0aGlzLnN0YWdlLmVtaXRMb2NhdGlvbik7CiAKICAgICAgICAgdmFyIHZlbG9jaXR5TWFnbml0
dWRlID0gU3RhZ2UucmFuZG9tKC41LCAyLjUpOwotICAgICAgICB2YXIgYW5nbGUgPSBTdGFnZS5y
YW5kb21JbnQoMCwgdGhpcy5zdGFnZS5lbWl0U3RlcHMpIC8gdGhpcy5zdGFnZS5lbWl0U3RlcHMg
KiBNYXRoLlBJICogMiArIFN0YWdlLmRhdGVDb3VudGVyVmFsdWUoMTAwMCkgKiB0aGlzLnN0YWdl
LmVtaXNzaW9uU3BpbiArIHZlbG9jaXR5TWFnbml0dWRlOworICAgICAgICB2YXIgYW5nbGUgPSBT
dGFnZS5yYW5kb21JbnQoMCwgdGhpcy5zdGFnZS5lbWl0U3RlcHMpIC8gdGhpcy5zdGFnZS5lbWl0
U3RlcHMgKiBNYXRoLlBJICogMiArIHRoaXMuc3RhZ2UudGltZXN0YW1wQ291bnRlclZhbHVlKDEw
MDApICogdGhpcy5zdGFnZS5lbWlzc2lvblNwaW4gKyB2ZWxvY2l0eU1hZ25pdHVkZTsKICAgICAg
ICAgdGhpcy52ZWxvY2l0eSA9IG5ldyBQb2ludChNYXRoLnNpbihhbmdsZSksIE1hdGguY29zKGFu
Z2xlKSkKICAgICAgICAgICAgIC5tdWx0aXBseSh2ZWxvY2l0eU1hZ25pdHVkZSk7CiAKZGlmZiAt
LWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9uTWFyay90ZXN0cy9tYXN0ZXIvcmVzb3VyY2Vz
L3RleHQuanMgYi9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsvdGVzdHMvbWFzdGVyL3Jlc291
cmNlcy90ZXh0LmpzCmluZGV4IGM3ZWJlNDY0YjNjN2ZjMmZiM2NlNTk2NDgzYjQwNmNiMDk2NDg4
NjkuLmE1OWYxZjg3N2M2NDdjMTJjN2VkMDBjZDVjNTA4Y2JlZDAzZGEyNDcgMTAwNjQ0Ci0tLSBh
L1BlcmZvcm1hbmNlVGVzdHMvTW90aW9uTWFyay90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3RleHQu
anMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rlc3RzL21hc3Rlci9yZXNvdXJj
ZXMvdGV4dC5qcwpAQCAtNjksNyArNjksNyBAQCB2YXIgVGV4dFN0YWdlID0gVXRpbGl0aWVzLmNy
ZWF0ZVN1YmNsYXNzKFN0YWdlLAogICAgIH0sCiAKICAgICBhbmltYXRlOiBmdW5jdGlvbih0aW1l
RGVsdGEpIHsKLSAgICAgICAgdmFyIGFuZ2xlID0gU3RhZ2UuZGF0ZUNvdW50ZXJWYWx1ZSh0aGlz
Lm1pbGxpc2Vjb25kc1BlclJvdGF0aW9uKTsKKyAgICAgICAgdmFyIGFuZ2xlID0gdGhpcy50aW1l
c3RhbXBDb3VudGVyVmFsdWUodGhpcy5taWxsaXNlY29uZHNQZXJSb3RhdGlvbik7CiAKICAgICAg
ICAgdmFyIHByb2dyZXNzID0gMDsKICAgICAgICAgdmFyIHN0ZXBYID0gTWF0aC5zaW4oYW5nbGUp
ICogdGhpcy5wYXJ0aWNsZURpc3RhbmNlWDsKQEAgLTc3LDcgKzc3LDcgQEAgdmFyIFRleHRTdGFn
ZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhTdGFnZSwKICAgICAgICAgdmFyIHggPSAtc3Rl
cFggKiAzOwogICAgICAgICB2YXIgeSA9IC1zdGVwWSAqIDM7CiAgICAgICAgIHZhciBncmFkaWVu
dCA9IHRoaXMuZ3JhZGllbnRzW01hdGguZmxvb3IoYW5nbGUvKE1hdGguUEkgKiAyKSkgJSB0aGlz
LmdyYWRpZW50cy5sZW5ndGhdOwotICAgICAgICB2YXIgb2Zmc2V0ID0gU3RhZ2UuZGF0ZUNvdW50
ZXJWYWx1ZSgyMDApOworICAgICAgICB2YXIgb2Zmc2V0ID0gdGhpcy50aW1lc3RhbXBDb3VudGVy
VmFsdWUoMjAwKTsKICAgICAgICAgdGhpcy5fdGVtcGxhdGUuc3R5bGUudHJhbnNmb3JtID0gInRy
YW5zbGF0ZSgiICsgTWF0aC5mbG9vcih4KSArICJweCwiICsgTWF0aC5mbG9vcih5KSArICJweCki
OwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX29mZnNldEluZGV4OyArK2kpIHsK
ICAgICAgICAgICAgIHZhciBlbGVtZW50ID0gdGhpcy50ZXN0RWxlbWVudHNbaV07CmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsvdGVzdHMvcmVzb3VyY2VzL21haW4uanMg
Yi9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsvdGVzdHMvcmVzb3VyY2VzL21haW4uanMKaW5k
ZXggYjk3NzZkNTcxZTNiZGQxNTQxYWM5NzNmODliYWRjZjQwZDY5NGQ5ZS4uMWJmOWU5YzU4ZWMz
ZDNmOTI5MWNlMTM5ODUxMTlkY2Q5OWU4NDhmZiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0
cy9Nb3Rpb25NYXJrL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVz
dHMvTW90aW9uTWFyay90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qcwpAQCAtNjI5LDYgKzYyOSw3IEBA
IFN0YWdlID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogICAgICAgICB0aGlzLl9lbGVtZW50LnNl
dEF0dHJpYnV0ZSgid2lkdGgiLCBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoKTsKICAgICAgICAg
dGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIGRvY3VtZW50LmJvZHkub2Zmc2V0
SGVpZ2h0KTsKICAgICAgICAgdGhpcy5fc2l6ZSA9IFBvaW50LmVsZW1lbnRDbGllbnRTaXplKHRo
aXMuX2VsZW1lbnQpLnN1YnRyYWN0KEluc2V0cy5lbGVtZW50UGFkZGluZyh0aGlzLl9lbGVtZW50
KS5zaXplKTsKKyAgICAgICAgdGhpcy5fY3VycmVudFRpbWVzdGFtcCA9IG51bGw7CiAgICAgfSwK
IAogICAgIGdldCBlbGVtZW50KCkKQEAgLTY0MSw2ICs2NDIsMTYgQEAgU3RhZ2UgPSBVdGlsaXRp
ZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgIHJldHVybiB0aGlzLl9zaXplOwogICAgIH0sCiAKKyAg
ICBzZXQgdGltZXN0YW1wKHN0YW1wKQorICAgIHsKKyAgICAgICAgdGhpcy5fY3VycmVudFRpbWVz
dGFtcCA9IHN0YW1wOworICAgIH0sCisKKyAgICBnZXQgdGltZXN0YW1wKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLl9jdXJyZW50VGltZXN0YW1wOworICAgIH0sCisKICAgICBjb21wbGV4
aXR5OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gMDsKQEAgLTY1OSw2ICs2NzAs
MjYgQEAgU3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgY2xlYXI6IGZ1bmN0aW9u
KCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLnR1bmUoLXRoaXMudHVuZSgwKSk7CisgICAg
fSwKKworICAgIHJvdGF0aW5nQ29sb3I6IGZ1bmN0aW9uKGN5Y2xlTGVuZ3RoTXMsIHNhdHVyYXRp
b24sIGxpZ2h0bmVzcykKKyAgICB7CisgICAgICAgIHJldHVybiAiaHNsKCIKKyAgICAgICAgICAg
ICsgdGhpcy5kYXRlRnJhY3Rpb25hbFZhbHVlKGN5Y2xlTGVuZ3RoTXMpICogMzYwICsgIiwgIgor
ICAgICAgICAgICAgKyAoKHNhdHVyYXRpb24gfHwgLjgpICogMTAwKS50b0ZpeGVkKDApICsgIiUs
ICIKKyAgICAgICAgICAgICsgKChsaWdodG5lc3MgfHwgLjM1KSAqIDEwMCkudG9GaXhlZCgwKSAr
ICIlKSI7CisgICAgfSwKKworICAgIC8vIFJldHVybnMgYSBmcmFjdGlvbmFsIHZhbHVlIHRoYXQg
d3JhcHMgYXJvdW5kIHdpdGhpbiBbMCwxXQorICAgIHRpbWVzdGFtcEZyYWN0aW9uYWxWYWx1ZTog
ZnVuY3Rpb24oY3ljbGVMZW5ndGhNcykKKyAgICB7CisgICAgICAgIHJldHVybiAodGhpcy50aW1l
c3RhbXAgLyAoY3ljbGVMZW5ndGhNcyB8fCAyMDAwKSkgJSAxOworICAgIH0sCisKKyAgICAvLyBS
ZXR1cm5zIGFuIGluY3JlYXNpbmcgdmFsdWUgc2xvd2VkIGRvd24gYnkgZmFjdG9yCisgICAgdGlt
ZXN0YW1wQ291bnRlclZhbHVlOiBmdW5jdGlvbihmYWN0b3IpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy50aW1lc3RhbXAgLyBmYWN0b3I7CiAgICAgfQogfSk7CiAKQEAgLTc2MSwyNiArNzky
LDYgQEAgVXRpbGl0aWVzLmV4dGVuZE9iamVjdChTdGFnZSwgewogICAgICAgICByZXR1cm4gYXJy
YXlbU3RhZ2UucmFuZG9tSW50KDAsIGFycmF5Lmxlbmd0aCAtIDEpXTsKICAgICB9LAogCi0gICAg
cm90YXRpbmdDb2xvcjogZnVuY3Rpb24oY3ljbGVMZW5ndGhNcywgc2F0dXJhdGlvbiwgbGlnaHRu
ZXNzKQotICAgIHsKLSAgICAgICAgcmV0dXJuICJoc2woIgotICAgICAgICAgICAgKyBTdGFnZS5k
YXRlRnJhY3Rpb25hbFZhbHVlKGN5Y2xlTGVuZ3RoTXMpICogMzYwICsgIiwgIgotICAgICAgICAg
ICAgKyAoKHNhdHVyYXRpb24gfHwgLjgpICogMTAwKS50b0ZpeGVkKDApICsgIiUsICIKLSAgICAg
ICAgICAgICsgKChsaWdodG5lc3MgfHwgLjM1KSAqIDEwMCkudG9GaXhlZCgwKSArICIlKSI7Ci0g
ICAgfSwKLQotICAgIC8vIFJldHVybnMgYSBmcmFjdGlvbmFsIHZhbHVlIHRoYXQgd3JhcHMgYXJv
dW5kIHdpdGhpbiBbMCwxXQotICAgIGRhdGVGcmFjdGlvbmFsVmFsdWU6IGZ1bmN0aW9uKGN5Y2xl
TGVuZ3RoTXMpCi0gICAgewotICAgICAgICByZXR1cm4gKERhdGUubm93KCkgLyAoY3ljbGVMZW5n
dGhNcyB8fCAyMDAwKSkgJSAxOwotICAgIH0sCi0KLSAgICAvLyBSZXR1cm5zIGFuIGluY3JlYXNp
bmcgdmFsdWUgc2xvd2VkIGRvd24gYnkgZmFjdG9yCi0gICAgZGF0ZUNvdW50ZXJWYWx1ZTogZnVu
Y3Rpb24oZmFjdG9yKQotICAgIHsKLSAgICAgICAgcmV0dXJuIERhdGUubm93KCkgLyBmYWN0b3I7
Ci0gICAgfSwKLQogICAgIHJhbmRvbVJvdGF0ZXI6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAg
IHJldHVybiBuZXcgUm90YXRlcih0aGlzLnJhbmRvbSgxMDAwLCAxMDAwMCkpOwpAQCAtOTA1LDYg
KzkxNiw3IEBAIEJlbmNobWFyayA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICB7CiAgICAg
ICAgIHRpbWVzdGFtcCA9ICh0aGlzLl9nZXRUaW1lc3RhbXAgJiYgdGhpcy5fZ2V0VGltZXN0YW1w
KCkpIHx8IHRpbWVzdGFtcDsKICAgICAgICAgdGhpcy5fY3VycmVudFRpbWVzdGFtcCA9IHRpbWVz
dGFtcDsKKyAgICAgICAgdGhpcy5zdGFnZS50aW1lc3RhbXAgPSB0aW1lc3RhbXA7CiAKICAgICAg
ICAgaWYgKHRoaXMuX2NvbnRyb2xsZXIuc2hvdWxkU3RvcCh0aW1lc3RhbXApKSB7CiAgICAgICAg
ICAgICB0aGlzLl9maW5pc2hQcm9taXNlLnJlc29sdmUodGhpcy5fY29udHJvbGxlci5yZXN1bHRz
KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305682</attachid>
            <date>2017-03-28 17:30:14 -0700</date>
            <delta_ts>2020-05-30 19:10:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170198-20170328173013.patch</filename>
            <type>text/plain</type>
            <size>12558</size>
            <attacher>vmiura</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0NDkyCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU5YTQwOTI1Y2Y0
MDViZGRlMGIyNmRmNWI3ZGVmZjI2MmI0ZTE5MGUuLjBkN2ZhZWQyNDYxNTNkNWM1ZGM4ZGNjNTQw
Y2EwMTY2YjQ0ZGI0ZGMgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTctMDMt
MjggIFZpY3RvciBNaXVyYSAgPHZtaXVyYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW90aW9u
TWFyazogVXNlIHRoZSBjdXJyZW50IGJlbmNobWFyayB0aW1lc3RhbXAgaW4gYW5pbWF0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDE5OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENlcnRhaW4g
TW90aW9uTWFyayBhbmltYXRpb25zIHdlcmUgZHJpdmVuIGJ5IERhdGUubm93KCkgcmF0aGVyIHRo
YW4gdXNpbmcgdGhlIHRpbWUgbWVhc3VyZW1lbnQgbWV0aG9kIGNvbmZpZ3VyZWQKKyAgICAgICAg
Zm9yIHRoZSBCZW5jaG1hcmssIG9uZSBvZjogcGVyZm9ybWFuY2Uubm93KCksIHJlcXVlc3RBbmlt
YXRpb25GcmFtZSgpIHRpbWVzdGFtcCwgb3IgRGF0ZS5ub3coKS4gIFRoaXMgY2hhbmdlIG1ha2Vz
CisgICAgICAgIGFsbCBhbmltYXRpb25zIHVzZSB0aGUgY29uZmlndXJlZCBtZXRob2QuCisKKyAg
ICAgICAgKiBNb3Rpb25NYXJrL3Rlc3RzLzNkL3Jlc291cmNlcy93ZWJnbC5qczoKKyAgICAgICAg
KFN0YWdlLmNhbGwuYW5pbWF0ZSk6CisgICAgICAgICogTW90aW9uTWFyay90ZXN0cy9kb20vcmVz
b3VyY2VzL2RvbS1wYXJ0aWNsZXMuanM6CisgICAgICAgIChQYXJ0aWNsZS5jYWxsLnJlc2V0KToK
KyAgICAgICAgKiBNb3Rpb25NYXJrL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvY2FudmFzLXRlc3Rz
LmpzOgorICAgICAgICAoQ2FudmFzTGluZVNlZ21lbnQuVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKToK
KyAgICAgICAgKGRyYXcpOgorICAgICAgICAoU2ltcGxlQ2FudmFzU3RhZ2UuY2FsbC5hbmltYXRl
KToKKyAgICAgICAgKFNpbXBsZUNhbnZhc1N0YWdlLmNhbGwpOgorICAgICAgICAqIE1vdGlvbk1h
cmsvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9sZWF2ZXMuanM6CisgICAgICAgIChhbmltYXRlKToK
KyAgICAgICAgKiBNb3Rpb25NYXJrL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvc3ZnLXBhcnRpY2xl
cy5qczoKKyAgICAgICAgKFBhcnRpY2xlLmNhbGwucmVzZXQpOgorICAgICAgICAqIE1vdGlvbk1h
cmsvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy90ZXh0LmpzOgorICAgICAgICAoYW5pbWF0ZSk6Cisg
ICAgICAgICogTW90aW9uTWFyay90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczoKKyAgICAgICAgKFN0
YWdlLlV0aWxpdGllcy5jcmVhdGVDbGFzcy5pbml0aWFsaXplKToKKyAgICAgICAgKFN0YWdlLlV0
aWxpdGllcy5jcmVhdGVDbGFzcy5zZXQgdGltZXN0YW1wKToKKyAgICAgICAgKFN0YWdlLlV0aWxp
dGllcy5jcmVhdGVDbGFzcy5nZXQgdGltZXN0YW1wKToKKyAgICAgICAgKFN0YWdlLlV0aWxpdGll
cy5jcmVhdGVDbGFzcy5jbGVhcik6CisgICAgICAgIChTdGFnZS5VdGlsaXRpZXMuY3JlYXRlQ2xh
c3Mucm90YXRpbmdDb2xvcik6CisgICAgICAgIChTdGFnZS5VdGlsaXRpZXMuY3JlYXRlQ2xhc3Mu
dGltZXN0YW1wRnJhY3Rpb25hbFZhbHVlKToKKyAgICAgICAgKFN0YWdlLlV0aWxpdGllcy5jcmVh
dGVDbGFzcy50aW1lc3RhbXBDb3VudGVyVmFsdWUpOgorICAgICAgICAoU3RhZ2UuVXRpbGl0aWVz
LmNyZWF0ZUNsYXNzKToKKyAgICAgICAgKGNhc2Uuc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhpcy5f
Y29udHJvbGxlci5uZXcuUmFtcDMwQ29udHJvbGxlci5fYW5pbWF0ZUxvb3ApOgorICAgICAgICAo
Y2FzZS5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aGlzLl9jb250cm9sbGVyLm5ldy5SYW1wMzBDb250
cm9sbGVyKToKKyAgICAgICAgKHJvdGF0aW5nQ29sb3IpOiBEZWxldGVkLgorICAgICAgICAoZGF0
ZUZyYWN0aW9uYWxWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChkYXRlQ291bnRlclZhbHVlKTog
RGVsZXRlZC4KKwogMjAxNy0wMy0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAogICAgICAgICBbSlNDXSBBZGQgaGVscGVycyB0byBydW4gU2l4IFNwZWVkIHRvIHJ1
bi1qc2MtYmVuY2htYXJrcwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJr
L3Rlc3RzLzNkL3Jlc291cmNlcy93ZWJnbC5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9uTWFy
ay90ZXN0cy8zZC9yZXNvdXJjZXMvd2ViZ2wuanMKaW5kZXggNThmNWRmMzg1ZWQ0ODhlYTdiZjU1
OTBjYjg0YzBjN2ZlMzE0NjAzOS4uMTFjODAzMzA4YjU0MmJhOGU0ZDk0MWY2Y2Y3OGQ4NGQ5NDhk
MGVlZCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rlc3RzLzNkL3Jl
c291cmNlcy93ZWJnbC5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsvdGVzdHMv
M2QvcmVzb3VyY2VzL3dlYmdsLmpzCkBAIC0xMzksOCArMTM5LDggQEAgV2ViR0xTdGFnZSA9IFV0
aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhTdGFnZSwKICAgICAgICAgICAgIGdsLmNsZWFyKGdsLkNP
TE9SX0JVRkZFUl9CSVQpOwogCiAgICAgICAgICAgICBpZiAoIXRoaXMuX3N0YXJ0VGltZSkKLSAg
ICAgICAgICAgICAgICB0aGlzLl9zdGFydFRpbWUgPSBTdGFnZS5kYXRlQ291bnRlclZhbHVlKDEw
MDApOwotICAgICAgICAgICAgdmFyIGVsYXBzZWRUaW1lID0gU3RhZ2UuZGF0ZUNvdW50ZXJWYWx1
ZSgxMDAwKSAtIHRoaXMuX3N0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9zdGFydFRp
bWUgPSB0aGlzLnRpbWVzdGFtcENvdW50ZXJWYWx1ZSgxMDAwKTsKKyAgICAgICAgICAgIHZhciBl
bGFwc2VkVGltZSA9IHRoaXMudGltZXN0YW1wQ291bnRlclZhbHVlKDEwMDApIC0gdGhpcy5fc3Rh
cnRUaW1lOwogCiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX251bVRyaWFu
Z2xlczsgKytpKSB7CiAKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9uTWFyay90
ZXN0cy9kb20vcmVzb3VyY2VzL2RvbS1wYXJ0aWNsZXMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL01v
dGlvbk1hcmsvdGVzdHMvZG9tL3Jlc291cmNlcy9kb20tcGFydGljbGVzLmpzCmluZGV4IDQ3MTQ0
NGIyZTdlY2UxYmRmNmExZDBiNDU3NzU0NjA3ODJmZTg1MTYuLjRlOGI4YmIzMGJmNGI5ZGNjM2Yx
NmRmZDI2YTdhNDU2OGRkNGY2OTUgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9u
TWFyay90ZXN0cy9kb20vcmVzb3VyY2VzL2RvbS1wYXJ0aWNsZXMuanMKKysrIGIvUGVyZm9ybWFu
Y2VUZXN0cy9Nb3Rpb25NYXJrL3Rlc3RzL2RvbS9yZXNvdXJjZXMvZG9tLXBhcnRpY2xlcy5qcwpA
QCAtMTUsNyArMTUsNyBAQCBET01QYXJ0aWNsZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhQ
YXJ0aWNsZSwKIAogICAgICAgICB0aGlzLnBvc2l0aW9uID0gU3RhZ2UucmFuZG9tRWxlbWVudElu
QXJyYXkodGhpcy5zdGFnZS5lbWl0TG9jYXRpb24pOwogCi0gICAgICAgIHZhciBhbmdsZSA9IFN0
YWdlLnJhbmRvbUludCgwLCB0aGlzLnN0YWdlLmVtaXRTdGVwcykgLyB0aGlzLnN0YWdlLmVtaXRT
dGVwcyAqIE1hdGguUEkgKiAyICsgU3RhZ2UuZGF0ZUNvdW50ZXJWYWx1ZSgxMDApICogdGhpcy5z
dGFnZS5lbWlzc2lvblNwaW47CisgICAgICAgIHZhciBhbmdsZSA9IFN0YWdlLnJhbmRvbUludCgw
LCB0aGlzLnN0YWdlLmVtaXRTdGVwcykgLyB0aGlzLnN0YWdlLmVtaXRTdGVwcyAqIE1hdGguUEkg
KiAyICsgdGhpcy5zdGFnZS50aW1lc3RhbXBDb3VudGVyVmFsdWUoMTAwKSAqIHRoaXMuc3RhZ2Uu
ZW1pc3Npb25TcGluOwogICAgICAgICB0aGlzLnZlbG9jaXR5ID0gbmV3IFBvaW50KE1hdGguc2lu
KGFuZ2xlKSwgTWF0aC5jb3MoYW5nbGUpKQogICAgICAgICAgICAgLm11bHRpcGx5KFN0YWdlLnJh
bmRvbSguNSwgMi41KSk7CiAKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9uTWFy
ay90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcyBiL1BlcmZvcm1hbmNlVGVz
dHMvTW90aW9uTWFyay90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcwppbmRl
eCA3OWZjODY3MDgyOTY1YzE4OTgyMWMxYzUwYTY5ZWRkMjUzOTk1NjM3Li44NzZhZDY5YjEzY2Q4
YWNmYzdiY2RlZjFmZDdlMmM1YmMyMGNkNDM5IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3Rz
L01vdGlvbk1hcmsvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMKKysrIGIv
UGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvY2FudmFz
LXRlc3RzLmpzCkBAIC0xNiw2ICsxNiw3IEBAIENhbnZhc0xpbmVTZWdtZW50ID0gVXRpbGl0aWVz
LmNyZWF0ZUNsYXNzKAogICAgICAgICB0aGlzLl9zdGFydFkgPSBzdGFnZS5jaXJjbGVSYWRpdXMg
KiB0aGlzLl9zaW5UaGV0YSArIHN0YWdlLmNpcmNsZVlbY2lyY2xlXTsKICAgICAgICAgdGhpcy5f
bGVuZ3RoID0gTWF0aC5wb3coUHNldWRvLnJhbmRvbSgpLCA4KSAqIHN0YWdlLmxpbmVMZW5ndGhN
YXhpbXVtICsgc3RhZ2UubGluZU1pbmltdW07CiAgICAgICAgIHRoaXMuX3NlZ21lbnREaXJlY3Rp
b24gPSBQc2V1ZG8ucmFuZG9tKCkgPiAwLjUgPyAtMSA6IDE7CisgICAgICAgIHRoaXMuX3N0YWdl
ID0gc3RhZ2U7CiAgICAgfSwgewogCiAgICAgZHJhdzogZnVuY3Rpb24oY29udGV4dCkKQEAgLTIz
LDcgKzI0LDcgQEAgQ2FudmFzTGluZVNlZ21lbnQgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAg
ICAgICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSB0aGlzLl9jb2xvcjsKICAgICAgICAgY29udGV4
dC5saW5lV2lkdGggPSB0aGlzLl9saW5lV2lkdGg7CiAKLSAgICAgICAgdGhpcy5fbGVuZ3RoICs9
IE1hdGguc2luKFN0YWdlLmRhdGVDb3VudGVyVmFsdWUoMTAwKSAqIHRoaXMuX29tZWdhKTsKKyAg
ICAgICAgdGhpcy5fbGVuZ3RoICs9IE1hdGguc2luKHRoaXMuX3N0YWdlLnRpbWVzdGFtcENvdW50
ZXJWYWx1ZSgxMDApICogdGhpcy5fb21lZ2EpOwogCiAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRo
KCk7CiAgICAgICAgIGNvbnRleHQubW92ZVRvKHRoaXMuX3N0YXJ0WCwgdGhpcy5fc3RhcnRZKTsK
QEAgLTIwNywxMiArMjA4LDEyIEBAIENhbnZhc0xpbmVTZWdtZW50U3RhZ2UgPSBVdGlsaXRpZXMu
Y3JlYXRlU3ViY2xhc3MoU2ltcGxlQ2FudmFzU3RhZ2UsCiAgICAgICAgIHZhciBjb250ZXh0ID0g
dGhpcy5jb250ZXh0OwogICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCB0aGlzLnNpemUu
eCwgdGhpcy5zaXplLnkpOwogCi0gICAgICAgIHZhciBhbmdsZSA9IFN0YWdlLmRhdGVGcmFjdGlv
bmFsVmFsdWUoMzAwMCkgKiBNYXRoLlBJICogMjsKKyAgICAgICAgdmFyIGFuZ2xlID0gdGhpcy50
aW1lc3RhbXBGcmFjdGlvbmFsVmFsdWUoMzAwMCkgKiBNYXRoLlBJICogMjsKICAgICAgICAgdmFy
IGR4ID0gdGhpcy50d29GaWZ0aHNTaXplWCAqIE1hdGguY29zKGFuZ2xlKTsKICAgICAgICAgdmFy
IGR5ID0gdGhpcy50d29GaWZ0aHNTaXplWCAqIE1hdGguc2luKGFuZ2xlKTsKIAogICAgICAgICB2
YXIgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHRoaXMuaGFsZlNpemUu
eCArIGR4LCB0aGlzLmhhbGZTaXplLnkgKyBkeSwgdGhpcy5oYWxmU2l6ZS54IC0gZHgsIHRoaXMu
aGFsZlNpemUueSAtIGR5KTsKLSAgICAgICAgdmFyIGdyYWRpZW50U3RlcCA9IDAuNSArIDAuNSAq
IE1hdGguc2luKFN0YWdlLmRhdGVGcmFjdGlvbmFsVmFsdWUoNTAwMCkgKiBNYXRoLlBJICogMik7
CisgICAgICAgIHZhciBncmFkaWVudFN0ZXAgPSAwLjUgKyAwLjUgKiBNYXRoLnNpbih0aGlzLnRp
bWVzdGFtcEZyYWN0aW9uYWxWYWx1ZSg1MDAwKSAqIE1hdGguUEkgKiAyKTsKICAgICAgICAgdmFy
IGNvbG9yU3RvcFN0ZXAgPSBVdGlsaXRpZXMubGVycChncmFkaWVudFN0ZXAsIC0uMSwgLjEpOwog
ICAgICAgICB2YXIgYnJpZ2h0bmVzc1N0ZXAgPSBNYXRoLnJvdW5kKFV0aWxpdGllcy5sZXJwKGdy
YWRpZW50U3RlcCwgMzIsIDY0KSk7CiAgICAgICAgIHZhciBjb2xvcjFTdGVwID0gInJnYmEoIiAr
IGJyaWdodG5lc3NTdGVwICsgIiwiICsgYnJpZ2h0bmVzc1N0ZXAgKyAiLCIgKyAoYnJpZ2h0bmVz
c1N0ZXAgPDwgMSkgKyAiLC40KSI7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL01vdGlv
bk1hcmsvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9sZWF2ZXMuanMgYi9QZXJmb3JtYW5jZVRlc3Rz
L01vdGlvbk1hcmsvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9sZWF2ZXMuanMKaW5kZXggN2EwNDk4
MzZmZjI0MGY5ODgyN2U5ZGEwYzU2N2Y0ZmIxY2NmOTMxNS4uYmY1MzhjYmRmMWU4NGIyODBhM2Q2
MTlkZjM4NDI3NDEyM2I1Y2Y3NiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25N
YXJrL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvbGVhdmVzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVz
dHMvTW90aW9uTWFyay90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2xlYXZlcy5qcwpAQCAtMTAxLDcg
KzEwMSw3IEBAIFV0aWxpdGllcy5leHRlbmRPYmplY3QoUGFydGljbGVzU3RhZ2UucHJvdG90eXBl
LCB7CiAKICAgICBhbmltYXRlOiBmdW5jdGlvbih0aW1lRGVsdGEpCiAgICAgewotICAgICAgICB0
aGlzLmZvY3VzWCA9IDAuNSArIDAuNSAqIE1hdGguc2luKFN0YWdlLmRhdGVGcmFjdGlvbmFsVmFs
dWUoMTAwMDApICogTWF0aC5QSSAqIDIpOworICAgICAgICB0aGlzLmZvY3VzWCA9IDAuNSArIDAu
NSAqIE1hdGguc2luKHRoaXMudGltZXN0YW1wRnJhY3Rpb25hbFZhbHVlKDEwMDAwKSAqIE1hdGgu
UEkgKiAyKTsKICAgICAgICAgdGltZURlbHRhIC89IDQ7CiAgICAgICAgIHRoaXMucGFydGljbGVz
LmZvckVhY2goZnVuY3Rpb24ocGFydGljbGUpIHsKICAgICAgICAgICAgIHBhcnRpY2xlLmFuaW1h
dGUodGltZURlbHRhKTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9uTWFyay90
ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3N2Zy1wYXJ0aWNsZXMuanMgYi9QZXJmb3JtYW5jZVRlc3Rz
L01vdGlvbk1hcmsvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9zdmctcGFydGljbGVzLmpzCmluZGV4
IDJjZTI0YjU2ZjFjODIxMGQ5ZTAxZDEzOWQxM2VmOWUyNGExZDlkMTMuLmQxNWM3ZDRiYzVjOGJl
MmYwNzQwOGRjNTE0MGRjMzVjMGUyODIxMDUgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMv
TW90aW9uTWFyay90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3N2Zy1wYXJ0aWNsZXMuanMKKysrIGIv
UGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvc3ZnLXBh
cnRpY2xlcy5qcwpAQCAtMzUsNyArMzUsNyBAQCBTVkdQYXJ0aWNsZSA9IFV0aWxpdGllcy5jcmVh
dGVTdWJjbGFzcyhQYXJ0aWNsZSwKICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFN0YWdlLnJhbmRv
bUVsZW1lbnRJbkFycmF5KHRoaXMuc3RhZ2UuZW1pdExvY2F0aW9uKTsKIAogICAgICAgICB2YXIg
dmVsb2NpdHlNYWduaXR1ZGUgPSBTdGFnZS5yYW5kb20oLjUsIDIuNSk7Ci0gICAgICAgIHZhciBh
bmdsZSA9IFN0YWdlLnJhbmRvbUludCgwLCB0aGlzLnN0YWdlLmVtaXRTdGVwcykgLyB0aGlzLnN0
YWdlLmVtaXRTdGVwcyAqIE1hdGguUEkgKiAyICsgU3RhZ2UuZGF0ZUNvdW50ZXJWYWx1ZSgxMDAw
KSAqIHRoaXMuc3RhZ2UuZW1pc3Npb25TcGluICsgdmVsb2NpdHlNYWduaXR1ZGU7CisgICAgICAg
IHZhciBhbmdsZSA9IFN0YWdlLnJhbmRvbUludCgwLCB0aGlzLnN0YWdlLmVtaXRTdGVwcykgLyB0
aGlzLnN0YWdlLmVtaXRTdGVwcyAqIE1hdGguUEkgKiAyICsgdGhpcy5zdGFnZS50aW1lc3RhbXBD
b3VudGVyVmFsdWUoMTAwMCkgKiB0aGlzLnN0YWdlLmVtaXNzaW9uU3BpbiArIHZlbG9jaXR5TWFn
bml0dWRlOwogICAgICAgICB0aGlzLnZlbG9jaXR5ID0gbmV3IFBvaW50KE1hdGguc2luKGFuZ2xl
KSwgTWF0aC5jb3MoYW5nbGUpKQogICAgICAgICAgICAgLm11bHRpcGx5KHZlbG9jaXR5TWFnbml0
dWRlKTsKIApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rlc3RzL21h
c3Rlci9yZXNvdXJjZXMvdGV4dC5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9uTWFyay90ZXN0
cy9tYXN0ZXIvcmVzb3VyY2VzL3RleHQuanMKaW5kZXggYzdlYmU0NjRiM2M3ZmMyZmIzY2U1OTY0
ODNiNDA2Y2IwOTY0ODg2OS4uYTU5ZjFmODc3YzY0N2MxMmM3ZWQwMGNkNWM1MDhjYmVkMDNkYTI0
NyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rlc3RzL21hc3Rlci9y
ZXNvdXJjZXMvdGV4dC5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsvdGVzdHMv
bWFzdGVyL3Jlc291cmNlcy90ZXh0LmpzCkBAIC02OSw3ICs2OSw3IEBAIHZhciBUZXh0U3RhZ2Ug
PSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoU3RhZ2UsCiAgICAgfSwKIAogICAgIGFuaW1hdGU6
IGZ1bmN0aW9uKHRpbWVEZWx0YSkgewotICAgICAgICB2YXIgYW5nbGUgPSBTdGFnZS5kYXRlQ291
bnRlclZhbHVlKHRoaXMubWlsbGlzZWNvbmRzUGVyUm90YXRpb24pOworICAgICAgICB2YXIgYW5n
bGUgPSB0aGlzLnRpbWVzdGFtcENvdW50ZXJWYWx1ZSh0aGlzLm1pbGxpc2Vjb25kc1BlclJvdGF0
aW9uKTsKIAogICAgICAgICB2YXIgcHJvZ3Jlc3MgPSAwOwogICAgICAgICB2YXIgc3RlcFggPSBN
YXRoLnNpbihhbmdsZSkgKiB0aGlzLnBhcnRpY2xlRGlzdGFuY2VYOwpAQCAtNzcsNyArNzcsNyBA
QCB2YXIgVGV4dFN0YWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKFN0YWdlLAogICAgICAg
ICB2YXIgeCA9IC1zdGVwWCAqIDM7CiAgICAgICAgIHZhciB5ID0gLXN0ZXBZICogMzsKICAgICAg
ICAgdmFyIGdyYWRpZW50ID0gdGhpcy5ncmFkaWVudHNbTWF0aC5mbG9vcihhbmdsZS8oTWF0aC5Q
SSAqIDIpKSAlIHRoaXMuZ3JhZGllbnRzLmxlbmd0aF07Ci0gICAgICAgIHZhciBvZmZzZXQgPSBT
dGFnZS5kYXRlQ291bnRlclZhbHVlKDIwMCk7CisgICAgICAgIHZhciBvZmZzZXQgPSB0aGlzLnRp
bWVzdGFtcENvdW50ZXJWYWx1ZSgyMDApOwogICAgICAgICB0aGlzLl90ZW1wbGF0ZS5zdHlsZS50
cmFuc2Zvcm0gPSAidHJhbnNsYXRlKCIgKyBNYXRoLmZsb29yKHgpICsgInB4LCIgKyBNYXRoLmZs
b29yKHkpICsgInB4KSI7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fb2Zmc2V0
SW5kZXg7ICsraSkgewogICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLnRlc3RFbGVtZW50
c1tpXTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9uTWFyay90ZXN0cy9yZXNv
dXJjZXMvbWFpbi5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvTW90aW9uTWFyay90ZXN0cy9yZXNvdXJj
ZXMvbWFpbi5qcwppbmRleCBiOTc3NmQ1NzFlM2JkZDE1NDFhYzk3M2Y4OWJhZGNmNDBkNjk0ZDll
Li5iN2YxZjNlNDEzZWMzM2YzNGVmYjZjZGZjNmQ2MmFkMTU2MDRhNjUyIDEwMDY0NAotLS0gYS9Q
ZXJmb3JtYW5jZVRlc3RzL01vdGlvbk1hcmsvdGVzdHMvcmVzb3VyY2VzL21haW4uanMKKysrIGIv
UGVyZm9ybWFuY2VUZXN0cy9Nb3Rpb25NYXJrL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzCkBAIC02
MjksNiArNjI5LDcgQEAgU3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgICAgIHRo
aXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lk
dGgpOwogICAgICAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgZG9jdW1l
bnQuYm9keS5vZmZzZXRIZWlnaHQpOwogICAgICAgICB0aGlzLl9zaXplID0gUG9pbnQuZWxlbWVu
dENsaWVudFNpemUodGhpcy5fZWxlbWVudCkuc3VidHJhY3QoSW5zZXRzLmVsZW1lbnRQYWRkaW5n
KHRoaXMuX2VsZW1lbnQpLnNpemUpOworICAgICAgICB0aGlzLl9jdXJyZW50VGltZXN0YW1wID0g
bnVsbDsKICAgICB9LAogCiAgICAgZ2V0IGVsZW1lbnQoKQpAQCAtNjQxLDYgKzY0MiwxNiBAQCBT
dGFnZSA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7
CiAgICAgfSwKIAorICAgIHNldCB0aW1lc3RhbXAoc3RhbXApCisgICAgeworICAgICAgICB0aGlz
Ll9jdXJyZW50VGltZXN0YW1wID0gc3RhbXA7CisgICAgfSwKKworICAgIGdldCB0aW1lc3RhbXAo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRUaW1lc3RhbXA7CisgICAgfSwK
KwogICAgIGNvbXBsZXhpdHk6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHJldHVybiAwOwpA
QCAtNjU5LDYgKzY3MCwyNiBAQCBTdGFnZSA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICBj
bGVhcjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMudHVuZSgtdGhpcy50
dW5lKDApKTsKKyAgICB9LAorCisgICAgcm90YXRpbmdDb2xvcjogZnVuY3Rpb24oY3ljbGVMZW5n
dGhNcywgc2F0dXJhdGlvbiwgbGlnaHRuZXNzKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJoc2wo
IgorICAgICAgICAgICAgKyB0aGlzLmRhdGVGcmFjdGlvbmFsVmFsdWUoY3ljbGVMZW5ndGhNcykg
KiAzNjAgKyAiLCAiCisgICAgICAgICAgICArICgoc2F0dXJhdGlvbiB8fCAuOCkgKiAxMDApLnRv
Rml4ZWQoMCkgKyAiJSwgIgorICAgICAgICAgICAgKyAoKGxpZ2h0bmVzcyB8fCAuMzUpICogMTAw
KS50b0ZpeGVkKDApICsgIiUpIjsKKyAgICB9LAorCisgICAgLy8gUmV0dXJucyBhIGZyYWN0aW9u
YWwgdmFsdWUgYmFzZWQgb24gY3VycmVudCB0aW1lc3RhbXAgdGhhdCB3cmFwcyBhcm91bmQgd2l0
aGluIFswLDFdLgorICAgIHRpbWVzdGFtcEZyYWN0aW9uYWxWYWx1ZTogZnVuY3Rpb24oY3ljbGVM
ZW5ndGhNcykKKyAgICB7CisgICAgICAgIHJldHVybiAodGhpcy50aW1lc3RhbXAgLyAoY3ljbGVM
ZW5ndGhNcyB8fCAyMDAwKSkgJSAxOworICAgIH0sCisKKyAgICAvLyBSZXR1cm5zIGFuIGluY3Jl
YXNpbmcgdmFsdWUgYmFzZWQgb24gY3VycmVudCB0aW1lc3RhbXAgc2xvd2VkIGRvd24gYnkgZmFj
dG9yLgorICAgIHRpbWVzdGFtcENvdW50ZXJWYWx1ZTogZnVuY3Rpb24oZmFjdG9yKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMudGltZXN0YW1wIC8gZmFjdG9yOwogICAgIH0KIH0pOwogCkBA
IC03NjEsMjYgKzc5Miw2IEBAIFV0aWxpdGllcy5leHRlbmRPYmplY3QoU3RhZ2UsIHsKICAgICAg
ICAgcmV0dXJuIGFycmF5W1N0YWdlLnJhbmRvbUludCgwLCBhcnJheS5sZW5ndGggLSAxKV07CiAg
ICAgfSwKIAotICAgIHJvdGF0aW5nQ29sb3I6IGZ1bmN0aW9uKGN5Y2xlTGVuZ3RoTXMsIHNhdHVy
YXRpb24sIGxpZ2h0bmVzcykKLSAgICB7Ci0gICAgICAgIHJldHVybiAiaHNsKCIKLSAgICAgICAg
ICAgICsgU3RhZ2UuZGF0ZUZyYWN0aW9uYWxWYWx1ZShjeWNsZUxlbmd0aE1zKSAqIDM2MCArICIs
ICIKLSAgICAgICAgICAgICsgKChzYXR1cmF0aW9uIHx8IC44KSAqIDEwMCkudG9GaXhlZCgwKSAr
ICIlLCAiCi0gICAgICAgICAgICArICgobGlnaHRuZXNzIHx8IC4zNSkgKiAxMDApLnRvRml4ZWQo
MCkgKyAiJSkiOwotICAgIH0sCi0KLSAgICAvLyBSZXR1cm5zIGEgZnJhY3Rpb25hbCB2YWx1ZSB0
aGF0IHdyYXBzIGFyb3VuZCB3aXRoaW4gWzAsMV0KLSAgICBkYXRlRnJhY3Rpb25hbFZhbHVlOiBm
dW5jdGlvbihjeWNsZUxlbmd0aE1zKQotICAgIHsKLSAgICAgICAgcmV0dXJuIChEYXRlLm5vdygp
IC8gKGN5Y2xlTGVuZ3RoTXMgfHwgMjAwMCkpICUgMTsKLSAgICB9LAotCi0gICAgLy8gUmV0dXJu
cyBhbiBpbmNyZWFzaW5nIHZhbHVlIHNsb3dlZCBkb3duIGJ5IGZhY3RvcgotICAgIGRhdGVDb3Vu
dGVyVmFsdWU6IGZ1bmN0aW9uKGZhY3RvcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBEYXRlLm5v
dygpIC8gZmFjdG9yOwotICAgIH0sCi0KICAgICByYW5kb21Sb3RhdGVyOiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICByZXR1cm4gbmV3IFJvdGF0ZXIodGhpcy5yYW5kb20oMTAwMCwgMTAwMDAp
KTsKQEAgLTkwNSw2ICs5MTYsNyBAQCBCZW5jaG1hcmsgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3Mo
CiAgICAgewogICAgICAgICB0aW1lc3RhbXAgPSAodGhpcy5fZ2V0VGltZXN0YW1wICYmIHRoaXMu
X2dldFRpbWVzdGFtcCgpKSB8fCB0aW1lc3RhbXA7CiAgICAgICAgIHRoaXMuX2N1cnJlbnRUaW1l
c3RhbXAgPSB0aW1lc3RhbXA7CisgICAgICAgIHRoaXMuc3RhZ2UudGltZXN0YW1wID0gdGltZXN0
YW1wOwogCiAgICAgICAgIGlmICh0aGlzLl9jb250cm9sbGVyLnNob3VsZFN0b3AodGltZXN0YW1w
KSkgewogICAgICAgICAgICAgdGhpcy5fZmluaXNoUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2NvbnRy
b2xsZXIucmVzdWx0cygpKTsK
</data>
<flag name="review"
          id="327113"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>