<?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>234001</bug_id>
          
          <creation_ts>2021-12-08 06:05:37 -0800</creation_ts>
          <short_desc>[css-contain][Performance test] Add test contain-paint-text-nowrap.html</short_desc>
          <delta_ts>2021-12-17 10:44:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rbuis</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>cathiechen</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jbedard</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1821521</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-12-08 06:05:37 -0800</bug_when>
    <thetext>Add test contain-paint-text-nowrap.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821524</commentid>
    <comment_count>1</comment_count>
      <attachid>446355</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-12-08 06:12:12 -0800</bug_when>
    <thetext>Created attachment 446355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821525</commentid>
    <comment_count>2</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-12-08 06:15:48 -0800</bug_when>
    <thetext>Test results on my M1 mbp:

Containment on:
:Time -&gt; [17, 17, 14, 15, 14, 16, 17, 17, 16, 17, 17, 16, 17.000000000000057, 16.999999999999943, 14, 17, 17.000000000000057, 15.999999999999943, 16, 17] ms
    mean: 16.2 ms
    median: 16.99999999999997 ms
    stdev: 1.1050125029061675 ms
    min: 14 ms
    max: 17.000000000000057 ms

Containment off:
:Time -&gt; [26, 23, 24, 23, 20, 21, 21, 21, 20, 21, 21, 19, 19, 20, 19, 19, 19, 19, 19, 20] ms
    mean: 20.7 ms
    median: 20 ms
    stdev: 1.949358868961793 ms
    min: 19 ms
    max: 26 ms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821526</commentid>
    <comment_count>3</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-12-08 06:17:49 -0800</bug_when>
    <thetext>Test results on my M1 mbp:

Containment on:
:Time -&gt; [17, 17, 14, 15, 14, 16, 17, 17, 16, 17, 17, 16, 17.000000000000057, 16.999999999999943, 14, 17, 17.000000000000057, 15.999999999999943, 16, 17] ms
    mean: 16.2 ms
    median: 16.99999999999997 ms
    stdev: 1.1050125029061675 ms
    min: 14 ms
    max: 17.000000000000057 ms

Containment off:
:Time -&gt; [26, 23, 24, 23, 20, 21, 21, 21, 20, 21, 21, 19, 19, 20, 19, 19, 19, 19, 19, 20] ms
    mean: 20.7 ms
    median: 20 ms
    stdev: 1.949358868961793 ms
    min: 19 ms
    max: 26 ms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824333</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-15 06:06:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/86519206&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824920</commentid>
    <comment_count>5</comment_count>
      <attachid>446355</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-12-16 17:25:54 -0800</bug_when>
    <thetext>Comment on attachment 446355
Patch

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

&gt; PerformanceTests/ChangeLog:13
&gt; +        * Paint/contain-paint-nowrap.html: Added.

Might be better to have a &quot;containment&quot; directory, rather than a &quot;Paint&quot; directory.

&gt; PerformanceTests/Paint/contain-paint-nowrap.html:40
&gt; +            document.body.getBoundingClientRect();

Why the forced layout?

&gt; PerformanceTests/Paint/contain-paint-nowrap.html:44
&gt; +        var isDone = false;

var -&gt; let?

&gt; PerformanceTests/Paint/contain-paint-nowrap.html:52
&gt; +        var startTime;
&gt; +        var height = 0;

