<?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>223158</bug_id>
          
          <creation_ts>2021-03-14 00:58:00 -0800</creation_ts>
          <short_desc>[JSC] Run one Mozilla test explicitly under PST since this test does not work when we are moving from PST to PDT</short_desc>
          <delta_ts>2021-03-15 09:39:35 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>223187</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mark.lam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1739212</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-14 00:58:00 -0800</bug_when>
    <thetext>[JSC] Run one Mozilla test explicitly under PST since this test does not work when we are moving from PST to DST</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739213</commentid>
    <comment_count>1</comment_count>
      <attachid>423120</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-14 00:59:43 -0800</bug_when>
    <thetext>Created attachment 423120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739238</commentid>
    <comment_count>2</comment_count>
      <attachid>423120</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-03-14 09:36:11 -0700</bug_when>
    <thetext>Comment on attachment 423120
Patch

r=me

Thanks for fixing this.  This bug has been present going back at least 8 years.  For 2 hours a year when we switch daylight savings time, this test would always fail.

I see that the real change that matters is that you specified &quot;TZ=PST&quot; and use runComplexTest to get it applied to the environment.  However, I wasn&apos;t able to tease out where our system picks up this env var.  Would you mind pointing me to it for future reference?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739274</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-14 15:08:40 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #2)
&gt; Comment on attachment 423120 [details]
&gt; Patch
&gt; 
&gt; r=me
&gt; 
&gt; Thanks for fixing this.  This bug has been present going back at least 8
&gt; years.  For 2 hours a year when we switch daylight savings time, this test
&gt; would always fail.
&gt; 
&gt; I see that the real change that matters is that you specified &quot;TZ=PST&quot; and
&gt; use runComplexTest to get it applied to the environment.  However, I wasn&apos;t
&gt; able to tease out where our system picks up this env var.  Would you mind
&gt; pointing me to it for future reference?

This is ICU. &quot;TZ&quot; environment variable is recognized by ICU, and we use it for ICU date times. And JSC&apos;s date implementation is using ICU.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739275</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-14 15:14:11 -0700</bug_when>
    <thetext>Committed r274405 (235272@main): &lt;https://commits.webkit.org/235272@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739278</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-14 15:15:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/75412033&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739477</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-03-15 09:39:35 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 223187</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423120</attachid>
            <date>2021-03-14 00:59:43 -0800</date>
            <delta_ts>2021-03-14 09:36:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223158-20210314005942.patch</filename>
            <type>text/plain</type>
            <size>31909</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Mzk1CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxv
ZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY3NGVmYmZkNjRlMWJkZThmYzM5MGY2NThjZjYz
NmUyNGUyMTQ1N2UuLmVjODcwNDQ3MjI1YWE4NGNiODg5ZTQwOTkyYTY2YjgxY2NmZWYyM2EgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNjEgQEAKKzIwMjEtMDMtMTQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBSdW4gb25lIE1vemlsbGEgdGVzdCBleHBsaWNpdGx5IHVuZGVy
IFBTVCBzaW5jZSB0aGlzIHRlc3QgZG9lcyBub3Qgd29yayB3aGVuIHdlIGFyZSBtb3ZpbmcgZnJv
bSBQU1QgdG8gUERUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjMxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIG1vemlsbGEgdGVzdCBpcyBicm9rZW46IGl0IGZhaWxzIHdoZW4gd2UgYXJlIGNs
b3NlIHRvIHRoZSBwb2ludCBtb3ZpbmcgZnJvbSBQU1QgdG8gUERUIC8gZnJvbSBQRFQgdG8gUFNU
LgorICAgICAgICBXZSBzaG91bGQgYWx3YXlzIHJ1biB0aGlzIHRlc3QgdW5kZXIgUFNUIHRvIGF2
b2lkIHRoaXMgRFNUIHJlbGF0ZWQgZmxha2luZXNzLgorCisgICAgICAgICogY29tcGxleC55YW1s
OgorICAgICAgICAqIGNvbXBsZXgvbW96aWxsYS1lY21hLURhdGUtMTUuOS41LjE0LmpzOiBSZW5h
bWVkIGZyb20gSlNUZXN0cy9tb3ppbGxhL2VjbWEvRGF0ZS8xNS45LjUuMTQuanMuCisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKiBjb21wbGV4L21vemlsbGEtc2hlbGwuanM6IEFkZGVkLgorICAg
ICAgICAoQWRkVGVzdENhc2UpOgorICAgICAgICAoVGVzdENhc2UpOgorICAgICAgICAoc3RhcnRU
ZXN0KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoZ2V0VGVzdENhc2VSZXN1bHQpOgorICAg
ICAgICAod3JpdGVUZXN0Q2FzZVJlc3VsdCk6CisgICAgICAgICh3cml0ZUZvcm1hdHRlZFJlc3Vs
dCk6CisgICAgICAgICh3cml0ZUxpbmVUb0xvZyk6CisgICAgICAgICh3cml0ZUhlYWRlclRvTG9n
KToKKyAgICAgICAgKHN0b3BUZXN0KToKKyAgICAgICAgKGdldEZhaWxlZENhc2VzKToKKyAgICAg
ICAgKGdldFRpbWVab25lRGlmZik6CisgICAgICAgIChhZGp1c3RSZXN1bHRBcnJheSk6CisgICAg
ICAgIChEYXkpOgorICAgICAgICAoRGF5c0luWWVhcik6CisgICAgICAgIChUaW1lSW5ZZWFyKToK
KyAgICAgICAgKERheU51bWJlcik6CisgICAgICAgIChUaW1lV2l0aGluRGF5KToKKyAgICAgICAg
KFllYXJOdW1iZXIpOgorICAgICAgICAoVGltZUZyb21ZZWFyKToKKyAgICAgICAgKERheUZyb21Z
ZWFyKToKKyAgICAgICAgKEluTGVhcFllYXIpOgorICAgICAgICAoWWVhckZyb21UaW1lKToKKyAg
ICAgICAgKE1vbnRoRnJvbVRpbWUpOgorICAgICAgICAoRGF5V2l0aGluWWVhcik6CisgICAgICAg
IChEYXRlRnJvbVRpbWUpOgorICAgICAgICAoV2Vla0RheSk6CisgICAgICAgIChVVEMpOgorICAg
ICAgICAoRGF5bGlnaHRTYXZpbmdUQSk6CisgICAgICAgIChHZXRGaXJzdFN1bmRheUluQXByaWwp
OgorICAgICAgICAoR2V0TGFzdFN1bmRheUluT2N0b2Jlcik6CisgICAgICAgIChHZXRTZWNvbmRT
dW5kYXlJbk1hcmNoKToKKyAgICAgICAgKEdldEZpcnN0U3VuZGF5SW5Ob3ZlbWJlcik6CisgICAg
ICAgIChMb2NhbFRpbWUpOgorICAgICAgICAoTWFrZVRpbWUpOgorICAgICAgICAoTWFrZURheSk6
CisgICAgICAgIChUaW1lSW5Nb250aCk6CisgICAgICAgIChUaW1lQ2xpcCk6CisgICAgICAgIChU
b0ludGVnZXIpOgorICAgICAgICAoRW51bWVyYXRlKToKKyAgICAgICAgKEdldENvbnRleHQpOgor
ICAgICAgICAoT3B0TGV2ZWwpOgorICAgICAgICAqIG1vemlsbGEvbW96aWxsYS10ZXN0cy55YW1s
OgorCiAyMDIxLTAzLTExICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFJIHZhbGlkYXRvciBwYXRjaHBvaW50IHNob3VsZCByZWFkIGhlYXAgdG9wCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL2NvbXBsZXgueWFtbCBiL0pTVGVzdHMvY29tcGxleC55YW1sCmluZGV4
IDYyZWRmNTAzODMxMGVkODU4MzQyMWMzMWJjZjBjNzVhN2NjZDFkNzcuLjI1YzdmM2VmYWUyNmE5
MTIxYTE0ZTFjNzM4N2M0ZmZjYWUyOTZlM2EgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvY29tcGxleC55
YW1sCisrKyBiL0pTVGVzdHMvY29tcGxleC55YW1sCkBAIC00MywzICs0Myw2IEBACiAKIC0gcGF0
aDogY29tcGxleC9kYXRlLXBhcnNlLW1pbGxpc2Vjb25kcy5qcwogICBjbWQ6IHJ1bkNvbXBsZXhU
ZXN0IFtdLCBbXSwgIlRaPUFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiLS11c2VEb2xsYXJWTT0xIgor
CistIHBhdGg6IGNvbXBsZXgvbW96aWxsYS1lY21hLURhdGUtMTUuOS41LjE0LmpzCisgIGNtZDog
cnVuQ29tcGxleFRlc3QgWyJtb3ppbGxhLXNoZWxsLmpzIl0sIFtdLCAiVFo9UFNUIiwgIi0tdXNl
RG9sbGFyVk09MSIKZGlmZiAtLWdpdCBhL0pTVGVzdHMvY29tcGxleC9tb3ppbGxhLWVjbWEtRGF0
ZS0xNS45LjUuMTQuanMgYi9KU1Rlc3RzL2NvbXBsZXgvbW96aWxsYS1lY21hLURhdGUtMTUuOS41
LjE0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMxYzUxYWJkMjU4MGJkMjQwMWFkYjY1NmJlOTY5NjRmYzk1Zjk5
MmIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL2NvbXBsZXgvbW96aWxsYS1lY21hLURhdGUt
MTUuOS41LjE0LmpzCkBAIC0wLDAgKzEsOTggQEAKKy8qIFRoZSBjb250ZW50cyBvZiB0aGlzIGZp
bGUgYXJlIHN1YmplY3QgdG8gdGhlIE5ldHNjYXBlIFB1YmxpYworICogTGljZW5zZSBWZXJzaW9u
IDEuMSAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUKKyAqIGV4Y2Vw
dCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBv
ZgorICogdGhlIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9OUEwvCisgKgorICog
U29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24g
YW4gIkFTCisgKiBJUyIgYmFzaXMsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIGVpdGhl
ciBleHByZXNzIG9yCisgKiBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZp
YyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyAqIHJpZ2h0cyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhl
IExpY2Vuc2UuCisgKgorICogVGhlIE9yaWdpbmFsIENvZGUgaXMgTW96aWxsYSBDb21tdW5pY2F0
b3IgY2xpZW50IGNvZGUsIHJlbGVhc2VkIE1hcmNoCisgKiAzMSwgMTk5OC4KKyAqCisgKiBUaGUg
SW5pdGlhbCBEZXZlbG9wZXIgb2YgdGhlIE9yaWdpbmFsIENvZGUgaXMgTmV0c2NhcGUgQ29tbXVu
aWNhdGlvbnMKKyAqIENvcnBvcmF0aW9uLiBQb3J0aW9ucyBjcmVhdGVkIGJ5IE5ldHNjYXBlIGFy
ZQorICogQ29weXJpZ2h0IChDKSAxOTk4IE5ldHNjYXBlIENvbW11bmljYXRpb25zIENvcnBvcmF0
aW9uLiBBbGwKKyAqIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBDb250cmlidXRvcihzKTogCisg
KiAKKyAqLworLyoqCisgICAgRmlsZSBOYW1lOiAgICAgICAgICAxNS45LjUuMTQuanMKKyAgICBF
Q01BIFNlY3Rpb246ICAgICAgIDE1LjkuNS4xNAorICAgIERlc2NyaXB0aW9uOiAgICAgICAgRGF0
ZS5wcm90b3R5cGUuZ2V0SG91cnMKKyAgICAxLiAgTGV0IHQgYmUgdGhpcyB0aW1lIHZhbHVlLgor
ICAgIDIuICBJZiB0IGlzIE5hTiwgcmV0dXJuIE5hTi4KKyAgICAzLiAgUmV0dXJuIEhvdXJGcm9t
VGltZShMb2NhbFRpbWUodCkpLgorCisgICAgQXV0aG9yOiAgICAgICAgICAgICBjaHJpc3RpbmVA
bmV0c2NhcGUuY29tCisgICAgRGF0ZTogICAgICAgICAgICAgICAxMiBub3ZlbWJlciAxOTk3Cisq
LworCisgICAgdmFyIFNFQ1RJT04gPSAiMTUuOS41LjE0IjsKKyAgICB2YXIgVkVSU0lPTiA9ICJF
Q01BXzEiOworICAgIHN0YXJ0VGVzdCgpOworICAgIHZhciBUSVRMRSAgID0gIkRhdGUucHJvdG90
eXBlLmdldEhvdXJzKCkiOworCisgICAgd3JpdGVIZWFkZXJUb0xvZyggU0VDVElPTiArICIgIisg
VElUTEUpOworCisgICAgdmFyIHRlc3RjYXNlcyA9IG5ldyBBcnJheSgpOworCisgICAgdmFyIFRa
X0FESlVTVCA9IFRaX0RJRkYgKiBtc1BlckhvdXI7CisKKyAgICAvLyBnZXQgdGhlIGN1cnJlbnQg
dGltZQorICAgIHZhciBub3cgPSAobmV3IERhdGUoKSkudmFsdWVPZigpOworCisgICAgLy8gZ2V0
IHRpbWUgZm9yIDI5IGZlYiAyMDAwCisKKyAgICB2YXIgVVRDX0ZFQl8yOV8yMDAwID0gVElNRV8y
MDAwICsgMzEqbXNQZXJEYXkgKyAyOCptc1BlckhvdXI7CisKKyAgICAvLyBnZXQgdGltZSBmb3Ig
MSBqYW4gMjAwNQorCisgICAgdmFyIFVUQ19KQU5fMV8yMDA1ID0gVElNRV8yMDAwICsgVGltZUlu
WWVhcigyMDAwKStUaW1lSW5ZZWFyKDIwMDEpKworICAgIFRpbWVJblllYXIoMjAwMikrVGltZUlu
WWVhcigyMDAzKStUaW1lSW5ZZWFyKDIwMDQpOworCisgICAgYWRkVGVzdENhc2UoIG5vdyApOwor
ICAgIGFkZFRlc3RDYXNlKCBUSU1FX1lFQVJfMCApOworICAgIGFkZFRlc3RDYXNlKCBUSU1FXzE5
NzAgKTsKKyAgICBhZGRUZXN0Q2FzZSggVElNRV8xOTAwICk7CisgICAgYWRkVGVzdENhc2UoIFRJ
TUVfMjAwMCApOworICAgIGFkZFRlc3RDYXNlKCBVVENfRkVCXzI5XzIwMDAgKTsKKyAgICBhZGRU
ZXN0Q2FzZSggVVRDX0pBTl8xXzIwMDUgKTsKKworICAgIHRlc3RjYXNlc1t0YysrXSA9IG5ldyBU
ZXN0Q2FzZSggU0VDVElPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIo
bmV3IERhdGUoTmFOKSkuZ2V0SG91cnMoKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBOYU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV3IERh
dGUoTmFOKSkuZ2V0SG91cnMoKSApOworCisgICAgdGVzdGNhc2VzW3RjKytdID0gbmV3IFRlc3RD
YXNlKCBTRUNUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRhdGUu
cHJvdG90eXBlLmdldEhvdXJzLmxlbmd0aCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZS5wcm90
b3R5cGUuZ2V0SG91cnMubGVuZ3RoICk7CisgICAgdGVzdCgpOworZnVuY3Rpb24gYWRkVGVzdENh
c2UoIHQgKSB7CisgICAgZm9yICggaCA9IDA7IGggPCAyNDsgaCs9NCApIHsKKyAgICAgICAgICAg
IHQgKz0gbXNQZXJIb3VyOworICAgICAgICAgICAgdGVzdGNhc2VzW3RjKytdID0gbmV3IFRlc3RD
YXNlKCBTRUNUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihuZXcg
RGF0ZSgiK3QrIikpLmdldEhvdXJzKCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSG91ckZyb21UaW1lKChMb2NhbFRpbWUodCkpKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChuZXcgRGF0ZSh0KSkuZ2V0SG91cnMoKSApOworICAgIH0KK30KK2Z1
bmN0aW9uIHRlc3QoKSB7CisgICAgZm9yICggdGM9MDsgdGMgPCB0ZXN0Y2FzZXMubGVuZ3RoOyB0
YysrICkgeworICAgICAgICB0ZXN0Y2FzZXNbdGNdLnBhc3NlZCA9IHdyaXRlVGVzdENhc2VSZXN1
bHQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGNhc2VzW3RjXS5leHBlY3QsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGNhc2VzW3RjXS5hY3R1YWwsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdGNhc2VzW3RjXS5kZXNjcmlwdGlvbiArIiA9ICIrCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGNhc2VzW3RjXS5hY3R1YWwgKTsKKworICAg
ICAgICB0ZXN0Y2FzZXNbdGNdLnJlYXNvbiArPSAoIHRlc3RjYXNlc1t0Y10ucGFzc2VkICkgPyAi
IiA6ICJ3cm9uZyB2YWx1ZSAiOworICAgICAgICBpZiAoIWdldFRlc3RDYXNlUmVzdWx0KHRlc3Rj
YXNlc1t0Y10uZXhwZWN0LCB0ZXN0Y2FzZXNbdGNdLmFjdHVhbCkpCisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IodGVzdGNhc2VzW3RjXS5kZXNjcmlwdGlvbiArIiA9ICIrIHRlc3RjYXNlc1t0
Y10uYWN0dWFsICsgIiBleHBlY3RlZDogIiArIHRlc3RjYXNlc1t0Y10uZXhwZWN0KTsKKyAgICB9
CisgICAgc3RvcFRlc3QoKTsKKyAgICByZXR1cm4gKCB0ZXN0Y2FzZXMgKTsKK30KZGlmZiAtLWdp
dCBhL0pTVGVzdHMvY29tcGxleC9tb3ppbGxhLXNoZWxsLmpzIGIvSlNUZXN0cy9jb21wbGV4L21v
emlsbGEtc2hlbGwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdlMDg2OTIyZDgzYTYwMWEzZTAxNGI2MmFmZjYy
MGUxOGVhZDdjMQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvY29tcGxleC9tb3ppbGxhLXNo
ZWxsLmpzCkBAIC0wLDAgKzEsNzEyIEBACisvKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIGFy
ZSBzdWJqZWN0IHRvIHRoZSBOZXRzY2FwZSBQdWJsaWMKKyAqIExpY2Vuc2UgVmVyc2lvbiAxLjEg
KHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlCisgKiBleGNlcHQgaW4g
Y29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YKKyAq
IHRoZSBMaWNlbnNlIGF0IGh0dHA6Ly93d3cubW96aWxsYS5vcmcvTlBMLworICoKKyAqIFNvZnR3
YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJB
UworICogSVMiIGJhc2lzLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvcgorICogaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nCisgKiByaWdodHMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNl
bnNlLgorICoKKyAqIFRoZSBPcmlnaW5hbCBDb2RlIGlzIE1vemlsbGEgQ29tbXVuaWNhdG9yIGNs
aWVudCBjb2RlLCByZWxlYXNlZCBNYXJjaAorICogMzEsIDE5OTguCisgKgorICogVGhlIEluaXRp
YWwgRGV2ZWxvcGVyIG9mIHRoZSBPcmlnaW5hbCBDb2RlIGlzIE5ldHNjYXBlIENvbW11bmljYXRp
b25zCisgKiBDb3Jwb3JhdGlvbi4gUG9ydGlvbnMgY3JlYXRlZCBieSBOZXRzY2FwZSBhcmUKKyAq
IENvcHlyaWdodCAoQykgMTk5OCBOZXRzY2FwZSBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbi4g
QWxsCisgKiBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogQ29udHJpYnV0b3Iocyk6IAorICoKKyAq
LworLyoKKyAqIEphdmFTY3JpcHQgc2hhcmVkIGZ1bmN0aW9ucyBmaWxlIGZvciBydW5uaW5nIHRo
ZSB0ZXN0cyBpbiBlaXRoZXIKKyAqIHN0YW5kLWFsb25lIEphdmFTY3JpcHQgZW5naW5lLiAgVG8g
cnVuIGEgdGVzdCwgZmlyc3QgbG9hZCB0aGlzIGZpbGUsCisgKiB0aGVuIGxvYWQgdGhlIHRlc3Qg
c2NyaXB0LgorICovCisKK3ZhciAgICBjb21wbGV0ZWQgPSAgICBmYWxzZTsKK3ZhciAgICB0ZXN0
Y2FzZXM7Cit2YXIgdGMgPSAwOworCitTRUNUSU9OICAgID0gIiI7CitWRVJTSU9OICAgID0gIiI7
CitCVUdOVU1CRVIgPSAgICAiIjsKKworLyoKKyAqIGNvbnN0YW50IHN0cmluZ3MKKyAqLwordmFy
ICAgIEdMT0JBTCA9ICJbb2JqZWN0IGdsb2JhbF0iOwordmFyIFBBU1NFRCA9ICIgUEFTU0VEISIK
K3ZhciBGQUlMRUQgPSAiIEZBSUxFRCEgZXhwZWN0ZWQ6ICI7CisKK3ZhciAgICBERUJVRyA9ICAg
IGZhbHNlOworCisKKworLyogd3JhcHBlciBmb3IgdGVzdCBjYXMgY29uc3RydWN0b3IgdGhhdCBk
b2Vzbid0IHJlcXVpcmUgdGhlIFNFQ1RJT04KKyAqIGFyZ3VtZW50LgorICovCisKK2Z1bmN0aW9u
IEFkZFRlc3RDYXNlKCBkZXNjcmlwdGlvbiwgZXhwZWN0LCBhY3R1YWwgKSB7CisgICAgdGVzdGNh
c2VzW3RjKytdID0gbmV3IFRlc3RDYXNlKCBTRUNUSU9OLCBkZXNjcmlwdGlvbiwgZXhwZWN0LCBh
Y3R1YWwgKTsKK30KKworLyoKKyAqIFRlc3RDYXNlIGNvbnN0cnVjdG9yCisgKgorICovCisKK2Z1
bmN0aW9uIFRlc3RDYXNlKCBuLCBkLCBlLCAgICBhICkgICAgeworICAgIHRoaXMubmFtZSAgICAg
ICAgID0gbjsKKyAgICB0aGlzLmRlc2NyaXB0aW9uID0gZDsKKyAgICB0aGlzLmV4cGVjdCAgICAg
ICAgID0gZTsKKyAgICB0aGlzLmFjdHVhbCAgICAgICAgID0gYTsKKyAgICB0aGlzLnBhc3NlZCAg
ICAgICAgID0gdHJ1ZTsKKyAgICB0aGlzLnJlYXNvbiAgICAgICAgID0gIiI7CisgICAgdGhpcy5i
dWdudW1iZXIgICAgICA9ICAgIEJVR05VTUJFUjsKKworICAgIHRoaXMucGFzc2VkICAgID0gZ2V0
VGVzdENhc2VSZXN1bHQoIHRoaXMuZXhwZWN0LCB0aGlzLmFjdHVhbCApOworICAgIGlmICggREVC
VUcgKSB7CisgICAgICAgIHdyaXRlTGluZVRvTG9nKCAgICAiYWRkZWQgIiArIHRoaXMuZGVzY3Jp
cHRpb24gICAgKTsKKyAgICB9Cit9CisKKy8qCisgKiBTZXQgdXAgdGVzdCBlbnZpcm9ubWVudC4K
KyAqCisgKi8KK2Z1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKKyAgICBpZiAoIHZlcnNpb24gKSB7Cisg
ICAgICAgIC8vICAgIEphdmFTY3JpcHQgMS4zIGlzIHN1cHBvc2VkIHRvIGJlIGNvbXBsaWFudCBl
Y21hICAgIHZlcnNpb24gICAgMS4wCisgICAgICAgIGlmICggVkVSU0lPTiA9PSAgICAiRUNNQV8x
IiApIHsKKyAgICAgICAgICAgIHZlcnNpb24gICAgKCAiMTMwIiAgICApOworICAgICAgICB9Cisg
ICAgICAgIGlmICggVkVSU0lPTiA9PSAgICAiSlNfMS4zIiApIHsKKyAgICAgICAgICAgIHZlcnNp
b24gICAgKCAiMTMwIiAgICApOworICAgICAgICB9CisgICAgICAgIGlmICggVkVSU0lPTiA9PSAg
ICAiSlNfMS4yIiApIHsKKyAgICAgICAgICAgIHZlcnNpb24gICAgKCAiMTIwIiAgICApOworICAg
ICAgICB9CisgICAgICAgIGlmICggVkVSU0lPTiAgPT0gIkpTXzEuMSIgKSAgICB7CisgICAgICAg
ICAgICB2ZXJzaW9uICAgICggIjExMCIgICAgKTsKKyAgICAgICAgfQorICAgICAgICAvLyBmb3Ig
ZWNtYSAgICB2ZXJzaW9uICAgIDIuMCwgd2UgICAgd2lsbCBsZWF2ZSB0aGUgamF2YXNjcmlwdCB2
ZXJzaW9uIHRvCisgICAgICAgIC8vIHRoZSBkZWZhdWx0ICggZm9yIG5vdyApLgorICAgIH0KKwor
ICAgIC8vIHByaW50IG91dCBidWdudW1iZXIKKworICAgIGlmICggQlVHTlVNQkVSICkgeworICAg
ICAgICAgICAgd3JpdGVMaW5lVG9Mb2cgKCJCVUdOVU1CRVI6ICIgKyBCVUdOVU1CRVIgKTsKKyAg
ICB9CisKKyAgICB0ZXN0Y2FzZXMgPSBuZXcgQXJyYXkoKTsKKyAgICB0YyA9IDA7Cit9CisKKwor
ZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBmb3IgKCB0Yz0wOyB0YyA8IHRlc3RjYXNlcy5sZW5ndGg7
IHRjKysgKSB7CisgICAgICAgIHRlc3RjYXNlc1t0Y10ucGFzc2VkID0gd3JpdGVUZXN0Q2FzZVJl
c3VsdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Y2FzZXNbdGNdLmV4cGVjdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Y2FzZXNbdGNdLmFjdHVhbCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Y2FzZXNbdGNdLmRlc2NyaXB0aW9uICsiID0gIisg
dGVzdGNhc2VzW3RjXS5hY3R1YWwgKTsKKyAgICAgICAgdGVzdGNhc2VzW3RjXS5yZWFzb24gKz0g
KCB0ZXN0Y2FzZXNbdGNdLnBhc3NlZCApID8gIiIgOiAid3JvbmcgdmFsdWUgIjsKKyAgICB9Cisg
ICAgc3RvcFRlc3QoKTsKKyAgICByZXR1cm4gKCB0ZXN0Y2FzZXMgKTsKK30KKworLyoKKyAqIENv
bXBhcmUgZXhwZWN0ZWQgcmVzdWx0IHRvIHRoZSBhY3R1YWwgcmVzdWx0IGFuZCBmaWd1cmUgb3V0
IHdoZXRoZXIKKyAqIHRoZSB0ZXN0IGNhc2UgcGFzc2VkLgorICovCitmdW5jdGlvbiBnZXRUZXN0
Q2FzZVJlc3VsdCggICAgZXhwZWN0LCAgICBhY3R1YWwgKSB7CisgICAgLy8gICAgYmVjYXVzZSAg
ICAoIE5hTiA9PSBOYU4gKSBhbHdheXMgcmV0dXJucyBmYWxzZSwgbmVlZCB0byBkbworICAgIC8v
ICAgIGEgc3BlY2lhbCBjb21wYXJlIHRvIHNlZSBpZiAgICB3ZSBnb3QgdGhlIHJpZ2h0IHJlc3Vs
dC4KKyAgICAgICAgaWYgKCBhY3R1YWwgICAgIT0gYWN0dWFsICkgICAgeworICAgICAgICAgICAg
aWYgKCB0eXBlb2YgICAgYWN0dWFsID09ICJvYmplY3QiICkgeworICAgICAgICAgICAgICAgIGFj
dHVhbCA9ICJOYU4gb2JqZWN0IjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgYWN0dWFsID0gIk5hTiBudW1iZXIiOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIGlmICggZXhwZWN0ICAgICE9IGV4cGVjdCApICAgIHsKKyAgICAgICAgICAgIGlmICggdHlw
ZW9mICAgIGV4cGVjdCA9PSAib2JqZWN0IiApIHsKKyAgICAgICAgICAgICAgICBleHBlY3QgPSAi
TmFOIG9iamVjdCI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGV4cGVj
dCA9ICJOYU4gbnVtYmVyIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZh
ciAgICBwYXNzZWQgPSAoIGV4cGVjdCA9PSBhY3R1YWwgICAgKSA/ICAgIHRydWUgOiBmYWxzZTsK
KworICAgIC8vICAgIGlmIGJvdGggICAgb2JqZWN0cyAgICBhcmUgICAgbnVtYmVycworICAgIC8v
IG5lZWQgICAgdG8gcmVwbGFjZSB3LyBJRUVFIHN0YW5kYXJkICAgIGZvciAgICByb3VuZGluZwor
ICAgICAgICBpZiAoICAgICFwYXNzZWQKKyAgICAgICAgICAgICAgICAmJiB0eXBlb2YoYWN0dWFs
KSA9PSAibnVtYmVyIgorICAgICAgICAgICAgICAgICYmIHR5cGVvZihleHBlY3QpID09ICJudW1i
ZXIiCisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICBpZiAoIE1hdGguYWJzKGFjdHVh
bC1leHBlY3QpIDwgMC4wMDAwMDAxICkgeworICAgICAgICAgICAgICAgICAgICBwYXNzZWQgPSB0
cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgLy8gICAgdmVyaWZ5IHR5
cGUgICAgaXMgdGhlIHNhbWUKKyAgICAgICAgaWYgKCB0eXBlb2YoZXhwZWN0KSAgICAhPSB0eXBl
b2YoYWN0dWFsKSApICAgIHsKKyAgICAgICAgICAgIHBhc3NlZCA9IGZhbHNlOworICAgICAgICB9
CisKKyAgICAgICAgcmV0dXJuIHBhc3NlZDsKK30KKworLyoKKyAqIEJlZ2luIHByaW50aW5nIGZ1
bmN0aW9ucy4gIFRoZXNlIGZ1bmN0aW9ucyB1c2UgdGhlIHNoZWxsJ3MKKyAqIHByaW50IGZ1bmN0
aW9uLiAgV2hlbiBydW5uaW5nIHRlc3RzIGluIHRoZSBicm93c2VyLCB0aGVzZQorICogZnVuY3Rp
b25zLCBvdmVycmlkZSB0aGVzZSBmdW5jdGlvbnMgd2l0aCBmdW5jdGlvbnMgdGhhdCB1c2UKKyAq
IGRvY3VtZW50LndyaXRlLgorICovCisKK2Z1bmN0aW9uIHdyaXRlVGVzdENhc2VSZXN1bHQoIGV4
cGVjdCwgYWN0dWFsLCBzdHJpbmcgKSB7CisgICAgICAgIHZhciAgICBwYXNzZWQgPSBnZXRUZXN0
Q2FzZVJlc3VsdCggICAgZXhwZWN0LCAgICBhY3R1YWwgKTsKKyAgICAgICAgd3JpdGVGb3JtYXR0
ZWRSZXN1bHQoIGV4cGVjdCwgYWN0dWFsLCBzdHJpbmcsIHBhc3NlZCApOworICAgICAgICByZXR1
cm4gcGFzc2VkOworfQorZnVuY3Rpb24gd3JpdGVGb3JtYXR0ZWRSZXN1bHQoIGV4cGVjdCwgYWN0
dWFsLCBzdHJpbmcsIHBhc3NlZCApIHsKKyAgICAgICAgdmFyIHMgPSBzdHJpbmcgOworICAgICAg
ICBzICs9ICggcGFzc2VkICkgPyBQQVNTRUQgOiBGQUlMRUQgKyBleHBlY3Q7CisgICAgICAgIHdy
aXRlTGluZVRvTG9nKCBzKTsKKyAgICAgICAgcmV0dXJuIHBhc3NlZDsKK30KK2Z1bmN0aW9uIHdy
aXRlTGluZVRvTG9nKCBzdHJpbmcgICAgKSB7CisgICAgcHJpbnQoIHN0cmluZyApOworfQorZnVu
Y3Rpb24gd3JpdGVIZWFkZXJUb0xvZyggc3RyaW5nICkgICAgeworICAgIHByaW50KCBzdHJpbmcg
KTsKK30KKy8qIGVuZCBvZiBwcmludCBmdW5jdGlvbnMgKi8KKworCisvKgorICogV2hlbiBydW5u
aW5nIGluIHRoZSBzaGVsbCwgcnVuIHRoZSBnYXJiYWdlIGNvbGxlY3RvciBhZnRlciB0aGUKKyAq
IHRlc3QgaGFzIGNvbXBsZXRlZC4KKyAqLworCitmdW5jdGlvbiBzdG9wVGVzdCgpICAgIHsKKyAg
ICAgdmFyIGdjOworICAgIGlmICggZ2MgIT0gdW5kZWZpbmVkICkgeworICAgICAgICBnYygpOwor
ICAgIH0KK30KKworLyoKKyAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBkaXNwbGF5aW5nIGZh
aWxlZCB0ZXN0IGNhc2VzLiAgVXNlZnVsCisgKiB3aGVuIHJ1bm5pbmcgdGVzdHMgbWFudWFsbHku
CisgKgorICovCitmdW5jdGlvbiBnZXRGYWlsZWRDYXNlcygpIHsKKyAgZm9yICggICAgdmFyICAg
IGkgPSAgICAwOyBpIDwgdGVzdGNhc2VzLmxlbmd0aDsgaSsrICkgeworICAgICBpZiAgICAoICEg
ICAgdGVzdGNhc2VzW2ldLnBhc3NlZCAgICApIHsKKyAgICAgICAgcHJpbnQoIHRlc3RjYXNlc1tp
XS5kZXNjcmlwdGlvbiAgICArIiA9ICIgK3Rlc3RjYXNlc1tpXS5hY3R1YWwgICAgKyIgZXhwZWN0
ZWQ6ICIrICAgIHRlc3RjYXNlc1tpXS5leHBlY3QgICAgKTsKKyAgICAgfQorICB9Cit9CisgLyoK
KyAgKiAgICBEYXRlIGZ1bmN0aW9ucyB1c2VkICAgIGJ5IHRlc3RzIGluICAgIERhdGUgc3VpdGUK
KyAgKgorICAqLwordmFyICAgIG1zUGVyRGF5ID0gICAgICAgICAgICA4NjQwMDAwMDsKK3ZhciAg
ICBIb3Vyc1BlckRheSAgICA9ICAgICAgICAyNDsKK3ZhciAgICBNaW51dGVzUGVySG91ciA9ICAg
IDYwOwordmFyICAgIFNlY29uZHNQZXJNaW51dGUgPSAgICA2MDsKK3ZhciAgICBtc1BlclNlY29u
ZCAgICA9ICAgICAgICAxMDAwOwordmFyICAgIG1zUGVyTWludXRlICAgID0gICAgICAgIDYwMDAw
OyAgICAgICAgLy8gICAgbXNQZXJTZWNvbmQgICAgKiBTZWNvbmRzUGVyTWludXRlCit2YXIgICAg
bXNQZXJIb3VyID0gICAgICAgICAgICAzNjAwMDAwOyAgICAvLyAgICBtc1Blck1pbnV0ZSAgICAq
IE1pbnV0ZXNQZXJIb3VyCit2YXIgICAgICAgICAgICAgVFpfRElGRiAgICA9IGdldFRpbWVab25l
RGlmZigpOyAgLy8gb2Zmc2V0IG9mIHRlc3RlcidzIHRpbWV6b25lIGZyb20gVVRDCit2YXIgICAg
ICAgICAgICAgVFpfUFNUID0gLTg7ICAvLyBvZmZzZXQgb2YgUGFjaWZpYyBTdGFuZGFyZCBUaW1l
IGZyb20gVVRDCit2YXIgICAgICAgICAgICAgUFNUX0RJRkYgPSBUWl9ESUZGIC0gVFpfUFNUOyAg
Ly8gb2Zmc2V0IG9mIHRlc3RlcidzIHRpbWV6b25lIGZyb20gUFNUCit2YXIgICAgVElNRV8xOTcw
ICAgICA9IDA7Cit2YXIgICAgVElNRV8yMDAwICAgICA9IDk0NjY4NDgwMDAwMDsKK3ZhciAgICBU
SU1FXzE5MDAgICAgID0gLTIyMDg5ODg4MDAwMDA7Cit2YXIgICAgIFRJTUVfWUVBUl8wICAgICAg
PSAtNjIxNjcyMTkyMDAwMDA7CisKKworLyoKKyAqIE9yaWdpbmFsbHksIHRoZSB0ZXN0IHN1aXRl
IHVzZWQgYSBoYXJkLWNvZGVkIHZhbHVlIFRaX0RJRkYgPSAtOC4gCisgKiBCdXQgdGhhdCB3YXMg
b25seSB2YWxpZCBmb3IgdGVzdGVycyBpbiB0aGUgUGFjaWZpYyBTdGFuZGFyZCBUaW1lIFpvbmUh
IAorICogV2UgY2FsY3VsYXRlIHRoZSBwcm9wZXIgbnVtYmVyIGR5bmFtaWNhbGx5IGZvciBhbnkg
dGVzdGVyLiBXZSBqdXN0CisgKiBoYXZlIHRvIGJlIGNhcmVmdWwgbm90IHRvIHVzZSBhIGRhdGUg
c3ViamVjdCB0byBEYXlsaWdodCBTYXZpbmdzIFRpbWUuLi4KKyovCitmdW5jdGlvbiBnZXRUaW1l
Wm9uZURpZmYoKQoreworICByZXR1cm4gLSgobmV3IERhdGUoMjAwMCwgMSwgMSkpLmdldFRpbWV6
b25lT2Zmc2V0KCkpLzYwOworfQorCisKKy8qIAorICogRGF0ZSB0ZXN0ICJSZXN1bHRBcnJheXMi
IGFyZSBoYXJkLWNvZGVkIGZvciBQYWNpZmljIFN0YW5kYXJkIFRpbWUuIAorICogV2UgbXVzdCBh
ZGp1c3QgdGhlbSBmb3IgdGhlIHRlc3RlcidzIG93biB0aW1lem9uZSAtCisgKi8KK2Z1bmN0aW9u
IGFkanVzdFJlc3VsdEFycmF5KFJlc3VsdEFycmF5LCBtc01vZGUpCit7CisgIC8vIElmIHRoZSB0
ZXN0ZXIncyBzeXN0ZW0gY2xvY2sgaXMgaW4gUFNULCBubyBuZWVkIHRvIGNvbnRpbnVlIC0gCisg
IGlmICghUFNUX0RJRkYpIHtyZXR1cm47fSAKKworICAvKiBUaGUgZGF0ZSB0ZXN0Y2FzZXMgaW5z
dGFudGlhdGUgRGF0ZSBvYmplY3RzIGluIHR3byBkaWZmZXJlbnQgd2F5czoKKyAgICoKKyAgICog
ICAgICAgIG1pbGxpc2Vjb25kIG1vZGU6IGUuZy4gICBkdCA9IG5ldyBEYXRlKDEwMDAwMDAwKTsK
KyAgICogICAgICAgIHllYXItbW9udGgtZGF5IG1vZGU6ICBkdCA9IG5ldyBEYXRlKDIwMDAsIDUs
IDEsIC4uLik7CisgICAqCisgICAqIEluIHRoZSBmaXJzdCBjYXNlLCB0aGUgZGF0ZSBpcyBtZWFz
dXJlZCBmcm9tIFRpbWUgMCBpbiBHcmVlbndpY2ggKGkuZS4gVVRDKS4KKyAgICogSW4gdGhlIHNl
Y29uZCBjYXNlLCBpdCBpcyBtZWFzdXJlZCB3aXRoIHJlZmVyZW5jZSB0byB0aGUgdGVzdGVyJ3Mg
bG9jYWwgdGltZXpvbmUuCisgICAqCisgICAqIEluIHRoZSBmaXJzdCBjYXNlIHdlIG11c3QgY29y
cmVjdCB0aG9zZSB2YWx1ZXMgZXhwZWN0ZWQgZm9yIGxvY2FsIG1lYXN1cmVtZW50cywKKyAgICog
bGlrZSBkdC5nZXRIb3VycygpIGV0Yy4gTm8gY29ycmVjdGlvbiBpcyBuZWNlc3NhcnkgZm9yIGR0
LmdldFVUQ0hvdXJzKCkgZXRjLgorICAgKiAKKyAgICogSW4gdGhlIHNlY29uZCBjYXNlLCBpdCBp
cyBleGFjdGx5IHRoZSBvdGhlciB3YXkgYXJvdW5kIC0KKyAgKi8gCisgIGlmIChtc01vZGUpCisg
IHsKKyAgICAvLyBUaGUgaGFyZC1jb2RlZCBVVEMgbWlsbGlzZWNvbmRzIGZyb20gVGltZSAwIGRl
cml2ZXMgZnJvbSBhIFVUQyBkYXRlLgorICAgIC8vIFNoaWZ0IHRvIHRoZSByaWdodCBieSB0aGUg
b2Zmc2V0IGJldHdlZW4gVVRDIGFuZCB0aGUgdGVzdGVyLgorICAgIHZhciB0ID0gUmVzdWx0QXJy
YXlbVElNRV0gICsgIFRaX0RJRkYqbXNQZXJIb3VyOworCisgICAgLy8gVXNlIG91ciBkYXRlIGFy
aXRobWV0aWMgZnVuY3Rpb25zIHRvIGRldGVybWluZSB0aGUgbG9jYWwgaG91ciwgZGF5LCBldGMu
IAorICAgIFJlc3VsdEFycmF5W0hPVVJTXSA9IEhvdXJGcm9tVGltZSh0KTsgCisgICAgUmVzdWx0
QXJyYXlbREFZXSA9IFdlZWtEYXkodCk7CisgICAgUmVzdWx0QXJyYXlbREFURV0gPSBEYXRlRnJv
bVRpbWUodCk7CisgICAgUmVzdWx0QXJyYXlbTU9OVEhdID0gTW9udGhGcm9tVGltZSh0KTsKKyAg
ICBSZXN1bHRBcnJheVtZRUFSXSA9IFllYXJGcm9tVGltZSh0KTsgIAorICB9CisgIGVsc2UKKyAg
eworICAgIC8vIFRoZSBoYXJkLWNvZGVkIFVUQyBtaWxsaXNlY29uZHMgZnJvbSBUaW1lIDAgZGVy
aXZlcyBmcm9tIGEgUFNUIGRhdGUuCisgICAgLy8gU2hpZnQgdG8gdGhlIGxlZnQgYnkgdGhlIG9m
ZnNldCBiZXR3ZWVuIFBTVCBhbmQgdGhlIHRlc3Rlci4KKyAgICB2YXIgdCA9IFJlc3VsdEFycmF5
W1RJTUVdICAtICBQU1RfRElGRiptc1BlckhvdXI7CisKKyAgICAvLyBVc2Ugb3VyIGRhdGUgYXJp
dGhtZXRpYyBmdW5jdGlvbnMgdG8gZGV0ZXJtaW5lIHRoZSBVVEMgaG91ciwgZGF5LCBldGMuIAor
ICAgIFJlc3VsdEFycmF5W1RJTUVdID0gdDsKKyAgICBSZXN1bHRBcnJheVtVVENfSE9VUlNdID0g
SG91ckZyb21UaW1lKHQpOyAKKyAgICBSZXN1bHRBcnJheVtVVENfREFZXSA9IFdlZWtEYXkodCk7
CisgICAgUmVzdWx0QXJyYXlbVVRDX0RBVEVdID0gRGF0ZUZyb21UaW1lKHQpOworICAgIFJlc3Vs
dEFycmF5W1VUQ19NT05USF0gPSBNb250aEZyb21UaW1lKHQpOworICAgIFJlc3VsdEFycmF5W1VU
Q19ZRUFSXSA9IFllYXJGcm9tVGltZSh0KTsKKyAgfQorfQorCisKK2Z1bmN0aW9uIERheSggdCAg
ICApIHsKKyAgICByZXR1cm4gKCBNYXRoLmZsb29yKHQvbXNQZXJEYXkgKSApOworfQorZnVuY3Rp
b24gRGF5c0luWWVhciggeSApIHsKKyAgICBpZiAoIHkgJSA0ICE9IDAgICAgKSB7CisgICAgICAg
IHJldHVybiAzNjU7CisgICAgfQorICAgIGlmICggKHkgICAgJSA0ICAgID09IDApICYmICh5ICAg
ICUgMTAwICE9IDApICAgICkgeworICAgICAgICByZXR1cm4gMzY2OworICAgIH0KKyAgICBpZiAo
ICh5ICAgICUgMTAwID09IDApICAgICYmICAgICh5ICUgNDAwICE9ICAgIDApICkgeworICAgICAg
ICByZXR1cm4gMzY1OworICAgIH0KKyAgICBpZiAoICh5ICAgICUgNDAwID09IDApICAgICl7Cisg
ICAgICAgIHJldHVybiAzNjY7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuICJFUlJPUjog
RGF5c0luWWVhcigiICAgICsgeSAgICArICIpIGNhc2Ugbm90IGNvdmVyZWQiOworICAgIH0KK30K
K2Z1bmN0aW9uIFRpbWVJblllYXIoIHkgKSB7CisgICAgcmV0dXJuICggRGF5c0luWWVhcih5KSAq
IG1zUGVyRGF5ICk7Cit9CitmdW5jdGlvbiBEYXlOdW1iZXIoICAgIHQgKSAgICB7CisgICAgcmV0
dXJuICggTWF0aC5mbG9vciggdCAvIG1zUGVyRGF5ICkgICAgKTsKK30KK2Z1bmN0aW9uIFRpbWVX
aXRoaW5EYXkoICAgIHQgKSAgICB7CisgICAgaWYgKCB0IDwgMCApIHsKKyAgICAgICAgcmV0dXJu
ICggKHQgICAgJSBtc1BlckRheSkgICAgKyBtc1BlckRheSApOworICAgIH0gZWxzZSB7CisgICAg
ICAgIHJldHVybiAoIHQgJSBtc1BlckRheSApOworICAgIH0KK30KK2Z1bmN0aW9uIFllYXJOdW1i
ZXIoIHQgKSB7Cit9CitmdW5jdGlvbiBUaW1lRnJvbVllYXIoIHkgKSB7CisgICAgcmV0dXJuICgg
bXNQZXJEYXkgKiAgICBEYXlGcm9tWWVhcih5KSApOworfQorZnVuY3Rpb24gRGF5RnJvbVllYXIo
IHkgICAgKSB7CisgICAgcmV0dXJuICggICAgMzY1Kih5LTE5NzApICsKKyAgICAgICAgICAgICAg
ICBNYXRoLmZsb29yKCh5LTE5NjkpLzQpIC0KKyAgICAgICAgICAgICAgICBNYXRoLmZsb29yKCh5
LTE5MDEpLzEwMCkgKworICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoKHktMTYwMSkvNDAwKSAp
OworfQorZnVuY3Rpb24gSW5MZWFwWWVhciggdCApIHsKKyAgICBpZiAoIERheXNJblllYXIoWWVh
ckZyb21UaW1lKHQpKSA9PSAgICAzNjUgICAgKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0K
KyAgICBpZiAoIERheXNJblllYXIoWWVhckZyb21UaW1lKHQpKSA9PSAgICAzNjYgICAgKSB7Cisg
ICAgICAgIHJldHVybiAxOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiAiRVJST1I6ICBJ
bkxlYXBZZWFyKCIrIHQgKyAiKSBjYXNlIG5vdCBjb3ZlcmVkIjsKKyAgICB9Cit9CitmdW5jdGlv
biBZZWFyRnJvbVRpbWUoIHQgKSB7CisgICAgdCA9ICAgIE51bWJlciggICAgdCApOworICAgIHZh
ciAgICBzaWduID0gKCB0IDwgMCApID8gLTEgOiAgICAxOworICAgIHZhciAgICB5ZWFyID0gKCBz
aWduIDwgICAgMCApICAgID8gMTk2OSA6IDE5NzA7CisgICAgZm9yICAgICggICAgdmFyICAgIHRp
bWVUb1RpbWVaZXJvID0gdDsgICAgOyAgKSB7CisgICAgLy8gICAgc3VidHJhY3QgdGhlIGN1cnJl
bnQgeWVhcidzICAgIHRpbWUgZnJvbSB0aGUgdGltZSB0aGF0J3MgbGVmdC4KKyAgICAgICAgdGlt
ZVRvVGltZVplcm8gLT0gc2lnbiAqIFRpbWVJblllYXIoeWVhcikKKworICAgIC8vICAgIGlmIHRo
ZXJlJ3MgbGVzcyAgICB0aGFuIHRoZSBjdXJyZW50IHllYXIncyAgICB3b3J0aCBvZiB0aW1lIGxl
ZnQsICAgIHRoZW4gYnJlYWsuCisgICAgICAgIGlmICggc2lnbiA8ICAgIDAgKSAgICB7CisgICAg
ICAgICAgICBpZiAoIHNpZ24gKiAgICB0aW1lVG9UaW1lWmVybyA8PSAwICAgICkgeworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB5
ZWFyICs9ICAgIHNpZ247CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBpZiAoIHNpZ24gKiAgICB0aW1lVG9UaW1lWmVybyA8IDAgKSB7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHllYXIgKz0g
ICAgc2lnbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gKCB5
ZWFyICk7Cit9CitmdW5jdGlvbiBNb250aEZyb21UaW1lKCAgICB0ICkgICAgeworICAgIC8vICAg
IGkga25vdyBpIGNvdWxkIHVzZSBzd2l0Y2ggYnV0IGknZCByYXRoZXIgbm90IHVudGlsIGl0J3Mg
ICAgcGFydCBvZiAgICBFQ01BCisgICAgdmFyICAgIGRheSAgICA9IERheVdpdGhpblllYXIoIHQg
KTsKKyAgICB2YXIgICAgbGVhcCA9IEluTGVhcFllYXIodCk7CisKKyAgICBpZiAoICgwICAgIDw9
IGRheSkgICAgJiYgKGRheSAgICA8IDMxKSApICAgIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
fQorICAgIGlmICggKDMxIDw9ICAgIGRheSkgJiYgICAgKGRheSA8ICg1OStsZWFwKSkgKSAgICB7
CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICBpZiAoICgoNTkrbGVhcCkgICAgPD0gZGF5
KSAgICAmJiAoZGF5ICAgIDwgKDkwK2xlYXApKSApIHsKKyAgICAgICAgcmV0dXJuIDI7CisgICAg
fQorICAgIGlmICggKCg5MCtsZWFwKSAgICA8PSBkYXkpICAgICYmIChkYXkgICAgPCAoMTIwK2xl
YXApKSApICAgIHsKKyAgICAgICAgcmV0dXJuIDM7CisgICAgfQorICAgIGlmICggKCgxMjArbGVh
cCkgPD0gICAgZGF5KSAmJiAgICAoZGF5IDwgKDE1MStsZWFwKSkgKSB7CisgICAgICAgIHJldHVy
biA0OworICAgIH0KKyAgICBpZiAoICgoMTUxK2xlYXApIDw9ICAgIGRheSkgJiYgICAgKGRheSA8
ICgxODErbGVhcCkpICkgeworICAgICAgICByZXR1cm4gNTsKKyAgICB9CisgICAgaWYgKCAoKDE4
MStsZWFwKSA8PSAgICBkYXkpICYmICAgIChkYXkgPCAoMjEyK2xlYXApKSApIHsKKyAgICAgICAg
cmV0dXJuIDY7CisgICAgfQorICAgIGlmICggKCgyMTIrbGVhcCkgPD0gICAgZGF5KSAmJiAgICAo
ZGF5IDwgKDI0MytsZWFwKSkgKSB7CisgICAgICAgIHJldHVybiA3OworICAgIH0KKyAgICBpZiAo
ICgoMjQzK2xlYXApIDw9ICAgIGRheSkgJiYgICAgKGRheSA8ICgyNzMrbGVhcCkpICkgeworICAg
ICAgICByZXR1cm4gODsKKyAgICB9CisgICAgaWYgKCAoKDI3MytsZWFwKSA8PSAgICBkYXkpICYm
ICAgIChkYXkgPCAoMzA0K2xlYXApKSApIHsKKyAgICAgICAgcmV0dXJuIDk7CisgICAgfQorICAg
IGlmICggKCgzMDQrbGVhcCkgPD0gICAgZGF5KSAmJiAgICAoZGF5IDwgKDMzNCtsZWFwKSkgKSB7
CisgICAgICAgIHJldHVybiAxMDsKKyAgICB9CisgICAgaWYgKCAoKDMzNCtsZWFwKSA8PSAgICBk
YXkpICYmICAgIChkYXkgPCAoMzY1K2xlYXApKSApIHsKKyAgICAgICAgcmV0dXJuIDExOworICAg
IH0gZWxzZSB7CisgICAgICAgIHJldHVybiAiRVJST1I6ICAgIE1vbnRoRnJvbVRpbWUoIit0KyIp
IG5vdCBrbm93biI7CisgICAgfQorfQorZnVuY3Rpb24gRGF5V2l0aGluWWVhciggICAgdCApICAg
IHsKKyAgICAgICAgcmV0dXJuKCAgICBEYXkodCkgLSBEYXlGcm9tWWVhcihZZWFyRnJvbVRpbWUo
dCkpKTsKK30KK2Z1bmN0aW9uIERhdGVGcm9tVGltZSggdCApIHsKKyAgICB2YXIgICAgZGF5ICAg
ID0gRGF5V2l0aGluWWVhcih0KTsKKyAgICB2YXIgICAgbW9udGggPSAgICBNb250aEZyb21UaW1l
KHQpOworCisgICAgaWYgKCBtb250aCA9PSAwICAgICkgeworICAgICAgICByZXR1cm4gKCBkYXkg
KyAxICk7CisgICAgfQorICAgIGlmICggbW9udGggPT0gMSAgICApIHsKKyAgICAgICAgcmV0dXJu
ICggZGF5IC0gMzAgKTsKKyAgICB9CisgICAgaWYgKCBtb250aCA9PSAyICAgICkgeworICAgICAg
ICByZXR1cm4gKCBkYXkgLSA1OCAtICAgIEluTGVhcFllYXIodCkgKTsKKyAgICB9CisgICAgaWYg
KCBtb250aCA9PSAzICAgICkgeworICAgICAgICByZXR1cm4gKCBkYXkgLSA4OSAtICAgIEluTGVh
cFllYXIodCkpOworICAgIH0KKyAgICBpZiAoIG1vbnRoID09IDQgICAgKSB7CisgICAgICAgIHJl
dHVybiAoIGRheSAtIDExOSAtIEluTGVhcFllYXIodCkpOworICAgIH0KKyAgICBpZiAoIG1vbnRo
ID09IDUgICAgKSB7CisgICAgICAgIHJldHVybiAoIGRheSAtIDE1MC0gICAgSW5MZWFwWWVhcih0
KSk7CisgICAgfQorICAgIGlmICggbW9udGggPT0gNiAgICApIHsKKyAgICAgICAgcmV0dXJuICgg
ZGF5IC0gMTgwLSAgICBJbkxlYXBZZWFyKHQpKTsKKyAgICB9CisgICAgaWYgKCBtb250aCA9PSA3
ICAgICkgeworICAgICAgICByZXR1cm4gKCBkYXkgLSAyMTEtICAgIEluTGVhcFllYXIodCkpOwor
ICAgIH0KKyAgICBpZiAoIG1vbnRoID09IDggICAgKSB7CisgICAgICAgIHJldHVybiAoIGRheSAt
IDI0Mi0gICAgSW5MZWFwWWVhcih0KSk7CisgICAgfQorICAgIGlmICggbW9udGggPT0gOSAgICAp
IHsKKyAgICAgICAgcmV0dXJuICggZGF5IC0gMjcyLSAgICBJbkxlYXBZZWFyKHQpKTsKKyAgICB9
CisgICAgaWYgKCBtb250aCA9PSAxMCApIHsKKyAgICAgICAgcmV0dXJuICggZGF5IC0gMzAzLSAg
ICBJbkxlYXBZZWFyKHQpKTsKKyAgICB9CisgICAgaWYgKCBtb250aCA9PSAxMSApIHsKKyAgICAg
ICAgcmV0dXJuICggZGF5IC0gMzMzLSAgICBJbkxlYXBZZWFyKHQpKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gKCJFUlJPUjogICAgIERhdGVGcm9tVGltZSgiK3QrIikgbm90IGtub3duIiAgICApOwor
fQorZnVuY3Rpb24gV2Vla0RheSggdCAgICApIHsKKyAgICB2YXIgICAgd2Vla2RheSAgICA9IChE
YXkodCkrNCkgJSA3OworICAgIHJldHVybiggICAgd2Vla2RheSAgICA8IDAgICAgPyA3ICAgICsg
d2Vla2RheSA6ICAgIHdlZWtkYXkgICAgKTsKK30KKworLy8gbWlzc2luZyBkYXlsaWdodCAgICBz
YXZpbnMgdGltZSAgICBhZGp1c3RtZW50CisKK2Z1bmN0aW9uIEhvdXJGcm9tVGltZSggdCApIHsK
KyAgICB2YXIgICAgaCA9ICAgIE1hdGguZmxvb3IoICAgIHQgLyAgICBtc1BlckhvdXIgKSAgICAl
IEhvdXJzUGVyRGF5OworICAgIHJldHVybiAoIChoPDApID8gSG91cnNQZXJEYXkgKyBoIDogaCAg
KTsKK30KK2Z1bmN0aW9uIE1pbkZyb21UaW1lKCB0ICAgICkgeworICAgIHZhciAgICBtaW4gICAg
PSBNYXRoLmZsb29yKCB0ICAgIC8gbXNQZXJNaW51dGUgKSAgICAlIE1pbnV0ZXNQZXJIb3VyOwor
ICAgIHJldHVybiggICAgKCBtaW4gPCAgICAwICkgICAgPyBNaW51dGVzUGVySG91ciArIG1pbiA6
IG1pbiAgKTsKK30KK2Z1bmN0aW9uIFNlY0Zyb21UaW1lKCB0ICAgICkgeworICAgIHZhciAgICBz
ZWMgICAgPSBNYXRoLmZsb29yKCB0ICAgIC8gbXNQZXJTZWNvbmQgKSAgICAlIFNlY29uZHNQZXJN
aW51dGU7CisgICAgcmV0dXJuICggKHNlYyA8ICAgIDAgKSAgICA/IFNlY29uZHNQZXJNaW51dGUg
KyBzZWMgOiBzZWMgKTsKK30KK2Z1bmN0aW9uIG1zRnJvbVRpbWUoIHQgKSB7CisgICAgdmFyICAg
IG1zID0gdCAlIG1zUGVyU2Vjb25kOworICAgIHJldHVybiAoIChtcyA8IDAgKSA/IG1zUGVyU2Vj
b25kICsgbXMgOiAgICBtcyApOworfQorZnVuY3Rpb24gTG9jYWxUWkEoKSAgICB7CisgICAgcmV0
dXJuICggVFpfRElGRiAqIG1zUGVySG91ciApOworfQorZnVuY3Rpb24gVVRDKCB0ICAgICkgewor
ICAgIHJldHVybiAoIHQgLSBMb2NhbFRaQSgpICAgIC0gRGF5bGlnaHRTYXZpbmdUQSh0IC0gTG9j
YWxUWkEoKSkgKTsKK30KKworZnVuY3Rpb24gRGF5bGlnaHRTYXZpbmdUQSggdCApIHsKKyAgICB0
ID0gICAgdCAtICAgIExvY2FsVFpBKCk7CisKKyAgICB2YXIgICAgZHN0X3N0YXJ0ID0gR2V0U2Vj
b25kU3VuZGF5SW5NYXJjaCh0KSArIDIqbXNQZXJIb3VyOworICAgIHZhciAgICBkc3RfZW5kICAg
ICAgPSBHZXRGaXJzdFN1bmRheUluTm92ZW1iZXIodCkrIDIqbXNQZXJIb3VyOworCisgICAgaWYg
KCB0ID49IGRzdF9zdGFydCAgICAmJiB0IDwgZHN0X2VuZCApIHsKKyAgICAgICAgcmV0dXJuIG1z
UGVySG91cjsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAv
LyBEYXlsaWdodCAgICBTYXZpbmdzICAgIFRpbWUgc3RhcnRzICAgIG9uIHRoZSBmaXJzdCBTdW5k
YXkgICAgaW4gQXByaWwgYXQgICAgMjowMEFNIGluCisgICAgLy8gUFNULiAgICAgT3RoZXIgdGlt
ZSAgICB6b25lcyB3aWxsIG5lZWQgICAgdG8gb3ZlcnJpZGUgICAgdGhpcyBmdW5jdGlvbi4KKwor
ICAgIHByaW50KCBuZXcgRGF0ZSggVVRDKGRzdF9zdGFydCArIExvY2FsVFpBKCkpKSApOworCisg
ICAgcmV0dXJuIFVUQyhkc3Rfc3RhcnQgICsgICAgTG9jYWxUWkEoKSk7Cit9CisKK2Z1bmN0aW9u
IEdldEZpcnN0U3VuZGF5SW5BcHJpbCggdCApIHsKKyAgICB2YXIgeWVhciA9IFllYXJGcm9tVGlt
ZSh0KTsKKyAgICB2YXIgbGVhcCA9IEluTGVhcFllYXIodCk7CisKKyAgICB2YXIgYXByaWwgPSBU
aW1lRnJvbVllYXIoeWVhcikgKyBUaW1lSW5Nb250aCgwLCBsZWFwKSArIFRpbWVJbk1vbnRoKDEs
bGVhcCkgKworICAgIFRpbWVJbk1vbnRoKDIsbGVhcCk7CisKKyAgICBmb3IgKCB2YXIgZmlyc3Rf
c3VuZGF5ID0gYXByaWw7IFdlZWtEYXkoZmlyc3Rfc3VuZGF5KSA+IDA7CisgICAgICAgIGZpcnN0
X3N1bmRheSArPSBtc1BlckRheSApCisgICAgeworICAgICAgICA7CisgICAgfQorCisgICAgcmV0
dXJuIGZpcnN0X3N1bmRheTsKK30KK2Z1bmN0aW9uIEdldExhc3RTdW5kYXlJbk9jdG9iZXIoIHQg
KSB7CisgICAgdmFyIHllYXIgPSBZZWFyRnJvbVRpbWUodCk7CisgICAgdmFyIGxlYXAgPSBJbkxl
YXBZZWFyKHQpOworCisgICAgZm9yICggdmFyIG9jdCA9IFRpbWVGcm9tWWVhcih5ZWFyKSwgbSA9
IDA7IG0gPCA5OyBtKysgKSB7CisgICAgICAgIG9jdCArPSBUaW1lSW5Nb250aChtLCBsZWFwKTsK
KyAgICB9CisgICAgZm9yICggdmFyIGxhc3Rfc3VuZGF5ID0gb2N0ICsgMzAqbXNQZXJEYXk7IFdl
ZWtEYXkobGFzdF9zdW5kYXkpID4gMDsKKyAgICAgICAgbGFzdF9zdW5kYXkgLT0gbXNQZXJEYXkg
KQorICAgIHsKKyAgICAgICAgOworICAgIH0KKyAgICByZXR1cm4gbGFzdF9zdW5kYXk7Cit9CisK
Ky8vIEFkZGVkIHRoZXNlIHR3byBmdW5jdGlvbnMgYmVjYXVzZSBEU1QgcnVsZXMgY2hhbmdlZCBm
b3IgdGhlIFVTLgorZnVuY3Rpb24gR2V0U2Vjb25kU3VuZGF5SW5NYXJjaCggdCApIHsKKyAgICB2
YXIgICAgeWVhciA9IFllYXJGcm9tVGltZSh0KTsKKyAgICB2YXIgICAgbGVhcCA9IEluTGVhcFll
YXIodCk7CisKKyAgICB2YXIgICAgbWFyY2ggPSAgICBUaW1lRnJvbVllYXIoeWVhcikgKyBUaW1l
SW5Nb250aCgwLCBsZWFwKSArIFRpbWVJbk1vbnRoKDEsbGVhcCk7CisKKyAgICB2YXIgc3VuZGF5
Q291bnQgPSAwOworICAgIHZhciBmbGFnID0gdHJ1ZTsKKyAgICBmb3IgKCB2YXIgc2Vjb25kX3N1
bmRheSA9IG1hcmNoOyBmbGFnOyBzZWNvbmRfc3VuZGF5ICs9IG1zUGVyRGF5ICkKKyAgICB7Cisg
ICAgICAgIGlmIChXZWVrRGF5KHNlY29uZF9zdW5kYXkpID09IDApIHsKKyAgICAgICAgICAgIGlm
KCsrc3VuZGF5Q291bnQgPT0gMikKKyAgICAgICAgICAgICAgICBmbGFnID0gZmFsc2U7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gc2Vjb25kX3N1bmRheTsKK30KK2Z1bmN0aW9uIEdl
dEZpcnN0U3VuZGF5SW5Ob3ZlbWJlciggdCApIHsKKyAgICB2YXIgeWVhciA9IFllYXJGcm9tVGlt
ZSh0KTsKKyAgICB2YXIgbGVhcCA9IEluTGVhcFllYXIodCk7CisKKyAgICBmb3IgKCB2YXIgbm92
ID0gVGltZUZyb21ZZWFyKHllYXIpLCBtID0gICAgMDsgbSA8IDEwOyBtKysgKSB7CisgICAgICAg
IG5vdiArPSBUaW1lSW5Nb250aChtLCBsZWFwKTsKKyAgICB9CisgICAgZm9yICggdmFyIGZpcnN0
X3N1bmRheSA9IG5vdjsgV2Vla0RheShmaXJzdF9zdW5kYXkpID4gMDsKKyAgICAgICAgZmlyc3Rf
c3VuZGF5ICs9IG1zUGVyRGF5ICAgICkKKyAgICB7CisgICAgICAgIDsKKyAgICB9CisgICAgcmV0
dXJuIGZpcnN0X3N1bmRheTsKK30KK2Z1bmN0aW9uIExvY2FsVGltZSggICAgdCApICAgIHsKKyAg
ICByZXR1cm4gKCB0ICsgTG9jYWxUWkEoKSAgICArIERheWxpZ2h0U2F2aW5nVEEodCkgKTsKK30K
K2Z1bmN0aW9uIE1ha2VUaW1lKCBob3VyLCBtaW4sIHNlYywgbXMgKSAgICB7CisgICAgaWYgKCBp
c05hTiggICAgaG91ciApIHx8IGlzTmFOKCBtaW4gKSB8fCBpc05hTiggc2VjICkgfHwgaXNOYU4o
IG1zICAgICkgKSAgICB7CisgICAgICAgIHJldHVybiBOdW1iZXIuTmFOOworICAgIH0KKworICAg
IGhvdXIgPSBUb0ludGVnZXIoaG91cik7CisgICAgbWluICAgICA9IFRvSW50ZWdlciggbWluKTsK
KyAgICBzZWMgICAgID0gVG9JbnRlZ2VyKCBzZWMpOworICAgIG1zICAgICA9IFRvSW50ZWdlcigg
bXMgKTsKKworICAgIHJldHVybiggICAgKGhvdXIqbXNQZXJIb3VyKSArIChtaW4qbXNQZXJNaW51
dGUpICsKKyAgICAgICAgICAgIChzZWMqbXNQZXJTZWNvbmQpICsgICAgbXMgKTsKK30KK2Z1bmN0
aW9uIE1ha2VEYXkoIHllYXIsICAgIG1vbnRoLCBkYXRlICAgICkgeworICAgIGlmICggaXNOYU4o
eWVhcikgfHwgICAgaXNOYU4obW9udGgpIHx8ICAgIGlzTmFOKGRhdGUpICAgICkgeworICAgICAg
ICByZXR1cm4gTnVtYmVyLk5hTjsKKyAgICB9CisgICAgeWVhciA9IFRvSW50ZWdlcih5ZWFyKTsK
KyAgICBtb250aCA9ICAgIFRvSW50ZWdlcihtb250aCk7CisgICAgZGF0ZSA9IFRvSW50ZWdlcihk
YXRlICk7CisKKyAgICB2YXIgICAgc2lnbiA9ICggeWVhciA8ICAgIDE5NzAgKSA/IC0xICAgIDog
MTsKKyAgICB2YXIgICAgdCA9ICAgICAgICggeWVhciA8ICAgIDE5NzAgKSA/IDEgOiAgMDsKKyAg
ICB2YXIgICAgeSA9ICAgICAgICggeWVhciA8ICAgIDE5NzAgKSA/IDE5NjkgOiAgICAxOTcwOwor
CisgICAgdmFyICAgIHJlc3VsdDUgICAgPSB5ZWFyICsgTWF0aC5mbG9vciggbW9udGgvMTIgKTsK
KyAgICB2YXIgICAgcmVzdWx0NiAgICA9IG1vbnRoICAgICUgMTI7CisKKyAgICBpZiAoIHllYXIg
PCAgICAxOTcwICkgeworICAgICAgIGZvciAoIHkgPSAxOTY5OyB5ID49ICAgIHllYXI7IHkgICAg
Kz0gc2lnbiAgICApIHsKKyAgICAgICAgIHQgKz0gc2lnbiAqIFRpbWVJblllYXIoeSk7CisgICAg
ICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAgICAoIHkgICAgPSAxOTcwIDsgeSA8IHll
YXI7IHkgKz0gICAgc2lnbiApIHsKKyAgICAgICAgICAgIHQgKz0gc2lnbiAqICAgIFRpbWVJblll
YXIoeSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgICAgbGVhcCA9IEluTGVhcFllYXIo
IHQgKTsKKworICAgIGZvciAgICAoIHZhciBtICAgID0gMDsgbSA8IG1vbnRoOyAgICBtKysgICAg
KSB7CisgICAgICAgIHQgKz0gVGltZUluTW9udGgoIG0sIGxlYXAgKTsKKyAgICB9CisKKyAgICBp
ZiAoIFllYXJGcm9tVGltZSh0KSAhPSAgICByZXN1bHQ1ICAgICkgeworICAgICAgICByZXR1cm4g
TnVtYmVyLk5hTjsKKyAgICB9CisgICAgaWYgKCBNb250aEZyb21UaW1lKHQpICE9IHJlc3VsdDYg
KSB7CisgICAgICAgIHJldHVybiBOdW1iZXIuTmFOOworICAgIH0KKyAgICBpZiAoIERhdGVGcm9t
VGltZSh0KSAhPSAgICAxICkgICAgeworICAgICAgICByZXR1cm4gTnVtYmVyLk5hTjsKKyAgICB9
CisKKyAgICByZXR1cm4gKCAoRGF5KHQpKSArICAgIGRhdGUgLSAxICk7Cit9CitmdW5jdGlvbiBU
aW1lSW5Nb250aCggbW9udGgsIGxlYXAgKSAgICB7CisgICAgLy8gc2VwdGVtYmVyIGFwcmlsIGp1
bmUgICAgbm92ZW1iZXIKKyAgICAvLyBqYW4gMCAgZmViIDEgICAgIG1hciAyICAgIGFwciAgICAz
ICAgIG1heSAgICA0ICBqdW5lICAgIDUgIGp1bCA2CisgICAgLy8gYXVnIDcgIHNlcCA4ICAgICBv
Y3QgOSAgICBub3YgICAgMTAgICAgZGVjICAgIDExCisKKyAgICBpZiAoIG1vbnRoID09IDMgICAg
fHwgbW9udGggPT0gICAgNSB8fCBtb250aCA9PSA4ICAgIHx8IG1vbnRoID09ICAgIDEwICkgewor
ICAgICAgICByZXR1cm4gKCAzMCptc1BlckRheSApOworICAgIH0KKworICAgIC8vIGFsbCB0aGUg
cmVzdAorICAgIGlmICggbW9udGggPT0gMCAgICB8fCBtb250aCA9PSAgICAyIHx8IG1vbnRoID09
IDQgICAgfHwgbW9udGggPT0gICAgNiB8fAorICAgICAgICAgbW9udGggPT0gNyAgICB8fCBtb250
aCA9PSAgICA5IHx8IG1vbnRoID09IDExICkgeworICAgICAgICByZXR1cm4gKCAzMSptc1BlckRh
eSApOworICAgICB9CisKKyAgICAvLyBzYXZlICAgIGZlYnJ1YXJ5CisgICAgcmV0dXJuICggKGxl
YXAgPT0gMCkgPyAyOCptc1BlckRheSA6IDI5Km1zUGVyRGF5ICk7Cit9CitmdW5jdGlvbiBNYWtl
RGF0ZSggZGF5LCAgICB0aW1lICkgeworICAgIGlmICggICAgZGF5ICAgID09IE51bWJlci5QT1NJ
VElWRV9JTkZJTklUWSAgICB8fAorICAgICAgICAgICAgZGF5ICAgID09IE51bWJlci5ORUdBVElW
RV9JTkZJTklUWSAgICB8fAorICAgICAgICAgICAgZGF5ICAgID09IE51bWJlci5OYU4gKSAgICB7
CisgICAgICAgIHJldHVybiBOdW1iZXIuTmFOOworICAgIH0KKyAgICBpZiAoICAgIHRpbWUgPT0g
ICAgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZIHx8CisgICAgICAgICAgICB0aW1lID09ICAgIE51
bWJlci5QT1NJVElWRV9JTkZJTklUWSB8fAorICAgICAgICAgICAgZGF5ICAgID09IE51bWJlci5O
YU4pIHsKKyAgICAgICAgcmV0dXJuIE51bWJlci5OYU47CisgICAgfQorICAgIHJldHVybiAoIGRh
eSAqIG1zUGVyRGF5ICAgICkgKyAgICB0aW1lOworfQorZnVuY3Rpb24gVGltZUNsaXAoIHQgKSB7
CisgICAgaWYgKCBpc05hTiggICAgdCApICAgICkgeworICAgICAgICByZXR1cm4gKCBOdW1iZXIu
TmFOICAgICk7CisgICAgfQorICAgIGlmICggTWF0aC5hYnMoIHQgKSA+IDguNjRlMTUgKSB7Cisg
ICAgICAgIHJldHVybiAoIE51bWJlci5OYU4gICAgKTsKKyAgICB9CisKKyAgICByZXR1cm4gKCBU
b0ludGVnZXIoICAgIHQgKSAgICApOworfQorZnVuY3Rpb24gVG9JbnRlZ2VyKCAgICB0ICkgICAg
eworICAgIHQgPSAgICBOdW1iZXIoICAgIHQgKTsKKworICAgIGlmICggaXNOYU4oICAgIHQgKSAg
ICApeworICAgICAgICByZXR1cm4gKCBOdW1iZXIuTmFOICAgICk7CisgICAgfQorICAgIGlmICgg
dCA9PSAwICAgIHx8IHQgPT0gICAgLTAgfHwKKyAgICAgICAgIHQgPT0gTnVtYmVyLlBPU0lUSVZF
X0lORklOSVRZIHx8IHQgICAgPT0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZICAgICkgeworICAg
ICAgICAgcmV0dXJuICAgIDA7CisgICAgfQorCisgICAgdmFyICAgIHNpZ24gPSAoIHQgPCAwICkg
PyAtMSA6ICAgIDE7CisKKyAgICByZXR1cm4gKCBzaWduICogICAgTWF0aC5mbG9vciggICAgTWF0
aC5hYnMoIHQgICAgKSApICAgICk7Cit9CitmdW5jdGlvbiBFbnVtZXJhdGUgKCBvICkgeworICAg
IHZhciAgICBwOworICAgIGZvciAgICAoIHAgICAgaW4gbyApIHsKKyAgICAgICAgcHJpbnQoIHAg
KyI6ICIgKyBvW3BdICk7CisgICAgfQorfQorCisvKiB0aGVzZSBmdW5jdGlvbnMgYXJlIHVzZWZ1
bCBmb3IgcnVubmluZyB0ZXN0cyBtYW51YWxseSBpbiBSaGlubyAqLworCitmdW5jdGlvbiBHZXRD
b250ZXh0KCkgeworICAgIHJldHVybiBQYWNrYWdlcy5jb20ubmV0c2NhcGUuamF2YXNjcmlwdC5D
b250ZXh0LmdldEN1cnJlbnRDb250ZXh0KCk7Cit9CitmdW5jdGlvbiBPcHRMZXZlbCggaSApIHsK
KyAgICBpID0gICAgTnVtYmVyKGkpOworICAgIHZhciAgICBjeCA9IEdldENvbnRleHQoKTsKKyAg
ICBjeC5zZXRPcHRpbWl6YXRpb25MZXZlbChpKTsKK30KKy8qIGVuZCBvZiBSaGlubyBmdW5jdGlv
bnMgKi8KZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW96aWxsYS9lY21hL0RhdGUvMTUuOS41LjE0Lmpz
IGIvSlNUZXN0cy9tb3ppbGxhL2VjbWEvRGF0ZS8xNS45LjUuMTQuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRkOTVhZGEyZDJmNjUyMjczZDA0M2M3YWUxMGNiMjAxMTY0YmIyOGIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9t
b3ppbGxhL2VjbWEvRGF0ZS8xNS45LjUuMTQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw5NiArMCww
IEBACi0vKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIGFyZSBzdWJqZWN0IHRvIHRoZSBOZXRz
Y2FwZSBQdWJsaWMKLSAqIExpY2Vuc2UgVmVyc2lvbiAxLjEgKHRoZSAiTGljZW5zZSIpOyB5b3Ug
bWF5IG5vdCB1c2UgdGhpcyBmaWxlCi0gKiBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBM
aWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YKLSAqIHRoZSBMaWNlbnNlIGF0IGh0dHA6
Ly93d3cubW96aWxsYS5vcmcvTlBMLwotICoKLSAqIFNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUwotICogSVMiIGJhc2lzLCBXSVRI
T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgotICogaW1wbGllZC4g
U2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCi0gKiBy
aWdodHMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICoKLSAqIFRoZSBPcmln
aW5hbCBDb2RlIGlzIE1vemlsbGEgQ29tbXVuaWNhdG9yIGNsaWVudCBjb2RlLCByZWxlYXNlZCBN
YXJjaAotICogMzEsIDE5OTguCi0gKgotICogVGhlIEluaXRpYWwgRGV2ZWxvcGVyIG9mIHRoZSBP
cmlnaW5hbCBDb2RlIGlzIE5ldHNjYXBlIENvbW11bmljYXRpb25zCi0gKiBDb3Jwb3JhdGlvbi4g
UG9ydGlvbnMgY3JlYXRlZCBieSBOZXRzY2FwZSBhcmUKLSAqIENvcHlyaWdodCAoQykgMTk5OCBO
ZXRzY2FwZSBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbi4gQWxsCi0gKiBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogQ29udHJpYnV0b3Iocyk6IAotICogCi0gKi8KLS8qKgotICAgIEZpbGUgTmFt
ZTogICAgICAgICAgMTUuOS41LjE0LmpzCi0gICAgRUNNQSBTZWN0aW9uOiAgICAgICAxNS45LjUu
MTQKLSAgICBEZXNjcmlwdGlvbjogICAgICAgIERhdGUucHJvdG90eXBlLmdldEhvdXJzCi0gICAg
MS4gIExldCB0IGJlIHRoaXMgdGltZSB2YWx1ZS4KLSAgICAyLiAgSWYgdCBpcyBOYU4sIHJldHVy
biBOYU4uCi0gICAgMy4gIFJldHVybiBIb3VyRnJvbVRpbWUoTG9jYWxUaW1lKHQpKS4KLQotICAg
IEF1dGhvcjogICAgICAgICAgICAgY2hyaXN0aW5lQG5ldHNjYXBlLmNvbQotICAgIERhdGU6ICAg
ICAgICAgICAgICAgMTIgbm92ZW1iZXIgMTk5NwotKi8KLQotICAgIHZhciBTRUNUSU9OID0gIjE1
LjkuNS4xNCI7Ci0gICAgdmFyIFZFUlNJT04gPSAiRUNNQV8xIjsKLSAgICBzdGFydFRlc3QoKTsK
LSAgICB2YXIgVElUTEUgICA9ICJEYXRlLnByb3RvdHlwZS5nZXRIb3VycygpIjsKLQotICAgIHdy
aXRlSGVhZGVyVG9Mb2coIFNFQ1RJT04gKyAiICIrIFRJVExFKTsKLQotICAgIHZhciB0ZXN0Y2Fz
ZXMgPSBuZXcgQXJyYXkoKTsKLQotICAgIHZhciBUWl9BREpVU1QgPSBUWl9ESUZGICogbXNQZXJI
b3VyOwotCi0gICAgLy8gZ2V0IHRoZSBjdXJyZW50IHRpbWUKLSAgICB2YXIgbm93ID0gKG5ldyBE
YXRlKCkpLnZhbHVlT2YoKTsKLQotICAgIC8vIGdldCB0aW1lIGZvciAyOSBmZWIgMjAwMAotCi0g
ICAgdmFyIFVUQ19GRUJfMjlfMjAwMCA9IFRJTUVfMjAwMCArIDMxKm1zUGVyRGF5ICsgMjgqbXNQ
ZXJIb3VyOwotCi0gICAgLy8gZ2V0IHRpbWUgZm9yIDEgamFuIDIwMDUKLQotICAgIHZhciBVVENf
SkFOXzFfMjAwNSA9IFRJTUVfMjAwMCArIFRpbWVJblllYXIoMjAwMCkrVGltZUluWWVhcigyMDAx
KSsKLSAgICBUaW1lSW5ZZWFyKDIwMDIpK1RpbWVJblllYXIoMjAwMykrVGltZUluWWVhcigyMDA0
KTsKLQotICAgIGFkZFRlc3RDYXNlKCBub3cgKTsKLSAgICBhZGRUZXN0Q2FzZSggVElNRV9ZRUFS
XzAgKTsKLSAgICBhZGRUZXN0Q2FzZSggVElNRV8xOTcwICk7Ci0gICAgYWRkVGVzdENhc2UoIFRJ
TUVfMTkwMCApOwotICAgIGFkZFRlc3RDYXNlKCBUSU1FXzIwMDAgKTsKLSAgICBhZGRUZXN0Q2Fz
ZSggVVRDX0ZFQl8yOV8yMDAwICk7Ci0gICAgYWRkVGVzdENhc2UoIFVUQ19KQU5fMV8yMDA1ICk7
Ci0KLSAgICB0ZXN0Y2FzZXNbdGMrK10gPSBuZXcgVGVzdENhc2UoIFNFQ1RJT04sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKG5ldyBEYXRlKE5hTikpLmdldEhvdXJzKCki
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFOLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKG5ldyBEYXRlKE5hTikpLmdldEhvdXJzKCkgKTsKLQot
ICAgIHRlc3RjYXNlc1t0YysrXSA9IG5ldyBUZXN0Q2FzZSggU0VDVElPTiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJEYXRlLnByb3RvdHlwZS5nZXRIb3Vycy5sZW5ndGgi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIERhdGUucHJvdG90eXBlLmdldEhvdXJzLmxlbmd0aCApOwot
ICAgIHRlc3QoKTsKLWZ1bmN0aW9uIGFkZFRlc3RDYXNlKCB0ICkgewotICAgIGZvciAoIGggPSAw
OyBoIDwgMjQ7IGgrPTQgKSB7Ci0gICAgICAgICAgICB0ICs9IG1zUGVySG91cjsKLSAgICAgICAg
ICAgIHRlc3RjYXNlc1t0YysrXSA9IG5ldyBUZXN0Q2FzZSggU0VDVElPTiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIobmV3IERhdGUoIit0KyIpKS5nZXRIb3VycygpIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvdXJGcm9tVGltZSgoTG9jYWxU
aW1lKHQpKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV3IERhdGUo
dCkpLmdldEhvdXJzKCkgKTsKLSAgICB9Ci19Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZvciAo
IHRjPTA7IHRjIDwgdGVzdGNhc2VzLmxlbmd0aDsgdGMrKyApIHsKLSAgICAgICAgdGVzdGNhc2Vz
W3RjXS5wYXNzZWQgPSB3cml0ZVRlc3RDYXNlUmVzdWx0KAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RjYXNlc1t0Y10uZXhwZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RjYXNlc1t0Y10uYWN0dWFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rj
YXNlc1t0Y10uZGVzY3JpcHRpb24gKyIgPSAiKwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RjYXNlc1t0Y10uYWN0dWFsICk7Ci0KLSAgICAgICAgdGVzdGNhc2VzW3RjXS5yZWFzb24g
Kz0gKCB0ZXN0Y2FzZXNbdGNdLnBhc3NlZCApID8gIiIgOiAid3JvbmcgdmFsdWUgIjsKLSAgICB9
Ci0gICAgc3RvcFRlc3QoKTsKLSAgICByZXR1cm4gKCB0ZXN0Y2FzZXMgKTsKLX0KZGlmZiAtLWdp
dCBhL0pTVGVzdHMvbW96aWxsYS9tb3ppbGxhLXRlc3RzLnlhbWwgYi9KU1Rlc3RzL21vemlsbGEv
bW96aWxsYS10ZXN0cy55YW1sCmluZGV4IDM5ODc1OWNjZDM5MWM2MjgzZmQ1MzQwZGJiNDM3NmNm
N2YwZjA1YWEuLjEyODgxNzRkOGI4Y2Y4NThlZDVhZjU0M2Y5YjY0NWUyZWM0MTU5OTQgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvbW96aWxsYS9tb3ppbGxhLXRlc3RzLnlhbWwKKysrIGIvSlNUZXN0cy9t
b3ppbGxhL21vemlsbGEtdGVzdHMueWFtbApAQCAtMjI3LDggKzIyNyw2IEBACiAgIGNtZDogZGVm
YXVsdFJ1bk1vemlsbGFUZXN0IDpub3JtYWwsICIuLi9zaGVsbC5qcyIKIC0gcGF0aDogZWNtYS9E
YXRlLzE1LjkuNS4xMy04LmpzCiAgIGNtZDogZGVmYXVsdFJ1bk1vemlsbGFUZXN0IDpub3JtYWws
ICIuLi9zaGVsbC5qcyIKLS0gcGF0aDogZWNtYS9EYXRlLzE1LjkuNS4xNC5qcwotICBjbWQ6IGRl
ZmF1bHRSdW5Nb3ppbGxhVGVzdCA6bm9ybWFsLCAiLi4vc2hlbGwuanMiCiAtIHBhdGg6IGVjbWEv
RGF0ZS8xNS45LjUuMTUuanMKICAgY21kOiBkZWZhdWx0UnVuTW96aWxsYVRlc3QgOm5vcm1hbCwg
Ii4uL3NoZWxsLmpzIgogLSBwYXRoOiBlY21hL0RhdGUvMTUuOS41LjE2LmpzCg==
</data>
<flag name="review"
          id="442427"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>