var -&gt; let?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824927</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-12-16 18:01:21 -0800</bug_when>
    <thetext>(In reply to Rob Buis from comment #3)
&gt; Test results on my M1 mbp:
&gt; 
&gt; Containment on:
&gt; :Time -&gt; [17, 17, 14, 15, 14, 16, 17, 17, 16, 17, 17, 16,
&gt; 17.000000000000057, 16.999999999999943, 14, 17, 17.000000000000057,
&gt; 15.999999999999943, 16, 17] ms
&gt;     mean: 16.2 ms
&gt;     median: 16.99999999999997 ms
&gt;     stdev: 1.1050125029061675 ms
&gt;     min: 14 ms
&gt;     max: 17.000000000000057 ms
&gt; 
&gt; Containment off:
&gt; :Time -&gt; [26, 23, 24, 23, 20, 21, 21, 21, 20, 21, 21, 19, 19, 20, 19, 19,
&gt; 19, 19, 19, 20] ms
&gt;     mean: 20.7 ms
&gt;     median: 20 ms
&gt;     stdev: 1.949358868961793 ms
&gt;     min: 19 ms
&gt;     max: 26 ms

Please do some rounding of the output: one decimal place for milliseconds should be enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825018</commentid>
    <comment_count>7</comment_count>
      <attachid>447438</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-12-17 01:22:21 -0800</bug_when>
    <thetext>Created attachment 447438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825021</commentid>
    <comment_count>8</comment_count>
      <attachid>447440</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-12-17 01:33:53 -0800</bug_when>
    <thetext>Created attachment 447440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825023</commentid>
    <comment_count>9</comment_count>
      <attachid>446355</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-12-17 01:39:20 -0800</bug_when>
    <thetext>Comment on attachment 446355
Patch

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

&gt;&gt; PerformanceTests/ChangeLog:13
&gt;&gt; +        * Paint/contain-paint-nowrap.html: Added.
&gt; 
&gt; Might be better to have a &quot;containment&quot; directory, rather than a &quot;Paint&quot; directory.

Yes, containment directory is a good idea, I added one, and moved the existing containment tests there too.

&gt;&gt; PerformanceTests/Paint/contain-paint-nowrap.html:40
&gt;&gt; +            document.body.getBoundingClientRect();
&gt; 
&gt; Why the forced layout?

Does not seem needed indeed.

&gt;&gt; PerformanceTests/Paint/contain-paint-nowrap.html:44
&gt;&gt; +        var isDone = false;
&gt; 
&gt; var -&gt; let?

Done.

&gt;&gt; PerformanceTests/Paint/contain-paint-nowrap.html:52
&gt;&gt; +        var height = 0;
&gt; 
&gt; var -&gt; let?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825044</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-17 04:42:26 -0800</bug_when>
    <thetext>Committed r287179 (245348@main): &lt;https://commits.webkit.org/245348@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447440.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825128</commentid>
    <comment_count>11</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-12-17 10:44:11 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #6)
&gt; (In reply to Rob Buis from comment #3)
&gt; &gt; Test results on my M1 mbp:
&gt; &gt; 
&gt; &gt; Containment on:
&gt; &gt; :Time -&gt; [17, 17, 14, 15, 14, 16, 17, 17, 16, 17, 17, 16,
&gt; &gt; 17.000000000000057, 16.999999999999943, 14, 17, 17.000000000000057,
&gt; &gt; 15.999999999999943, 16, 17] ms
&gt; &gt;     mean: 16.2 ms
&gt; &gt;     median: 16.99999999999997 ms
&gt; &gt;     stdev: 1.1050125029061675 ms
&gt; &gt;     min: 14 ms
&gt; &gt;     max: 17.000000000000057 ms
&gt; &gt; 
&gt; &gt; Containment off:
&gt; &gt; :Time -&gt; [26, 23, 24, 23, 20, 21, 21, 21, 20, 21, 21, 19, 19, 20, 19, 19,
&gt; &gt; 19, 19, 19, 20] ms
&gt; &gt;     mean: 20.7 ms
&gt; &gt;     median: 20 ms
&gt; &gt;     stdev: 1.949358868961793 ms
&gt; &gt;     min: 19 ms
&gt; &gt;     max: 26 ms
&gt; 
&gt; Please do some rounding of the output: one decimal place for milliseconds
&gt; should be enough.

AFAIK this is global behaviour of the perf test framework, or is there a way to fine-tune the accuracy per test through some parameter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825129</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-12-17 10:44:41 -0800</bug_when>
    <thetext>Probably not. We should fix the framework!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446355</attachid>
            <date>2021-12-08 06:12:12 -0800</date>
            <delta_ts>2021-12-17 01:22:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234001-20211208141211.patch</filename>
            <type>text/plain</type>
            <size>3441</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjQ3CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIzMDgwNzMxNWU2
YjM1NmFjYjJiNzUyNWQyNDM0MWNjZmY3MjVkZGYuLjNhMTNlZDg3MTUxNzkzNjQ5NzM2YjgwMTE4
NDIyYTBmYmM4Y2FlN2IgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMTIt
MDggIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLWNvbnRhaW5d
W1BlcmZvcm1hbmNlIHRlc3RdIEFkZCB0ZXN0IGNvbnRhaW4tcGFpbnQtdGV4dC1ub3dyYXAuaHRt
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MDAx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRl
c3QgY29udGFpbi1wYWludC10ZXh0LW5vd3JhcC5odG1sIHRvIHZlcmlmeSB0aGF0IHBhaW50IGNv
bnRhaW5tZW50CisgICAgICAgIGltcHJvdmVzIHRoZSBjYXNlIHdoZXJlIG1hbnkgY29udGFpbmVk
IGNoaWxkcmVuIGhhdmUgaW5saW5lIHRleHQgdGhhdCBpcworICAgICAgICB3aWRlciB0aGFuIHRo
ZSBjb250YWluZXIgd2lkdGguIFRoZSBpbXByb3ZlbWVudCBpcyBiZWNhdXNlIHBhaW50CisgICAg
ICAgIGNvbnRhaW5tZW50IGNsaXBzIHRoZSBjaGlsZCBjb250ZW50LgorCisgICAgICAgICogUGFp
bnQvY29udGFpbi1wYWludC1ub3dyYXAuaHRtbDogQWRkZWQuCisKIDIwMjEtMTItMDcgIENhdGhp
ZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtQZXJmb3JtYW5jZSB0
ZXN0XVtjc3MtY29udGFpbl0gQWRkIHRlc3QgbGFyZ2UtZ3JpZC5odG1sCmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL1BhaW50L2NvbnRhaW4tcGFpbnQtbm93cmFwLmh0bWwgYi9QZXJmb3Jt
YW5jZVRlc3RzL1BhaW50L2NvbnRhaW4tcGFpbnQtbm93cmFwLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzcz
Y2VhMmViYjgwZDEwN2I5YzI2ZGJkZGEzY2M5ZmIxMjBjMDJkZQotLS0gL2Rldi9udWxsCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvUGFpbnQvY29udGFpbi1wYWludC1ub3dyYXAuaHRtbApAQCAtMCww
ICsxLDY4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVu
bmVyLmpzIj48L3NjcmlwdD4KKzx0aXRsZT5UcmFja2luZyB0aGUgcGVyZm9ybWFuY2Ugb2YgcGFp
bnQgY29udGFpbm1lbnQgYW5kIGlubGluZSB0ZXh0IHRoYXQgaXMgbm90IHdyYXBwZWQ8L3RpdGxl
PgorPHN0eWxlPgorICAgICNsaXN0Q29udGFpbmVyIHsKKyAgICAgICAgbWFyZ2luOiAwIGF1dG87
CisgICAgICAgIHdpZHRoOiA2MDBweDsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAg
ICAgICBjb250YWluOiBwYWludDsKKyAgICB9CisKKyAgICAubGlzdEl0ZW0geworICAgICAgICBv
dXRsaW5lOiAycHggc29saWQgZ3JlZW47CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8cHJlIGlkPSJsb2ciPjwvcHJl
PgorCisgICAgPGRpdiBpZD0ibGlzdENvbnRhaW5lciI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgY29uc3QgTE9SRU1fSVBTVU0gPSAiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNv
bnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1
bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVu
aWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28uIjsKKworICAgICAgICBsZXQg
bGlzdENvbnRhaW5lciA9IG51bGw7CisgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUxpc3RJdGVtKCkg
eworICAgICAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgibGlzdEl0ZW0iKTsKKyAgICAgICAgICAg
IGl0ZW0udGV4dENvbnRlbnQgPSBMT1JFTV9JUFNVTS5zdWJzdHIoCisgICAgICAgICAgICAgICAg
TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKSwgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgp
ICogMjAwKSArIDE1MCk7CisgICAgICAgICAgICBpdGVtLnN0eWxlLndoaXRlU3BhY2UgPSAibm93
cmFwIjsKKyAgICAgICAgICAgIGxpc3RDb250YWluZXIuYXBwZW5kQ2hpbGQoaXRlbSk7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZXR1cFRlc3QoKSB7CisgICAgICAgICAgICBsaXN0
Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxpc3RDb250YWluZXIiKTsKKyAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAgICAgICAgICAg
ICBjcmVhdGVMaXN0SXRlbSgpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKKyAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
cnVuVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgaXNEb25lID0gZmFsc2U7CisgICAg
ICAgIFBlcmZUZXN0UnVubmVyLnByZXBhcmVUb01lYXN1cmVWYWx1ZXNBc3luYyh7IGRvbmU6IGRv
bmUsIHVuaXQ6ICdtcycgfSk7CisgICAgICAgIGZ1bmN0aW9uIGRvbmUoKSB7CisgICAgICAgICAg
ICBpc0RvbmUgPSB0cnVlOworICAgICAgICAgICAgbGlzdENvbnRhaW5lci5pbm5lckhUTUwgPSAi
IjsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBzdGFydFRpbWU7CisgICAgICAgIHZhciBoZWln
aHQgPSAwOworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgaWYgKHN0
YXJ0VGltZSkKKyAgICAgICAgICAgICAgICBQZXJmVGVzdFJ1bm5lci5tZWFzdXJlVmFsdWVBc3lu
YyhQZXJmVGVzdFJ1bm5lci5ub3coKSAtIHN0YXJ0VGltZSk7CisKKyAgICAgICAgICAgIGlmICgh
aXNEb25lKSB7CisgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gUGVyZlRlc3RSdW5uZXIubm93
KCk7CisgICAgICAgICAgICAgICAgbGlzdENvbnRhaW5lci5maXJzdENoaWxkLnN0eWxlLmhlaWdo
dCA9IGhlaWdodCArICJweCI7CisgICAgICAgICAgICAgICAgaGVpZ2h0Kys7CisgICAgICAgICAg
ICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShydW5UZXN0KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIG9ubG9hZCA9IHNldHVwVGVzdDsKKyAgICA8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447438</attachid>
            <date>2021-12-17 01:22:21 -0800</date>
            <delta_ts>2021-12-17 01:33:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234001-20211217092220.patch</filename>
            <type>text/plain</type>
            <size>25153</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTc0CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVhNzAzMWVjNTQw
YTVjNjQ5NmEzOWJmOGRjZjE1Y2Y2OWM0MDMxZTkuLjgyYjIyY2QyODM3ZTkwMWUyM2Q4OTQxMGQ1
OGU3Y2ViNTI3NWNhZmIgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMTIt
MTcgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLWNvbnRhaW5d
W1BlcmZvcm1hbmNlIHRlc3RdIEFkZCB0ZXN0IGNvbnRhaW4tcGFpbnQtdGV4dC1ub3dyYXAuaHRt
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MDAx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCB0ZXN0
IGNvbnRhaW4tcGFpbnQtdGV4dC1ub3dyYXAuaHRtbCB0byB2ZXJpZnkgdGhhdCBwYWludCBjb250
YWlubWVudAorICAgICAgICBpbXByb3ZlcyB0aGUgY2FzZSB3aGVyZSBtYW55IGNvbnRhaW5lZCBj
aGlsZHJlbiBoYXZlIGlubGluZSB0ZXh0IHRoYXQgaXMKKyAgICAgICAgd2lkZXIgdGhhbiB0aGUg
Y29udGFpbmVyIHdpZHRoLiBUaGUgaW1wcm92ZW1lbnQgaXMgYmVjYXVzZSBwYWludAorICAgICAg
ICBjb250YWlubWVudCBjbGlwcyB0aGUgY2hpbGQgY29udGVudC4KKworICAgICAgICBUaGlzIHBh
dGNoIGFsc28gaW50cm9kdWNlcyB0aGUgQ29udGFpbm1lbnQgZGlyZWN0b3J5IHRvIHNlcGFyYXRl
IHRoZQorICAgICAgICBjb250YWlubWVudCB0ZXN0cy4KKworICAgICAgICAqIENvbnRhaW5tZW50
L2NvbnRhaW4tcGFpbnQtbm93cmFwLmh0bWw6CisgICAgICAgICogQ29udGFpbm1lbnQvY3NzLWNv
bnRhaW4tY2hhbmdlLXNpemUuaHRtbDogUmVuYW1lZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvTGF5
b3V0L2Nzcy1jb250YWluLWNoYW5nZS1zaXplLmh0bWwuCisgICAgICAgICogQ29udGFpbm1lbnQv
Y3NzLWNvbnRhaW4tbGF5b3V0LXNpemUtaW5zaWRlLWNvbXBsZXgtZG9jdW1lbnQuaHRtbDogUmVu
YW1lZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvTGF5b3V0L2Nzcy1jb250YWluLWxheW91dC1zaXpl
LWluc2lkZS1jb21wbGV4LWRvY3VtZW50Lmh0bWwuCisgICAgICAgICogQ29udGFpbm1lbnQvbGFy
Z2UtZ3JpZC5odG1sOiBSZW5hbWVkIGZyb20gUGVyZm9ybWFuY2VUZXN0cy9MYXlvdXQvbGFyZ2Ut
Z3JpZC5odG1sLgorICAgICAgICAqIFBhaW50L2xvdHMtb2Ytc2VsZi1wYWludGluZy1sYXllcnMu
aHRtbDogdXNlIGxldCBpbnN0ZWFkIG9mIHZhcgorCiAyMDIxLTEyLTE0ICBKZWFuLVl2ZXMgQXZl
bmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzdGluZ3Vpc2ggY29udGlndW91cyBT
aGFyZWRCdWZmZXIgZnJvbSBub24tY29udGlndW91cyBvbmUgYW5kIGd1YXJhbnRlZSBpbW11dGFi
aWxpdHk6IHBhcnQgMwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Db250YWlubWVudC9j
b250YWluLXBhaW50LW5vd3JhcC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Db250YWlubWVudC9j
b250YWluLXBhaW50LW5vd3JhcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2YmE4MzIzMGJmZWE5YTllMWUy
NDU4YWM0ZmZhOTMzYzFhMmM1MTcKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0NvbnRhaW5tZW50L2NvbnRhaW4tcGFpbnQtbm93cmFwLmh0bWwKQEAgLTAsMCArMSw2OCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9z
Y3JpcHQ+Cis8dGl0bGU+VHJhY2tpbmcgdGhlIHBlcmZvcm1hbmNlIG9mIHBhaW50IGNvbnRhaW5t
ZW50IGFuZCBpbmxpbmUgdGV4dCB0aGF0IGlzIG5vdCB3cmFwcGVkPC90aXRsZT4KKzxzdHlsZT4K
KyAgICAjbGlzdENvbnRhaW5lciB7CisgICAgICAgIG1hcmdpbjogMCBhdXRvOworICAgICAgICB3
aWR0aDogNjAwcHg7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgY29udGFp
bjogcGFpbnQ7CisgICAgfQorCisgICAgLmxpc3RJdGVtIHsKKyAgICAgICAgb3V0bGluZTogMnB4
IHNvbGlkIGdyZWVuOworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorPC9zdHls
ZT4KKzwvaGVhZD4KKworPGJvZHk+CisgICAgPHByZSBpZD0ibG9nIj48L3ByZT4KKworICAgIDxk
aXYgaWQ9Imxpc3RDb250YWluZXIiPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGNvbnN0
IExPUkVNX0lQU1VNID0gIkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBh
ZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9y
ZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBu
b3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvLiI7CisKKyAgICAgICAgbGV0IGxpc3RDb250YWlu
ZXIgPSBudWxsOworICAgICAgICBmdW5jdGlvbiBjcmVhdGVMaXN0SXRlbSgpIHsKKyAgICAgICAg
ICAgIGxldCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAg
ICBpdGVtLmNsYXNzTGlzdC5hZGQoImxpc3RJdGVtIik7CisgICAgICAgICAgICBpdGVtLnRleHRD
b250ZW50ID0gTE9SRU1fSVBTVU0uc3Vic3RyKAorICAgICAgICAgICAgICAgIE1hdGguZmxvb3Io
TWF0aC5yYW5kb20oKSAqIDEwMCksIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIwMCkgKyAx
NTApOworICAgICAgICAgICAgaXRlbS5zdHlsZS53aGl0ZVNwYWNlID0gIm5vd3JhcCI7CisgICAg
ICAgICAgICBsaXN0Q29udGFpbmVyLmFwcGVuZENoaWxkKGl0ZW0pOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gc2V0dXBUZXN0KCkgeworICAgICAgICAgICAgbGlzdENvbnRhaW5lciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsaXN0Q29udGFpbmVyIik7CisgICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgICAgICAgICAgICAgY3JlYXRlTGlz
dEl0ZW0oKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7CisgICAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJ1blRlc3QpOwor
ICAgICAgICB9CisKKyAgICAgICAgbGV0IGlzRG9uZSA9IGZhbHNlOworICAgICAgICBQZXJmVGVz
dFJ1bm5lci5wcmVwYXJlVG9NZWFzdXJlVmFsdWVzQXN5bmMoeyBkb25lOiBkb25lLCB1bml0OiAn
bXMnIH0pOworICAgICAgICBmdW5jdGlvbiBkb25lKCkgeworICAgICAgICAgICAgaXNEb25lID0g
dHJ1ZTsKKyAgICAgICAgICAgIGxpc3RDb250YWluZXIuaW5uZXJIVE1MID0gIiI7CisgICAgICAg
IH0KKworICAgICAgICBsZXQgc3RhcnRUaW1lOworICAgICAgICBsZXQgaGVpZ2h0ID0gMDsKKyAg
ICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGlmIChzdGFydFRpbWUpCisg
ICAgICAgICAgICAgICAgUGVyZlRlc3RSdW5uZXIubWVhc3VyZVZhbHVlQXN5bmMoUGVyZlRlc3RS
dW5uZXIubm93KCkgLSBzdGFydFRpbWUpOworCisgICAgICAgICAgICBpZiAoIWlzRG9uZSkgewor
ICAgICAgICAgICAgICAgIHN0YXJ0VGltZSA9IFBlcmZUZXN0UnVubmVyLm5vdygpOworICAgICAg
ICAgICAgICAgIGxpc3RDb250YWluZXIuZmlyc3RDaGlsZC5zdHlsZS5oZWlnaHQgPSBoZWlnaHQg
KyAicHgiOworICAgICAgICAgICAgICAgIGhlaWdodCsrOworICAgICAgICAgICAgICAgIHdpbmRv
dy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocnVuVGVzdCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKworICAgICAgICBvbmxvYWQgPSBzZXR1cFRlc3Q7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NvbnRhaW5tZW50L2Nzcy1j
b250YWluLWNoYW5nZS1zaXplLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0NvbnRhaW5tZW50L2Nz
cy1jb250YWluLWNoYW5nZS1zaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU4YjEyOWI3M2VjNzA5NGYx
OGYyY2NjM2JjYzIzNmIzNzY0OGZmMAotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVz
dHMvQ29udGFpbm1lbnQvY3NzLWNvbnRhaW4tY2hhbmdlLXNpemUuaHRtbApAQCAtMCwwICsxLDc1
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICAuY29udGFpbmVyIHsKKyAgICAgICAg
cG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICBoZWlnaHQ6IDMwMDBweDsKKyAgICB9CisKKyAg
ICAucm93IHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICBib3JkZXItdG9w
OiAxcHggc29saWQ7CisgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgICAgIHdp
ZHRoOiAxMjBweDsKKyAgICB9CisKKyAgICAuY2VsbCB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZWQ7CisgICAgICAgIHdpZHRo
OiA2MHB4OworICAgICAgICBoZWlnaHQ6IDMwcHg7CisgICAgICAgIGJveC1zaXppbmc6IGJvcmRl
ci1ib3g7CisgICAgICAgIGNvbnRhaW46IHNpemUgbGF5b3V0OworICAgIH0KKzwvc3R5bGU+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ICAgIGNvbnN0IHJlc2l6aW5nRWxlbWVudHMgPSBbXTsKKyAgICBjb25zdCByb3dDb3VudCA9IDEw
OworICAgIGNvbnN0IGNvbENvdW50ID0gMTA7CisKKyAgICBmdW5jdGlvbiBwb3B1bGF0ZURhdGEo
KSB7CisgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnY29udGFpbmVyJyk7CisgICAg
ICAgIGxldCB0b3AgPSAwOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd0NvdW50OyBp
KyspIHsKKyAgICAgICAgICAgIGxldCBsZWZ0ID0gMDsKKyAgICAgICAgICAgIGNvbnN0IHJvdyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgcm93LmNsYXNzTGlz
dC5hZGQoJ3JvdycpOworICAgICAgICAgICAgcm93LnN0eWxlLnRvcCA9IHRvcCArICdweCc7Cisg
ICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbENvdW50OyBqKyspIHsKKyAgICAgICAg
ICAgICAgICBjb25zdCBjZWxsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAg
ICAgICAgICAgICAgY2VsbC5jbGFzc0xpc3QuYWRkKCdjZWxsJyk7CisgICAgICAgICAgICAgICAg
Y29uc3QgcmVzaXppbmdFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cisg
ICAgICAgICAgICAgICAgcmVzaXppbmdFbGVtZW50LnN0eWxlLndpZHRoID0gKDEwMCAqIFBlcmZU
ZXN0UnVubmVyLnJhbmRvbSgpKS50b0ZpeGVkKDApICsgJ3B4JzsKKyAgICAgICAgICAgICAgICBy
ZXNpemluZ0VsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJzEwMHB4JzsKKyAgICAgICAgICAgICAgICBj
ZWxsLmFwcGVuZENoaWxkKHJlc2l6aW5nRWxlbWVudCk7CisgICAgICAgICAgICAgICAgY2VsbC5z
dHlsZS5sZWZ0ID0gbGVmdCArICdweCc7CisgICAgICAgICAgICAgICAgcm93LmFwcGVuZENoaWxk
KGNlbGwpOworCisgICAgICAgICAgICAgICAgcmVzaXppbmdFbGVtZW50cy5wdXNoKHJlc2l6aW5n
RWxlbWVudCk7CisgICAgICAgICAgICAgICAgbGVmdCArPSA2MDsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIHRvcCArPSAzMDsKKyAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChy
b3cpOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFp
bmVyKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgICAgIHBvcHVs
YXRlRGF0YSgpOworICAgICAgICBkb2N1bWVudC5ib2R5LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OworCisgICAgICAgIFBlcmZUZXN0UnVubmVyLm1lYXN1cmVSdW5zUGVyU2Vjb25kKHsKKyAgICAg
ICAgICAgIGRlc2NyaXB0aW9uOiAnTWVhc3VyZXMgcGVyZm9ybWFuY2Ugb2YgY2hhbmdpbmcgd2lk
dGhzIG9mIG5vZGVzLicsCisgICAgICAgICAgICBydW46IGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgcmVzaXppbmdFbGVtZW50cykgeworICAgICAg
ICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLndpZHRoID0gKDEwMCAqIFBlcmZUZXN0UnVubmVy
LnJhbmRvbSgpKS50b0ZpeGVkKDApICsgJ3B4JzsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9LAorICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGJvZHkgb25sb2Fk
PSJzdGFydFRlc3QoKTsiPgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ29udGFpbm1lbnQvY3NzLWNvbnRhaW4tbGF5b3V0
LXNpemUtaW5zaWRlLWNvbXBsZXgtZG9jdW1lbnQuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQ29u
dGFpbm1lbnQvY3NzLWNvbnRhaW4tbGF5b3V0LXNpemUtaW5zaWRlLWNvbXBsZXgtZG9jdW1lbnQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mZmRmYjI3MzRkMDViOTM4Y2NjZWY5Nzg4YWM4ODgzZWYyYTk0MDg4
Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Db250YWlubWVudC9jc3MtY29u
dGFpbi1sYXlvdXQtc2l6ZS1pbnNpZGUtY29tcGxleC1kb2N1bWVudC5odG1sCkBAIC0wLDAgKzEs
ODUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlBlcmZvcm1hbmNlIHRlc3QgY2hhbmdpbmcg
ImNvbnRhaW46IGxheW91dCBzaXplIiBib3ggaW5zaWRlIGEgZG9jdW1lbnQgd2l0aCBjb21wbGlj
YXRlZCBhbmQgZXhwZW5zaXZlIGxheW91dDwvdGl0bGU+Cis8c3R5bGU+Cisjd3JhcHBlciB7Cisg
ICAgZGlzcGxheTogZmxleDsKKyAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworfQorLnJvdyB7
CisgICAgZGlzcGxheTogZmxleDsKK30KKyN0YXJnZXQgeyAgIAorICAgIGNvbnRhaW46IGxheW91
dCBzaXplOworfQorCis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIu
anMiPjwvc2NyaXB0PgorPHByZSBpZD0ibG9nIj48L3ByZT4KKzxkaXYgaWQ9IndyYXBwZXIiPjwv
ZGl2PgorPHNjcmlwdD4KKyAgICBsZXQgd3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ3cmFwcGVyIik7CisgICAgbGV0IHRhcmdldCA9IHVuZGVmaW5lZDsKKworICAgIGNvbnN0IE5V
TV9ST1dTID0gMTA7CisgICAgY29uc3QgRE9NX0RFUFRIID0gMTAwOworICAgIGZ1bmN0aW9uIGNy
ZWF0ZUNlbGxzKGRlcHRoKSB7CisgICAgICAgIGxldCBjb250ZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisgICAgICAgIGlmICghdGFyZ2V0KSB7CisgICAgICAgICAgICB0YXJn
ZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgIHRhcmdldC5p
ZCA9ICJ0YXJnZXQiOworICAgICAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZCh0YXJnZXQpOwor
ICAgICAgICB9CisgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaDEiKSk7CisgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgicGFyYWdyYXBoIikpOworCisgICAgICAgIGlmIChkZXB0aCA+IDApCisgICAgICAg
ICAgICBjb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUNlbGxzKGRlcHRoIC0gMSkpOworCisgICAg
ICAgIHJldHVybiBjb250ZW50OworICAgIH0KKworICAgIGZ1bmN0aW9uIGdlbmVyYXRlQ29udGVu
dCgpIHsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBOVU1fUk9XUzsgaSsrKSB7CisgICAg
ICAgICAgICBsZXQgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAg
ICAgICByb3cuY2xhc3NMaXN0LmFkZCgicm93Iik7CisgICAgICAgICAgICByb3cuYXBwZW5kQ2hp
bGQoY3JlYXRlQ2VsbHMoRE9NX0RFUFRIKSk7CisgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENo
aWxkKHJvdyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBhZGRUZXh0VG9UYXJn
ZXQoKSB7CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7CisgICAgICAgICAg
ICBsZXQgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAg
ICAgIHRleHROb2RlLmlubmVySFRNTCA9ICJzb21lIHRleHQiOworICAgICAgICAgICAgdGFyZ2V0
LmFwcGVuZENoaWxkKHRleHROb2RlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9u
IHJlbW92ZVRleHRGcm9tVGFyZ2V0KCkgeworICAgICAgICB3aGlsZSAodGFyZ2V0LmZpcnN0RWxl
bWVudENoaWxkKQorICAgICAgICAgICAgdGFyZ2V0LnJlbW92ZUNoaWxkKHRhcmdldC5maXJzdEVs
ZW1lbnRDaGlsZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
YWRkVGV4dFRvVGFyZ2V0KCk7CisgICAgICAgIGRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7CisgICAgICAgIHJlbW92ZVRleHRGcm9tVGFyZ2V0KCk7CisgICAgICAgIGRvY3Vt
ZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c2V0dXBUZXN0KCkgeworICAgICAgICBnZW5lcmF0ZUNvbnRlbnQoKTsKKyAgICAgICAgZG9jdW1l
bnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgUGVyZlRlc3RSdW5uZXIu
bWVhc3VyZVJ1bnNQZXJTZWNvbmQoeworICAgICAgICAgICAgZGVzY3JpcHRpb246ICdNZWFzdXJl
cyBwZXJmb3JtYW5jZSBvZiBjaGFuZ2luZyBjb250YWluOiBsYXlvdXQgc2l6ZSBib3ggaW5zaWRl
IGEgZG9jdW1lbnQgd2l0aCBjb21wbGljYXRlZCBhbmQgZXhwZW5zaXZlIGxheW91dC4nLAorICAg
ICAgICAgICAgcnVuOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOwor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGRvbmU6IGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIHdyYXBwZXIuaW5uZXJIVE1MID0gIiI7CisgICAgICAgICAgICB9CisgICAgICAgIH0p
OworICAgIH0KKyAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHNldHVwVGVzdCk7CisK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Db250YWlubWVudC9sYXJn
ZS1ncmlkLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0NvbnRhaW5tZW50L2xhcmdlLWdyaWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42NzgxY2ZiM2IwYzM4ZjhkZjdiMmM3MWUyMGQ4MjM1Mjg0YzFlNWU5Ci0t
LSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Db250YWlubWVudC9sYXJnZS1ncmlk
Lmh0bWwKQEAgLTAsMCArMSwxNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisKKzxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKyAg
ICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD1VVEYtOCI+CisKKzxzdHlsZT4KK2h0bWwsIGJvZHksICNncmlkQ29udGFpbmVyIHsgaGVp
Z2h0OiAxMDAlOyB9CisKK3VpLXBhbmUjbWFpbiB7CisgICAgY29udGFpbjogc3RyaWN0OworICAg
IG1pbi13aWR0aDogMTAwJSAhaW1wb3J0YW50OworICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7
CisgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CisgICAgbWluLWhlaWdodDogMTAwJSAh
aW1wb3J0YW50OworICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OworICAgIG1heC1oZWlnaHQ6
IDEwMCUgIWltcG9ydGFudDsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworfQorCitbcm93MV0gewor
ICAgIGdyaWQtcm93LXN0YXJ0OiAxOworICAgIGdyaWQtcm93LWVuZDogYXV0bzsKK30KKworW3Jv
dzJdIHsKKyAgICBncmlkLXJvdy1zdGFydDogMjsKKyAgICBncmlkLXJvdy1lbmQ6IGF1dG87Cit9
CisKKworW2NvbDJdIHsKKyAgICBncmlkLWNvbHVtbi1zdGFydDogMjsKKyAgICBncmlkLWNvbHVt
bi1lbmQ6IGF1dG87Cit9CisKK3VpLXBhbmUgeworICAgIGRpc3BsYXk6IGdyaWQ7CisgICAgaGVp
Z2h0OiAxMDAlOworICAgIGNvbnRhaW46IGNvbnRlbnQ7Cit9CisKK1toZ3JpZF0geworICAgIGdy
aWQtdGVtcGxhdGUtcm93czogMWZyOworfQorCitbdmdyaWRdIHsKKyAgICBncmlkLXRlbXBsYXRl
LWNvbHVtbnM6IDFmcjsKK30KKwordWktaWNvbiB7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworfQorCitbY29sbGFwc2VkIF0geyBkaXNwbGF5OiBub25lOyB9CisKKy5ldmVudENoaWxkcmVu
V3JhcCB7CisgICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAzOworICAgIGNvbnRhaW46IGNvbnRlbnQ7
Cit9CisKKy5ldmVudENoaWxkcmVuQ29udGFpbmVyIHsKKyAgICBkaXNwbGF5OiBncmlkOworICAg
IGdyaWQtdGVtcGxhdGUtY29sdW1uczogM2VtIDBweCAxZnI7CisgICAgY29udGFpbjogY29udGVu
dDsKK30KKworLmFjdGlvbkJsb2NrV3JhcCB7CisgICAgZ3JpZC1jb2x1bW46IDM7CisgICAgYWxp
Z24tc2VsZjogc3RhcnQ7CisgICAgY29udGFpbjogbGF5b3V0IHN0eWxlOworICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKK30KKworLmFjdGlvbkJsb2NrIHsKKyAgICBkaXNwbGF5OiBncmlkOworICAg
IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOworICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAg
Y29udGFpbjogY29udGVudDsKK30KKworPC9zdHlsZT4KKworPC9oZWFkPgorCis8Ym9keT4KKyAg
ICA8cHJlIGlkPSJsb2ciPjwvcHJlPgorCisgICAgPGRpdiBpZD0iZ3JpZENvbnRhaW5lciI+Cisg
ICAgICAgIDx1aS1wYW5lIGlkPSJtYWluIiB2Z3JpZD0iIiBzdHlsZT0iZ3JpZC10ZW1wbGF0ZS1y
b3dzOiAxZnI7Ij4KKyAgICAgICAgICAgIDx1aS1wYW5lIGlkPSJtaWRkbGUiIHJvdzE9IiIgaGdy
aWQ9IiIgc3R5bGU9ImdyaWQtdGVtcGxhdGUtY29sdW1uczogMzIwcHggMWZyIDMwMHB4OyI+Cisg
ICAgICAgICAgICAgICAgPHVpLXBhbmUgY29sMj0iIj4KKyAgICAgICAgICAgICAgICAgICAgPHVp
LWJvZHkgcm93Mj0iIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx1aS1wYW5lIGNsYXNzPSJl
dmVudFNoZWV0Vmlld1BhbmUiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1aS1ib2R5
IHJvdzI9IiIgY2xhc3M9ImV2ZW50U2hlZXRWaWV3Ij4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxkaXYgaWQ9InRoaXNpc3RoZW9uZSIgY2xhc3M9ImV2ZW50Q2hpbGRyZW5X
cmFwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJldmVudENoaWxkcmVuQ29udGFpbmVyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uQmxvY2tXcmFwIj4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbkJs
b2NrIiBpZD0iaW5zZXJ0aGVyZSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC91aS1ib2R5PgorICAgICAgICAgICAgICAgICAgICAgICAgPC91aS1wYW5lPgorICAg
ICAgICAgICAgICAgICAgICA8L3VpLWJvZHk+CisgICAgICAgICAgICAgICAgPC91aS1wYW5lPgor
CisgICAgICAgICAgICA8L3VpLXBhbmU+CisgICAgICAgIDwvdWktcGFuZT4KKyAgICA8L2Rpdj4K
KworICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGhpc2lzdGhlb25lJyk7CisgICAgICAgIHZhciBncmlkQ29udGFpbmVyID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2dyaWRDb250YWluZXInKTsKKworICAgICAgICBmdW5jdGlvbiBz
ZXR1cCgpIHsKKyAgICAgICAgICBsZXQgaW5zZXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2luc2VydGhlcmUnKTsKKyAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUwOyArK2kpIHsK
KyAgICAgICAgICAgIGxldCBuYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cisg
ICAgICAgICAgICBuYW1lLmNsYXNzTmFtZSA9ICdhY3Rpb25OYW1lQ2VsbCc7CisgICAgICAgICAg
ICBuYW1lLmlubmVySFRNTCA9ICc8dWktaWNvbiBzdHlsZT0id2lkdGg6IDIwcHg7IGhlaWdodDog
MjBweDsgIj48L3VpLWljb24+PHNwYW4gY2xhc3M9ImFjdGlvbk9iamVjdE5hbWVTcGFuIj5CdXR0
b248L3NwYW4+JzsKKyAgICAgICAgICAgIGxldCBkZXNjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgICAgICAgICBkZXNjLmNsYXNzTmFtZSA9ICdhY3Rpb25EZXNjQ2VsbCc7
CisgICAgICAgICAgICBkZXNjLmlubmVySFRNTCA9ICdTZXQgcG9zaXRpb24gdG8gPGV2ZW50LXBh
cmFtZXRlciBkYXRhLWluZGV4PSIwIj4gPHVpLWljb24gY2xhc3M9Im9iamVjdFBhcmFtZXRlcklj
b24iIHN0eWxlPSJ3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyAiPjwvdWktaWNvbj48c3BhbiBj
bGFzcz0ib2JqZWN0UGFyYW1ldGVyT2JqZWN0TmFtZSI+U3ByaXRlPC9zcGFuPiA8L2V2ZW50LXBh
cmFtZXRlcj4gPGVtPihpbWFnZSBwb2ludCA8ZXZlbnQtcGFyYW1ldGVyIGRhdGEtaW5kZXg9IjEi
PjMyMTMyMTM8L2V2ZW50LXBhcmFtZXRlcj4pPC9lbT4nOworICAgICAgICAgICAgaW5zZXJ0LmFw
cGVuZENoaWxkKG5hbWUpOworICAgICAgICAgICAgaW5zZXJ0LmFwcGVuZENoaWxkKGRlc2MpOwor
ICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAg
ICAgICAgICB0YXJnZXQuc2V0QXR0cmlidXRlKCdjb2xsYXBzZWQnLCAnJyk7CisgICAgICAgICAg
ICBncmlkQ29udGFpbmVyLm9mZnNldEhlaWdodDsKKworICAgICAgICAgICAgdGFyZ2V0LnJlbW92
ZUF0dHJpYnV0ZSgnY29sbGFwc2VkJyk7CisgICAgICAgICAgICBncmlkQ29udGFpbmVyLm9mZnNl
dEhlaWdodDsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRvbmUoKSB7CisgICAgICAg
ICAgbGV0IGluc2VydCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnNlcnRoZXJlJyk7Cisg
ICAgICAgICAgaW5zZXJ0LmlubmVySFRNTCA9ICIiOworICAgICAgICB9CisKKyAgICAgICAgc2V0
dXAoKTsKKyAgICAgICAgUGVyZlRlc3RSdW5uZXIubWVhc3VyZVJ1bnNQZXJTZWNvbmQoeworICAg
ICAgICAgICAgZGVzY3JpcHRpb246ICJNZWFzdXJlcyBwZXJmb3JtYW5jZSBvZiBnZXR0aW5nIG9m
ZnNldEhlaWdodCBvZiBhIGxhcmdlIGdyaWQgY29udGFpbmVyLiIsCisgICAgICAgICAgICBydW46
IHRlc3QsCisgICAgICAgICAgICBkb25lOiBkb25lCisgICAgICAgIH0pOworICAgIDwvc2NyaXB0
PgorPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0xheW91
dC9jc3MtY29udGFpbi1jaGFuZ2Utc2l6ZS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9MYXlvdXQv
Y3NzLWNvbnRhaW4tY2hhbmdlLXNpemUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOWU4YjEyOWI3M2VjNzA5NGYxOGYyY2NjM2JjYzIzNmIzNzY0OGZmMC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0xheW91
dC9jc3MtY29udGFpbi1jaGFuZ2Utc2l6ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c3R5bGU+Ci0gICAgLmNvbnRhaW5lciB7Ci0gICAgICAg
IHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICAgICAgaGVpZ2h0OiAzMDAwcHg7Ci0gICAgfQotCi0g
ICAgLnJvdyB7Ci0gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICAgICAgYm9yZGVyLXRv
cDogMXB4IHNvbGlkOwotICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgICAgICB3
aWR0aDogMTIwcHg7Ci0gICAgfQotCi0gICAgLmNlbGwgewotICAgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7Ci0gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmVkOwotICAgICAgICB3aWR0
aDogNjBweDsKLSAgICAgICAgaGVpZ2h0OiAzMHB4OwotICAgICAgICBib3gtc2l6aW5nOiBib3Jk
ZXItYm94OwotICAgICAgICBjb250YWluOiBzaXplIGxheW91dDsKLSAgICB9Ci08L3N0eWxlPgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LSAgICBjb25zdCByZXNpemluZ0VsZW1lbnRzID0gW107Ci0gICAgY29uc3Qgcm93Q291bnQgPSAx
MDsKLSAgICBjb25zdCBjb2xDb3VudCA9IDEwOwotCi0gICAgZnVuY3Rpb24gcG9wdWxhdGVEYXRh
KCkgewotICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLSAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2NvbnRhaW5lcicpOwotICAg
ICAgICBsZXQgdG9wID0gMDsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dDb3VudDsg
aSsrKSB7Ci0gICAgICAgICAgICBsZXQgbGVmdCA9IDA7Ci0gICAgICAgICAgICBjb25zdCByb3cg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgICAgIHJvdy5jbGFzc0xp
c3QuYWRkKCdyb3cnKTsKLSAgICAgICAgICAgIHJvdy5zdHlsZS50b3AgPSB0b3AgKyAncHgnOwot
ICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjb2xDb3VudDsgaisrKSB7Ci0gICAgICAg
ICAgICAgICAgY29uc3QgY2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAg
ICAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LmFkZCgnY2VsbCcpOwotICAgICAgICAgICAgICAg
IGNvbnN0IHJlc2l6aW5nRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
ICAgICAgICAgICAgICAgIHJlc2l6aW5nRWxlbWVudC5zdHlsZS53aWR0aCA9ICgxMDAgKiBQZXJm
VGVzdFJ1bm5lci5yYW5kb20oKSkudG9GaXhlZCgwKSArICdweCc7Ci0gICAgICAgICAgICAgICAg
cmVzaXppbmdFbGVtZW50LnN0eWxlLmhlaWdodCA9ICcxMDBweCc7Ci0gICAgICAgICAgICAgICAg
Y2VsbC5hcHBlbmRDaGlsZChyZXNpemluZ0VsZW1lbnQpOwotICAgICAgICAgICAgICAgIGNlbGwu
c3R5bGUubGVmdCA9IGxlZnQgKyAncHgnOwotICAgICAgICAgICAgICAgIHJvdy5hcHBlbmRDaGls
ZChjZWxsKTsKLQotICAgICAgICAgICAgICAgIHJlc2l6aW5nRWxlbWVudHMucHVzaChyZXNpemlu
Z0VsZW1lbnQpOwotICAgICAgICAgICAgICAgIGxlZnQgKz0gNjA7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB0b3AgKz0gMzA7Ci0gICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQo
cm93KTsKLSAgICAgICAgfQotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRh
aW5lcik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewotICAgICAgICBwb3B1
bGF0ZURhdGEoKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTsKLQotICAgICAgICBQZXJmVGVzdFJ1bm5lci5tZWFzdXJlUnVuc1BlclNlY29uZCh7Ci0gICAg
ICAgICAgICBkZXNjcmlwdGlvbjogJ01lYXN1cmVzIHBlcmZvcm1hbmNlIG9mIGNoYW5naW5nIHdp
ZHRocyBvZiBub2Rlcy4nLAotICAgICAgICAgICAgcnVuOiBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
ICAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHJlc2l6aW5nRWxlbWVudHMpIHsKLSAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudC5zdHlsZS53aWR0aCA9ICgxMDAgKiBQZXJmVGVzdFJ1bm5l
ci5yYW5kb20oKSkudG9GaXhlZCgwKSArICdweCc7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfSwKLSAgICAgICAgfSk7Ci0gICAgfQotPC9zY3JpcHQ+Ci0KLTxib2R5IG9ubG9h
ZD0ic3RhcnRUZXN0KCk7Ij4KLTwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0xheW91dC9jc3MtY29udGFpbi1sYXlvdXQtc2l6
ZS1pbnNpZGUtY29tcGxleC1kb2N1bWVudC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9MYXlvdXQv
Y3NzLWNvbnRhaW4tbGF5b3V0LXNpemUtaW5zaWRlLWNvbXBsZXgtZG9jdW1lbnQuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZkZmIyNzM0ZDA1YjkzOGNjY2VmOTc4OGFjODg4
M2VmMmE5NDA4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9QZXJmb3JtYW5jZVRlc3RzL0xheW91dC9jc3MtY29udGFpbi1sYXlvdXQtc2l6ZS1pbnNpZGUt
Y29tcGxleC1kb2N1bWVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08dGl0bGU+UGVyZm9ybWFuY2UgdGVzdCBjaGFuZ2luZyAiY29udGFpbjog
bGF5b3V0IHNpemUiIGJveCBpbnNpZGUgYSBkb2N1bWVudCB3aXRoIGNvbXBsaWNhdGVkIGFuZCBl
eHBlbnNpdmUgbGF5b3V0PC90aXRsZT4KLTxzdHlsZT4KLSN3cmFwcGVyIHsKLSAgICBkaXNwbGF5
OiBmbGV4OwotICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ci19Ci0ucm93IHsKLSAgICBkaXNw
bGF5OiBmbGV4OwotfQotI3RhcmdldCB7ICAgCi0gICAgY29udGFpbjogbGF5b3V0IHNpemU7Ci19
Ci0KLTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3Jp
cHQ+Ci08cHJlIGlkPSJsb2ciPjwvcHJlPgotPGRpdiBpZD0id3JhcHBlciI+PC9kaXY+Ci08c2Ny
aXB0PgotICAgIGxldCB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndyYXBwZXIi
KTsKLSAgICBsZXQgdGFyZ2V0ID0gdW5kZWZpbmVkOwotCi0gICAgY29uc3QgTlVNX1JPV1MgPSAx
MDsKLSAgICBjb25zdCBET01fREVQVEggPSAxMDA7Ci0gICAgZnVuY3Rpb24gY3JlYXRlQ2VsbHMo
ZGVwdGgpIHsKLSAgICAgICAgbGV0IGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKLSAgICAgICAgaWYgKCF0YXJnZXQpIHsKLSAgICAgICAgICAgIHRhcmdldCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICAgICAgdGFyZ2V0LmlkID0gInRhcmdl
dCI7Ci0gICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKHRhcmdldCk7Ci0gICAgICAgIH0K
LSAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoMSIp
KTsKLSAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJw
YXJhZ3JhcGgiKSk7Ci0KLSAgICAgICAgaWYgKGRlcHRoID4gMCkKLSAgICAgICAgICAgIGNvbnRl
bnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ2VsbHMoZGVwdGggLSAxKSk7Ci0KLSAgICAgICAgcmV0dXJu
IGNvbnRlbnQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZ2VuZXJhdGVDb250ZW50KCkgewotICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IE5VTV9ST1dTOyBpKyspIHsKLSAgICAgICAgICAgIGxl
dCByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgICAgIHJvdy5j
bGFzc0xpc3QuYWRkKCJyb3ciKTsKLSAgICAgICAgICAgIHJvdy5hcHBlbmRDaGlsZChjcmVhdGVD
ZWxscyhET01fREVQVEgpKTsKLSAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQocm93KTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFkZFRleHRUb1RhcmdldCgpIHsKLSAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1OyBpKyspIHsKLSAgICAgICAgICAgIGxldCB0ZXh0
Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICAgICAgdGV4dE5v
ZGUuaW5uZXJIVE1MID0gInNvbWUgdGV4dCI7Ci0gICAgICAgICAgICB0YXJnZXQuYXBwZW5kQ2hp
bGQodGV4dE5vZGUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcmVtb3ZlVGV4
dEZyb21UYXJnZXQoKSB7Ci0gICAgICAgIHdoaWxlICh0YXJnZXQuZmlyc3RFbGVtZW50Q2hpbGQp
Ci0gICAgICAgICAgICB0YXJnZXQucmVtb3ZlQ2hpbGQodGFyZ2V0LmZpcnN0RWxlbWVudENoaWxk
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBhZGRUZXh0VG9U
YXJnZXQoKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
LSAgICAgICAgcmVtb3ZlVGV4dEZyb21UYXJnZXQoKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzZXR1cFRlc3Qo
KSB7Ci0gICAgICAgIGdlbmVyYXRlQ29udGVudCgpOwotICAgICAgICBkb2N1bWVudC5ib2R5Lmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICBQZXJmVGVzdFJ1bm5lci5tZWFzdXJlUnVu
c1BlclNlY29uZCh7Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ01lYXN1cmVzIHBlcmZvcm1h
bmNlIG9mIGNoYW5naW5nIGNvbnRhaW46IGxheW91dCBzaXplIGJveCBpbnNpZGUgYSBkb2N1bWVu
dCB3aXRoIGNvbXBsaWNhdGVkIGFuZCBleHBlbnNpdmUgbGF5b3V0LicsCi0gICAgICAgICAgICBy
dW46IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBydW5UZXN0KCk7Ci0gICAgICAgICAg
ICB9LAotICAgICAgICAgICAgZG9uZTogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgd3Jh
cHBlci5pbm5lckhUTUwgPSAiIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQot
ICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc2V0dXBUZXN0KTsKLQotPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0xheW91dC9sYXJnZS1ncmlkLmh0bWwgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0xheW91dC9sYXJnZS1ncmlkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDY3ODFjZmIzYjBjMzhmOGRmN2IyYzcxZTIwZDgyMzUyODRjMWU1ZTkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvUGVyZm9ybWFuY2VU
ZXN0cy9MYXlvdXQvbGFyZ2UtZ3JpZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTU1ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0KLTxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KLSAgICA8bWV0YSBodHRwLWVxdWl2PSJD
b250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+Ci0KLTxzdHls
ZT4KLWh0bWwsIGJvZHksICNncmlkQ29udGFpbmVyIHsgaGVpZ2h0OiAxMDAlOyB9Ci0KLXVpLXBh
bmUjbWFpbiB7Ci0gICAgY29udGFpbjogc3RyaWN0OwotICAgIG1pbi13aWR0aDogMTAwJSAhaW1w
b3J0YW50OwotICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7Ci0gICAgbWF4LXdpZHRoOiAxMDAl
ICFpbXBvcnRhbnQ7Ci0gICAgbWluLWhlaWdodDogMTAwJSAhaW1wb3J0YW50OwotICAgIGhlaWdo
dDogMTAwJSAhaW1wb3J0YW50OwotICAgIG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKLSAg
ICBvdmVyZmxvdzogaGlkZGVuOwotfQotCi1bcm93MV0gewotICAgIGdyaWQtcm93LXN0YXJ0OiAx
OwotICAgIGdyaWQtcm93LWVuZDogYXV0bzsKLX0KLQotW3JvdzJdIHsKLSAgICBncmlkLXJvdy1z
dGFydDogMjsKLSAgICBncmlkLXJvdy1lbmQ6IGF1dG87Ci19Ci0KLQotW2NvbDJdIHsKLSAgICBn
cmlkLWNvbHVtbi1zdGFydDogMjsKLSAgICBncmlkLWNvbHVtbi1lbmQ6IGF1dG87Ci19Ci0KLXVp
LXBhbmUgewotICAgIGRpc3BsYXk6IGdyaWQ7Ci0gICAgaGVpZ2h0OiAxMDAlOwotICAgIGNvbnRh
aW46IGNvbnRlbnQ7Ci19Ci0KLVtoZ3JpZF0gewotICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZy
OwotfQotCi1bdmdyaWRdIHsKLSAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKLX0KLQot
dWktaWNvbiB7Ci0gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotfQotCi1bY29sbGFwc2VkIF0g
eyBkaXNwbGF5OiBub25lOyB9Ci0KLS5ldmVudENoaWxkcmVuV3JhcCB7Ci0gICAgZ3JpZC1jb2x1
bW46IDEvc3BhbiAzOwotICAgIGNvbnRhaW46IGNvbnRlbnQ7Ci19Ci0KLS5ldmVudENoaWxkcmVu
Q29udGFpbmVyIHsKLSAgICBkaXNwbGF5OiBncmlkOwotICAgIGdyaWQtdGVtcGxhdGUtY29sdW1u
czogM2VtIDBweCAxZnI7Ci0gICAgY29udGFpbjogY29udGVudDsKLX0KLQotLmFjdGlvbkJsb2Nr
V3JhcCB7Ci0gICAgZ3JpZC1jb2x1bW46IDM7Ci0gICAgYWxpZ24tc2VsZjogc3RhcnQ7Ci0gICAg
Y29udGFpbjogbGF5b3V0IHN0eWxlOwotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQotLmFj
dGlvbkJsb2NrIHsKLSAgICBkaXNwbGF5OiBncmlkOwotICAgIGdyaWQtdGVtcGxhdGUtY29sdW1u
czogMWZyOwotICAgIG92ZXJmbG93OiBoaWRkZW47Ci0gICAgY29udGFpbjogY29udGVudDsKLX0K
LQotPC9zdHlsZT4KLQotPC9oZWFkPgotCi08Ym9keT4KLSAgICA8cHJlIGlkPSJsb2ciPjwvcHJl
PgotCi0gICAgPGRpdiBpZD0iZ3JpZENvbnRhaW5lciI+Ci0gICAgICAgIDx1aS1wYW5lIGlkPSJt
YWluIiB2Z3JpZD0iIiBzdHlsZT0iZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7Ij4KLSAgICAgICAg
ICAgIDx1aS1wYW5lIGlkPSJtaWRkbGUiIHJvdzE9IiIgaGdyaWQ9IiIgc3R5bGU9ImdyaWQtdGVt
cGxhdGUtY29sdW1uczogMzIwcHggMWZyIDMwMHB4OyI+Ci0gICAgICAgICAgICAgICAgPHVpLXBh
bmUgY29sMj0iIj4KLSAgICAgICAgICAgICAgICAgICAgPHVpLWJvZHkgcm93Mj0iIj4KLSAgICAg
ICAgICAgICAgICAgICAgICAgIDx1aS1wYW5lIGNsYXNzPSJldmVudFNoZWV0Vmlld1BhbmUiPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1aS1ib2R5IHJvdzI9IiIgY2xhc3M9ImV2ZW50
U2hlZXRWaWV3Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9
InRoaXNpc3RoZW9uZSIgY2xhc3M9ImV2ZW50Q2hpbGRyZW5XcmFwIj4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudENoaWxkcmVuQ29udGFp
bmVyIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYWN0aW9uQmxvY2tXcmFwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbkJsb2NrIiBpZD0iaW5zZXJ0aGVyZSI+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91aS1ib2R5PgotICAg
ICAgICAgICAgICAgICAgICAgICAgPC91aS1wYW5lPgotICAgICAgICAgICAgICAgICAgICA8L3Vp
LWJvZHk+Ci0gICAgICAgICAgICAgICAgPC91aS1wYW5lPgotCi0gICAgICAgICAgICA8L3VpLXBh
bmU+Ci0gICAgICAgIDwvdWktcGFuZT4KLSAgICA8L2Rpdj4KLQotICAgIDxzY3JpcHQ+Ci0gICAg
ICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhpc2lzdGhlb25lJyk7
Ci0gICAgICAgIHZhciBncmlkQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dy
aWRDb250YWluZXInKTsKLQotICAgICAgICBmdW5jdGlvbiBzZXR1cCgpIHsKLSAgICAgICAgICBs
ZXQgaW5zZXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc2VydGhlcmUnKTsKLSAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUwOyArK2kpIHsKLSAgICAgICAgICAgIGxldCBuYW1l
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgICAgICBuYW1lLmNsYXNz
TmFtZSA9ICdhY3Rpb25OYW1lQ2VsbCc7Ci0gICAgICAgICAgICBuYW1lLmlubmVySFRNTCA9ICc8
dWktaWNvbiBzdHlsZT0id2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgIj48L3VpLWljb24+PHNw
YW4gY2xhc3M9ImFjdGlvbk9iamVjdE5hbWVTcGFuIj5CdXR0b248L3NwYW4+JzsKLSAgICAgICAg
ICAgIGxldCBkZXNjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgICAg
ICBkZXNjLmNsYXNzTmFtZSA9ICdhY3Rpb25EZXNjQ2VsbCc7Ci0gICAgICAgICAgICBkZXNjLmlu
bmVySFRNTCA9ICdTZXQgcG9zaXRpb24gdG8gPGV2ZW50LXBhcmFtZXRlciBkYXRhLWluZGV4PSIw
Ij4gPHVpLWljb24gY2xhc3M9Im9iamVjdFBhcmFtZXRlckljb24iIHN0eWxlPSJ3aWR0aDogMjBw
eDsgaGVpZ2h0OiAyMHB4OyAiPjwvdWktaWNvbj48c3BhbiBjbGFzcz0ib2JqZWN0UGFyYW1ldGVy
T2JqZWN0TmFtZSI+U3ByaXRlPC9zcGFuPiA8L2V2ZW50LXBhcmFtZXRlcj4gPGVtPihpbWFnZSBw
b2ludCA8ZXZlbnQtcGFyYW1ldGVyIGRhdGEtaW5kZXg9IjEiPjMyMTMyMTM8L2V2ZW50LXBhcmFt
ZXRlcj4pPC9lbT4nOwotICAgICAgICAgICAgaW5zZXJ0LmFwcGVuZENoaWxkKG5hbWUpOwotICAg
ICAgICAgICAgaW5zZXJ0LmFwcGVuZENoaWxkKGRlc2MpOwotICAgICAgICAgIH0KLSAgICAgICAg
fQotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgICAgICAgICB0YXJnZXQuc2V0QXR0
cmlidXRlKCdjb2xsYXBzZWQnLCAnJyk7Ci0gICAgICAgICAgICBncmlkQ29udGFpbmVyLm9mZnNl
dEhlaWdodDsKLQotICAgICAgICAgICAgdGFyZ2V0LnJlbW92ZUF0dHJpYnV0ZSgnY29sbGFwc2Vk
Jyk7Ci0gICAgICAgICAgICBncmlkQ29udGFpbmVyLm9mZnNldEhlaWdodDsKLSAgICAgICAgfQot
Ci0gICAgICAgIGZ1bmN0aW9uIGRvbmUoKSB7Ci0gICAgICAgICAgbGV0IGluc2VydCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpbnNlcnRoZXJlJyk7Ci0gICAgICAgICAgaW5zZXJ0LmlubmVy
SFRNTCA9ICIiOwotICAgICAgICB9Ci0KLSAgICAgICAgc2V0dXAoKTsKLSAgICAgICAgUGVyZlRl
c3RSdW5uZXIubWVhc3VyZVJ1bnNQZXJTZWNvbmQoewotICAgICAgICAgICAgZGVzY3JpcHRpb246
ICJNZWFzdXJlcyBwZXJmb3JtYW5jZSBvZiBnZXR0aW5nIG9mZnNldEhlaWdodCBvZiBhIGxhcmdl
IGdyaWQgY29udGFpbmVyLiIsCi0gICAgICAgICAgICBydW46IHRlc3QsCi0gICAgICAgICAgICBk
b25lOiBkb25lCi0gICAgICAgIH0pOwotICAgIDwvc2NyaXB0PgotPC9ib2R5PgotCi08L2h0bWw+
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL1BhaW50L2xvdHMtb2Ytc2VsZi1wYWludGlu
Zy1sYXllcnMuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvUGFpbnQvbG90cy1vZi1zZWxmLXBhaW50
aW5nLWxheWVycy5odG1sCmluZGV4IDFhN2EwYjU0OWE3NWM1N2U4ZTYwNWZlODg5NWZmODJiNTY0
OGU0ZWUuLjM2YWFjOWVhZDM4ZGYyODQ2YWZhZTEyZjcxNTVkMTQ3MjQ1YTQ4YmMgMTAwNjQ0Ci0t
LSBhL1BlcmZvcm1hbmNlVGVzdHMvUGFpbnQvbG90cy1vZi1zZWxmLXBhaW50aW5nLWxheWVycy5o
dG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvUGFpbnQvbG90cy1vZi1zZWxmLXBhaW50aW5nLWxh
eWVycy5odG1sCkBAIC00MCwxNSArNDAsMTUgQEAKICAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0
QW5pbWF0aW9uRnJhbWUocnVuVGVzdCk7CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgaXNEb25l
ID0gZmFsc2U7CisgICAgICAgIGxldCBpc0RvbmUgPSBmYWxzZTsKICAgICAgICAgUGVyZlRlc3RS
dW5uZXIucHJlcGFyZVRvTWVhc3VyZVZhbHVlc0FzeW5jKHsgZG9uZTogZG9uZSwgdW5pdDogJ21z
JyB9KTsKICAgICAgICAgZnVuY3Rpb24gZG9uZSgpIHsKICAgICAgICAgICAgIGlzRG9uZSA9IHRy
dWU7CiAgICAgICAgICAgICBsaXN0Q29udGFpbmVyLmlubmVySFRNTCA9ICIiOwogICAgICAgICB9
CiAKLSAgICAgICAgdmFyIHN0YXJ0VGltZTsKLSAgICAgICAgdmFyIGhlaWdodCA9IDA7CisgICAg
ICAgIGxldCBzdGFydFRpbWU7CisgICAgICAgIGxldCBoZWlnaHQgPSAwOwogICAgICAgICBmdW5j
dGlvbiBydW5UZXN0KCkgewogICAgICAgICAgICAgaWYgKHN0YXJ0VGltZSkKICAgICAgICAgICAg
ICAgICBQZXJmVGVzdFJ1bm5lci5tZWFzdXJlVmFsdWVBc3luYyhQZXJmVGVzdFJ1bm5lci5ub3co
KSAtIHN0YXJ0VGltZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447440</attachid>
            <date>2021-12-17 01:33:53 -0800</date>
            <delta_ts>2021-12-17 04:42:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234001-20211217093350.patch</filename>
            <type>text/plain</type>
            <size>25304</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTc0CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVhNzAzMWVjNTQw
YTVjNjQ5NmEzOWJmOGRjZjE1Y2Y2OWM0MDMxZTkuLjgyYjIyY2QyODM3ZTkwMWUyM2Q4OTQxMGQ1
OGU3Y2ViNTI3NWNhZmIgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMTIt
MTcgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLWNvbnRhaW5d
W1BlcmZvcm1hbmNlIHRlc3RdIEFkZCB0ZXN0IGNvbnRhaW4tcGFpbnQtdGV4dC1ub3dyYXAuaHRt
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MDAx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCB0ZXN0
IGNvbnRhaW4tcGFpbnQtdGV4dC1ub3dyYXAuaHRtbCB0byB2ZXJpZnkgdGhhdCBwYWludCBjb250
YWlubWVudAorICAgICAgICBpbXByb3ZlcyB0aGUgY2FzZSB3aGVyZSBtYW55IGNvbnRhaW5lZCBj
aGlsZHJlbiBoYXZlIGlubGluZSB0ZXh0IHRoYXQgaXMKKyAgICAgICAgd2lkZXIgdGhhbiB0aGUg
Y29udGFpbmVyIHdpZHRoLiBUaGUgaW1wcm92ZW1lbnQgaXMgYmVjYXVzZSBwYWludAorICAgICAg
ICBjb250YWlubWVudCBjbGlwcyB0aGUgY2hpbGQgY29udGVudC4KKworICAgICAgICBUaGlzIHBh
dGNoIGFsc28gaW50cm9kdWNlcyB0aGUgQ29udGFpbm1lbnQgZGlyZWN0b3J5IHRvIHNlcGFyYXRl
IHRoZQorICAgICAgICBjb250YWlubWVudCB0ZXN0cy4KKworICAgICAgICAqIENvbnRhaW5tZW50
L2NvbnRhaW4tcGFpbnQtbm93cmFwLmh0bWw6CisgICAgICAgICogQ29udGFpbm1lbnQvY3NzLWNv
bnRhaW4tY2hhbmdlLXNpemUuaHRtbDogUmVuYW1lZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvTGF5
b3V0L2Nzcy1jb250YWluLWNoYW5nZS1zaXplLmh0bWwuCisgICAgICAgICogQ29udGFpbm1lbnQv
Y3NzLWNvbnRhaW4tbGF5b3V0LXNpemUtaW5zaWRlLWNvbXBsZXgtZG9jdW1lbnQuaHRtbDogUmVu
YW1lZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvTGF5b3V0L2Nzcy1jb250YWluLWxheW91dC1zaXpl
LWluc2lkZS1jb21wbGV4LWRvY3VtZW50Lmh0bWwuCisgICAgICAgICogQ29udGFpbm1lbnQvbGFy
Z2UtZ3JpZC5odG1sOiBSZW5hbWVkIGZyb20gUGVyZm9ybWFuY2VUZXN0cy9MYXlvdXQvbGFyZ2Ut
Z3JpZC5odG1sLgorICAgICAgICAqIFBhaW50L2xvdHMtb2Ytc2VsZi1wYWludGluZy1sYXllcnMu
aHRtbDogdXNlIGxldCBpbnN0ZWFkIG9mIHZhcgorCiAyMDIxLTEyLTE0ICBKZWFuLVl2ZXMgQXZl
bmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzdGluZ3Vpc2ggY29udGlndW91cyBT
aGFyZWRCdWZmZXIgZnJvbSBub24tY29udGlndW91cyBvbmUgYW5kIGd1YXJhbnRlZSBpbW11dGFi
aWxpdHk6IHBhcnQgMwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Db250YWlubWVudC9j
b250YWluLXBhaW50LW5vd3JhcC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Db250YWlubWVudC9j
b250YWluLXBhaW50LW5vd3JhcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4OTMwMTc5ZWM4ZGQ3NmFmZmYy
MWE0NzhlMzBjMWQ0NTFhZjg5ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0NvbnRhaW5tZW50L2NvbnRhaW4tcGFpbnQtbm93cmFwLmh0bWwKQEAgLTAsMCArMSw2NyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9z
Y3JpcHQ+Cis8dGl0bGU+VHJhY2tpbmcgdGhlIHBlcmZvcm1hbmNlIG9mIHBhaW50IGNvbnRhaW5t
ZW50IGFuZCBpbmxpbmUgdGV4dCB0aGF0IGlzIG5vdCB3cmFwcGVkPC90aXRsZT4KKzxzdHlsZT4K
KyAgICAjbGlzdENvbnRhaW5lciB7CisgICAgICAgIG1hcmdpbjogMCBhdXRvOworICAgICAgICB3
aWR0aDogNjAwcHg7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgY29udGFp
bjogcGFpbnQ7CisgICAgfQorCisgICAgLmxpc3RJdGVtIHsKKyAgICAgICAgb3V0bGluZTogMnB4
IHNvbGlkIGdyZWVuOworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorPC9zdHls
ZT4KKzwvaGVhZD4KKworPGJvZHk+CisgICAgPHByZSBpZD0ibG9nIj48L3ByZT4KKworICAgIDxk
aXYgaWQ9Imxpc3RDb250YWluZXIiPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGNvbnN0
IExPUkVNX0lQU1VNID0gIkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBh
ZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9y
ZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBu
b3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvLiI7CisKKyAgICAgICAgbGV0IGxpc3RDb250YWlu
ZXIgPSBudWxsOworICAgICAgICBmdW5jdGlvbiBjcmVhdGVMaXN0SXRlbSgpIHsKKyAgICAgICAg
ICAgIGxldCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAg
ICBpdGVtLmNsYXNzTGlzdC5hZGQoImxpc3RJdGVtIik7CisgICAgICAgICAgICBpdGVtLnRleHRD
b250ZW50ID0gTE9SRU1fSVBTVU0uc3Vic3RyKAorICAgICAgICAgICAgICAgIE1hdGguZmxvb3Io
TWF0aC5yYW5kb20oKSAqIDEwMCksIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIwMCkgKyAx
NTApOworICAgICAgICAgICAgaXRlbS5zdHlsZS53aGl0ZVNwYWNlID0gIm5vd3JhcCI7CisgICAg
ICAgICAgICBsaXN0Q29udGFpbmVyLmFwcGVuZENoaWxkKGl0ZW0pOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gc2V0dXBUZXN0KCkgeworICAgICAgICAgICAgbGlzdENvbnRhaW5lciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsaXN0Q29udGFpbmVyIik7CisgICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgICAgICAgICAgICAgY3JlYXRlTGlz
dEl0ZW0oKTsKKyAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocnVuVGVz
dCk7CisgICAgICAgIH0KKworICAgICAgICBsZXQgaXNEb25lID0gZmFsc2U7CisgICAgICAgIFBl
cmZUZXN0UnVubmVyLnByZXBhcmVUb01lYXN1cmVWYWx1ZXNBc3luYyh7IGRvbmU6IGRvbmUsIHVu
aXQ6ICdtcycgfSk7CisgICAgICAgIGZ1bmN0aW9uIGRvbmUoKSB7CisgICAgICAgICAgICBpc0Rv
bmUgPSB0cnVlOworICAgICAgICAgICAgbGlzdENvbnRhaW5lci5pbm5lckhUTUwgPSAiIjsKKyAg
ICAgICAgfQorCisgICAgICAgIGxldCBzdGFydFRpbWU7CisgICAgICAgIGxldCBoZWlnaHQgPSAw
OworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgaWYgKHN0YXJ0VGlt
ZSkKKyAgICAgICAgICAgICAgICBQZXJmVGVzdFJ1bm5lci5tZWFzdXJlVmFsdWVBc3luYyhQZXJm
VGVzdFJ1bm5lci5ub3coKSAtIHN0YXJ0VGltZSk7CisKKyAgICAgICAgICAgIGlmICghaXNEb25l
KSB7CisgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gUGVyZlRlc3RSdW5uZXIubm93KCk7Cisg
ICAgICAgICAgICAgICAgbGlzdENvbnRhaW5lci5maXJzdENoaWxkLnN0eWxlLmhlaWdodCA9IGhl
aWdodCArICJweCI7CisgICAgICAgICAgICAgICAgaGVpZ2h0Kys7CisgICAgICAgICAgICAgICAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShydW5UZXN0KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIG9ubG9hZCA9IHNldHVwVGVzdDsKKyAgICA8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ29udGFpbm1lbnQv
Y3NzLWNvbnRhaW4tY2hhbmdlLXNpemUuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQ29udGFpbm1l
bnQvY3NzLWNvbnRhaW4tY2hhbmdlLXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZThiMTI5YjczZWM3
MDk0ZjE4ZjJjY2MzYmNjMjM2YjM3NjQ4ZmYwCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFu
Y2VUZXN0cy9Db250YWlubWVudC9jc3MtY29udGFpbi1jaGFuZ2Utc2l6ZS5odG1sCkBAIC0wLDAg
KzEsNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIC5jb250YWluZXIgeworICAg
ICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIGhlaWdodDogMzAwMHB4OworICAgIH0K
KworICAgIC5yb3cgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIGJvcmRl
ci10b3A6IDFweCBzb2xpZDsKKyAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICAg
ICAgd2lkdGg6IDEyMHB4OworICAgIH0KKworICAgIC5jZWxsIHsKKyAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJlZDsKKyAgICAgICAg
d2lkdGg6IDYwcHg7CisgICAgICAgIGhlaWdodDogMzBweDsKKyAgICAgICAgYm94LXNpemluZzog
Ym9yZGVyLWJveDsKKyAgICAgICAgY29udGFpbjogc2l6ZSBsYXlvdXQ7CisgICAgfQorPC9zdHls
ZT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisgICAgY29uc3QgcmVzaXppbmdFbGVtZW50cyA9IFtdOworICAgIGNvbnN0IHJvd0NvdW50
ID0gMTA7CisgICAgY29uc3QgY29sQ291bnQgPSAxMDsKKworICAgIGZ1bmN0aW9uIHBvcHVsYXRl
RGF0YSgpIHsKKyAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdjb250YWluZXInKTsK
KyAgICAgICAgbGV0IHRvcCA9IDA7CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93Q291
bnQ7IGkrKykgeworICAgICAgICAgICAgbGV0IGxlZnQgPSAwOworICAgICAgICAgICAgY29uc3Qg
cm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICByb3cuY2xh
c3NMaXN0LmFkZCgncm93Jyk7CisgICAgICAgICAgICByb3cuc3R5bGUudG9wID0gdG9wICsgJ3B4
JzsKKyAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY29sQ291bnQ7IGorKykgeworICAg
ICAgICAgICAgICAgIGNvbnN0IGNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTGlzdC5hZGQoJ2NlbGwnKTsKKyAgICAgICAgICAg
ICAgICBjb25zdCByZXNpemluZ0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICAgICAgICAgICAgICByZXNpemluZ0VsZW1lbnQuc3R5bGUud2lkdGggPSAoMTAwICog
UGVyZlRlc3RSdW5uZXIucmFuZG9tKCkpLnRvRml4ZWQoMCkgKyAncHgnOworICAgICAgICAgICAg
ICAgIHJlc2l6aW5nRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnMTAwcHgnOworICAgICAgICAgICAg
ICAgIGNlbGwuYXBwZW5kQ2hpbGQocmVzaXppbmdFbGVtZW50KTsKKyAgICAgICAgICAgICAgICBj
ZWxsLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JzsKKyAgICAgICAgICAgICAgICByb3cuYXBwZW5k
Q2hpbGQoY2VsbCk7CisKKyAgICAgICAgICAgICAgICByZXNpemluZ0VsZW1lbnRzLnB1c2gocmVz
aXppbmdFbGVtZW50KTsKKyAgICAgICAgICAgICAgICBsZWZ0ICs9IDYwOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgdG9wICs9IDMwOworICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENo
aWxkKHJvdyk7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChj
b250YWluZXIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKKyAgICAgICAg
cG9wdWxhdGVEYXRhKCk7CisgICAgICAgIGRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCk7CisKKyAgICAgICAgUGVyZlRlc3RSdW5uZXIubWVhc3VyZVJ1bnNQZXJTZWNvbmQoewor
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICdNZWFzdXJlcyBwZXJmb3JtYW5jZSBvZiBjaGFuZ2lu
ZyB3aWR0aHMgb2Ygbm9kZXMuJywKKyAgICAgICAgICAgIHJ1bjogZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiByZXNpemluZ0VsZW1lbnRzKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUud2lkdGggPSAoMTAwICogUGVyZlRlc3RS
dW5uZXIucmFuZG9tKCkpLnRvRml4ZWQoMCkgKyAncHgnOworICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0sCisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCis8Ym9keSBv
bmxvYWQ9InN0YXJ0VGVzdCgpOyI+Cis8L2JvZHk+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Db250YWlubWVudC9jc3MtY29udGFpbi1s
YXlvdXQtc2l6ZS1pbnNpZGUtY29tcGxleC1kb2N1bWVudC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0
cy9Db250YWlubWVudC9jc3MtY29udGFpbi1sYXlvdXQtc2l6ZS1pbnNpZGUtY29tcGxleC1kb2N1
bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmZGZiMjczNGQwNWI5MzhjY2NlZjk3ODhhYzg4ODNlZjJh
OTQwODgKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0NvbnRhaW5tZW50L2Nz
cy1jb250YWluLWxheW91dC1zaXplLWluc2lkZS1jb21wbGV4LWRvY3VtZW50Lmh0bWwKQEAgLTAs
MCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+UGVyZm9ybWFuY2UgdGVzdCBjaGFu
Z2luZyAiY29udGFpbjogbGF5b3V0IHNpemUiIGJveCBpbnNpZGUgYSBkb2N1bWVudCB3aXRoIGNv
bXBsaWNhdGVkIGFuZCBleHBlbnNpdmUgbGF5b3V0PC90aXRsZT4KKzxzdHlsZT4KKyN3cmFwcGVy
IHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cit9Cisu
cm93IHsKKyAgICBkaXNwbGF5OiBmbGV4OworfQorI3RhcmdldCB7ICAgCisgICAgY29udGFpbjog
bGF5b3V0IHNpemU7Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1
bm5lci5qcyI+PC9zY3JpcHQ+Cis8cHJlIGlkPSJsb2ciPjwvcHJlPgorPGRpdiBpZD0id3JhcHBl
ciI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGxldCB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIndyYXBwZXIiKTsKKyAgICBsZXQgdGFyZ2V0ID0gdW5kZWZpbmVkOworCisgICAgY29u
c3QgTlVNX1JPV1MgPSAxMDsKKyAgICBjb25zdCBET01fREVQVEggPSAxMDA7CisgICAgZnVuY3Rp
b24gY3JlYXRlQ2VsbHMoZGVwdGgpIHsKKyAgICAgICAgbGV0IGNvbnRlbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgaWYgKCF0YXJnZXQpIHsKKyAgICAgICAgICAg
IHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgdGFy
Z2V0LmlkID0gInRhcmdldCI7CisgICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKHRhcmdl
dCk7CisgICAgICAgIH0KKyAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJoMSIpKTsKKyAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJwYXJhZ3JhcGgiKSk7CisKKyAgICAgICAgaWYgKGRlcHRoID4gMCkKKyAg
ICAgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlQ2VsbHMoZGVwdGggLSAxKSk7CisK
KyAgICAgICAgcmV0dXJuIGNvbnRlbnQ7CisgICAgfQorCisgICAgZnVuY3Rpb24gZ2VuZXJhdGVD
b250ZW50KCkgeworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IE5VTV9ST1dTOyBpKyspIHsK
KyAgICAgICAgICAgIGxldCByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICAgICAgICAgIHJvdy5jbGFzc0xpc3QuYWRkKCJyb3ciKTsKKyAgICAgICAgICAgIHJvdy5hcHBl
bmRDaGlsZChjcmVhdGVDZWxscyhET01fREVQVEgpKTsKKyAgICAgICAgICAgIHdyYXBwZXIuYXBw
ZW5kQ2hpbGQocm93KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGFkZFRleHRU
b1RhcmdldCgpIHsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1OyBpKyspIHsKKyAgICAg
ICAgICAgIGxldCB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAg
ICAgICAgICAgdGV4dE5vZGUuaW5uZXJIVE1MID0gInNvbWUgdGV4dCI7CisgICAgICAgICAgICB0
YXJnZXQuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcmVtb3ZlVGV4dEZyb21UYXJnZXQoKSB7CisgICAgICAgIHdoaWxlICh0YXJnZXQuZmly
c3RFbGVtZW50Q2hpbGQpCisgICAgICAgICAgICB0YXJnZXQucmVtb3ZlQ2hpbGQodGFyZ2V0LmZp
cnN0RWxlbWVudENoaWxkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
ICAgICBhZGRUZXh0VG9UYXJnZXQoKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKKyAgICAgICAgcmVtb3ZlVGV4dEZyb21UYXJnZXQoKTsKKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBzZXR1cFRlc3QoKSB7CisgICAgICAgIGdlbmVyYXRlQ29udGVudCgpOworICAgICAgICBk
b2N1bWVudC5ib2R5LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBQZXJmVGVzdFJ1
bm5lci5tZWFzdXJlUnVuc1BlclNlY29uZCh7CisgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ01l
YXN1cmVzIHBlcmZvcm1hbmNlIG9mIGNoYW5naW5nIGNvbnRhaW46IGxheW91dCBzaXplIGJveCBp
bnNpZGUgYSBkb2N1bWVudCB3aXRoIGNvbXBsaWNhdGVkIGFuZCBleHBlbnNpdmUgbGF5b3V0Lics
CisgICAgICAgICAgICBydW46IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBydW5UZXN0
KCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZG9uZTogZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgd3JhcHBlci5pbm5lckhUTUwgPSAiIjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSk7CisgICAgfQorICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc2V0dXBUZXN0
KTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NvbnRhaW5tZW50
L2xhcmdlLWdyaWQuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQ29udGFpbm1lbnQvbGFyZ2UtZ3Jp
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY3ODFjZmIzYjBjMzhmOGRmN2IyYzcxZTIwZDgyMzUyODRjMWU1
ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0NvbnRhaW5tZW50L2xhcmdl
LWdyaWQuaHRtbApAQCAtMCwwICsxLDE1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKwor
PGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0
PgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ij4KKworPHN0eWxlPgoraHRtbCwgYm9keSwgI2dyaWRDb250YWluZXIg
eyBoZWlnaHQ6IDEwMCU7IH0KKwordWktcGFuZSNtYWluIHsKKyAgICBjb250YWluOiBzdHJpY3Q7
CisgICAgbWluLXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CisgICAgd2lkdGg6IDEwMCUgIWltcG9y
dGFudDsKKyAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKKyAgICBtaW4taGVpZ2h0OiAx
MDAlICFpbXBvcnRhbnQ7CisgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7CisgICAgbWF4LWhl
aWdodDogMTAwJSAhaW1wb3J0YW50OworICAgIG92ZXJmbG93OiBoaWRkZW47Cit9CisKK1tyb3cx
XSB7CisgICAgZ3JpZC1yb3ctc3RhcnQ6IDE7CisgICAgZ3JpZC1yb3ctZW5kOiBhdXRvOworfQor
Citbcm93Ml0geworICAgIGdyaWQtcm93LXN0YXJ0OiAyOworICAgIGdyaWQtcm93LWVuZDogYXV0
bzsKK30KKworCitbY29sMl0geworICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAyOworICAgIGdyaWQt
Y29sdW1uLWVuZDogYXV0bzsKK30KKwordWktcGFuZSB7CisgICAgZGlzcGxheTogZ3JpZDsKKyAg
ICBoZWlnaHQ6IDEwMCU7CisgICAgY29udGFpbjogY29udGVudDsKK30KKworW2hncmlkXSB7Cisg
ICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7Cit9CisKK1t2Z3JpZF0geworICAgIGdyaWQtdGVt
cGxhdGUtY29sdW1uczogMWZyOworfQorCit1aS1pY29uIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7Cit9CisKK1tjb2xsYXBzZWQgXSB7IGRpc3BsYXk6IG5vbmU7IH0KKworLmV2ZW50Q2hp
bGRyZW5XcmFwIHsKKyAgICBncmlkLWNvbHVtbjogMS9zcGFuIDM7CisgICAgY29udGFpbjogY29u
dGVudDsKK30KKworLmV2ZW50Q2hpbGRyZW5Db250YWluZXIgeworICAgIGRpc3BsYXk6IGdyaWQ7
CisgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzZW0gMHB4IDFmcjsKKyAgICBjb250YWluOiBj
b250ZW50OworfQorCisuYWN0aW9uQmxvY2tXcmFwIHsKKyAgICBncmlkLWNvbHVtbjogMzsKKyAg
ICBhbGlnbi1zZWxmOiBzdGFydDsKKyAgICBjb250YWluOiBsYXlvdXQgc3R5bGU7CisgICAgcG9z
aXRpb246IHJlbGF0aXZlOworfQorCisuYWN0aW9uQmxvY2sgeworICAgIGRpc3BsYXk6IGdyaWQ7
CisgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsK
KyAgICBjb250YWluOiBjb250ZW50OworfQorCis8L3N0eWxlPgorCis8L2hlYWQ+CisKKzxib2R5
PgorICAgIDxwcmUgaWQ9ImxvZyI+PC9wcmU+CisKKyAgICA8ZGl2IGlkPSJncmlkQ29udGFpbmVy
Ij4KKyAgICAgICAgPHVpLXBhbmUgaWQ9Im1haW4iIHZncmlkPSIiIHN0eWxlPSJncmlkLXRlbXBs
YXRlLXJvd3M6IDFmcjsiPgorICAgICAgICAgICAgPHVpLXBhbmUgaWQ9Im1pZGRsZSIgcm93MT0i
IiBoZ3JpZD0iIiBzdHlsZT0iZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzMjBweCAxZnIgMzAwcHg7
Ij4KKyAgICAgICAgICAgICAgICA8dWktcGFuZSBjb2wyPSIiPgorICAgICAgICAgICAgICAgICAg
ICA8dWktYm9keSByb3cyPSIiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHVpLXBhbmUgY2xh
c3M9ImV2ZW50U2hlZXRWaWV3UGFuZSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVp
LWJvZHkgcm93Mj0iIiBjbGFzcz0iZXZlbnRTaGVldFZpZXciPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGRpdiBpZD0idGhpc2lzdGhlb25lIiBjbGFzcz0iZXZlbnRDaGls
ZHJlbldyYXAiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImV2ZW50Q2hpbGRyZW5Db250YWluZXIiPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25CbG9ja1dyYXAiPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0
aW9uQmxvY2siIGlkPSJpbnNlcnRoZXJlIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L3VpLWJvZHk+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3VpLXBhbmU+
CisgICAgICAgICAgICAgICAgICAgIDwvdWktYm9keT4KKyAgICAgICAgICAgICAgICA8L3VpLXBh
bmU+CisKKyAgICAgICAgICAgIDwvdWktcGFuZT4KKyAgICAgICAgPC91aS1wYW5lPgorICAgIDwv
ZGl2PgorCisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0aGlzaXN0aGVvbmUnKTsKKyAgICAgICAgdmFyIGdyaWRDb250YWluZXIgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JpZENvbnRhaW5lcicpOworCisgICAgICAgIGZ1bmN0
aW9uIHNldHVwKCkgeworICAgICAgICAgIGxldCBpbnNlcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaW5zZXJ0aGVyZScpOworICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTA7ICsr
aSkgeworICAgICAgICAgICAgbGV0IG5hbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICAgICAgICAgIG5hbWUuY2xhc3NOYW1lID0gJ2FjdGlvbk5hbWVDZWxsJzsKKyAgICAg
ICAgICAgIG5hbWUuaW5uZXJIVE1MID0gJzx1aS1pY29uIHN0eWxlPSJ3aWR0aDogMjBweDsgaGVp
Z2h0OiAyMHB4OyAiPjwvdWktaWNvbj48c3BhbiBjbGFzcz0iYWN0aW9uT2JqZWN0TmFtZVNwYW4i
PkJ1dHRvbjwvc3Bhbj4nOworICAgICAgICAgICAgbGV0IGRlc2MgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgIGRlc2MuY2xhc3NOYW1lID0gJ2FjdGlvbkRlc2ND
ZWxsJzsKKyAgICAgICAgICAgIGRlc2MuaW5uZXJIVE1MID0gJ1NldCBwb3NpdGlvbiB0byA8ZXZl
bnQtcGFyYW1ldGVyIGRhdGEtaW5kZXg9IjAiPiA8dWktaWNvbiBjbGFzcz0ib2JqZWN0UGFyYW1l
dGVySWNvbiIgc3R5bGU9IndpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7ICI+PC91aS1pY29uPjxz
cGFuIGNsYXNzPSJvYmplY3RQYXJhbWV0ZXJPYmplY3ROYW1lIj5TcHJpdGU8L3NwYW4+IDwvZXZl
bnQtcGFyYW1ldGVyPiA8ZW0+KGltYWdlIHBvaW50IDxldmVudC1wYXJhbWV0ZXIgZGF0YS1pbmRl
eD0iMSI+MzIxMzIxMzwvZXZlbnQtcGFyYW1ldGVyPik8L2VtPic7CisgICAgICAgICAgICBpbnNl
cnQuYXBwZW5kQ2hpbGQobmFtZSk7CisgICAgICAgICAgICBpbnNlcnQuYXBwZW5kQ2hpbGQoZGVz
Yyk7CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsK
KyAgICAgICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoJ2NvbGxhcHNlZCcsICcnKTsKKyAgICAg
ICAgICAgIGdyaWRDb250YWluZXIub2Zmc2V0SGVpZ2h0OworCisgICAgICAgICAgICB0YXJnZXQu
cmVtb3ZlQXR0cmlidXRlKCdjb2xsYXBzZWQnKTsKKyAgICAgICAgICAgIGdyaWRDb250YWluZXIu
b2Zmc2V0SGVpZ2h0OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZG9uZSgpIHsKKyAg
ICAgICAgICBsZXQgaW5zZXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc2VydGhlcmUn
KTsKKyAgICAgICAgICBpbnNlcnQuaW5uZXJIVE1MID0gIiI7CisgICAgICAgIH0KKworICAgICAg
ICBzZXR1cCgpOworICAgICAgICBQZXJmVGVzdFJ1bm5lci5tZWFzdXJlUnVuc1BlclNlY29uZCh7
CisgICAgICAgICAgICBkZXNjcmlwdGlvbjogIk1lYXN1cmVzIHBlcmZvcm1hbmNlIG9mIGdldHRp
bmcgb2Zmc2V0SGVpZ2h0IG9mIGEgbGFyZ2UgZ3JpZCBjb250YWluZXIuIiwKKyAgICAgICAgICAg
IHJ1bjogdGVzdCwKKyAgICAgICAgICAgIGRvbmU6IGRvbmUKKyAgICAgICAgfSk7CisgICAgPC9z
Y3JpcHQ+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMv
TGF5b3V0L2Nzcy1jb250YWluLWNoYW5nZS1zaXplLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0xh
eW91dC9jc3MtY29udGFpbi1jaGFuZ2Utc2l6ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5ZThiMTI5YjczZWM3MDk0ZjE4ZjJjY2MzYmNjMjM2YjM3NjQ4ZmYwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1BlcmZvcm1hbmNlVGVzdHMv
TGF5b3V0L2Nzcy1jb250YWluLWNoYW5nZS1zaXplLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3
NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzdHlsZT4KLSAgICAuY29udGFpbmVyIHsKLSAg
ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgICAgICBoZWlnaHQ6IDMwMDBweDsKLSAgICB9
Ci0KLSAgICAucm93IHsKLSAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgICAgICBib3Jk
ZXItdG9wOiAxcHggc29saWQ7Ci0gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci0gICAg
ICAgIHdpZHRoOiAxMjBweDsKLSAgICB9Ci0KLSAgICAuY2VsbCB7Ci0gICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKLSAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZWQ7Ci0gICAgICAg
IHdpZHRoOiA2MHB4OwotICAgICAgICBoZWlnaHQ6IDMwcHg7Ci0gICAgICAgIGJveC1zaXppbmc6
IGJvcmRlci1ib3g7Ci0gICAgICAgIGNvbnRhaW46IHNpemUgbGF5b3V0OwotICAgIH0KLTwvc3R5
bGU+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotICAgIGNvbnN0IHJlc2l6aW5nRWxlbWVudHMgPSBbXTsKLSAgICBjb25zdCByb3dDb3Vu
dCA9IDEwOwotICAgIGNvbnN0IGNvbENvdW50ID0gMTA7Ci0KLSAgICBmdW5jdGlvbiBwb3B1bGF0
ZURhdGEoKSB7Ci0gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwotICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnY29udGFpbmVyJyk7
Ci0gICAgICAgIGxldCB0b3AgPSAwOwotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd0Nv
dW50OyBpKyspIHsKLSAgICAgICAgICAgIGxldCBsZWZ0ID0gMDsKLSAgICAgICAgICAgIGNvbnN0
IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICAgICAgcm93LmNs
YXNzTGlzdC5hZGQoJ3JvdycpOwotICAgICAgICAgICAgcm93LnN0eWxlLnRvcCA9IHRvcCArICdw
eCc7Ci0gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbENvdW50OyBqKyspIHsKLSAg
ICAgICAgICAgICAgICBjb25zdCBjZWxsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci0gICAgICAgICAgICAgICAgY2VsbC5jbGFzc0xpc3QuYWRkKCdjZWxsJyk7Ci0gICAgICAgICAg
ICAgICAgY29uc3QgcmVzaXppbmdFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7Ci0gICAgICAgICAgICAgICAgcmVzaXppbmdFbGVtZW50LnN0eWxlLndpZHRoID0gKDEwMCAq
IFBlcmZUZXN0UnVubmVyLnJhbmRvbSgpKS50b0ZpeGVkKDApICsgJ3B4JzsKLSAgICAgICAgICAg
ICAgICByZXNpemluZ0VsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJzEwMHB4JzsKLSAgICAgICAgICAg
ICAgICBjZWxsLmFwcGVuZENoaWxkKHJlc2l6aW5nRWxlbWVudCk7Ci0gICAgICAgICAgICAgICAg
Y2VsbC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7Ci0gICAgICAgICAgICAgICAgcm93LmFwcGVu
ZENoaWxkKGNlbGwpOwotCi0gICAgICAgICAgICAgICAgcmVzaXppbmdFbGVtZW50cy5wdXNoKHJl
c2l6aW5nRWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgbGVmdCArPSA2MDsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHRvcCArPSAzMDsKLSAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRD
aGlsZChyb3cpOwotICAgICAgICB9Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
Y29udGFpbmVyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7Ci0gICAgICAg
IHBvcHVsYXRlRGF0YSgpOwotICAgICAgICBkb2N1bWVudC5ib2R5LmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpOwotCi0gICAgICAgIFBlcmZUZXN0UnVubmVyLm1lYXN1cmVSdW5zUGVyU2Vjb25kKHsK
LSAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTWVhc3VyZXMgcGVyZm9ybWFuY2Ugb2YgY2hhbmdp
bmcgd2lkdGhzIG9mIG5vZGVzLicsCi0gICAgICAgICAgICBydW46IGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgcmVzaXppbmdFbGVtZW50cykgewot
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLndpZHRoID0gKDEwMCAqIFBlcmZUZXN0
UnVubmVyLnJhbmRvbSgpKS50b0ZpeGVkKDApICsgJ3B4JzsKLSAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9LAotICAgICAgICB9KTsKLSAgICB9Ci08L3NjcmlwdD4KLQotPGJvZHkg
b25sb2FkPSJzdGFydFRlc3QoKTsiPgotPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTGF5b3V0L2Nzcy1jb250YWluLWxheW91
dC1zaXplLWluc2lkZS1jb21wbGV4LWRvY3VtZW50Lmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0xh
eW91dC9jc3MtY29udGFpbi1sYXlvdXQtc2l6ZS1pbnNpZGUtY29tcGxleC1kb2N1bWVudC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZmRmYjI3MzRkMDViOTM4Y2NjZWY5Nzg4
YWM4ODgzZWYyYTk0MDg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvTGF5b3V0L2Nzcy1jb250YWluLWxheW91dC1zaXplLWlu
c2lkZS1jb21wbGV4LWRvY3VtZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5QZXJmb3JtYW5jZSB0ZXN0IGNoYW5naW5nICJjb250
YWluOiBsYXlvdXQgc2l6ZSIgYm94IGluc2lkZSBhIGRvY3VtZW50IHdpdGggY29tcGxpY2F0ZWQg
YW5kIGV4cGVuc2l2ZSBsYXlvdXQ8L3RpdGxlPgotPHN0eWxlPgotI3dyYXBwZXIgewotICAgIGRp
c3BsYXk6IGZsZXg7Ci0gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKLX0KLS5yb3cgewotICAg
IGRpc3BsYXk6IGZsZXg7Ci19Ci0jdGFyZ2V0IHsgICAKLSAgICBjb250YWluOiBsYXlvdXQgc2l6
ZTsKLX0KLQotPC9zdHlsZT4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48
L3NjcmlwdD4KLTxwcmUgaWQ9ImxvZyI+PC9wcmU+Ci08ZGl2IGlkPSJ3cmFwcGVyIj48L2Rpdj4K
LTxzY3JpcHQ+Ci0gICAgbGV0IHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid3Jh
cHBlciIpOwotICAgIGxldCB0YXJnZXQgPSB1bmRlZmluZWQ7Ci0KLSAgICBjb25zdCBOVU1fUk9X
UyA9IDEwOwotICAgIGNvbnN0IERPTV9ERVBUSCA9IDEwMDsKLSAgICBmdW5jdGlvbiBjcmVhdGVD
ZWxscyhkZXB0aCkgewotICAgICAgICBsZXQgY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwotICAgICAgICBpZiAoIXRhcmdldCkgewotICAgICAgICAgICAgdGFyZ2V0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICB0YXJnZXQuaWQgPSAi
dGFyZ2V0IjsKLSAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLSAgICAg
ICAgfQotICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImgxIikpOwotICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInBhcmFncmFwaCIpKTsKLQotICAgICAgICBpZiAoZGVwdGggPiAwKQotICAgICAgICAgICAg
Y29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVDZWxscyhkZXB0aCAtIDEpKTsKLQotICAgICAgICBy
ZXR1cm4gY29udGVudDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBnZW5lcmF0ZUNvbnRlbnQoKSB7
Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTlVNX1JPV1M7IGkrKykgewotICAgICAgICAg
ICAgbGV0IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICAgICAg
cm93LmNsYXNzTGlzdC5hZGQoInJvdyIpOwotICAgICAgICAgICAgcm93LmFwcGVuZENoaWxkKGNy
ZWF0ZUNlbGxzKERPTV9ERVBUSCkpOwotICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChy
b3cpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWRkVGV4dFRvVGFyZ2V0KCkg
ewotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykgewotICAgICAgICAgICAgbGV0
IHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICB0
ZXh0Tm9kZS5pbm5lckhUTUwgPSAic29tZSB0ZXh0IjsKLSAgICAgICAgICAgIHRhcmdldC5hcHBl
bmRDaGlsZCh0ZXh0Tm9kZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiByZW1v
dmVUZXh0RnJvbVRhcmdldCgpIHsKLSAgICAgICAgd2hpbGUgKHRhcmdldC5maXJzdEVsZW1lbnRD
aGlsZCkKLSAgICAgICAgICAgIHRhcmdldC5yZW1vdmVDaGlsZCh0YXJnZXQuZmlyc3RFbGVtZW50
Q2hpbGQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGFkZFRl
eHRUb1RhcmdldCgpOwotICAgICAgICBkb2N1bWVudC5ib2R5LmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOwotICAgICAgICByZW1vdmVUZXh0RnJvbVRhcmdldCgpOwotICAgICAgICBkb2N1bWVudC5i
b2R5LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNldHVw
VGVzdCgpIHsKLSAgICAgICAgZ2VuZXJhdGVDb250ZW50KCk7Ci0gICAgICAgIGRvY3VtZW50LmJv
ZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgIFBlcmZUZXN0UnVubmVyLm1lYXN1
cmVSdW5zUGVyU2Vjb25kKHsKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTWVhc3VyZXMgcGVy
Zm9ybWFuY2Ugb2YgY2hhbmdpbmcgY29udGFpbjogbGF5b3V0IHNpemUgYm94IGluc2lkZSBhIGRv
Y3VtZW50IHdpdGggY29tcGxpY2F0ZWQgYW5kIGV4cGVuc2l2ZSBsYXlvdXQuJywKLSAgICAgICAg
ICAgIHJ1bjogZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKLSAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICBkb25lOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
ICB3cmFwcGVyLmlubmVySFRNTCA9ICIiOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAg
ICB9Ci0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShzZXR1cFRlc3QpOwotCi08L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvTGF5b3V0L2xhcmdlLWdyaWQuaHRt
bCBiL1BlcmZvcm1hbmNlVGVzdHMvTGF5b3V0L2xhcmdlLWdyaWQuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNjc4MWNmYjNiMGMzOGY4ZGY3YjJjNzFlMjBkODIzNTI4NGMxZTVl
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9QZXJmb3Jt
YW5jZVRlc3RzL0xheW91dC9sYXJnZS1ncmlkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNTUg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLQotPGhlYWQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgotICAgIDxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KLQot
PHN0eWxlPgotaHRtbCwgYm9keSwgI2dyaWRDb250YWluZXIgeyBoZWlnaHQ6IDEwMCU7IH0KLQot
dWktcGFuZSNtYWluIHsKLSAgICBjb250YWluOiBzdHJpY3Q7Ci0gICAgbWluLXdpZHRoOiAxMDAl
ICFpbXBvcnRhbnQ7Ci0gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKLSAgICBtYXgtd2lkdGg6
IDEwMCUgIWltcG9ydGFudDsKLSAgICBtaW4taGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7Ci0gICAg
aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7Ci0gICAgbWF4LWhlaWdodDogMTAwJSAhaW1wb3J0YW50
OwotICAgIG92ZXJmbG93OiBoaWRkZW47Ci19Ci0KLVtyb3cxXSB7Ci0gICAgZ3JpZC1yb3ctc3Rh
cnQ6IDE7Ci0gICAgZ3JpZC1yb3ctZW5kOiBhdXRvOwotfQotCi1bcm93Ml0gewotICAgIGdyaWQt
cm93LXN0YXJ0OiAyOwotICAgIGdyaWQtcm93LWVuZDogYXV0bzsKLX0KLQotCi1bY29sMl0gewot
ICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAyOwotICAgIGdyaWQtY29sdW1uLWVuZDogYXV0bzsKLX0K
LQotdWktcGFuZSB7Ci0gICAgZGlzcGxheTogZ3JpZDsKLSAgICBoZWlnaHQ6IDEwMCU7Ci0gICAg
Y29udGFpbjogY29udGVudDsKLX0KLQotW2hncmlkXSB7Ci0gICAgZ3JpZC10ZW1wbGF0ZS1yb3dz
OiAxZnI7Ci19Ci0KLVt2Z3JpZF0gewotICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwot
fQotCi11aS1pY29uIHsKLSAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci19Ci0KLVtjb2xsYXBz
ZWQgXSB7IGRpc3BsYXk6IG5vbmU7IH0KLQotLmV2ZW50Q2hpbGRyZW5XcmFwIHsKLSAgICBncmlk
LWNvbHVtbjogMS9zcGFuIDM7Ci0gICAgY29udGFpbjogY29udGVudDsKLX0KLQotLmV2ZW50Q2hp
bGRyZW5Db250YWluZXIgewotICAgIGRpc3BsYXk6IGdyaWQ7Ci0gICAgZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zOiAzZW0gMHB4IDFmcjsKLSAgICBjb250YWluOiBjb250ZW50OwotfQotCi0uYWN0aW9u
QmxvY2tXcmFwIHsKLSAgICBncmlkLWNvbHVtbjogMzsKLSAgICBhbGlnbi1zZWxmOiBzdGFydDsK
LSAgICBjb250YWluOiBsYXlvdXQgc3R5bGU7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotfQot
Ci0uYWN0aW9uQmxvY2sgewotICAgIGRpc3BsYXk6IGdyaWQ7Ci0gICAgZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zOiAxZnI7Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgICBjb250YWluOiBjb250ZW50
OwotfQotCi08L3N0eWxlPgotCi08L2hlYWQ+Ci0KLTxib2R5PgotICAgIDxwcmUgaWQ9ImxvZyI+
PC9wcmU+Ci0KLSAgICA8ZGl2IGlkPSJncmlkQ29udGFpbmVyIj4KLSAgICAgICAgPHVpLXBhbmUg
aWQ9Im1haW4iIHZncmlkPSIiIHN0eWxlPSJncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsiPgotICAg
ICAgICAgICAgPHVpLXBhbmUgaWQ9Im1pZGRsZSIgcm93MT0iIiBoZ3JpZD0iIiBzdHlsZT0iZ3Jp
ZC10ZW1wbGF0ZS1jb2x1bW5zOiAzMjBweCAxZnIgMzAwcHg7Ij4KLSAgICAgICAgICAgICAgICA8
dWktcGFuZSBjb2wyPSIiPgotICAgICAgICAgICAgICAgICAgICA8dWktYm9keSByb3cyPSIiPgot
ICAgICAgICAgICAgICAgICAgICAgICAgPHVpLXBhbmUgY2xhc3M9ImV2ZW50U2hlZXRWaWV3UGFu
ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVpLWJvZHkgcm93Mj0iIiBjbGFzcz0i
ZXZlbnRTaGVldFZpZXciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp
diBpZD0idGhpc2lzdGhlb25lIiBjbGFzcz0iZXZlbnRDaGlsZHJlbldyYXAiPgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50Q2hpbGRyZW5D
b250YWluZXIiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJhY3Rpb25CbG9ja1dyYXAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uQmxvY2siIGlkPSJpbnNlcnRo
ZXJlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv
ZGl2PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VpLWJvZHk+
Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L3VpLXBhbmU+Ci0gICAgICAgICAgICAgICAgICAg
IDwvdWktYm9keT4KLSAgICAgICAgICAgICAgICA8L3VpLXBhbmU+Ci0KLSAgICAgICAgICAgIDwv
dWktcGFuZT4KLSAgICAgICAgPC91aS1wYW5lPgotICAgIDwvZGl2PgotCi0gICAgPHNjcmlwdD4K
LSAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aGlzaXN0aGVv
bmUnKTsKLSAgICAgICAgdmFyIGdyaWRDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZ3JpZENvbnRhaW5lcicpOwotCi0gICAgICAgIGZ1bmN0aW9uIHNldHVwKCkgewotICAgICAg
ICAgIGxldCBpbnNlcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5zZXJ0aGVyZScpOwot
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTA7ICsraSkgewotICAgICAgICAgICAgbGV0
IG5hbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgICAgIG5hbWUu
Y2xhc3NOYW1lID0gJ2FjdGlvbk5hbWVDZWxsJzsKLSAgICAgICAgICAgIG5hbWUuaW5uZXJIVE1M
ID0gJzx1aS1pY29uIHN0eWxlPSJ3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyAiPjwvdWktaWNv
bj48c3BhbiBjbGFzcz0iYWN0aW9uT2JqZWN0TmFtZVNwYW4iPkJ1dHRvbjwvc3Bhbj4nOwotICAg
ICAgICAgICAgbGV0IGRlc2MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAg
ICAgICAgIGRlc2MuY2xhc3NOYW1lID0gJ2FjdGlvbkRlc2NDZWxsJzsKLSAgICAgICAgICAgIGRl
c2MuaW5uZXJIVE1MID0gJ1NldCBwb3NpdGlvbiB0byA8ZXZlbnQtcGFyYW1ldGVyIGRhdGEtaW5k
ZXg9IjAiPiA8dWktaWNvbiBjbGFzcz0ib2JqZWN0UGFyYW1ldGVySWNvbiIgc3R5bGU9IndpZHRo
OiAyMHB4OyBoZWlnaHQ6IDIwcHg7ICI+PC91aS1pY29uPjxzcGFuIGNsYXNzPSJvYmplY3RQYXJh
bWV0ZXJPYmplY3ROYW1lIj5TcHJpdGU8L3NwYW4+IDwvZXZlbnQtcGFyYW1ldGVyPiA8ZW0+KGlt
YWdlIHBvaW50IDxldmVudC1wYXJhbWV0ZXIgZGF0YS1pbmRleD0iMSI+MzIxMzIxMzwvZXZlbnQt
cGFyYW1ldGVyPik8L2VtPic7Ci0gICAgICAgICAgICBpbnNlcnQuYXBwZW5kQ2hpbGQobmFtZSk7
Ci0gICAgICAgICAgICBpbnNlcnQuYXBwZW5kQ2hpbGQoZGVzYyk7Ci0gICAgICAgICAgfQotICAg
ICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgICAgIHRhcmdldC5z
ZXRBdHRyaWJ1dGUoJ2NvbGxhcHNlZCcsICcnKTsKLSAgICAgICAgICAgIGdyaWRDb250YWluZXIu
b2Zmc2V0SGVpZ2h0OwotCi0gICAgICAgICAgICB0YXJnZXQucmVtb3ZlQXR0cmlidXRlKCdjb2xs
YXBzZWQnKTsKLSAgICAgICAgICAgIGdyaWRDb250YWluZXIub2Zmc2V0SGVpZ2h0OwotICAgICAg
ICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gZG9uZSgpIHsKLSAgICAgICAgICBsZXQgaW5zZXJ0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc2VydGhlcmUnKTsKLSAgICAgICAgICBpbnNlcnQu
aW5uZXJIVE1MID0gIiI7Ci0gICAgICAgIH0KLQotICAgICAgICBzZXR1cCgpOwotICAgICAgICBQ
ZXJmVGVzdFJ1bm5lci5tZWFzdXJlUnVuc1BlclNlY29uZCh7Ci0gICAgICAgICAgICBkZXNjcmlw
dGlvbjogIk1lYXN1cmVzIHBlcmZvcm1hbmNlIG9mIGdldHRpbmcgb2Zmc2V0SGVpZ2h0IG9mIGEg
bGFyZ2UgZ3JpZCBjb250YWluZXIuIiwKLSAgICAgICAgICAgIHJ1bjogdGVzdCwKLSAgICAgICAg
ICAgIGRvbmU6IGRvbmUKLSAgICAgICAgfSk7Ci0gICAgPC9zY3JpcHQ+Ci08L2JvZHk+Ci0KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvUGFpbnQvbG90cy1vZi1zZWxmLXBh
aW50aW5nLWxheWVycy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9QYWludC9sb3RzLW9mLXNlbGYt
cGFpbnRpbmctbGF5ZXJzLmh0bWwKaW5kZXggMWE3YTBiNTQ5YTc1YzU3ZThlNjA1ZmU4ODk1ZmY4
MmI1NjQ4ZTRlZS4uMjUwZjQ5OGRjODJlZmY2ZDUxMmE0ODQwNjEyMWMyOTE2OWM4ZDM2MSAxMDA2
NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9QYWludC9sb3RzLW9mLXNlbGYtcGFpbnRpbmctbGF5
ZXJzLmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9QYWludC9sb3RzLW9mLXNlbGYtcGFpbnRp
bmctbGF5ZXJzLmh0bWwKQEAgLTM2LDE5ICszNiwxOCBAQAogICAgICAgICAgICAgbGlzdENvbnRh
aW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsaXN0Q29udGFpbmVyIik7CiAgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyArK2kpCiAgICAgICAgICAgICAgICAgY3Jl
YXRlTGlzdEl0ZW0oKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7CiAgICAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJ1blRl
c3QpOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIGlzRG9uZSA9IGZhbHNlOworICAgICAgICBs
ZXQgaXNEb25lID0gZmFsc2U7CiAgICAgICAgIFBlcmZUZXN0UnVubmVyLnByZXBhcmVUb01lYXN1
cmVWYWx1ZXNBc3luYyh7IGRvbmU6IGRvbmUsIHVuaXQ6ICdtcycgfSk7CiAgICAgICAgIGZ1bmN0
aW9uIGRvbmUoKSB7CiAgICAgICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgICAgICAgICAgbGlz
dENvbnRhaW5lci5pbm5lckhUTUwgPSAiIjsKICAgICAgICAgfQogCi0gICAgICAgIHZhciBzdGFy
dFRpbWU7Ci0gICAgICAgIHZhciBoZWlnaHQgPSAwOworICAgICAgICBsZXQgc3RhcnRUaW1lOwor
ICAgICAgICBsZXQgaGVpZ2h0ID0gMDsKICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAg
ICAgICAgICAgIGlmIChzdGFydFRpbWUpCiAgICAgICAgICAgICAgICAgUGVyZlRlc3RSdW5uZXIu
bWVhc3VyZVZhbHVlQXN5bmMoUGVyZlRlc3RSdW5uZXIubm93KCkgLSBzdGFydFRpbWUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>