<?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>98548</bug_id>
          
          <creation_ts>2012-10-05 12:31:34 -0700</creation_ts>
          <short_desc>[CSS Exclusions] Additional simple polygon tests</short_desc>
          <delta_ts>2012-10-17 09:27:15 -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>CSS</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>96811</dependson>
          <blocked>99342</blocked>
    
    <blocked>99343</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>735884</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-10-05 12:31:34 -0700</bug_when>
    <thetext>A set of tests that check the support for polygonal shape-inside exclusions is needed.  Currently shape-inside layout assumes that the top and bottom edges of the polygon are horizontal and that lines that overlap the polygon only cross the polygon twice.  A set of tests that checks this subset of the general case is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739067</commentid>
    <comment_count>1</comment_count>
      <attachid>168026</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-10-10 10:25:29 -0700</bug_when>
    <thetext>Created attachment 168026
Patch

Added a pair of CSS Exclusions shape-inside ref-tests for regular polygons with 8 and 16 sides. Also made some small revisions to the supporting code, simple-polyon.js, and the existing simple polygon tests, to localize the conversion from float to layout coordinates and to cleanup the extraneous vertices argument int the createPolygonShapeInsideTestCase functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739151</commentid>
    <comment_count>2</comment_count>
      <attachid>168026</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 11:21:51 -0700</bug_when>
    <thetext>Comment on attachment 168026
Patch

Attachment 168026 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14260099

New failing tests:
fast/exclusions/shape-inside/shape-inside-regular-polygon16.html
fast/exclusions/shape-inside/shape-inside-regular-polygon8.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739312</commentid>
    <comment_count>3</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-10-10 14:41:48 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 168026 [details])
&gt; Attachment 168026 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/14260099
&gt; 
&gt; New failing tests:
&gt; fast/exclusions/shape-inside/shape-inside-regular-polygon16.html
&gt; fast/exclusions/shape-inside/shape-inside-regular-polygon8.html

It seems we need to generate pixel test results for these. Otherwise the patch looks okay to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739313</commentid>
    <comment_count>4</comment_count>
      <attachid>168074</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-10-10 14:42:30 -0700</bug_when>
    <thetext>Created attachment 168074
Patch

Detect subpixel layout support hand handle rounding the left edge of line segment intervals by actually rounding in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739536</commentid>
    <comment_count>5</comment_count>
      <attachid>168074</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 20:03:15 -0700</bug_when>
    <thetext>Comment on attachment 168074
Patch

Attachment 168074 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14258397

New failing tests:
fast/exclusions/shape-inside/shape-inside-regular-polygon8.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740002</commentid>
    <comment_count>6</comment_count>
      <attachid>168232</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-10-11 08:38:02 -0700</bug_when>
    <thetext>Created attachment 168232
Patch

Revised simple-polygon.js subpixelRound() function to more closely match FractionLayout(floatValue).round().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740042</commentid>
    <comment_count>7</comment_count>
      <attachid>168232</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 09:26:57 -0700</bug_when>
    <thetext>Comment on attachment 168232
Patch

Attachment 168232 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14264015

New failing tests:
fast/exclusions/shape-inside/shape-inside-regular-polygon8.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740275</commentid>
    <comment_count>8</comment_count>
      <attachid>168280</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-10-11 14:42:09 -0700</bug_when>
    <thetext>Created attachment 168280
Patch

After testing on a Chromium build, corrected two problems: regular polygons were not always exactly symmetric vis the Y axis, shape-inside-regular-polygon8-expected.html was not initializing hasSubpixelSupport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741383</commentid>
    <comment_count>9</comment_count>
      <attachid>168280</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-12 19:10:13 -0700</bug_when>
    <thetext>Comment on attachment 168280
Patch

Rejecting attachment 168280 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

Last 500 characters of output:
ueue/Tools/Scripts/webkitpy/tool/commands/stepsequence.py&quot;, line 70, in run_and_handle_errors
    self._run(tool, options, state)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/tool/commands/stepsequence.py&quot;, line 64, in _run
    step(tool, options).run(state)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 50, in run
    if changelog_entry.has_valid_reviewer():
AttributeError: &apos;NoneType&apos; object has no attribute &apos;has_valid_reviewer&apos;

Full output: http://queues.webkit.org/results/14287113</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743508</commentid>
    <comment_count>10</comment_count>
      <attachid>168280</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-16 13:46:38 -0700</bug_when>
    <thetext>Comment on attachment 168280
Patch

Lets try it again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743515</commentid>
    <comment_count>11</comment_count>
      <attachid>168280</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 13:53:51 -0700</bug_when>
    <thetext>Comment on attachment 168280
Patch

Rejecting attachment 168280 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

Last 500 characters of output:
ueue/Tools/Scripts/webkitpy/tool/commands/stepsequence.py&quot;, line 70, in run_and_handle_errors
    self._run(tool, options, state)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/tool/commands/stepsequence.py&quot;, line 64, in _run
    step(tool, options).run(state)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 50, in run
    if changelog_entry.has_valid_reviewer():
AttributeError: &apos;NoneType&apos; object has no attribute &apos;has_valid_reviewer&apos;

Full output: http://queues.webkit.org/results/14388301</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743647</commentid>
    <comment_count>12</comment_count>
      <attachid>169043</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-10-16 15:41:36 -0700</bug_when>
    <thetext>Created attachment 169043
Patch

Advanced ChangeLog entry date by 1000 years.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743649</commentid>
    <comment_count>13</comment_count>
      <attachid>169043</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 15:44:35 -0700</bug_when>
    <thetext>Comment on attachment 169043
Patch

Rejecting attachment 169043 from commit-queue.

giles_joplin@yahoo.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743650</commentid>
    <comment_count>14</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-10-16 15:46:14 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=169043) [details]
&gt; Patch
&gt; 
&gt; Advanced ChangeLog entry date by 1000 years.

Sorry.  That&apos;s 2000 years.  Hard to keep the millennia straight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743651</commentid>
    <comment_count>15</comment_count>
      <attachid>169044</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-10-16 15:47:36 -0700</bug_when>
    <thetext>Created attachment 169044
Patch

Resubmitting after accidentally setting the commit flag myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744304</commentid>
    <comment_count>16</comment_count>
      <attachid>169044</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 09:27:11 -0700</bug_when>
    <thetext>Comment on attachment 169044
Patch

Clearing flags on attachment: 169044

Committed r131610: &lt;http://trac.webkit.org/changeset/131610&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744305</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 09:27:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168026</attachid>
            <date>2012-10-10 10:25:29 -0700</date>
            <delta_ts>2012-10-10 14:42:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>17264</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMDc1NWRmLi5mYjdhYjkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTItMTAt
MTAgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBBZGRpdGlvbmFsIHNpbXBsZSBwb2x5Z29uIHRlc3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODU0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgcGFpciBvZiBDU1MgRXhjbHVz
aW9ucyBzaGFwZS1pbnNpZGUgcmVmLXRlc3RzIGZvciByZWd1bGFyIHBvbHlnb25zCisgICAgICAg
IHdpdGggOCBhbmQgMTYgc2lkZXMuIEFsc28gbWFkZSBzb21lIHNtYWxsIHJldmlzaW9ucyB0byB0
aGUgc3VwcG9ydGluZyBjb2RlLAorICAgICAgICBzaW1wbGUtcG9seW9uLmpzLCBhbmQgdGhlIGV4
aXN0aW5nIHNpbXBsZSBwb2x5Z29uIHRlc3RzLCB0byBsb2NhbGl6ZSB0aGUgY29udmVyc2lvbgor
ICAgICAgICBmcm9tIGZsb2F0IHRvIGxheW91dCBjb29yZGluYXRlcyBhbmQgdG8gY2xlYW51cCB0
aGUgZXh0cmFuZW91cyB2ZXJ0aWNlcyBhcmd1bWVudAorICAgICAgICBpbnQgdGhlIGNyZWF0ZVBv
bHlnb25TaGFwZUluc2lkZVRlc3RDYXNlIGZ1bmN0aW9ucy4KKworICAgICAgICAqIGZhc3QvZXhj
bHVzaW9ucy9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanM6CisgICAgICAgIChjcmVhdGVSZWd1
bGFyUG9seWdvblZlcnRpY2VzKToKKyAgICAgICAgKHBvbHlnb25YSW50ZXJjZXB0cyk6CisgICAg
ICAgIChzaW11bGF0ZVBvbHlnb25TaGFwZSk6CisgICAgICAgIChnZW5lcmF0ZVNpbXVsYXRlZFBv
bHlnb25TaGFwZUluc2lkZUVsZW1lbnQpOgorICAgICAgICAoY3JlYXRlUG9seWdvblNoYXBlSW5z
aWRlVGVzdENhc2UpOgorICAgICAgICAoY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VF
eHBlY3RlZCk6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtcmVndWxhci1wb2x5Z29uMTYtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29u
MTYuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uOC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBv
bHlnb244Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNp
ZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMS1leHBlY3RlZC5odG1sOgorICAgICAg
ICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5
Z29uLTAwMS5odG1sOgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMi1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAw
Mi5odG1sOgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXNpbXBsZS1wb2x5Z29uLTAwMy1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMy5odG1s
OgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNp
bXBsZS1wb2x5Z29uLTAwNC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwNC5odG1sOgorCiAy
MDEyLTEwLTEwICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBoYWVsLmt1Ym8uZGEuY29zdGFA
aW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIE1vcmUgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMK
aW5kZXggMDRlNGEwMC4uOWYxNzk1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzCkBAIC0xMyw2ICsxMywxOCBA
QCBmdW5jdGlvbiBjcmVhdGVQb2x5Z29uKHZlcnRpY2VzKSB7CiAgICAgfTsKIH0KIAorZnVuY3Rp
b24gY3JlYXRlUmVndWxhclBvbHlnb25WZXJ0aWNlcyhzaXplLCBuU2lkZXMpCit7CisgICAgdmFy
IHJhZGl1cyA9IHNpemUgLyAoMiAqIE1hdGguY29zKE1hdGguUEkgLyBuU2lkZXMpKTsKKyAgICB2
YXIgaW5zZXQgPSBzaXplIC8gMiArIDIwOworICAgIHZhciB2ZXJ0aWNlcyA9IFtdOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgblNpZGVzOyBpKyspIHsKKyAgICAgICAgdmFyIGEgPSAoMSArIDIq
aSkgKiAoTWF0aC5QSSAvIG5TaWRlcyk7CisgICAgICAgIHZlcnRpY2VzLnB1c2goe3g6IE1hdGgu
Zmxvb3IoaW5zZXQgKyByYWRpdXMgKiBNYXRoLmNvcyhhKSksIHk6IE1hdGguZmxvb3IoaW5zZXQg
KyByYWRpdXMgKiBNYXRoLnNpbihhKSl9KTsKKyAgICB9CisgICAgcmV0dXJuIHZlcnRpY2VzOwor
fQorCiAvLyBSZXR1cm4gdHdvIFggaW50ZXJjZXB0cyBvZiB0aGUgaG9yaXpvbnRhbCBsaW5lIGF0
IHkuIFdlJ3JlIGFzc3VtaW5nIHRoYXQgdGhlIHBvbHlnb24KIC8vIDAgb3IgMiBpbnRlcmNlcHRz
IGZvciBhbGwgeS5PZiBjb3Vyc2UgdGhpcyBpc24ndCB0cnVlIGZvciBwb2x5Z29ucyBpbiBnZW5l
cmFsLAogLy8ganVzdCB0aGUgb25lcyB1c2VkIGJ5IHRoZSB0ZXN0IGNhc2VzIHN1cHBvcnRlZCBi
eSB0aGlzIGZpbGUuCkBAIC01Myw3ICs2NSwxMCBAQCBmdW5jdGlvbiBwb2x5Z29uWEludGVyY2Vw
dHMocG9seWdvbiwgeSkgewogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuICh4SW50ZXJj
ZXB0cy5sZW5ndGggPT0gMikgID8gW01hdGgubWluLmFwcGx5KG51bGwsIHhJbnRlcmNlcHRzKSwg
TWF0aC5tYXguYXBwbHkobnVsbCwgeEludGVyY2VwdHMpXSA6IFtdOworICAgIGlmICh4SW50ZXJj
ZXB0cy5sZW5ndGggIT0gMikKKyAgICAgICAgcmV0dXJuIFtdOworCisgICAgcmV0dXJuIFtNYXRo
LmZsb29yKE1hdGgubWluLmFwcGx5KG51bGwsIHhJbnRlcmNlcHRzKSksIE1hdGguZmxvb3IoTWF0
aC5tYXguYXBwbHkobnVsbCwgeEludGVyY2VwdHMpKV07CiB9CiAKIGZ1bmN0aW9uIHBvbHlnb25M
aW5lSW50ZXJjZXB0cyhwb2x5Z29uLCB5LCBsaW5lSGVpZ2h0KSB7CkBAIC0xMDksNyArMTI0LDEx
IEBAIGZ1bmN0aW9uIGdlbmVyYXRlUG9seWdvblNWR0VsZW1lbnRzKGVsZW1lbnRJZCwgc3R5bGVz
aGVldCwgcG9seWdvbiwgbGluZUhlaWdodCkKICAgICB2YXIgc3ZnUG9seWdvbiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUyhzdmdOUywgInBvbHlnb24iKTsKICAgICBzdmdQb2x5Z29uLnNldEF0
dHJpYnV0ZSgicG9pbnRzIiwgcG9seWdvbi52ZXJ0aWNlcy5tYXAoIGZ1bmN0aW9uKHApIHsgcmV0
dXJuIHAueCArICIsIiArIHAueTsgfSApLmpvaW4oIiAiKSk7CiAgICAgc3ZnUG9seWdvbi5zZXRB
dHRyaWJ1dGUoImZpbGwiLCAiIzYzNjM2MyIpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGVsZW1lbnRJZCkuYXBwZW5kQ2hpbGQoc3ZnUG9seWdvbik7CisKKyAgICB2YXIgc3ZnRWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgc3ZnRWxlbWVudC5z
dHlsZS53aWR0aCA9IHBvbHlnb24ubWF4WCArICJweCI7CisgICAgc3ZnRWxlbWVudC5zdHlsZS5o
ZWlnaHQgPSBwb2x5Z29uLm1heFkgKyAicHgiOworICAgIHN2Z0VsZW1lbnQuYXBwZW5kQ2hpbGQo
c3ZnUG9seWdvbik7CiB9CiAKIGZ1bmN0aW9uIHNpbXVsYXRlUG9seWdvblNoYXBlKGVsZW1lbnRJ
ZCwgc3R5bGVzaGVldCwgcG9seWdvbiwgbGluZUhlaWdodCkgewpAQCAtMTMxLDggKzE1MCw4IEBA
IGZ1bmN0aW9uIHNpbXVsYXRlUG9seWdvblNoYXBlKGVsZW1lbnRJZCwgc3R5bGVzaGVldCwgcG9s
eWdvbiwgbGluZUhlaWdodCkgewogCiAgICAgZm9yICh2YXIgeSA9IHBvbHlnb24ubWluWTsgeSA8
IHBvbHlnb24ubWF4WTsgeSArPSBsaW5lSGVpZ2h0KSB7CiAgICAgICAgIHZhciB4SW50ZXJjZXB0
cyA9IHBvbHlnb25MaW5lSW50ZXJjZXB0cyhwb2x5Z29uLCB5LCBsaW5lSGVpZ2h0KTsKLSAgICAg
ICAgdmFyIGxlZnQgPSBNYXRoLmNlaWwoeEludGVyY2VwdHNbMCBdKTsKLSAgICAgICAgdmFyIHJp
Z2h0ID0gTWF0aC5mbG9vcih4SW50ZXJjZXB0c1sxXSk7CisgICAgICAgIHZhciBsZWZ0ID0geElu
dGVyY2VwdHNbMF07CisgICAgICAgIHZhciByaWdodCA9IHhJbnRlcmNlcHRzWzFdOwogCiAgICAg
ICAgIHZhciBwYWRkaW5nTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAg
ICAgICBwYWRkaW5nTGVmdC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImZsb2F0IGxlZnQiKTsKQEAg
LTE2Niw4ICsxODUsOCBAQCBmdW5jdGlvbiBnZW5lcmF0ZVNpbXVsYXRlZFBvbHlnb25TaGFwZUlu
c2lkZUVsZW1lbnQoZWxlbWVudElkLCBzdHlsZXNoZWV0LCBwb2x5ZwogCiAgICAgZm9yICh2YXIg
eSA9IHBvbHlnb24ubWluWTsgeSA8IHBvbHlnb24ubWF4WTsgeSArPSBsaW5lSGVpZ2h0KSB7CiAg
ICAgICAgIHZhciB4SW50ZXJjZXB0cyA9IHBvbHlnb25MaW5lSW50ZXJjZXB0cyhwb2x5Z29uLCB5
LCBsaW5lSGVpZ2h0KTsKLSAgICAgICAgdmFyIGxlZnQgPSBNYXRoLmNlaWwoeEludGVyY2VwdHNb
MCBdKTsKLSAgICAgICAgdmFyIHJpZ2h0ID0gTWF0aC5mbG9vcih4SW50ZXJjZXB0c1sxXSk7Cisg
ICAgICAgIHZhciBsZWZ0ID0geEludGVyY2VwdHNbMF07CisgICAgICAgIHZhciByaWdodCA9IHhJ
bnRlcmNlcHRzWzFdOwogCiAgICAgICAgIHZhciBwYWRkaW5nTGVmdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICBwYWRkaW5nTGVmdC5zZXRBdHRyaWJ1dGUoImNsYXNz
IiwgImZsb2F0IGxlZnQiKTsKQEAgLTE4OCwxNSArMjA3LDEyIEBAIGZ1bmN0aW9uIGdlbmVyYXRl
U2ltdWxhdGVkUG9seWdvblNoYXBlSW5zaWRlRWxlbWVudChlbGVtZW50SWQsIHN0eWxlc2hlZXQs
IHBvbHlnCiAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChwKTsKIH0KIAotCi0KLQogZnVuY3Rpb24g
cG9zaXRpb25JbmZvcm1hdGl2ZVRleHQoZWxlbWVudElkLCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBs
aW5lSGVpZ2h0KQogewogICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgiIyIgKyBlbGVtZW50SWQg
KyAiIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6ICIgKyAocG9seWdvbi5tYXhZICsgbGluZUhl
aWdodCkgKyAicHg7fSIpOwogfQogCi1mdW5jdGlvbiBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVU
ZXN0Q2FzZSh2ZXJ0aWNlcykgeworZnVuY3Rpb24gY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVz
dENhc2UoKSB7CiAgICAgdmFyIHN0eWxlc2hlZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c3R5bGVzaGVldCIpLnNoZWV0OwogICAgIHZhciBwb2x5Z29uID0gY3JlYXRlUG9seWdvbih2ZXJ0
aWNlcyk7CiAgICAgZ2VuZXJhdGVQb2x5Z29uU2hhcGVJbnNpZGVFbGVtZW50KCJwb2x5Z29uLXNo
YXBlLWluc2lkZSIsIHN0eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpOwpAQCAtMjA0LDcg
KzIyMCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKHZlcnRp
Y2VzKSB7CiAgICAgcG9zaXRpb25JbmZvcm1hdGl2ZVRleHQoImluZm9ybWF0aXZlLXRleHQiLCBz
dHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KQogfQogCi1mdW5jdGlvbiBjcmVhdGVQb2x5
Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKHZlcnRpY2VzKSB7CitmdW5jdGlvbiBjcmVh
dGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCkgewogICAgIHZhciBzdHlsZXNo
ZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0eWxlc2hlZXQiKS5zaGVldDsKICAgICB2
YXIgcG9seWdvbiA9IGNyZWF0ZVBvbHlnb24odmVydGljZXMpOwogICAgIGdlbmVyYXRlU2ltdWxh
dGVkUG9seWdvblNoYXBlSW5zaWRlRWxlbWVudCgicG9seWdvbi1zaGFwZS1pbnNpZGUiLCBzdHls
ZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjE2
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb24xNi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1ZDY5NmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFy
LXBvbHlnb24xNi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxlLXBvbHln
b24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0
cnVlKTsKKworICAgIHZhciB2ZXJ0aWNlcyA9IGNyZWF0ZVJlZ3VsYXJQb2x5Z29uVmVydGljZXMo
NDAwLCAxNik7IC8vIDQwMHg0MDAgMTYgc2lkZWQgcmVndWxhciBwb2x5Z29uCisgICAgdmFyIGxp
bmVIZWlnaHQgPSA0MDsKKzwvc2NyaXB0PgorCis8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgorICAg
ICNwb2x5Z29uLXNoYXBlLWluc2lkZSwgI3BvbHlnb24tc3ZnLXNoYXBlIHsKKyAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4Owor
ICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNo
YXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCgpIj4KKyAgICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1z
aGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgICA8ZGl2
IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CisgICAgPHAgaWQ9ImluZm9ybWF0aXZl
LXRleHQiPgorICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3Jl
YXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgICAgZmls
bGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3
aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVh
Y2ggbGluZS48L3A+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdv
bjE2Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1yZWd1bGFyLXBvbHlnb24xNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjU1YmY3YjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb24xNi5odG1s
CkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKworICAgIHZhciB2ZXJ0aWNl
cyA9IGNyZWF0ZVJlZ3VsYXJQb2x5Z29uVmVydGljZXMoNDAwLCAxNik7IC8vIDQwMHg0MDAgMTYg
c2lkZWQgcmVndWxhciBwb2x5Z29uCisgICAgdmFyIGxpbmVIZWlnaHQgPSA0MDsKKzwvc2NyaXB0
PgorCis8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgorICAgICNwb2x5Z29uLXNoYXBlLWluc2lkZSwg
I3BvbHlnb24tc3ZnLXNoYXBlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAg
ICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+
CisKKzxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UoKSI+Cisg
IDxkaXYgaWQ9InJvb3QiPgorICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgorICAgIDxkaXYgaWQ9InBvbHlnb24t
c2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAg
ICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdv
bmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZworICAgICAgICBmaWxsZWQgU1ZHIHBvbHln
b24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRp
bmcgYmxhY2sgYW5kCisgICAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4K
KyAgPC9kaXY+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjgt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUv
c2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTM4ZThjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1w
b2x5Z29uOC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24u
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAg
ICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVl
KTsKKworICAgIHZhciB2ZXJ0aWNlcyA9IGNyZWF0ZVJlZ3VsYXJQb2x5Z29uVmVydGljZXMoNDAw
LCA4KTsgLy8gNDAweDQwMCByZWd1bGFyIG9jdGFoZWRyb24KKyAgICB2YXIgbGluZUhlaWdodCA9
IDQwOworPC9zY3JpcHQ+CisKKzxzdHlsZSBpZD0ic3R5bGVzaGVldCI+CisgICAgI3BvbHlnb24t
c2hhcGUtaW5zaWRlLCAjcG9seWdvbi1zdmctc2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorPC9z
dHlsZT4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVU
ZXN0Q2FzZUV4cGVjdGVkKCkiPgorICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgorICAgIDxkaXYgaWQ9InBvbHln
b24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+Cisg
ICAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9s
eWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZworICAgICAgICBmaWxsZWQgU1ZHIHBv
bHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0ZXJu
YXRpbmcgYmxhY2sgYW5kCisgICAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwv
cD4KKzwvYm9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uOC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVn
dWxhci1wb2x5Z29uOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRl
NzRjZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb244Lmh0bWwKQEAgLTAsMCArMSwz
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9zaW1wbGUtcG9seWdvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENT
U0V4Y2x1c2lvbnNFbmFibGVkKHRydWUpOworCisgICAgdmFyIHZlcnRpY2VzID0gY3JlYXRlUmVn
dWxhclBvbHlnb25WZXJ0aWNlcyg0MDAsIDgpOyAvLyA0MDB4NDAwIHJlZ3VsYXIgb2N0YWhlZHJv
bgorICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7Cis8L3NjcmlwdD4KKworPHN0eWxlIGlkPSJzdHls
ZXNoZWV0Ij4KKyAgICAjcG9seWdvbi1zaGFwZS1pbnNpZGUsICNwb2x5Z29uLXN2Zy1zaGFwZSB7
CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAg
ICB0b3A6IDBweDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9ImNy
ZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKCkiPgorICA8ZGl2IGlkPSJyb290Ij4KKyAg
ICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIj48L3N2Zz4KKyAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+
CisgICAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgorICAgICAgICBUaGlzIHRlc3QgcmVxdWly
ZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5k
IGEgbWF0Y2hpbmcKKyAgICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91
bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAg
ICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+CisgIDwvZGl2PgorPC9ib2R5Pgor
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDEtZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBs
ZS1wb2x5Z29uLTAwMS1leHBlY3RlZC5odG1sCmluZGV4IGJkODU4YWUuLmYyNmRjYjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXNpbXBsZS1wb2x5Z29uLTAwMS1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAw
MS1leHBlY3RlZC5odG1sCkBAIC0yMCw3ICsyMCw3IEBACiA8L3N0eWxlPgogPC9oZWFkPgogCi08
Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQodmVy
dGljZXMpIj4KKzxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VF
eHBlY3RlZCgpIj4KICAgICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KICAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBl
LWluc2lkZSI+PC9kaXY+CiAgICAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
c2ltcGxlLXBvbHlnb24tMDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDEuaHRtbAppbmRleCA4MzM0
ZDY1Li4yMjk4MjgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDEuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUt
cG9seWdvbi0wMDEuaHRtbApAQCAtMjAsNyArMjAsNyBAQAogPC9zdHlsZT4KIDwvaGVhZD4KIAot
PGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSh2ZXJ0aWNlcyki
PgorPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgpIj4KICAg
PGRpdiBpZD0icm9vdCI+CiAgICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CiAgICAgPGRpdiBpZD0icG9seWdvbi1z
aGFwZS1pbnNpZGUiPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1zaW1wbGUtcG9seWdvbi0wMDItZXhwZWN0ZWQuaHRtbAppbmRleCBlNWM2MGI4Li43MjNh
MTdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDItZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUt
cG9seWdvbi0wMDItZXhwZWN0ZWQuaHRtbApAQCAtMjEsNyArMjEsNyBAQAogPC9zdHlsZT4KIDwv
aGVhZD4KIAotPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4
cGVjdGVkKHZlcnRpY2VzKSI+Cis8Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25TaGFwZUluc2lk
ZVRlc3RDYXNlRXhwZWN0ZWQoKSI+CiAgICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CiAgICAgPGRpdiBpZD0icG9s
eWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2PgogICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLmh0bWwK
aW5kZXggYThkNGYxMi4uOWU0NTY1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtc2ltcGxlLXBvbHlnb24tMDAyLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAKIDwvc3R5bGU+CiA8
L2hlYWQ+CiAKLTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2Uo
dmVydGljZXMpIj4KKzxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENh
c2UoKSI+CiAgIDxkaXYgaWQ9InJvb3QiPgogICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBl
IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgogICAgIDxkaXYgaWQ9
InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAw
My1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLWV4cGVjdGVkLmh0bWwKaW5kZXggZjRk
YWRiYS4uZDA0MWVmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLWV4cGVjdGVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtc2ltcGxlLXBvbHlnb24tMDAzLWV4cGVjdGVkLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAKIDwv
c3R5bGU+CiA8L2hlYWQ+CiAKLTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRl
VGVzdENhc2VFeHBlY3RlZCh2ZXJ0aWNlcykiPgorPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29u
U2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCkiPgogICAgIDxzdmcgaWQ9InBvbHlnb24tc3Zn
LXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgogICAgIDxk
aXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KICAgICA8cCBpZD0iaW5mb3JtYXRp
dmUtdGV4dCI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29u
LTAwMy5odG1sCmluZGV4IDY5ODE5N2YuLmQ5ZjE5ZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29u
LTAwMy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUv
c2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMy5odG1sCkBAIC0yMSw3ICsyMSw3IEBACiA8
L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25TaGFwZUluc2lk
ZVRlc3RDYXNlKHZlcnRpY2VzKSI+Cis8Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25TaGFwZUlu
c2lkZVRlc3RDYXNlKCkiPgogICA8ZGl2IGlkPSJyb290Ij4KICAgICA8c3ZnIGlkPSJwb2x5Z29u
LXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KICAg
ICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUt
cG9seWdvbi0wMDQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwNC1leHBlY3RlZC5odG1s
CmluZGV4IGZjZDhhOTYuLjhkMWYxYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwNC1leHBl
Y3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUv
c2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwNC1leHBlY3RlZC5odG1sCkBAIC0yMSw3ICsy
MSw3IEBACiA8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25T
aGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQodmVydGljZXMpIj4KKzxib2R5IG9ubG9hZD0iY3Jl
YXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCgpIj4KICAgICA8c3ZnIGlkPSJw
b2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2
Zz4KICAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CiAgICAgPHAgaWQ9
ImluZm9ybWF0aXZlLXRleHQiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDA0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1w
bGUtcG9seWdvbi0wMDQuaHRtbAppbmRleCA5ZTE1MGVhLi4zNTg4YmIxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1w
bGUtcG9seWdvbi0wMDQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDQuaHRtbApAQCAtMjEsNyAr
MjEsNyBAQAogPC9zdHlsZT4KIDwvaGVhZD4KIAotPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29u
U2hhcGVJbnNpZGVUZXN0Q2FzZSh2ZXJ0aWNlcykiPgorPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5
Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgpIj4KICAgPGRpdiBpZD0icm9vdCI+CiAgICAgPHN2ZyBp
ZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+
PC9zdmc+CiAgICAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2Pgo=
</data>
<flag name="commit-queue"
          id="180919"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168074</attachid>
            <date>2012-10-10 14:42:30 -0700</date>
            <delta_ts>2012-10-11 08:38:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>27632</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYzU2NzkyLi5kZDA3Y2NlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzAxMi0xMC0x
MCAgSGFucyBNdWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1
c2lvbnNdIEFkZGl0aW9uYWwgc2ltcGxlIHBvbHlnb24gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NTQ4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBwYWlyIG9mIENTUyBFeGNsdXNp
b25zIHNoYXBlLWluc2lkZSByZWYtdGVzdHMgZm9yIHJlZ3VsYXIgcG9seWdvbnMKKyAgICAgICAg
d2l0aCA4IGFuZCAxNiBzaWRlcy4gQWxzbyBtYWRlIHNvbWUgc21hbGwgcmV2aXNpb25zIHRvIHRo
ZSBzdXBwb3J0aW5nIGNvZGUsCisgICAgICAgIHNpbXBsZS1wb2x5b24uanMsIGFuZCB0aGUgZXhp
c3Rpbmcgc2ltcGxlIHBvbHlnb24gdGVzdHMsIGFuZCB0byBsb2NhbGl6ZSBhbmQKKyAgICAgICAg
Y29ycmVjdCB0aGUgY29udmVyc2lvbiBmcm9tIGZsb2F0IHRvIGxheW91dCBjb29yZGluYXRlcy4g
QWxsIG9mIHRoZSB0ZXN0cworICAgICAgICBub3cgcm91bmQvdHJ1bmNhdGUgdGhlIGxlZnQgZWRn
ZSBvZiBsaW5lIHNlZ21lbnQgaW50ZXJ2YWxzIGRlcGVuZGluZyBvbiB3aGV0aGVyCisgICAgICAg
IHN1YnBpeGVsIGxheW91dCBpcyBlbmFibGVkLgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25z
L3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qczoKKyAgICAgICAgKGNyZWF0ZVJlZ3VsYXJQb2x5
Z29uVmVydGljZXMpOgorICAgICAgICAocG9seWdvblhJbnRlcmNlcHRzKToKKyAgICAgICAgKHNp
bXVsYXRlUG9seWdvblNoYXBlKToKKyAgICAgICAgKGdlbmVyYXRlU2ltdWxhdGVkUG9seWdvblNo
YXBlSW5zaWRlRWxlbWVudCk6CisgICAgICAgIChjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0
Q2FzZSk6CisgICAgICAgIChjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVk
KToKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1y
ZWd1bGFyLXBvbHlnb24xNi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb24xNi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1yZWd1bGFyLXBvbHlnb244LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjgu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAx
Lmh0bWw6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLmh0bWw6
CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2lt
cGxlLXBvbHlnb24tMDAzLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLmh0bWw6CisgICAg
ICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBv
bHlnb24tMDA0LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDA0Lmh0bWw6CisKIDIwMTItMTAt
MTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBXaGVuIHdlIGNo
ZWNrIGluIGltYWdlIGJhc2VsaW5lcywgd2UgdXNlIHRoZSAtZXhwZWN0ZWQucG5nIHN1ZmZpeApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9zaW1wbGUt
cG9seWdvbi5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvc2ltcGxl
LXBvbHlnb24uanMKaW5kZXggMDRlNGEwMC4uMGQwMmRhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qcworKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzCkBAIC0x
Myw2ICsxMywyMCBAQCBmdW5jdGlvbiBjcmVhdGVQb2x5Z29uKHZlcnRpY2VzKSB7CiAgICAgfTsK
IH0KIAorZnVuY3Rpb24gY3JlYXRlUmVndWxhclBvbHlnb25WZXJ0aWNlcyhzaXplLCBuU2lkZXMp
Cit7CisgICAgdmFyIHJhZGl1cyA9IHNpemUgLyAoMiAqIE1hdGguY29zKE1hdGguUEkgLyBuU2lk
ZXMpKTsKKyAgICB2YXIgaW5zZXQgPSBzaXplIC8gMiArIDIwOworICAgIHZhciB2ZXJ0aWNlcyA9
IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgblNpZGVzOyBpKyspIHsKKyAgICAgICAgdmFy
IGEgPSAoMSArIDIqaSkgKiAoTWF0aC5QSSAvIG5TaWRlcyk7CisgICAgICAgIHZlcnRpY2VzLnB1
c2goe3g6IE1hdGguZmxvb3IoaW5zZXQgKyByYWRpdXMgKiBNYXRoLmNvcyhhKSksIHk6IE1hdGgu
Zmxvb3IoaW5zZXQgKyByYWRpdXMgKiBNYXRoLnNpbihhKSl9KTsKKyAgICB9CisgICAgcmV0dXJu
IHZlcnRpY2VzOworfQorCitmdW5jdGlvbiBzdWJwaXhlbFJvdW5kKGYpIHsgcmV0dXJuIGhhc1N1
YnBpeGVsU3VwcG9ydCA/IE1hdGgucm91bmQoZikgOiBNYXRoLmZsb29yKGYpOyB9CisKIC8vIFJl
dHVybiB0d28gWCBpbnRlcmNlcHRzIG9mIHRoZSBob3Jpem9udGFsIGxpbmUgYXQgeS4gV2UncmUg
YXNzdW1pbmcgdGhhdCB0aGUgcG9seWdvbgogLy8gMCBvciAyIGludGVyY2VwdHMgZm9yIGFsbCB5
Lk9mIGNvdXJzZSB0aGlzIGlzbid0IHRydWUgZm9yIHBvbHlnb25zIGluIGdlbmVyYWwsCiAvLyBq
dXN0IHRoZSBvbmVzIHVzZWQgYnkgdGhlIHRlc3QgY2FzZXMgc3VwcG9ydGVkIGJ5IHRoaXMgZmls
ZS4KQEAgLTUzLDcgKzY3LDEwIEBAIGZ1bmN0aW9uIHBvbHlnb25YSW50ZXJjZXB0cyhwb2x5Z29u
LCB5KSB7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gKHhJbnRlcmNlcHRzLmxlbmd0
aCA9PSAyKSAgPyBbTWF0aC5taW4uYXBwbHkobnVsbCwgeEludGVyY2VwdHMpLCBNYXRoLm1heC5h
cHBseShudWxsLCB4SW50ZXJjZXB0cyldIDogW107CisgICAgaWYgKHhJbnRlcmNlcHRzLmxlbmd0
aCAhPSAyKQorICAgICAgICByZXR1cm4gW107CisKKyAgICByZXR1cm4gW3N1YnBpeGVsUm91bmQo
TWF0aC5taW4uYXBwbHkobnVsbCwgeEludGVyY2VwdHMpKSwgTWF0aC5mbG9vcihNYXRoLm1heC5h
cHBseShudWxsLCB4SW50ZXJjZXB0cykpXTsKIH0KIAogZnVuY3Rpb24gcG9seWdvbkxpbmVJbnRl
cmNlcHRzKHBvbHlnb24sIHksIGxpbmVIZWlnaHQpIHsKQEAgLTEwOSw3ICsxMjYsMTEgQEAgZnVu
Y3Rpb24gZ2VuZXJhdGVQb2x5Z29uU1ZHRWxlbWVudHMoZWxlbWVudElkLCBzdHlsZXNoZWV0LCBw
b2x5Z29uLCBsaW5lSGVpZ2h0KQogICAgIHZhciBzdmdQb2x5Z29uID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudE5TKHN2Z05TLCAicG9seWdvbiIpOwogICAgIHN2Z1BvbHlnb24uc2V0QXR0cmlidXRl
KCJwb2ludHMiLCBwb2x5Z29uLnZlcnRpY2VzLm1hcCggZnVuY3Rpb24ocCkgeyByZXR1cm4gcC54
ICsgIiwiICsgcC55OyB9ICkuam9pbigiICIpKTsKICAgICBzdmdQb2x5Z29uLnNldEF0dHJpYnV0
ZSgiZmlsbCIsICIjNjM2MzYzIik7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVu
dElkKS5hcHBlbmRDaGlsZChzdmdQb2x5Z29uKTsKKworICAgIHZhciBzdmdFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICBzdmdFbGVtZW50LnN0eWxlLndp
ZHRoID0gcG9seWdvbi5tYXhYICsgInB4IjsKKyAgICBzdmdFbGVtZW50LnN0eWxlLmhlaWdodCA9
IHBvbHlnb24ubWF4WSArICJweCI7CisgICAgc3ZnRWxlbWVudC5hcHBlbmRDaGlsZChzdmdQb2x5
Z29uKTsKIH0KIAogZnVuY3Rpb24gc2ltdWxhdGVQb2x5Z29uU2hhcGUoZWxlbWVudElkLCBzdHls
ZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KSB7CkBAIC0xMzEsOCArMTUyLDggQEAgZnVuY3Rp
b24gc2ltdWxhdGVQb2x5Z29uU2hhcGUoZWxlbWVudElkLCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBs
aW5lSGVpZ2h0KSB7CiAKICAgICBmb3IgKHZhciB5ID0gcG9seWdvbi5taW5ZOyB5IDwgcG9seWdv
bi5tYXhZOyB5ICs9IGxpbmVIZWlnaHQpIHsKICAgICAgICAgdmFyIHhJbnRlcmNlcHRzID0gcG9s
eWdvbkxpbmVJbnRlcmNlcHRzKHBvbHlnb24sIHksIGxpbmVIZWlnaHQpOwotICAgICAgICB2YXIg
bGVmdCA9IE1hdGguY2VpbCh4SW50ZXJjZXB0c1swIF0pOwotICAgICAgICB2YXIgcmlnaHQgPSBN
YXRoLmZsb29yKHhJbnRlcmNlcHRzWzFdKTsKKyAgICAgICAgdmFyIGxlZnQgPSB4SW50ZXJjZXB0
c1swXTsKKyAgICAgICAgdmFyIHJpZ2h0ID0geEludGVyY2VwdHNbMV07CiAKICAgICAgICAgdmFy
IHBhZGRpbmdMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgIHBh
ZGRpbmdMZWZ0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAiZmxvYXQgbGVmdCIpOwpAQCAtMTY2LDgg
KzE4Nyw4IEBAIGZ1bmN0aW9uIGdlbmVyYXRlU2ltdWxhdGVkUG9seWdvblNoYXBlSW5zaWRlRWxl
bWVudChlbGVtZW50SWQsIHN0eWxlc2hlZXQsIHBvbHlnCiAKICAgICBmb3IgKHZhciB5ID0gcG9s
eWdvbi5taW5ZOyB5IDwgcG9seWdvbi5tYXhZOyB5ICs9IGxpbmVIZWlnaHQpIHsKICAgICAgICAg
dmFyIHhJbnRlcmNlcHRzID0gcG9seWdvbkxpbmVJbnRlcmNlcHRzKHBvbHlnb24sIHksIGxpbmVI
ZWlnaHQpOwotICAgICAgICB2YXIgbGVmdCA9IE1hdGguY2VpbCh4SW50ZXJjZXB0c1swIF0pOwot
ICAgICAgICB2YXIgcmlnaHQgPSBNYXRoLmZsb29yKHhJbnRlcmNlcHRzWzFdKTsKKyAgICAgICAg
dmFyIGxlZnQgPSB4SW50ZXJjZXB0c1swXTsKKyAgICAgICAgdmFyIHJpZ2h0ID0geEludGVyY2Vw
dHNbMV07CiAKICAgICAgICAgdmFyIHBhZGRpbmdMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CiAgICAgICAgIHBhZGRpbmdMZWZ0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAiZmxv
YXQgbGVmdCIpOwpAQCAtMTg4LDE1ICsyMDksMTIgQEAgZnVuY3Rpb24gZ2VuZXJhdGVTaW11bGF0
ZWRQb2x5Z29uU2hhcGVJbnNpZGVFbGVtZW50KGVsZW1lbnRJZCwgc3R5bGVzaGVldCwgcG9seWcK
ICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHApOwogfQogCi0KLQotCiBmdW5jdGlvbiBwb3NpdGlv
bkluZm9ybWF0aXZlVGV4dChlbGVtZW50SWQsIHN0eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWln
aHQpCiB7CiAgICAgc3R5bGVzaGVldC5pbnNlcnRSdWxlKCIjIiArIGVsZW1lbnRJZCArICIgeyBw
b3NpdGlvbjogYWJzb2x1dGU7IHRvcDogIiArIChwb2x5Z29uLm1heFkgKyBsaW5lSGVpZ2h0KSAr
ICJweDt9Iik7CiB9CiAKLWZ1bmN0aW9uIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNl
KHZlcnRpY2VzKSB7CitmdW5jdGlvbiBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgp
IHsKICAgICB2YXIgc3R5bGVzaGVldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZXNo
ZWV0Iikuc2hlZXQ7CiAgICAgdmFyIHBvbHlnb24gPSBjcmVhdGVQb2x5Z29uKHZlcnRpY2VzKTsK
ICAgICBnZW5lcmF0ZVBvbHlnb25TaGFwZUluc2lkZUVsZW1lbnQoInBvbHlnb24tc2hhcGUtaW5z
aWRlIiwgc3R5bGVzaGVldCwgcG9seWdvbiwgbGluZUhlaWdodCk7CkBAIC0yMDQsMTEgKzIyMiwx
MCBAQCBmdW5jdGlvbiBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSh2ZXJ0aWNlcykg
ewogICAgIHBvc2l0aW9uSW5mb3JtYXRpdmVUZXh0KCJpbmZvcm1hdGl2ZS10ZXh0Iiwgc3R5bGVz
aGVldCwgcG9seWdvbiwgbGluZUhlaWdodCkKIH0KIAotZnVuY3Rpb24gY3JlYXRlUG9seWdvblNo
YXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCh2ZXJ0aWNlcykgeworZnVuY3Rpb24gY3JlYXRlUG9s
eWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCgpIHsKICAgICB2YXIgc3R5bGVzaGVldCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZXNoZWV0Iikuc2hlZXQ7CiAgICAgdmFyIHBv
bHlnb24gPSBjcmVhdGVQb2x5Z29uKHZlcnRpY2VzKTsKICAgICBnZW5lcmF0ZVNpbXVsYXRlZFBv
bHlnb25TaGFwZUluc2lkZUVsZW1lbnQoInBvbHlnb24tc2hhcGUtaW5zaWRlIiwgc3R5bGVzaGVl
dCwgcG9seWdvbiwgbGluZUhlaWdodCk7CiAgICAgZ2VuZXJhdGVQb2x5Z29uU1ZHRWxlbWVudHMo
InBvbHlnb24tc3ZnLXNoYXBlIiwgc3R5bGVzaGVldCwgcG9seWdvbiwgbGluZUhlaWdodCk7CiAg
ICAgcG9zaXRpb25JbmZvcm1hdGl2ZVRleHQoImluZm9ybWF0aXZlLXRleHQiLCBzdHlsZXNoZWV0
LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KQogfQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb24xNi1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uMTYtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWY4ZGNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1w
b2x5Z29uMTYtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1
ZSk7CisKKyAgICB2YXIgdmVydGljZXMgPSBjcmVhdGVSZWd1bGFyUG9seWdvblZlcnRpY2VzKDQw
MCwgMTYpOyAvLyA0MDB4NDAwIDE2IHNpZGVkIHJlZ3VsYXIgcG9seWdvbgorICAgIHZhciBsaW5l
SGVpZ2h0ID0gNDA7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9u
IGluaXQoKSB7CisgICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1
YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4
ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAg
ICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCk7CisgICAgfQorPC9z
Y3JpcHQ+CisKKzxzdHlsZSBpZD0ic3R5bGVzaGVldCI+CisgICAgI3BvbHlnb24tc2hhcGUtaW5z
aWRlLCAjcG9seWdvbi1zdmctc2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorPC9zdHlsZT4KKzwv
aGVhZD4KKworPGJvZHkgb25sb2FkPSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1z
aGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBp
ZD0icG9seWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4
dCI+CisgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBh
IHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcg
cG9seWdvbi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRl
cm5hdGluZyBibGFjayBhbmQKKyAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwv
cD4KKyAgPGRpdiBpZD0ic3VicGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0
OiA1cHg7Ij48L2Rpdj4KKzwvYm9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5
Z29uMTYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjE2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNDUyNTA3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjE2Lmh0
bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVkKHRydWUpOworCisgICAgdmFyIHZlcnRp
Y2VzID0gY3JlYXRlUmVndWxhclBvbHlnb25WZXJ0aWNlcyg0MDAsIDE2KTsgLy8gNDAweDQwMCAx
NiBzaWRlZCByZWd1bGFyIHBvbHlnb24KKyAgICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZh
ciBoYXNTdWJwaXhlbFN1cHBvcnQ7CisKKyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2
YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lk
dGggIT0gTWF0aC5mbG9vcihyZWN0LndpZHRoKTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBl
SW5zaWRlVGVzdENhc2UoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPHN0eWxlIGlkPSJzdHlsZXNo
ZWV0Ij4KKyAgICAjcG9seWdvbi1zaGFwZS1pbnNpZGUsICNwb2x5Z29uLXN2Zy1zaGFwZSB7Cisg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0
b3A6IDBweDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9ImluaXQo
KSI+CisgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciPjwvc3ZnPgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9k
aXY+CisgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCByZXF1aXJl
cyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQg
YSBtYXRjaGluZworICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQg
anVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgZW1w
dHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0
IiBzdHlsZT0id2lkdGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgorPC9ib2R5PgorCis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb244LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBv
bHlnb244LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NTljYjQ2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjgtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisKKyAgICB2YXIgdmVydGljZXMg
PSBjcmVhdGVSZWd1bGFyUG9seWdvblZlcnRpY2VzKDQwMCwgOCk7IC8vIDQwMHg0MDAgOCBzaWRl
ZCByZWd1bGFyIHBvbHlnb24KKyAgICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNT
dWJwaXhlbFN1cHBvcnQ7CisKKyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2YXIgcmVj
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7CisgICAgICAgIGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0g
TWF0aC5mbG9vcihyZWN0LndpZHRoKTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRl
VGVzdENhc2VFeHBlY3RlZCgpOworICAgIH0KKzwvc2NyaXB0PgorCis8c3R5bGUgaWQ9InN0eWxl
c2hlZXQiPgorICAgICNwb2x5Z29uLXNoYXBlLWluc2lkZSwgI3BvbHlnb24tc3ZnLXNoYXBlIHsK
KyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAg
IHRvcDogMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0iY3Jl
YXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCgpIj4KKyAgPHN2ZyBpZD0icG9s
eWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+
CisgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9y
bWF0aXZlLXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0
IGNyZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBm
aWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBl
IHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVh
Y2ggbGluZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41
cHg7IGhlaWdodDogNXB4OyI+PC9kaXY+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJl
Z3VsYXItcG9seWdvbjguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjguaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45MTdjNmI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5
Z29uOC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKworICAgIHZh
ciB2ZXJ0aWNlcyA9IGNyZWF0ZVJlZ3VsYXJQb2x5Z29uVmVydGljZXMoNDAwLCA4KTsgLy8gNDAw
eDQwMCByZWd1bGFyIG9jdGFoZWRyb24KKyAgICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZh
ciBoYXNTdWJwaXhlbFN1cHBvcnQ7CisKKyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2
YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lk
dGggIT0gTWF0aC5mbG9vcihyZWN0LndpZHRoKTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBl
SW5zaWRlVGVzdENhc2UoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPHN0eWxlIGlkPSJzdHlsZXNo
ZWV0Ij4KKyAgICAjcG9seWdvbi1zaGFwZS1pbnNpZGUsICNwb2x5Z29uLXN2Zy1zaGFwZSB7Cisg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0
b3A6IDBweDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9ImluaXQo
KSI+CisgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciPjwvc3ZnPgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9k
aXY+CisgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCByZXF1aXJl
cyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQg
YSBtYXRjaGluZworICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQg
anVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgZW1w
dHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0
IiBzdHlsZT0id2lkdGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgorPC9ib2R5PgorCis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDEtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1w
b2x5Z29uLTAwMS1leHBlY3RlZC5odG1sCmluZGV4IGJkODU4YWUuLmY0ZjliNDIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXNpbXBsZS1wb2x5Z29uLTAwMS1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMS1l
eHBlY3RlZC5odG1sCkBAIC05LDYgKzksMTMgQEAKICAgICAvLyBDb25jYXZlIGFzc3ltZXRyaWMg
c2ltcGxlIHBvbHlnb24gd2l0aCBob3Jpem9udGFsIHRvcCBhbmQgYm90dG9tIGVkZ2VzLiAgUm91
Z2hseSBhbiBob3VyZ2xhc3Mgc2hhcGUuCiAgICAgdmFyIHZlcnRpY2VzID0gW3t4OjQwLCB5OjQw
fSwge3g6NDQwLCB5OjQwfSwge3g6MzIwLCB5OjE2MH0sIHt4OjQ4MCwgeTozMjB9LCB7eDo4MCwg
eTozMjB9LCB7eDoyMDAsIHk6MjAwfV07CiAgICAgdmFyIGxpbmVIZWlnaHQgPSA0MDsKKyAgICB2
YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAg
dmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVzdCIpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQgPSByZWN0Lndp
ZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBvbHlnb25TaGFw
ZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQoKTsKKyAgICB9CiA8L3NjcmlwdD4KIAogPHN0eWxlIGlk
PSJzdHlsZXNoZWV0Ij4KQEAgLTIwLDEzICsyNywxNCBAQAogPC9zdHlsZT4KIDwvaGVhZD4KIAot
PGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKHZl
cnRpY2VzKSI+Ci0gICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Ci0gICAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1p
bnNpZGUiPjwvZGl2PgotICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KLSAgICAgICAgVGhp
cyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29uYWwgc2hh
cGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCi0gICAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhl
IGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFj
ayBhbmQKLSAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorPGJvZHkg
b25sb2FkPSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdvbi1zaGFw
ZS1pbnNpZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICBUaGlz
IHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFw
ZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNv
bnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFjayBh
bmQKKyAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0i
c3VicGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4K
IDwvYm9keT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1w
bGUtcG9seWdvbi0wMDEuaHRtbAppbmRleCA4MzM0ZDY1Li42MzJjNGNlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1w
bGUtcG9seWdvbi0wMDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDEuaHRtbApAQCAtOSw2ICs5
LDEzIEBACiAgICAgLy8gQ29uY2F2ZSBhc3N5bWV0cmljIHNpbXBsZSBwb2x5Z29uIHdpdGggaG9y
aXpvbnRhbCB0b3AgYW5kIGJvdHRvbSBlZGdlcy4gIFJvdWdobHkgYW4gaG91cmdsYXNzIHNoYXBl
LgogICAgIHZhciB2ZXJ0aWNlcyA9IFt7eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjMy
MCwgeToxNjB9LCB7eDo0ODAsIHk6MzIwfSwge3g6ODAsIHk6MzIwfSwge3g6MjAwLCB5OjIwMH1d
OwogICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsK
KworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAg
ICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qu
d2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgpOworICAg
IH0KIDwvc2NyaXB0PgogCiA8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgpAQCAtMjAsMTUgKzI3LDE0
IEBACiA8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25TaGFw
ZUluc2lkZVRlc3RDYXNlKHZlcnRpY2VzKSI+Ci0gIDxkaXYgaWQ9InJvb3QiPgotICAgIDxzdmcg
aWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
Pjwvc3ZnPgotICAgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KLSAgICA8
cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+Ci0gICAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUg
QWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRj
aGluZwotICAgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0
IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCi0gICAgICAgIGVtcHR5
IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KLSAgPC9kaXY+Cis8Ym9keSBvbmxvYWQ9Imlu
aXQoKSI+CisgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMjAwMC9zdmciPjwvc3ZnPgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+
PC9kaXY+CisgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCByZXF1
aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBh
bmQgYSBtYXRjaGluZworICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91
bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAg
ZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhlbC10
ZXN0IiBzdHlsZT0id2lkdGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgogPC9ib2R5Pgog
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDItZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBs
ZS1wb2x5Z29uLTAwMi1leHBlY3RlZC5odG1sCmluZGV4IGU1YzYwYjguLjMzNzA1MmUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXNpbXBsZS1wb2x5Z29uLTAwMi1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAw
Mi1leHBlY3RlZC5odG1sCkBAIC0xMCw2ICsxMCwxMyBAQAogICAgIC8vIGJ1dCB3aXRoIGEgcmln
aHQgcmlnaHQgZWRnZS4KICAgICB2YXIgdmVydGljZXMgPSBbe3g6NDAsIHk6NDB9LCB7eDo0NDAs
IHk6NDB9LCB7eDo0ODAsIHk6MzIwfSwge3g6ODAsIHk6MzIwfSwge3g6MjAwLCB5OjIwMH1dOwog
ICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKwor
ICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAg
ICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lk
dGgpOworICAgICAgICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCk7
CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHlsZSBpZD0ic3R5bGVzaGVldCI+CkBAIC0yMSwxMyAr
MjgsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+CiAKLTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdv
blNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCh2ZXJ0aWNlcykiPgotICAgIDxzdmcgaWQ9InBv
bHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3Zn
PgotICAgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KLSAgICA8cCBpZD0i
aW5mb3JtYXRpdmUtdGV4dCI+Ci0gICAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBm
b250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZwot
ICAgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwg
dGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCi0gICAgICAgIGVtcHR5IHJlY3Rh
bmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBp
ZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+
PC9zdmc+CisgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9
ImluZm9ybWF0aXZlLXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZv
bnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisg
ICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhl
IHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVz
IG9uIGVhY2ggbGluZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0
aDogNC41cHg7IGhlaWdodDogNXB4OyI+PC9kaXY+CiA8L2JvZHk+CiAKIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXNpbXBsZS1wb2x5Z29uLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLmh0bWwKaW5kZXgg
YThkNGYxMi4uZDNkZjcwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2lt
cGxlLXBvbHlnb24tMDAyLmh0bWwKQEAgLTEwLDYgKzEwLDEzIEBACiAgICAgLy8gYnV0IHdpdGgg
YSBzaW5nbGUgcmlnaHQgZWRnZS4KICAgICB2YXIgdmVydGljZXMgPSBbe3g6NDAsIHk6NDB9LCB7
eDo0NDAsIHk6NDB9LCB7eDo0ODAsIHk6MzIwfSwge3g6ODAsIHk6MzIwfSwge3g6MjAwLCB5OjIw
MH1dOwogICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9y
dDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
KyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJl
Y3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgpOwor
ICAgIH0KIDwvc2NyaXB0PgogCiA8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgpAQCAtMjEsMTUgKzI4
LDE0IEBACiA8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25T
aGFwZUluc2lkZVRlc3RDYXNlKHZlcnRpY2VzKSI+Ci0gIDxkaXYgaWQ9InJvb3QiPgotICAgIDxz
dmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciPjwvc3ZnPgotICAgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KLSAg
ICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+Ci0gICAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0
aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBt
YXRjaGluZwotICAgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBq
dXN0IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCi0gICAgICAgIGVt
cHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KLSAgPC9kaXY+Cis8Ym9keSBvbmxvYWQ9
ImluaXQoKSI+CisgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lk
ZSI+PC9kaXY+CisgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCBy
ZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lk
ZSBhbmQgYSBtYXRjaGluZworICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBz
aG91bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAg
ICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhl
bC10ZXN0IiBzdHlsZT0id2lkdGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgogPC9ib2R5
PgogCiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDMtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNp
bXBsZS1wb2x5Z29uLTAwMy1leHBlY3RlZC5odG1sCmluZGV4IGY0ZGFkYmEuLmNhNTMxNTcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29u
LTAwMy1leHBlY3RlZC5odG1sCkBAIC0xMCw2ICsxMCwxMyBAQAogICAgIC8vIHdpdGggYSB2ZXJ0
aWNhbCBsZWZ0IGVkZ2UuCiAgICAgdmFyIHZlcnRpY2VzID0gW3t4OjQwLCB5OjQwfSwge3g6NDQw
LCB5OjQwfSwge3g6MzIwLCB5OjE2MH0sIHt4OjQ4MCwgeTozMjB9LCB7eDo0MCwgeTozMjB9XTsK
ICAgICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQ7CisK
KyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAg
ICAgIGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9vcihyZWN0Lndp
ZHRoKTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCgp
OworICAgIH0KIDwvc2NyaXB0PgogCiA8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgpAQCAtMjEsMTMg
KzI4LDE0IEBACiA8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHln
b25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQodmVydGljZXMpIj4KKzxib2R5IG9ubG9hZD0i
aW5pdCgpIj4KICAgICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KICAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWlu
c2lkZSI+PC9kaXY+CiAgICAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgogICAgICAgICBUaGlz
IHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFw
ZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKICAgICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUg
Y29udGVudCBzaG91bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNr
IGFuZAogICAgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+CisgICAgPGRp
diBpZD0ic3VicGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48
L2Rpdj4KIDwvYm9keT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1zaW1wbGUtcG9seWdvbi0wMDMuaHRtbAppbmRleCA2OTgxOTdmLi4wMjk0OTk3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1zaW1wbGUtcG9seWdvbi0wMDMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDMuaHRtbApAQCAt
MTAsNiArMTAsMTMgQEAKICAgICAvLyB3aXRoIGEgdmVydGljYWwgbGVmdCBlZGdlLgogICAgIHZh
ciB2ZXJ0aWNlcyA9IFt7eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjMyMCwgeToxNjB9
LCB7eDo0ODAsIHk6MzIwfSwge3g6NDAsIHk6MzIwfV07CiAgICAgdmFyIGxpbmVIZWlnaHQgPSA0
MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsK
KyAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVz
dCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQg
PSByZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBv
bHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHlsZSBp
ZD0ic3R5bGVzaGVldCI+CkBAIC0yMSwxNSArMjgsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+CiAK
LTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UodmVydGljZXMp
Ij4KLSAgPGRpdiBpZD0icm9vdCI+Ci0gICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Ci0gICAgPGRpdiBpZD0icG9s
eWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2PgotICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4K
LSAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBw
b2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCi0gICAgICAgIGZpbGxlZCBTVkcg
cG9seWdvbi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRl
cm5hdGluZyBibGFjayBhbmQKLSAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUu
PC9wPgotICA8L2Rpdj4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdv
bi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Cisg
IDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0
aXZlLXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNy
ZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxs
ZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdp
dGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2gg
bGluZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7
IGhlaWdodDogNXB4OyI+PC9kaXY+CiA8L2JvZHk+CiAKIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBs
ZS1wb2x5Z29uLTAwNC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDA0LWV4cGVjdGVkLmh0
bWwKaW5kZXggZmNkOGE5Ni4uNTYzOGM3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDA0LWV4
cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDA0LWV4cGVjdGVkLmh0bWwKQEAgLTEwLDYg
KzEwLDEzIEBACiAgICAgLy8gaG91cmdsYXNzIHNoYXBlIHdpdGggdmVydGljYWwgZWRnZXMgaW4g
dGhlIGNlbnRlci4KICAgICB2YXIgdmVydGljZXMgPSBbe3g6NDAsIHk6NDB9LCB7eDo0NDAsIHk6
NDB9LCB7eDozMjAsIHk6MTYwfSwge3g6MzIwLCB5OjI0MH0sIHt4OjQ4MCwgeTo0MDB9LCB7eDo4
MCwgeTo0MDB9LCB7eDoyMDAsIHk6MjgwfSwge3g6MjAwLCB5OjIwMH1dfTsKICAgICB2YXIgbGlu
ZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQ7CisKKyAgICBmdW5jdGlv
biBpbml0KCkgeworICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
dWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIGhhc1N1YnBp
eGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9vcihyZWN0LndpZHRoKTsKKyAgICAg
ICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCgpOworICAgIH0KIDwv
c2NyaXB0PgogCiA8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgpAQCAtMjEsMTMgKzI4LDE0IEBACiA8
L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25TaGFwZUluc2lk
ZVRlc3RDYXNlRXhwZWN0ZWQodmVydGljZXMpIj4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KICAg
ICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIj48L3N2Zz4KICAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+
CiAgICAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgogICAgICAgICBUaGlzIHRlc3QgcmVxdWly
ZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5k
IGEgbWF0Y2hpbmcKICAgICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91
bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAogICAgICAg
ICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVs
LXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7IGhlaWdodDogNXB4OyI+PC9kaXY+CiA8L2JvZHk+
CiAKIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwNC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHln
b24tMDA0Lmh0bWwKaW5kZXggOWUxNTBlYS4uZTU5NGRmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHln
b24tMDA0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDA0Lmh0bWwKQEAgLTEwLDYgKzEwLDEzIEBA
CiAgICAgLy8gaG91cmdsYXNzIHNoYXBlIHdpdGggdmVydGljYWwgZWRnZXMgaW4gdGhlIGNlbnRl
ci4KICAgICB2YXIgdmVydGljZXMgPSBbe3g6NDAsIHk6NDB9LCB7eDo0NDAsIHk6NDB9LCB7eDoz
MjAsIHk6MTYwfSwge3g6MzIwLCB5OjI0MH0sIHt4OjQ4MCwgeTo0MDB9LCB7eDo4MCwgeTo0MDB9
LCB7eDoyMDAsIHk6MjgwfSwge3g6MjAwLCB5OjIwMH1dfTsKICAgICB2YXIgbGluZUhlaWdodCA9
IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQ7CisKKyAgICBmdW5jdGlvbiBpbml0KCkg
eworICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJwaXhlbC10
ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIGhhc1N1YnBpeGVsU3VwcG9y
dCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9vcihyZWN0LndpZHRoKTsKKyAgICAgICAgY3JlYXRl
UG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UoKTsKKyAgICB9CiA8L3NjcmlwdD4KIAogPHN0eWxl
IGlkPSJzdHlsZXNoZWV0Ij4KQEAgLTIxLDE1ICsyOCwxNCBAQAogPC9zdHlsZT4KIDwvaGVhZD4K
IAotPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSh2ZXJ0aWNl
cykiPgotICA8ZGl2IGlkPSJyb290Ij4KLSAgICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KLSAgICA8ZGl2IGlkPSJw
b2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+Ci0gICAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQi
PgotICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBh
IHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKLSAgICAgICAgZmlsbGVkIFNW
RyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFs
dGVybmF0aW5nIGJsYWNrIGFuZAotICAgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGlu
ZS48L3A+Ci0gIDwvZGl2PgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5
Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4K
KyAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3Jt
YXRpdmUtdGV4dCI+CisgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQg
Y3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZp
bGxlZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUg
d2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQKKyAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFj
aCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0ic3VicGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVw
eDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4KIDwvYm9keT4KIAogPC9odG1sPgo=
</data>
<flag name="commit-queue"
          id="181035"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168232</attachid>
            <date>2012-10-11 08:38:02 -0700</date>
            <delta_ts>2012-10-11 14:42:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>27693</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNmYxNjFmLi43YzExYTZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzAxMi0xMC0x
MCAgSGFucyBNdWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1
c2lvbnNdIEFkZGl0aW9uYWwgc2ltcGxlIHBvbHlnb24gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NTQ4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBwYWlyIG9mIENTUyBFeGNsdXNp
b25zIHNoYXBlLWluc2lkZSByZWYtdGVzdHMgZm9yIHJlZ3VsYXIgcG9seWdvbnMKKyAgICAgICAg
d2l0aCA4IGFuZCAxNiBzaWRlcy4gQWxzbyBtYWRlIHNvbWUgc21hbGwgcmV2aXNpb25zIHRvIHRo
ZSBzdXBwb3J0aW5nIGNvZGUsCisgICAgICAgIHNpbXBsZS1wb2x5b24uanMsIGFuZCB0aGUgZXhp
c3Rpbmcgc2ltcGxlIHBvbHlnb24gdGVzdHMsIGFuZCB0byBsb2NhbGl6ZSBhbmQKKyAgICAgICAg
Y29ycmVjdCB0aGUgY29udmVyc2lvbiBmcm9tIGZsb2F0IHRvIGxheW91dCBjb29yZGluYXRlcy4g
QWxsIG9mIHRoZSB0ZXN0cworICAgICAgICBub3cgcm91bmQvdHJ1bmNhdGUgdGhlIGxlZnQgZWRn
ZSBvZiBsaW5lIHNlZ21lbnQgaW50ZXJ2YWxzIGRlcGVuZGluZyBvbiB3aGV0aGVyCisgICAgICAg
IHN1YnBpeGVsIGxheW91dCBpcyBlbmFibGVkLgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25z
L3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qczoKKyAgICAgICAgKGNyZWF0ZVJlZ3VsYXJQb2x5
Z29uVmVydGljZXMpOgorICAgICAgICAocG9seWdvblhJbnRlcmNlcHRzKToKKyAgICAgICAgKHNp
bXVsYXRlUG9seWdvblNoYXBlKToKKyAgICAgICAgKGdlbmVyYXRlU2ltdWxhdGVkUG9seWdvblNo
YXBlSW5zaWRlRWxlbWVudCk6CisgICAgICAgIChjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0
Q2FzZSk6CisgICAgICAgIChjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVk
KToKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1y
ZWd1bGFyLXBvbHlnb24xNi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb24xNi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1yZWd1bGFyLXBvbHlnb244LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjgu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAx
Lmh0bWw6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLmh0bWw6
CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2lt
cGxlLXBvbHlnb24tMDAzLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLmh0bWw6CisgICAg
ICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBv
bHlnb24tMDA0LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDA0Lmh0bWw6CisKIDIwMTItMTAt
MTEgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWJJREw6
IG92ZXJsb2FkZWQgbWV0aG9kcyBwcmV2ZW50IG51bWJlciAtPiBzdHJpbmcgY29udmVyc2lvbgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9zaW1wbGUt
cG9seWdvbi5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvc2ltcGxl
LXBvbHlnb24uanMKaW5kZXggMDRlNGEwMC4uMTU4ZjJjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qcworKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzCkBAIC0x
Myw2ICsxMywyMiBAQCBmdW5jdGlvbiBjcmVhdGVQb2x5Z29uKHZlcnRpY2VzKSB7CiAgICAgfTsK
IH0KIAorZnVuY3Rpb24gY3JlYXRlUmVndWxhclBvbHlnb25WZXJ0aWNlcyhzaXplLCBuU2lkZXMp
Cit7CisgICAgdmFyIHJhZGl1cyA9IHNpemUgLyAoMiAqIE1hdGguY29zKE1hdGguUEkgLyBuU2lk
ZXMpKTsKKyAgICB2YXIgaW5zZXQgPSBzaXplIC8gMiArIDIwOworICAgIHZhciB2ZXJ0aWNlcyA9
IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgblNpZGVzOyBpKyspIHsKKyAgICAgICAgdmFy
IGEgPSAoMSArIDIqaSkgKiAoTWF0aC5QSSAvIG5TaWRlcyk7CisgICAgICAgIHZlcnRpY2VzLnB1
c2goe3g6IE1hdGguZmxvb3IoaW5zZXQgKyByYWRpdXMgKiBNYXRoLmNvcyhhKSksIHk6IE1hdGgu
Zmxvb3IoaW5zZXQgKyByYWRpdXMgKiBNYXRoLnNpbihhKSl9KTsKKyAgICB9CisgICAgcmV0dXJu
IHZlcnRpY2VzOworfQorCitmdW5jdGlvbiBzdWJwaXhlbFJvdW5kKGYpIHsgCisgICAgcmV0dXJu
IE1hdGguZmxvb3IoIWhhc1N1YnBpeGVsU3VwcG9ydCA/IGYgOiAoTWF0aC5mbG9vcihmICogNjQp
ICsgMzIpIC8gNjQpOyAgLy8gc2VlIEZyYWN0aW9uTGF5b3V0VW5pdDo6cm91bmQoKQorfQorCiAv
LyBSZXR1cm4gdHdvIFggaW50ZXJjZXB0cyBvZiB0aGUgaG9yaXpvbnRhbCBsaW5lIGF0IHkuIFdl
J3JlIGFzc3VtaW5nIHRoYXQgdGhlIHBvbHlnb24KIC8vIDAgb3IgMiBpbnRlcmNlcHRzIGZvciBh
bGwgeS5PZiBjb3Vyc2UgdGhpcyBpc24ndCB0cnVlIGZvciBwb2x5Z29ucyBpbiBnZW5lcmFsLAog
Ly8ganVzdCB0aGUgb25lcyB1c2VkIGJ5IHRoZSB0ZXN0IGNhc2VzIHN1cHBvcnRlZCBieSB0aGlz
IGZpbGUuCkBAIC01Myw3ICs2OSwxMCBAQCBmdW5jdGlvbiBwb2x5Z29uWEludGVyY2VwdHMocG9s
eWdvbiwgeSkgewogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuICh4SW50ZXJjZXB0cy5s
ZW5ndGggPT0gMikgID8gW01hdGgubWluLmFwcGx5KG51bGwsIHhJbnRlcmNlcHRzKSwgTWF0aC5t
YXguYXBwbHkobnVsbCwgeEludGVyY2VwdHMpXSA6IFtdOworICAgIGlmICh4SW50ZXJjZXB0cy5s
ZW5ndGggIT0gMikKKyAgICAgICAgcmV0dXJuIFtdOworCisgICAgcmV0dXJuIFtzdWJwaXhlbFJv
dW5kKE1hdGgubWluLmFwcGx5KG51bGwsIHhJbnRlcmNlcHRzKSksIE1hdGguZmxvb3IoTWF0aC5t
YXguYXBwbHkobnVsbCwgeEludGVyY2VwdHMpKV07CiB9CiAKIGZ1bmN0aW9uIHBvbHlnb25MaW5l
SW50ZXJjZXB0cyhwb2x5Z29uLCB5LCBsaW5lSGVpZ2h0KSB7CkBAIC0xMDksNyArMTI4LDExIEBA
IGZ1bmN0aW9uIGdlbmVyYXRlUG9seWdvblNWR0VsZW1lbnRzKGVsZW1lbnRJZCwgc3R5bGVzaGVl
dCwgcG9seWdvbiwgbGluZUhlaWdodCkKICAgICB2YXIgc3ZnUG9seWdvbiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnROUyhzdmdOUywgInBvbHlnb24iKTsKICAgICBzdmdQb2x5Z29uLnNldEF0dHJp
YnV0ZSgicG9pbnRzIiwgcG9seWdvbi52ZXJ0aWNlcy5tYXAoIGZ1bmN0aW9uKHApIHsgcmV0dXJu
IHAueCArICIsIiArIHAueTsgfSApLmpvaW4oIiAiKSk7CiAgICAgc3ZnUG9seWdvbi5zZXRBdHRy
aWJ1dGUoImZpbGwiLCAiIzYzNjM2MyIpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVs
ZW1lbnRJZCkuYXBwZW5kQ2hpbGQoc3ZnUG9seWdvbik7CisKKyAgICB2YXIgc3ZnRWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgc3ZnRWxlbWVudC5zdHls
ZS53aWR0aCA9IHBvbHlnb24ubWF4WCArICJweCI7CisgICAgc3ZnRWxlbWVudC5zdHlsZS5oZWln
aHQgPSBwb2x5Z29uLm1heFkgKyAicHgiOworICAgIHN2Z0VsZW1lbnQuYXBwZW5kQ2hpbGQoc3Zn
UG9seWdvbik7CiB9CiAKIGZ1bmN0aW9uIHNpbXVsYXRlUG9seWdvblNoYXBlKGVsZW1lbnRJZCwg
c3R5bGVzaGVldCwgcG9seWdvbiwgbGluZUhlaWdodCkgewpAQCAtMTMxLDggKzE1NCw4IEBAIGZ1
bmN0aW9uIHNpbXVsYXRlUG9seWdvblNoYXBlKGVsZW1lbnRJZCwgc3R5bGVzaGVldCwgcG9seWdv
biwgbGluZUhlaWdodCkgewogCiAgICAgZm9yICh2YXIgeSA9IHBvbHlnb24ubWluWTsgeSA8IHBv
bHlnb24ubWF4WTsgeSArPSBsaW5lSGVpZ2h0KSB7CiAgICAgICAgIHZhciB4SW50ZXJjZXB0cyA9
IHBvbHlnb25MaW5lSW50ZXJjZXB0cyhwb2x5Z29uLCB5LCBsaW5lSGVpZ2h0KTsKLSAgICAgICAg
dmFyIGxlZnQgPSBNYXRoLmNlaWwoeEludGVyY2VwdHNbMCBdKTsKLSAgICAgICAgdmFyIHJpZ2h0
ID0gTWF0aC5mbG9vcih4SW50ZXJjZXB0c1sxXSk7CisgICAgICAgIHZhciBsZWZ0ID0geEludGVy
Y2VwdHNbMF07CisgICAgICAgIHZhciByaWdodCA9IHhJbnRlcmNlcHRzWzFdOwogCiAgICAgICAg
IHZhciBwYWRkaW5nTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAg
ICBwYWRkaW5nTGVmdC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImZsb2F0IGxlZnQiKTsKQEAgLTE2
Niw4ICsxODksOCBAQCBmdW5jdGlvbiBnZW5lcmF0ZVNpbXVsYXRlZFBvbHlnb25TaGFwZUluc2lk
ZUVsZW1lbnQoZWxlbWVudElkLCBzdHlsZXNoZWV0LCBwb2x5ZwogCiAgICAgZm9yICh2YXIgeSA9
IHBvbHlnb24ubWluWTsgeSA8IHBvbHlnb24ubWF4WTsgeSArPSBsaW5lSGVpZ2h0KSB7CiAgICAg
ICAgIHZhciB4SW50ZXJjZXB0cyA9IHBvbHlnb25MaW5lSW50ZXJjZXB0cyhwb2x5Z29uLCB5LCBs
aW5lSGVpZ2h0KTsKLSAgICAgICAgdmFyIGxlZnQgPSBNYXRoLmNlaWwoeEludGVyY2VwdHNbMCBd
KTsKLSAgICAgICAgdmFyIHJpZ2h0ID0gTWF0aC5mbG9vcih4SW50ZXJjZXB0c1sxXSk7CisgICAg
ICAgIHZhciBsZWZ0ID0geEludGVyY2VwdHNbMF07CisgICAgICAgIHZhciByaWdodCA9IHhJbnRl
cmNlcHRzWzFdOwogCiAgICAgICAgIHZhciBwYWRkaW5nTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOwogICAgICAgICBwYWRkaW5nTGVmdC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwg
ImZsb2F0IGxlZnQiKTsKQEAgLTE4OCwxNSArMjExLDEyIEBAIGZ1bmN0aW9uIGdlbmVyYXRlU2lt
dWxhdGVkUG9seWdvblNoYXBlSW5zaWRlRWxlbWVudChlbGVtZW50SWQsIHN0eWxlc2hlZXQsIHBv
bHlnCiAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChwKTsKIH0KIAotCi0KLQogZnVuY3Rpb24gcG9z
aXRpb25JbmZvcm1hdGl2ZVRleHQoZWxlbWVudElkLCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5l
SGVpZ2h0KQogewogICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgiIyIgKyBlbGVtZW50SWQgKyAi
IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6ICIgKyAocG9seWdvbi5tYXhZICsgbGluZUhlaWdo
dCkgKyAicHg7fSIpOwogfQogCi1mdW5jdGlvbiBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0
Q2FzZSh2ZXJ0aWNlcykgeworZnVuY3Rpb24gY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENh
c2UoKSB7CiAgICAgdmFyIHN0eWxlc2hlZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3R5
bGVzaGVldCIpLnNoZWV0OwogICAgIHZhciBwb2x5Z29uID0gY3JlYXRlUG9seWdvbih2ZXJ0aWNl
cyk7CiAgICAgZ2VuZXJhdGVQb2x5Z29uU2hhcGVJbnNpZGVFbGVtZW50KCJwb2x5Z29uLXNoYXBl
LWluc2lkZSIsIHN0eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpOwpAQCAtMjA0LDExICsy
MjQsMTAgQEAgZnVuY3Rpb24gY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UodmVydGlj
ZXMpIHsKICAgICBwb3NpdGlvbkluZm9ybWF0aXZlVGV4dCgiaW5mb3JtYXRpdmUtdGV4dCIsIHN0
eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpCiB9CiAKLWZ1bmN0aW9uIGNyZWF0ZVBvbHln
b25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQodmVydGljZXMpIHsKK2Z1bmN0aW9uIGNyZWF0
ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQoKSB7CiAgICAgdmFyIHN0eWxlc2hl
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3R5bGVzaGVldCIpLnNoZWV0OwogICAgIHZh
ciBwb2x5Z29uID0gY3JlYXRlUG9seWdvbih2ZXJ0aWNlcyk7CiAgICAgZ2VuZXJhdGVTaW11bGF0
ZWRQb2x5Z29uU2hhcGVJbnNpZGVFbGVtZW50KCJwb2x5Z29uLXNoYXBlLWluc2lkZSIsIHN0eWxl
c2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpOwogICAgIGdlbmVyYXRlUG9seWdvblNWR0VsZW1l
bnRzKCJwb2x5Z29uLXN2Zy1zaGFwZSIsIHN0eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQp
OwogICAgIHBvc2l0aW9uSW5mb3JtYXRpdmVUZXh0KCJpbmZvcm1hdGl2ZS10ZXh0Iiwgc3R5bGVz
aGVldCwgcG9seWdvbiwgbGluZUhlaWdodCkKIH0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29u
MTYtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNp
ZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjE2LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTlmOGRjZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3Vs
YXItcG9seWdvbjE2LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaW1wbGUtcG9s
eWdvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVk
KHRydWUpOworCisgICAgdmFyIHZlcnRpY2VzID0gY3JlYXRlUmVndWxhclBvbHlnb25WZXJ0aWNl
cyg0MDAsIDE2KTsgLy8gNDAweDQwMCAxNiBzaWRlZCByZWd1bGFyIHBvbHlnb24KKyAgICB2YXIg
bGluZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQ7CisKKyAgICBmdW5j
dGlvbiBpbml0KCkgeworICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIGhhc1N1
YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9vcihyZWN0LndpZHRoKTsKKyAg
ICAgICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCgpOworICAgIH0K
Kzwvc2NyaXB0PgorCis8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgorICAgICNwb2x5Z29uLXNoYXBl
LWluc2lkZSwgI3BvbHlnb24tc3ZnLXNoYXBlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKzwvc3R5bGU+
Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdvbi1z
dmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CisgIDxk
aXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0aXZl
LXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0
ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxsZWQg
U1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGgg
YWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGlu
ZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7IGhl
aWdodDogNXB4OyI+PC9kaXY+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXIt
cG9seWdvbjE2Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb24xNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjQ1MjUwN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb24x
Ni5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKworICAgIHZhciB2
ZXJ0aWNlcyA9IGNyZWF0ZVJlZ3VsYXJQb2x5Z29uVmVydGljZXMoNDAwLCAxNik7IC8vIDQwMHg0
MDAgMTYgc2lkZWQgcmVndWxhciBwb2x5Z29uCisgICAgdmFyIGxpbmVIZWlnaHQgPSA0MDsKKyAg
ICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAg
ICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVzdCIpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQgPSByZWN0
LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBvbHlnb25T
aGFwZUluc2lkZVRlc3RDYXNlKCk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxzdHlsZSBpZD0ic3R5
bGVzaGVldCI+CisgICAgI3BvbHlnb24tc2hhcGUtaW5zaWRlLCAjcG9seWdvbi1zdmctc2hhcGUg
eworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAg
ICAgdG9wOiAwcHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJp
bml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1pbnNpZGUi
PjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICBUaGlzIHRlc3QgcmVx
dWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUg
YW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRlbnQgc2hv
dWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQKKyAgICAg
IGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0ic3VicGl4ZWwt
dGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4KKzwvYm9keT4K
KworPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uOC1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxh
ci1wb2x5Z29uOC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjU5Y2I0NjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb244LWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVkKHRydWUpOworCisgICAgdmFyIHZlcnRp
Y2VzID0gY3JlYXRlUmVndWxhclBvbHlnb25WZXJ0aWNlcyg0MDAsIDgpOyAvLyA0MDB4NDAwIDgg
c2lkZWQgcmVndWxhciBwb2x5Z29uCisgICAgdmFyIGxpbmVIZWlnaHQgPSA0MDsKKyAgICB2YXIg
aGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAgdmFy
IHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVzdCIpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQgPSByZWN0LndpZHRo
ICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBvbHlnb25TaGFwZUlu
c2lkZVRlc3RDYXNlRXhwZWN0ZWQoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPHN0eWxlIGlkPSJz
dHlsZXNoZWV0Ij4KKyAgICAjcG9seWdvbi1zaGFwZS1pbnNpZGUsICNwb2x5Z29uLXN2Zy1zaGFw
ZSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAg
ICAgICB0b3A6IDBweDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9
ImNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQoKSI+CisgIDxzdmcgaWQ9
InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwv
c3ZnPgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CisgIDxwIGlkPSJp
bmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250
LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZworICAg
ICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxsIHRoZSBz
aGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBv
biBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0IiBzdHlsZT0id2lkdGg6
IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgorPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1yZWd1bGFyLXBvbHlnb244Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb244Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE3YzZiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXIt
cG9seWdvbjguaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisKKyAg
ICB2YXIgdmVydGljZXMgPSBjcmVhdGVSZWd1bGFyUG9seWdvblZlcnRpY2VzKDQwMCwgOCk7IC8v
IDQwMHg0MDAgcmVndWxhciBvY3RhaGVkcm9uCisgICAgdmFyIGxpbmVIZWlnaHQgPSA0MDsKKyAg
ICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAg
ICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVzdCIpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQgPSByZWN0
LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBvbHlnb25T
aGFwZUluc2lkZVRlc3RDYXNlKCk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxzdHlsZSBpZD0ic3R5
bGVzaGVldCI+CisgICAgI3BvbHlnb24tc2hhcGUtaW5zaWRlLCAjcG9seWdvbi1zdmctc2hhcGUg
eworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAg
ICAgdG9wOiAwcHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJp
bml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1pbnNpZGUi
PjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICBUaGlzIHRlc3QgcmVx
dWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUg
YW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRlbnQgc2hv
dWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQKKyAgICAg
IGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0ic3VicGl4ZWwt
dGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4KKzwvYm9keT4K
KworPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1w
bGUtcG9seWdvbi0wMDEtZXhwZWN0ZWQuaHRtbAppbmRleCBiZDg1OGFlLi5mNGY5YjQyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1zaW1wbGUtcG9seWdvbi0wMDEtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0w
MDEtZXhwZWN0ZWQuaHRtbApAQCAtOSw2ICs5LDEzIEBACiAgICAgLy8gQ29uY2F2ZSBhc3N5bWV0
cmljIHNpbXBsZSBwb2x5Z29uIHdpdGggaG9yaXpvbnRhbCB0b3AgYW5kIGJvdHRvbSBlZGdlcy4g
IFJvdWdobHkgYW4gaG91cmdsYXNzIHNoYXBlLgogICAgIHZhciB2ZXJ0aWNlcyA9IFt7eDo0MCwg
eTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjMyMCwgeToxNjB9LCB7eDo0ODAsIHk6MzIwfSwge3g6
ODAsIHk6MzIwfSwge3g6MjAwLCB5OjIwMH1dOwogICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7Cisg
ICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAg
ICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVj
dC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29u
U2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHls
ZSBpZD0ic3R5bGVzaGVldCI+CkBAIC0yMCwxMyArMjcsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+
CiAKLTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3Rl
ZCh2ZXJ0aWNlcykiPgotICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgotICAgIDxkaXYgaWQ9InBvbHlnb24tc2hh
cGUtaW5zaWRlIj48L2Rpdj4KLSAgICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+Ci0gICAgICAg
IFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFs
IHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZwotICAgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24u
IFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcg
YmxhY2sgYW5kCi0gICAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKzxi
b2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CisgIDxkaXYgaWQ9InBvbHlnb24t
c2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgorICAgICAg
VGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29uYWwg
c2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRo
ZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxh
Y2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+CisgIDxkaXYg
aWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7IGhlaWdodDogNXB4OyI+PC9k
aXY+CiA8L2JvZHk+CiAKIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
c2ltcGxlLXBvbHlnb24tMDAxLmh0bWwKaW5kZXggODMzNGQ2NS4uNjMyYzRjZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
c2ltcGxlLXBvbHlnb24tMDAxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLmh0bWwKQEAgLTks
NiArOSwxMyBAQAogICAgIC8vIENvbmNhdmUgYXNzeW1ldHJpYyBzaW1wbGUgcG9seWdvbiB3aXRo
IGhvcml6b250YWwgdG9wIGFuZCBib3R0b20gZWRnZXMuICBSb3VnaGx5IGFuIGhvdXJnbGFzcyBz
aGFwZS4KICAgICB2YXIgdmVydGljZXMgPSBbe3g6NDAsIHk6NDB9LCB7eDo0NDAsIHk6NDB9LCB7
eDozMjAsIHk6MTYwfSwge3g6NDgwLCB5OjMyMH0sIHt4OjgwLCB5OjMyMH0sIHt4OjIwMCwgeToy
MDB9XTsKICAgICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBv
cnQ7CisKKyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7
CisgICAgICAgIGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9vcihy
ZWN0LndpZHRoKTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UoKTsK
KyAgICB9CiA8L3NjcmlwdD4KIAogPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KQEAgLTIwLDE1ICsy
NywxNCBAQAogPC9zdHlsZT4KIDwvaGVhZD4KIAotPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29u
U2hhcGVJbnNpZGVUZXN0Q2FzZSh2ZXJ0aWNlcykiPgotICA8ZGl2IGlkPSJyb290Ij4KLSAgICA8
c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIj48L3N2Zz4KLSAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+Ci0g
ICAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgotICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMg
dGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5kIGEg
bWF0Y2hpbmcKLSAgICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQg
anVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAotICAgICAgICBl
bXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+Ci0gIDwvZGl2PgorPGJvZHkgb25sb2Fk
PSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1pbnNp
ZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICBUaGlzIHRlc3Qg
cmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNp
ZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRlbnQg
c2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQKKyAg
ICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0ic3VicGl4
ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4KIDwvYm9k
eT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1z
aW1wbGUtcG9seWdvbi0wMDItZXhwZWN0ZWQuaHRtbAppbmRleCBlNWM2MGI4Li4zMzcwNTJlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDItZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdv
bi0wMDItZXhwZWN0ZWQuaHRtbApAQCAtMTAsNiArMTAsMTMgQEAKICAgICAvLyBidXQgd2l0aCBh
IHJpZ2h0IHJpZ2h0IGVkZ2UuCiAgICAgdmFyIHZlcnRpY2VzID0gW3t4OjQwLCB5OjQwfSwge3g6
NDQwLCB5OjQwfSwge3g6NDgwLCB5OjMyMH0sIHt4OjgwLCB5OjMyMH0sIHt4OjIwMCwgeToyMDB9
XTsKICAgICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQ7
CisKKyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Cisg
ICAgICAgIGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9vcihyZWN0
LndpZHRoKTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3Rl
ZCgpOworICAgIH0KIDwvc2NyaXB0PgogCiA8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgpAQCAtMjEs
MTMgKzI4LDE0IEBACiA8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBv
bHlnb25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQodmVydGljZXMpIj4KLSAgICA8c3ZnIGlk
PSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48
L3N2Zz4KLSAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+Ci0gICAgPHAg
aWQ9ImluZm9ybWF0aXZlLXRleHQiPgotICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFo
ZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hp
bmcKLSAgICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBm
aWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAotICAgICAgICBlbXB0eSBy
ZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+Cis8Ym9keSBvbmxvYWQ9ImluaXQoKSI+CisgIDxz
dmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciPjwvc3ZnPgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CisgIDxw
IGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhl
bSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGlu
ZworICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxs
IHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgZW1wdHkgcmVjdGFu
Z2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0IiBzdHlsZT0i
d2lkdGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgogPC9ib2R5PgogCiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMi5odG1sCmlu
ZGV4IGE4ZDRmMTIuLmQzZGY3MGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXNpbXBsZS1wb2x5Z29uLTAwMi5odG1sCkBAIC0xMCw2ICsxMCwxMyBAQAogICAgIC8vIGJ1dCB3
aXRoIGEgc2luZ2xlIHJpZ2h0IGVkZ2UuCiAgICAgdmFyIHZlcnRpY2VzID0gW3t4OjQwLCB5OjQw
fSwge3g6NDQwLCB5OjQwfSwge3g6NDgwLCB5OjMyMH0sIHt4OjgwLCB5OjMyMH0sIHt4OjIwMCwg
eToyMDB9XTsKICAgICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1
cHBvcnQ7CisKKyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2YXIgcmVjdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7CisgICAgICAgIGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9v
cihyZWN0LndpZHRoKTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2Uo
KTsKKyAgICB9CiA8L3NjcmlwdD4KIAogPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KQEAgLTIxLDE1
ICsyOCwxNCBAQAogPC9zdHlsZT4KIDwvaGVhZD4KIAotPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5
Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSh2ZXJ0aWNlcykiPgotICA8ZGl2IGlkPSJyb290Ij4KLSAg
ICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIj48L3N2Zz4KLSAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+
Ci0gICAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgotICAgICAgICBUaGlzIHRlc3QgcmVxdWly
ZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5k
IGEgbWF0Y2hpbmcKLSAgICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91
bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAotICAgICAg
ICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+Ci0gIDwvZGl2PgorPGJvZHkgb25s
b2FkPSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1p
bnNpZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICBUaGlzIHRl
c3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1p
bnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRl
bnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQK
KyAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0ic3Vi
cGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4KIDwv
Ym9keT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1zaW1wbGUtcG9seWdvbi0wMDMtZXhwZWN0ZWQuaHRtbAppbmRleCBmNGRhZGJhLi5jYTUzMTU3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDMtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9s
eWdvbi0wMDMtZXhwZWN0ZWQuaHRtbApAQCAtMTAsNiArMTAsMTMgQEAKICAgICAvLyB3aXRoIGEg
dmVydGljYWwgbGVmdCBlZGdlLgogICAgIHZhciB2ZXJ0aWNlcyA9IFt7eDo0MCwgeTo0MH0sIHt4
OjQ0MCwgeTo0MH0sIHt4OjMyMCwgeToxNjB9LCB7eDo0ODAsIHk6MzIwfSwge3g6NDAsIHk6MzIw
fV07CiAgICAgdmFyIGxpbmVIZWlnaHQgPSA0MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0
OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVzdCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
ICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQgPSByZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVj
dC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0
ZWQoKTsKKyAgICB9CiA8L3NjcmlwdD4KIAogPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KQEAgLTIx
LDEzICsyOCwxNCBAQAogPC9zdHlsZT4KIDwvaGVhZD4KIAotPGJvZHkgb25sb2FkPSJjcmVhdGVQ
b2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKHZlcnRpY2VzKSI+Cis8Ym9keSBvbmxv
YWQ9ImluaXQoKSI+CiAgICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CiAgICAgPGRpdiBpZD0icG9seWdvbi1zaGFw
ZS1pbnNpZGUiPjwvZGl2PgogICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KICAgICAgICAg
VGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29uYWwg
c2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCiAgICAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4g
VGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBi
bGFjayBhbmQKICAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorICAg
IDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7IGhlaWdodDogNXB4
OyI+PC9kaXY+CiA8L2JvZHk+CiAKIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAw
My5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLmh0bWwKaW5kZXggNjk4MTk3Zi4uMDI5NDk5NyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLmh0bWwK
QEAgLTEwLDYgKzEwLDEzIEBACiAgICAgLy8gd2l0aCBhIHZlcnRpY2FsIGxlZnQgZWRnZS4KICAg
ICB2YXIgdmVydGljZXMgPSBbe3g6NDAsIHk6NDB9LCB7eDo0NDAsIHk6NDB9LCB7eDozMjAsIHk6
MTYwfSwge3g6NDgwLCB5OjMyMH0sIHt4OjQwLCB5OjMyMH1dOwogICAgIHZhciBsaW5lSGVpZ2h0
ID0gNDA7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQo
KSB7CisgICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVs
LXRlc3QiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBw
b3J0ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVh
dGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgpOworICAgIH0KIDwvc2NyaXB0PgogCiA8c3R5
bGUgaWQ9InN0eWxlc2hlZXQiPgpAQCAtMjEsMTUgKzI4LDE0IEBACiA8L3N0eWxlPgogPC9oZWFk
PgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKHZlcnRp
Y2VzKSI+Ci0gIDxkaXYgaWQ9InJvb3QiPgotICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBl
IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgotICAgIDxkaXYgaWQ9
InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KLSAgICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4
dCI+Ci0gICAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVz
IGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZwotICAgICAgICBmaWxsZWQg
U1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGgg
YWx0ZXJuYXRpbmcgYmxhY2sgYW5kCi0gICAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBs
aW5lLjwvcD4KLSAgPC9kaXY+Cis8Ym9keSBvbmxvYWQ9ImluaXQoKSI+CisgIDxzdmcgaWQ9InBv
bHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3Zn
PgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CisgIDxwIGlkPSJpbmZv
cm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJ
dCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZworICAgICAg
ZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxsIHRoZSBzaGFw
ZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBl
YWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0IiBzdHlsZT0id2lkdGg6IDQu
NXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgogPC9ib2R5PgogCiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1z
aW1wbGUtcG9seWdvbi0wMDQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwNC1leHBlY3Rl
ZC5odG1sCmluZGV4IGZjZDhhOTYuLjU2MzhjN2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAw
NC1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwNC1leHBlY3RlZC5odG1sCkBAIC0x
MCw2ICsxMCwxMyBAQAogICAgIC8vIGhvdXJnbGFzcyBzaGFwZSB3aXRoIHZlcnRpY2FsIGVkZ2Vz
IGluIHRoZSBjZW50ZXIuCiAgICAgdmFyIHZlcnRpY2VzID0gW3t4OjQwLCB5OjQwfSwge3g6NDQw
LCB5OjQwfSwge3g6MzIwLCB5OjE2MH0sIHt4OjMyMCwgeToyNDB9LCB7eDo0ODAsIHk6NDAwfSwg
e3g6ODAsIHk6NDAwfSwge3g6MjAwLCB5OjI4MH0sIHt4OjIwMCwgeToyMDB9XX07CiAgICAgdmFy
IGxpbmVIZWlnaHQgPSA0MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVu
Y3Rpb24gaW5pdCgpIHsKKyAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic3VicGl4ZWwtdGVzdCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNT
dWJwaXhlbFN1cHBvcnQgPSByZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7Cisg
ICAgICAgIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQoKTsKKyAgICB9
CiA8L3NjcmlwdD4KIAogPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KQEAgLTIxLDEzICsyOCwxNCBA
QAogPC9zdHlsZT4KIDwvaGVhZD4KIAotPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJ
bnNpZGVUZXN0Q2FzZUV4cGVjdGVkKHZlcnRpY2VzKSI+Cis8Ym9keSBvbmxvYWQ9ImluaXQoKSI+
CiAgICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAwL3N2ZyI+PC9zdmc+CiAgICAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1pbnNpZGUiPjwv
ZGl2PgogICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KICAgICAgICAgVGhpcyB0ZXN0IHJl
cXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRl
IGFuZCBhIG1hdGNoaW5nCiAgICAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRlbnQg
c2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQKICAg
ICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJw
aXhlbC10ZXN0IiBzdHlsZT0id2lkdGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgogPC9i
b2R5PgogCiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1w
b2x5Z29uLTAwNC5odG1sCmluZGV4IDllMTUwZWEuLmU1OTRkZjAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1w
b2x5Z29uLTAwNC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwNC5odG1sCkBAIC0xMCw2ICsxMCwx
MyBAQAogICAgIC8vIGhvdXJnbGFzcyBzaGFwZSB3aXRoIHZlcnRpY2FsIGVkZ2VzIGluIHRoZSBj
ZW50ZXIuCiAgICAgdmFyIHZlcnRpY2VzID0gW3t4OjQwLCB5OjQwfSwge3g6NDQwLCB5OjQwfSwg
e3g6MzIwLCB5OjE2MH0sIHt4OjMyMCwgeToyNDB9LCB7eDo0ODAsIHk6NDAwfSwge3g6ODAsIHk6
NDAwfSwge3g6MjAwLCB5OjI4MH0sIHt4OjIwMCwgeToyMDB9XX07CiAgICAgdmFyIGxpbmVIZWln
aHQgPSA0MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5p
dCgpIHsKKyAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4
ZWwtdGVzdCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1
cHBvcnQgPSByZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNy
ZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxz
dHlsZSBpZD0ic3R5bGVzaGVldCI+CkBAIC0yMSwxNSArMjgsMTQgQEAKIDwvc3R5bGU+CiA8L2hl
YWQ+CiAKLTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UodmVy
dGljZXMpIj4KLSAgPGRpdiBpZD0icm9vdCI+Ci0gICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hh
cGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Ci0gICAgPGRpdiBp
ZD0icG9seWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2PgotICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10
ZXh0Ij4KLSAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0
ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCi0gICAgICAgIGZpbGxl
ZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0
aCBhbHRlcm5hdGluZyBibGFjayBhbmQKLSAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNo
IGxpbmUuPC9wPgotICA8L2Rpdj4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0i
cG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9z
dmc+CisgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9Imlu
Zm9ybWF0aXZlLXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQu
IEl0IGNyZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAg
ICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNo
YXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9u
IGVhY2ggbGluZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDog
NC41cHg7IGhlaWdodDogNXB4OyI+PC9kaXY+CiA8L2JvZHk+CiAKIDwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="181163"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168280</attachid>
            <date>2012-10-11 14:42:09 -0700</date>
            <delta_ts>2012-10-16 15:41:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>27832</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNzFjOTBkLi43NGNkNmFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzAxMi0xMC0x
MCAgSGFucyBNdWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1
c2lvbnNdIEFkZGl0aW9uYWwgc2ltcGxlIHBvbHlnb24gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NTQ4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBwYWlyIG9mIENTUyBFeGNsdXNp
b25zIHNoYXBlLWluc2lkZSByZWYtdGVzdHMgZm9yIHJlZ3VsYXIgcG9seWdvbnMKKyAgICAgICAg
d2l0aCA4IGFuZCAxNiBzaWRlcy4gQWxzbyBtYWRlIHNvbWUgc21hbGwgcmV2aXNpb25zIHRvIHRo
ZSBzdXBwb3J0aW5nIGNvZGUsCisgICAgICAgIHNpbXBsZS1wb2x5b24uanMsIGFuZCB0aGUgZXhp
c3Rpbmcgc2ltcGxlIHBvbHlnb24gdGVzdHMsIGFuZCB0byBsb2NhbGl6ZSBhbmQKKyAgICAgICAg
Y29ycmVjdCB0aGUgY29udmVyc2lvbiBmcm9tIGZsb2F0IHRvIGxheW91dCBjb29yZGluYXRlcy4g
QWxsIG9mIHRoZSB0ZXN0cworICAgICAgICBub3cgcm91bmQvdHJ1bmNhdGUgdGhlIGxlZnQgZWRn
ZSBvZiBsaW5lIHNlZ21lbnQgaW50ZXJ2YWxzIGRlcGVuZGluZyBvbiB3aGV0aGVyCisgICAgICAg
IHN1YnBpeGVsIGxheW91dCBpcyBlbmFibGVkLgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25z
L3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qczoKKyAgICAgICAgKGNyZWF0ZVJlZ3VsYXJQb2x5
Z29uVmVydGljZXMpOgorICAgICAgICAocG9seWdvblhJbnRlcmNlcHRzKToKKyAgICAgICAgKHNp
bXVsYXRlUG9seWdvblNoYXBlKToKKyAgICAgICAgKGdlbmVyYXRlU2ltdWxhdGVkUG9seWdvblNo
YXBlSW5zaWRlRWxlbWVudCk6CisgICAgICAgIChjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0
Q2FzZSk6CisgICAgICAgIChjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVk
KToKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1y
ZWd1bGFyLXBvbHlnb24xNi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb24xNi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1yZWd1bGFyLXBvbHlnb244LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjgu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAx
Lmh0bWw6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLmh0bWw6
CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2lt
cGxlLXBvbHlnb24tMDAzLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLmh0bWw6CisgICAg
ICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBv
bHlnb24tMDA0LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDA0Lmh0bWw6CisKIDIwMTItMTAt
MTEgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZWJhc2VsaW5l
IHRoZXNlIHRlc3RzIGFmdGVyIHY4LWkxOG4gcm9sbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzCmluZGV4IDA0ZTRh
MDAuLjgwNmNhY2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNv
dXJjZXMvc2ltcGxlLXBvbHlnb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qcwpAQCAtMTMsNiArMTMsMzAgQEAgZnVuY3Rpb24g
Y3JlYXRlUG9seWdvbih2ZXJ0aWNlcykgewogICAgIH07CiB9CiAKK2Z1bmN0aW9uIGNyZWF0ZVJl
Z3VsYXJQb2x5Z29uVmVydGljZXMoc2l6ZSwgblNpZGVzKQoreworICAgIHZhciByYWRpdXMgPSBz
aXplIC8gKDIgKiBNYXRoLmNvcyhNYXRoLlBJIC8gblNpZGVzKSk7CisgICAgdmFyIGluc2V0ID0g
c2l6ZSAvIDIgKyAyMDsKKyAgICB2YXIgdmVydGljZXMgPSBbXTsKKworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgblNpZGVzLzI7IGkrKykgeworICAgICAgICB2YXIgYSA9ICgxICsgMippKSAqIChN
YXRoLlBJIC8gblNpZGVzKTsKKyAgICAgICAgdmVydGljZXNbaV0gPSB7eDogTWF0aC5mbG9vcihy
YWRpdXMgKiBNYXRoLmNvcyhhKSksIHk6IE1hdGguZmxvb3IocmFkaXVzICogTWF0aC5zaW4oYSkp
fTsKKyAgICAgICAgdmVydGljZXNbblNpZGVzIC0gaSAtIDFdID0ge3g6IHZlcnRpY2VzW2ldLngs
IHk6IC12ZXJ0aWNlc1tpXS55fSAgLy8gWSBheGlzIHN5bW1ldHJ5CisgICAgfQorCisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBuU2lkZXM7IGkrKykgeworICAgICAgICB2ZXJ0aWNlc1tpXS54ICs9
IGluc2V0OworICAgICAgICB2ZXJ0aWNlc1tpXS55ICs9IGluc2V0OworICAgIH0KKworICAgIHJl
dHVybiB2ZXJ0aWNlczsKK30KKworZnVuY3Rpb24gc3VicGl4ZWxSb3VuZChmKSB7IAorICAgIHJl
dHVybiBNYXRoLmZsb29yKCFoYXNTdWJwaXhlbFN1cHBvcnQgPyBmIDogKE1hdGguZmxvb3IoZiAq
IDY0KSArIDMyKSAvIDY0KTsgIC8vIHNlZSBGcmFjdGlvbkxheW91dFVuaXQ6OnJvdW5kKCkKK30K
KwogLy8gUmV0dXJuIHR3byBYIGludGVyY2VwdHMgb2YgdGhlIGhvcml6b250YWwgbGluZSBhdCB5
LiBXZSdyZSBhc3N1bWluZyB0aGF0IHRoZSBwb2x5Z29uCiAvLyAwIG9yIDIgaW50ZXJjZXB0cyBm
b3IgYWxsIHkuT2YgY291cnNlIHRoaXMgaXNuJ3QgdHJ1ZSBmb3IgcG9seWdvbnMgaW4gZ2VuZXJh
bCwKIC8vIGp1c3QgdGhlIG9uZXMgdXNlZCBieSB0aGUgdGVzdCBjYXNlcyBzdXBwb3J0ZWQgYnkg
dGhpcyBmaWxlLgpAQCAtNTMsNyArNzcsMTAgQEAgZnVuY3Rpb24gcG9seWdvblhJbnRlcmNlcHRz
KHBvbHlnb24sIHkpIHsKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiAoeEludGVyY2Vw
dHMubGVuZ3RoID09IDIpICA/IFtNYXRoLm1pbi5hcHBseShudWxsLCB4SW50ZXJjZXB0cyksIE1h
dGgubWF4LmFwcGx5KG51bGwsIHhJbnRlcmNlcHRzKV0gOiBbXTsKKyAgICBpZiAoeEludGVyY2Vw
dHMubGVuZ3RoICE9IDIpCisgICAgICAgIHJldHVybiBbXTsKKworICAgIHJldHVybiBbc3VicGl4
ZWxSb3VuZChNYXRoLm1pbi5hcHBseShudWxsLCB4SW50ZXJjZXB0cykpLCBNYXRoLmZsb29yKE1h
dGgubWF4LmFwcGx5KG51bGwsIHhJbnRlcmNlcHRzKSldOwogfQogCiBmdW5jdGlvbiBwb2x5Z29u
TGluZUludGVyY2VwdHMocG9seWdvbiwgeSwgbGluZUhlaWdodCkgewpAQCAtMTA5LDcgKzEzNiwx
MSBAQCBmdW5jdGlvbiBnZW5lcmF0ZVBvbHlnb25TVkdFbGVtZW50cyhlbGVtZW50SWQsIHN0eWxl
c2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpCiAgICAgdmFyIHN2Z1BvbHlnb24gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsICJwb2x5Z29uIik7CiAgICAgc3ZnUG9seWdvbi5zZXRB
dHRyaWJ1dGUoInBvaW50cyIsIHBvbHlnb24udmVydGljZXMubWFwKCBmdW5jdGlvbihwKSB7IHJl
dHVybiBwLnggKyAiLCIgKyBwLnk7IH0gKS5qb2luKCIgIikpOwogICAgIHN2Z1BvbHlnb24uc2V0
QXR0cmlidXRlKCJmaWxsIiwgIiM2MzYzNjMiKTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChlbGVtZW50SWQpLmFwcGVuZENoaWxkKHN2Z1BvbHlnb24pOworCisgICAgdmFyIHN2Z0VsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgIHN2Z0VsZW1lbnQu
c3R5bGUud2lkdGggPSBwb2x5Z29uLm1heFggKyAicHgiOworICAgIHN2Z0VsZW1lbnQuc3R5bGUu
aGVpZ2h0ID0gcG9seWdvbi5tYXhZICsgInB4IjsKKyAgICBzdmdFbGVtZW50LmFwcGVuZENoaWxk
KHN2Z1BvbHlnb24pOwogfQogCiBmdW5jdGlvbiBzaW11bGF0ZVBvbHlnb25TaGFwZShlbGVtZW50
SWQsIHN0eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpIHsKQEAgLTEzMSw4ICsxNjIsOCBA
QCBmdW5jdGlvbiBzaW11bGF0ZVBvbHlnb25TaGFwZShlbGVtZW50SWQsIHN0eWxlc2hlZXQsIHBv
bHlnb24sIGxpbmVIZWlnaHQpIHsKIAogICAgIGZvciAodmFyIHkgPSBwb2x5Z29uLm1pblk7IHkg
PCBwb2x5Z29uLm1heFk7IHkgKz0gbGluZUhlaWdodCkgewogICAgICAgICB2YXIgeEludGVyY2Vw
dHMgPSBwb2x5Z29uTGluZUludGVyY2VwdHMocG9seWdvbiwgeSwgbGluZUhlaWdodCk7Ci0gICAg
ICAgIHZhciBsZWZ0ID0gTWF0aC5jZWlsKHhJbnRlcmNlcHRzWzAgXSk7Ci0gICAgICAgIHZhciBy
aWdodCA9IE1hdGguZmxvb3IoeEludGVyY2VwdHNbMV0pOworICAgICAgICB2YXIgbGVmdCA9IHhJ
bnRlcmNlcHRzWzBdOworICAgICAgICB2YXIgcmlnaHQgPSB4SW50ZXJjZXB0c1sxXTsKIAogICAg
ICAgICB2YXIgcGFkZGluZ0xlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAg
ICAgICAgcGFkZGluZ0xlZnQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJmbG9hdCBsZWZ0Iik7CkBA
IC0xNjYsOCArMTk3LDggQEAgZnVuY3Rpb24gZ2VuZXJhdGVTaW11bGF0ZWRQb2x5Z29uU2hhcGVJ
bnNpZGVFbGVtZW50KGVsZW1lbnRJZCwgc3R5bGVzaGVldCwgcG9seWcKIAogICAgIGZvciAodmFy
IHkgPSBwb2x5Z29uLm1pblk7IHkgPCBwb2x5Z29uLm1heFk7IHkgKz0gbGluZUhlaWdodCkgewog
ICAgICAgICB2YXIgeEludGVyY2VwdHMgPSBwb2x5Z29uTGluZUludGVyY2VwdHMocG9seWdvbiwg
eSwgbGluZUhlaWdodCk7Ci0gICAgICAgIHZhciBsZWZ0ID0gTWF0aC5jZWlsKHhJbnRlcmNlcHRz
WzAgXSk7Ci0gICAgICAgIHZhciByaWdodCA9IE1hdGguZmxvb3IoeEludGVyY2VwdHNbMV0pOwor
ICAgICAgICB2YXIgbGVmdCA9IHhJbnRlcmNlcHRzWzBdOworICAgICAgICB2YXIgcmlnaHQgPSB4
SW50ZXJjZXB0c1sxXTsKIAogICAgICAgICB2YXIgcGFkZGluZ0xlZnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgcGFkZGluZ0xlZnQuc2V0QXR0cmlidXRlKCJjbGFz
cyIsICJmbG9hdCBsZWZ0Iik7CkBAIC0xODgsMTUgKzIxOSwxMiBAQCBmdW5jdGlvbiBnZW5lcmF0
ZVNpbXVsYXRlZFBvbHlnb25TaGFwZUluc2lkZUVsZW1lbnQoZWxlbWVudElkLCBzdHlsZXNoZWV0
LCBwb2x5ZwogICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQocCk7CiB9CiAKLQotCi0KIGZ1bmN0aW9u
IHBvc2l0aW9uSW5mb3JtYXRpdmVUZXh0KGVsZW1lbnRJZCwgc3R5bGVzaGVldCwgcG9seWdvbiwg
bGluZUhlaWdodCkKIHsKICAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoIiMiICsgZWxlbWVudElk
ICsgIiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAiICsgKHBvbHlnb24ubWF4WSArIGxpbmVI
ZWlnaHQpICsgInB4O30iKTsKIH0KIAotZnVuY3Rpb24gY3JlYXRlUG9seWdvblNoYXBlSW5zaWRl
VGVzdENhc2UodmVydGljZXMpIHsKK2Z1bmN0aW9uIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRl
c3RDYXNlKCkgewogICAgIHZhciBzdHlsZXNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InN0eWxlc2hlZXQiKS5zaGVldDsKICAgICB2YXIgcG9seWdvbiA9IGNyZWF0ZVBvbHlnb24odmVy
dGljZXMpOwogICAgIGdlbmVyYXRlUG9seWdvblNoYXBlSW5zaWRlRWxlbWVudCgicG9seWdvbi1z
aGFwZS1pbnNpZGUiLCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KTsKQEAgLTIwNCwx
MSArMjMyLDEwIEBAIGZ1bmN0aW9uIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKHZl
cnRpY2VzKSB7CiAgICAgcG9zaXRpb25JbmZvcm1hdGl2ZVRleHQoImluZm9ybWF0aXZlLXRleHQi
LCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KQogfQogCi1mdW5jdGlvbiBjcmVhdGVQ
b2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKHZlcnRpY2VzKSB7CitmdW5jdGlvbiBj
cmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCkgewogICAgIHZhciBzdHls
ZXNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0eWxlc2hlZXQiKS5zaGVldDsKICAg
ICB2YXIgcG9seWdvbiA9IGNyZWF0ZVBvbHlnb24odmVydGljZXMpOwogICAgIGdlbmVyYXRlU2lt
dWxhdGVkUG9seWdvblNoYXBlSW5zaWRlRWxlbWVudCgicG9seWdvbi1zaGFwZS1pbnNpZGUiLCBz
dHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KTsKICAgICBnZW5lcmF0ZVBvbHlnb25TVkdF
bGVtZW50cygicG9seWdvbi1zdmctc2hhcGUiLCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVp
Z2h0KTsKICAgICBwb3NpdGlvbkluZm9ybWF0aXZlVGV4dCgiaW5mb3JtYXRpdmUtdGV4dCIsIHN0
eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpCiB9Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9s
eWdvbjE2LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb24xNi1leHBlY3RlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZjhkY2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1y
ZWd1bGFyLXBvbHlnb24xNi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxl
LXBvbHlnb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFs
cykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5h
YmxlZCh0cnVlKTsKKworICAgIHZhciB2ZXJ0aWNlcyA9IGNyZWF0ZVJlZ3VsYXJQb2x5Z29uVmVy
dGljZXMoNDAwLCAxNik7IC8vIDQwMHg0MDAgMTYgc2lkZWQgcmVndWxhciBwb2x5Z29uCisgICAg
dmFyIGxpbmVIZWlnaHQgPSA0MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAg
ZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgic3VicGl4ZWwtdGVzdCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBo
YXNTdWJwaXhlbFN1cHBvcnQgPSByZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7
CisgICAgICAgIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQoKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKworPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KKyAgICAjcG9seWdvbi1z
aGFwZS1pbnNpZGUsICNwb2x5Z29uLXN2Zy1zaGFwZSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICB9Cis8L3N0
eWxlPgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9ImluaXQoKSI+CisgIDxzdmcgaWQ9InBvbHln
b24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgor
ICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CisgIDxwIGlkPSJpbmZvcm1h
dGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBj
cmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZworICAgICAgZmls
bGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3
aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNo
IGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0IiBzdHlsZT0id2lkdGg6IDQuNXB4
OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgorPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1
bGFyLXBvbHlnb24xNi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uMTYuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi40NTI1MDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5
Z29uMTYuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisKKyAgICB2
YXIgdmVydGljZXMgPSBjcmVhdGVSZWd1bGFyUG9seWdvblZlcnRpY2VzKDQwMCwgMTYpOyAvLyA0
MDB4NDAwIDE2IHNpZGVkIHJlZ3VsYXIgcG9seWdvbgorICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7
CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7Cisg
ICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3Qi
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0g
cmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5
Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgpOworICAgIH0KKzwvc2NyaXB0PgorCis8c3R5bGUgaWQ9
InN0eWxlc2hlZXQiPgorICAgICNwb2x5Z29uLXNoYXBlLWluc2lkZSwgI3BvbHlnb24tc3ZnLXNo
YXBlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7Cisg
ICAgICAgIHRvcDogMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9h
ZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CisgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5z
aWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgorICAgICAgVGhpcyB0ZXN0
IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5z
aWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50
IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisg
ICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+CisgIDxkaXYgaWQ9InN1YnBp
eGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7IGhlaWdodDogNXB4OyI+PC9kaXY+Cis8L2Jv
ZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjgtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJl
Z3VsYXItcG9seWdvbjgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yOTE1ZTljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uOC1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKworICAgIHZhciB2
ZXJ0aWNlcyA9IGNyZWF0ZVJlZ3VsYXJQb2x5Z29uVmVydGljZXMoNDAwLCA4KTsgLy8gNDAweDQw
MCA4IHNpZGVkIHJlZ3VsYXIgcG9seWdvbgorICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAg
dmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAg
IHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53
aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29uU2hh
cGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxzdHlsZSBp
ZD0ic3R5bGVzaGVldCI+CisgICAgI3BvbHlnb24tc2hhcGUtaW5zaWRlLCAjcG9seWdvbi1zdmct
c2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsK
KyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHkgb25s
b2FkPSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1p
bnNpZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICBUaGlzIHRl
c3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1p
bnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRl
bnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQK
KyAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0ic3Vi
cGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4KKzwv
Ym9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uOC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1w
b2x5Z29uOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxN2M2YjYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb244Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9zaW1wbGUtcG9seWdvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1
c2lvbnNFbmFibGVkKHRydWUpOworCisgICAgdmFyIHZlcnRpY2VzID0gY3JlYXRlUmVndWxhclBv
bHlnb25WZXJ0aWNlcyg0MDAsIDgpOyAvLyA0MDB4NDAwIHJlZ3VsYXIgb2N0YWhlZHJvbgorICAg
IHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAg
IGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAg
aGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgp
OworICAgICAgICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgpOworICAgIH0KKzwv
c2NyaXB0PgorCis8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgorICAgICNwb2x5Z29uLXNoYXBlLWlu
c2lkZSwgI3BvbHlnb24tc3ZnLXNoYXBlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKzwvc3R5bGU+Cis8
L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdvbi1zdmct
c2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CisgIDxkaXYg
aWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0aXZlLXRl
eHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMg
YSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxsZWQgU1ZH
IHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0
ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48
L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7IGhlaWdo
dDogNXB4OyI+PC9kaXY+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5
Z29uLTAwMS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVjdGVkLmh0bWwKaW5k
ZXggYmQ4NThhZS4uZjRmOWI0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVjdGVk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVjdGVkLmh0bWwKQEAgLTksNiArOSwxMyBA
QAogICAgIC8vIENvbmNhdmUgYXNzeW1ldHJpYyBzaW1wbGUgcG9seWdvbiB3aXRoIGhvcml6b250
YWwgdG9wIGFuZCBib3R0b20gZWRnZXMuICBSb3VnaGx5IGFuIGhvdXJnbGFzcyBzaGFwZS4KICAg
ICB2YXIgdmVydGljZXMgPSBbe3g6NDAsIHk6NDB9LCB7eDo0NDAsIHk6NDB9LCB7eDozMjAsIHk6
MTYwfSwge3g6NDgwLCB5OjMyMH0sIHt4OjgwLCB5OjMyMH0sIHt4OjIwMCwgeToyMDB9XTsKICAg
ICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQ7CisKKyAg
ICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAg
IGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9vcihyZWN0LndpZHRo
KTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCgpOwor
ICAgIH0KIDwvc2NyaXB0PgogCiA8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgpAQCAtMjAsMTMgKzI3
LDE0IEBACiA8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25T
aGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQodmVydGljZXMpIj4KLSAgICA8c3ZnIGlkPSJwb2x5
Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4K
LSAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+Ci0gICAgPHAgaWQ9Imlu
Zm9ybWF0aXZlLXRleHQiPgotICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9u
dC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKLSAg
ICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxsIHRo
ZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAotICAgICAgICBlbXB0eSByZWN0YW5n
bGVzIG9uIGVhY2ggbGluZS48L3A+Cis8Ym9keSBvbmxvYWQ9ImluaXQoKSI+CisgIDxzdmcgaWQ9
InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwv
c3ZnPgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CisgIDxwIGlkPSJp
bmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250
LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZworICAg
ICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxsIHRoZSBz
aGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBv
biBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0IiBzdHlsZT0id2lkdGg6
IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgogPC9ib2R5PgogCiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1zaW1wbGUtcG9seWdvbi0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMS5odG1sCmluZGV4IDgz
MzRkNjUuLjYzMmM0Y2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBs
ZS1wb2x5Z29uLTAwMS5odG1sCkBAIC05LDYgKzksMTMgQEAKICAgICAvLyBDb25jYXZlIGFzc3lt
ZXRyaWMgc2ltcGxlIHBvbHlnb24gd2l0aCBob3Jpem9udGFsIHRvcCBhbmQgYm90dG9tIGVkZ2Vz
LiAgUm91Z2hseSBhbiBob3VyZ2xhc3Mgc2hhcGUuCiAgICAgdmFyIHZlcnRpY2VzID0gW3t4OjQw
LCB5OjQwfSwge3g6NDQwLCB5OjQwfSwge3g6MzIwLCB5OjE2MH0sIHt4OjQ4MCwgeTozMjB9LCB7
eDo4MCwgeTozMjB9LCB7eDoyMDAsIHk6MjAwfV07CiAgICAgdmFyIGxpbmVIZWlnaHQgPSA0MDsK
KyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAg
ICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVzdCIp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQgPSBy
ZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBvbHln
b25TaGFwZUluc2lkZVRlc3RDYXNlKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHlsZSBpZD0i
c3R5bGVzaGVldCI+CkBAIC0yMCwxNSArMjcsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+CiAKLTxi
b2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UodmVydGljZXMpIj4K
LSAgPGRpdiBpZD0icm9vdCI+Ci0gICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Ci0gICAgPGRpdiBpZD0icG9seWdv
bi1zaGFwZS1pbnNpZGUiPjwvZGl2PgotICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KLSAg
ICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5
Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCi0gICAgICAgIGZpbGxlZCBTVkcgcG9s
eWdvbi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5h
dGluZyBibGFjayBhbmQKLSAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9w
PgotICA8L2Rpdj4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdvbi1z
dmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CisgIDxk
aXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0aXZl
LXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0
ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxsZWQg
U1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGgg
YWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGlu
ZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7IGhl
aWdodDogNXB4OyI+PC9kaXY+CiA8L2JvZHk+CiAKIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1w
b2x5Z29uLTAwMi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4cGVjdGVkLmh0bWwK
aW5kZXggZTVjNjBiOC4uMzM3MDUyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4cGVj
dGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4cGVjdGVkLmh0bWwKQEAgLTEwLDYgKzEw
LDEzIEBACiAgICAgLy8gYnV0IHdpdGggYSByaWdodCByaWdodCBlZGdlLgogICAgIHZhciB2ZXJ0
aWNlcyA9IFt7eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjQ4MCwgeTozMjB9LCB7eDo4
MCwgeTozMjB9LCB7eDoyMDAsIHk6MjAwfV07CiAgICAgdmFyIGxpbmVIZWlnaHQgPSA0MDsKKyAg
ICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAg
ICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVzdCIpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQgPSByZWN0
LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBvbHlnb25T
aGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQoKTsKKyAgICB9CiA8L3NjcmlwdD4KIAogPHN0eWxl
IGlkPSJzdHlsZXNoZWV0Ij4KQEAgLTIxLDEzICsyOCwxNCBAQAogPC9zdHlsZT4KIDwvaGVhZD4K
IAotPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVk
KHZlcnRpY2VzKSI+Ci0gICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Ci0gICAgPGRpdiBpZD0icG9seWdvbi1zaGFw
ZS1pbnNpZGUiPjwvZGl2PgotICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KLSAgICAgICAg
VGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29uYWwg
c2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCi0gICAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4g
VGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBi
bGFjayBhbmQKLSAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorPGJv
ZHkgb25sb2FkPSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdvbi1z
aGFwZS1pbnNpZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICBU
aGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBz
aGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhl
IGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFj
ayBhbmQKKyAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRpdiBp
ZD0ic3VicGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48L2Rp
dj4KIDwvYm9keT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1z
aW1wbGUtcG9seWdvbi0wMDIuaHRtbAppbmRleCBhOGQ0ZjEyLi5kM2RmNzBkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1z
aW1wbGUtcG9seWdvbi0wMDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDIuaHRtbApAQCAtMTAs
NiArMTAsMTMgQEAKICAgICAvLyBidXQgd2l0aCBhIHNpbmdsZSByaWdodCBlZGdlLgogICAgIHZh
ciB2ZXJ0aWNlcyA9IFt7eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjQ4MCwgeTozMjB9
LCB7eDo4MCwgeTozMjB9LCB7eDoyMDAsIHk6MjAwfV07CiAgICAgdmFyIGxpbmVIZWlnaHQgPSA0
MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsK
KyAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVz
dCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQg
PSByZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBv
bHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHlsZSBp
ZD0ic3R5bGVzaGVldCI+CkBAIC0yMSwxNSArMjgsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+CiAK
LTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UodmVydGljZXMp
Ij4KLSAgPGRpdiBpZD0icm9vdCI+Ci0gICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Ci0gICAgPGRpdiBpZD0icG9s
eWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2PgotICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4K
LSAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBw
b2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCi0gICAgICAgIGZpbGxlZCBTVkcg
cG9seWdvbi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRl
cm5hdGluZyBibGFjayBhbmQKLSAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUu
PC9wPgotICA8L2Rpdj4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdv
bi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Cisg
IDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0
aXZlLXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNy
ZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxs
ZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdp
dGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2gg
bGluZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7
IGhlaWdodDogNXB4OyI+PC9kaXY+CiA8L2JvZHk+CiAKIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBs
ZS1wb2x5Z29uLTAwMy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLWV4cGVjdGVkLmh0
bWwKaW5kZXggZjRkYWRiYS4uY2E1MzE1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLWV4
cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLWV4cGVjdGVkLmh0bWwKQEAgLTEwLDYg
KzEwLDEzIEBACiAgICAgLy8gd2l0aCBhIHZlcnRpY2FsIGxlZnQgZWRnZS4KICAgICB2YXIgdmVy
dGljZXMgPSBbe3g6NDAsIHk6NDB9LCB7eDo0NDAsIHk6NDB9LCB7eDozMjAsIHk6MTYwfSwge3g6
NDgwLCB5OjMyMH0sIHt4OjQwLCB5OjMyMH1dOwogICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7Cisg
ICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAg
ICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVj
dC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29u
U2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHls
ZSBpZD0ic3R5bGVzaGVldCI+CkBAIC0yMSwxMyArMjgsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+
CiAKLTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3Rl
ZCh2ZXJ0aWNlcykiPgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgogICAgIDxzdmcgaWQ9InBvbHln
b24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgog
ICAgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KICAgICA8cCBpZD0iaW5m
b3JtYXRpdmUtdGV4dCI+CiAgICAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250
LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZwogICAg
ICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhl
IHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCiAgICAgICAgIGVtcHR5IHJlY3Rhbmds
ZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0IiBzdHlsZT0i
d2lkdGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgogPC9ib2R5PgogCiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMy5odG1sCmlu
ZGV4IDY5ODE5N2YuLjAyOTQ5OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXNpbXBsZS1wb2x5Z29uLTAwMy5odG1sCkBAIC0xMCw2ICsxMCwxMyBAQAogICAgIC8vIHdpdGgg
YSB2ZXJ0aWNhbCBsZWZ0IGVkZ2UuCiAgICAgdmFyIHZlcnRpY2VzID0gW3t4OjQwLCB5OjQwfSwg
e3g6NDQwLCB5OjQwfSwge3g6MzIwLCB5OjE2MH0sIHt4OjQ4MCwgeTozMjB9LCB7eDo0MCwgeToz
MjB9XTsKICAgICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBv
cnQ7CisKKyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7
CisgICAgICAgIGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9vcihy
ZWN0LndpZHRoKTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UoKTsK
KyAgICB9CiA8L3NjcmlwdD4KIAogPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KQEAgLTIxLDE1ICsy
OCwxNCBAQAogPC9zdHlsZT4KIDwvaGVhZD4KIAotPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29u
U2hhcGVJbnNpZGVUZXN0Q2FzZSh2ZXJ0aWNlcykiPgotICA8ZGl2IGlkPSJyb290Ij4KLSAgICA8
c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIj48L3N2Zz4KLSAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+Ci0g
ICAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgotICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMg
dGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5kIGEg
bWF0Y2hpbmcKLSAgICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQg
anVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAotICAgICAgICBl
bXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+Ci0gIDwvZGl2PgorPGJvZHkgb25sb2Fk
PSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1pbnNp
ZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICBUaGlzIHRlc3Qg
cmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNp
ZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRlbnQg
c2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQKKyAg
ICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0ic3VicGl4
ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4KIDwvYm9k
eT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDA0LWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1z
aW1wbGUtcG9seWdvbi0wMDQtZXhwZWN0ZWQuaHRtbAppbmRleCBmY2Q4YTk2Li41NjM4YzdjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDQtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdv
bi0wMDQtZXhwZWN0ZWQuaHRtbApAQCAtMTAsNiArMTAsMTMgQEAKICAgICAvLyBob3VyZ2xhc3Mg
c2hhcGUgd2l0aCB2ZXJ0aWNhbCBlZGdlcyBpbiB0aGUgY2VudGVyLgogICAgIHZhciB2ZXJ0aWNl
cyA9IFt7eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjMyMCwgeToxNjB9LCB7eDozMjAs
IHk6MjQwfSwge3g6NDgwLCB5OjQwMH0sIHt4OjgwLCB5OjQwMH0sIHt4OjIwMCwgeToyODB9LCB7
eDoyMDAsIHk6MjAwfV19OwogICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAgdmFyIGhhc1N1
YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgIHZhciByZWN0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAhPSBN
YXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVU
ZXN0Q2FzZUV4cGVjdGVkKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHlsZSBpZD0ic3R5bGVz
aGVldCI+CkBAIC0yMSwxMyArMjgsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+CiAKLTxib2R5IG9u
bG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCh2ZXJ0aWNlcyki
PgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgogICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBl
IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgogICAgIDxkaXYgaWQ9
InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KICAgICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4
dCI+CiAgICAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVz
IGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZwogICAgICAgICBmaWxsZWQg
U1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGgg
YWx0ZXJuYXRpbmcgYmxhY2sgYW5kCiAgICAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBs
aW5lLjwvcD4KKyAgPGRpdiBpZD0ic3VicGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsg
aGVpZ2h0OiA1cHg7Ij48L2Rpdj4KIDwvYm9keT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxl
LXBvbHlnb24tMDA0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDQuaHRtbAppbmRleCA5ZTE1MGVhLi5l
NTk0ZGYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdv
bi0wMDQuaHRtbApAQCAtMTAsNiArMTAsMTMgQEAKICAgICAvLyBob3VyZ2xhc3Mgc2hhcGUgd2l0
aCB2ZXJ0aWNhbCBlZGdlcyBpbiB0aGUgY2VudGVyLgogICAgIHZhciB2ZXJ0aWNlcyA9IFt7eDo0
MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjMyMCwgeToxNjB9LCB7eDozMjAsIHk6MjQwfSwg
e3g6NDgwLCB5OjQwMH0sIHt4OjgwLCB5OjQwMH0sIHt4OjIwMCwgeToyODB9LCB7eDoyMDAsIHk6
MjAwfV19OwogICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAgdmFyIGhhc1N1YnBpeGVsU3Vw
cG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgIHZhciByZWN0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZsb29y
KHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgp
OworICAgIH0KIDwvc2NyaXB0PgogCiA8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgpAQCAtMjEsMTUg
KzI4LDE0IEBACiA8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHln
b25TaGFwZUluc2lkZVRlc3RDYXNlKHZlcnRpY2VzKSI+Ci0gIDxkaXYgaWQ9InJvb3QiPgotICAg
IDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciPjwvc3ZnPgotICAgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4K
LSAgICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+Ci0gICAgICAgIFRoaXMgdGVzdCByZXF1aXJl
cyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQg
YSBtYXRjaGluZwotICAgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3Vs
ZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCi0gICAgICAg
IGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KLSAgPC9kaXY+Cis8Ym9keSBvbmxv
YWQ9ImluaXQoKSI+CisgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWlu
c2lkZSI+PC9kaXY+CisgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVz
dCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWlu
c2lkZSBhbmQgYSBtYXRjaGluZworICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVu
dCBzaG91bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAor
ICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJw
aXhlbC10ZXN0IiBzdHlsZT0id2lkdGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgogPC9i
b2R5PgogCiA8L2h0bWw+Cg==
</data>
<flag name="review"
          id="182166"
          type_id="1"
          status="+"
          setter="krit"
    />
    <flag name="commit-queue"
          id="181243"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169043</attachid>
            <date>2012-10-16 15:41:36 -0700</date>
            <delta_ts>2012-10-16 15:47:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>27835</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmODY1MDAyLi5kZTU1YmViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTItMTAt
MTAgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBBZGRpdGlvbmFsIHNpbXBsZSBwb2x5Z29uIHRlc3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODU0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgcGFpciBvZiBDU1MgRXhjbHVz
aW9ucyBzaGFwZS1pbnNpZGUgcmVmLXRlc3RzIGZvciByZWd1bGFyIHBvbHlnb25zCisgICAgICAg
IHdpdGggOCBhbmQgMTYgc2lkZXMuIEFsc28gbWFkZSBzb21lIHNtYWxsIHJldmlzaW9ucyB0byB0
aGUgc3VwcG9ydGluZyBjb2RlLAorICAgICAgICBzaW1wbGUtcG9seW9uLmpzLCBhbmQgdGhlIGV4
aXN0aW5nIHNpbXBsZSBwb2x5Z29uIHRlc3RzLCBhbmQgdG8gbG9jYWxpemUgYW5kCisgICAgICAg
IGNvcnJlY3QgdGhlIGNvbnZlcnNpb24gZnJvbSBmbG9hdCB0byBsYXlvdXQgY29vcmRpbmF0ZXMu
IEFsbCBvZiB0aGUgdGVzdHMKKyAgICAgICAgbm93IHJvdW5kL3RydW5jYXRlIHRoZSBsZWZ0IGVk
Z2Ugb2YgbGluZSBzZWdtZW50IGludGVydmFscyBkZXBlbmRpbmcgb24gd2hldGhlcgorICAgICAg
ICBzdWJwaXhlbCBsYXlvdXQgaXMgZW5hYmxlZC4KKworICAgICAgICAqIGZhc3QvZXhjbHVzaW9u
cy9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanM6CisgICAgICAgIChjcmVhdGVSZWd1bGFyUG9s
eWdvblZlcnRpY2VzKToKKyAgICAgICAgKHBvbHlnb25YSW50ZXJjZXB0cyk6CisgICAgICAgIChz
aW11bGF0ZVBvbHlnb25TaGFwZSk6CisgICAgICAgIChnZW5lcmF0ZVNpbXVsYXRlZFBvbHlnb25T
aGFwZUluc2lkZUVsZW1lbnQpOgorICAgICAgICAoY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVz
dENhc2UpOgorICAgICAgICAoY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3Rl
ZCk6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
cmVndWxhci1wb2x5Z29uMTYtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uMTYuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtcmVndWxhci1wb2x5Z29uOC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb244
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMS1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAw
MS5odG1sOgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXNpbXBsZS1wb2x5Z29uLTAwMi1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMi5odG1s
OgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNp
bXBsZS1wb2x5Z29uLTAwMy1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMy5odG1sOgorICAg
ICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1w
b2x5Z29uLTAwNC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwNC5odG1sOgorCiAyMDEyLTEw
LTE2ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNvbWUg
dGVzdHMgbmVlZCByZWJhc2VsaW5lIGFmdGVyIHIxMzE0OTcKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzCmluZGV4IDA0
ZTRhMDAuLjgwNmNhY2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9y
ZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qcwpAQCAtMTMsNiArMTMsMzAgQEAgZnVuY3Rp
b24gY3JlYXRlUG9seWdvbih2ZXJ0aWNlcykgewogICAgIH07CiB9CiAKK2Z1bmN0aW9uIGNyZWF0
ZVJlZ3VsYXJQb2x5Z29uVmVydGljZXMoc2l6ZSwgblNpZGVzKQoreworICAgIHZhciByYWRpdXMg
PSBzaXplIC8gKDIgKiBNYXRoLmNvcyhNYXRoLlBJIC8gblNpZGVzKSk7CisgICAgdmFyIGluc2V0
ID0gc2l6ZSAvIDIgKyAyMDsKKyAgICB2YXIgdmVydGljZXMgPSBbXTsKKworICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgblNpZGVzLzI7IGkrKykgeworICAgICAgICB2YXIgYSA9ICgxICsgMippKSAq
IChNYXRoLlBJIC8gblNpZGVzKTsKKyAgICAgICAgdmVydGljZXNbaV0gPSB7eDogTWF0aC5mbG9v
cihyYWRpdXMgKiBNYXRoLmNvcyhhKSksIHk6IE1hdGguZmxvb3IocmFkaXVzICogTWF0aC5zaW4o
YSkpfTsKKyAgICAgICAgdmVydGljZXNbblNpZGVzIC0gaSAtIDFdID0ge3g6IHZlcnRpY2VzW2ld
LngsIHk6IC12ZXJ0aWNlc1tpXS55fSAgLy8gWSBheGlzIHN5bW1ldHJ5CisgICAgfQorCisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBuU2lkZXM7IGkrKykgeworICAgICAgICB2ZXJ0aWNlc1tpXS54
ICs9IGluc2V0OworICAgICAgICB2ZXJ0aWNlc1tpXS55ICs9IGluc2V0OworICAgIH0KKworICAg
IHJldHVybiB2ZXJ0aWNlczsKK30KKworZnVuY3Rpb24gc3VicGl4ZWxSb3VuZChmKSB7IAorICAg
IHJldHVybiBNYXRoLmZsb29yKCFoYXNTdWJwaXhlbFN1cHBvcnQgPyBmIDogKE1hdGguZmxvb3Io
ZiAqIDY0KSArIDMyKSAvIDY0KTsgIC8vIHNlZSBGcmFjdGlvbkxheW91dFVuaXQ6OnJvdW5kKCkK
K30KKwogLy8gUmV0dXJuIHR3byBYIGludGVyY2VwdHMgb2YgdGhlIGhvcml6b250YWwgbGluZSBh
dCB5LiBXZSdyZSBhc3N1bWluZyB0aGF0IHRoZSBwb2x5Z29uCiAvLyAwIG9yIDIgaW50ZXJjZXB0
cyBmb3IgYWxsIHkuT2YgY291cnNlIHRoaXMgaXNuJ3QgdHJ1ZSBmb3IgcG9seWdvbnMgaW4gZ2Vu
ZXJhbCwKIC8vIGp1c3QgdGhlIG9uZXMgdXNlZCBieSB0aGUgdGVzdCBjYXNlcyBzdXBwb3J0ZWQg
YnkgdGhpcyBmaWxlLgpAQCAtNTMsNyArNzcsMTAgQEAgZnVuY3Rpb24gcG9seWdvblhJbnRlcmNl
cHRzKHBvbHlnb24sIHkpIHsKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiAoeEludGVy
Y2VwdHMubGVuZ3RoID09IDIpICA/IFtNYXRoLm1pbi5hcHBseShudWxsLCB4SW50ZXJjZXB0cyks
IE1hdGgubWF4LmFwcGx5KG51bGwsIHhJbnRlcmNlcHRzKV0gOiBbXTsKKyAgICBpZiAoeEludGVy
Y2VwdHMubGVuZ3RoICE9IDIpCisgICAgICAgIHJldHVybiBbXTsKKworICAgIHJldHVybiBbc3Vi
cGl4ZWxSb3VuZChNYXRoLm1pbi5hcHBseShudWxsLCB4SW50ZXJjZXB0cykpLCBNYXRoLmZsb29y
KE1hdGgubWF4LmFwcGx5KG51bGwsIHhJbnRlcmNlcHRzKSldOwogfQogCiBmdW5jdGlvbiBwb2x5
Z29uTGluZUludGVyY2VwdHMocG9seWdvbiwgeSwgbGluZUhlaWdodCkgewpAQCAtMTA5LDcgKzEz
NiwxMSBAQCBmdW5jdGlvbiBnZW5lcmF0ZVBvbHlnb25TVkdFbGVtZW50cyhlbGVtZW50SWQsIHN0
eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpCiAgICAgdmFyIHN2Z1BvbHlnb24gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsICJwb2x5Z29uIik7CiAgICAgc3ZnUG9seWdvbi5z
ZXRBdHRyaWJ1dGUoInBvaW50cyIsIHBvbHlnb24udmVydGljZXMubWFwKCBmdW5jdGlvbihwKSB7
IHJldHVybiBwLnggKyAiLCIgKyBwLnk7IH0gKS5qb2luKCIgIikpOwogICAgIHN2Z1BvbHlnb24u
c2V0QXR0cmlidXRlKCJmaWxsIiwgIiM2MzYzNjMiKTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SWQpLmFwcGVuZENoaWxkKHN2Z1BvbHlnb24pOworCisgICAgdmFyIHN2Z0Vs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgIHN2Z0VsZW1l
bnQuc3R5bGUud2lkdGggPSBwb2x5Z29uLm1heFggKyAicHgiOworICAgIHN2Z0VsZW1lbnQuc3R5
bGUuaGVpZ2h0ID0gcG9seWdvbi5tYXhZICsgInB4IjsKKyAgICBzdmdFbGVtZW50LmFwcGVuZENo
aWxkKHN2Z1BvbHlnb24pOwogfQogCiBmdW5jdGlvbiBzaW11bGF0ZVBvbHlnb25TaGFwZShlbGVt
ZW50SWQsIHN0eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpIHsKQEAgLTEzMSw4ICsxNjIs
OCBAQCBmdW5jdGlvbiBzaW11bGF0ZVBvbHlnb25TaGFwZShlbGVtZW50SWQsIHN0eWxlc2hlZXQs
IHBvbHlnb24sIGxpbmVIZWlnaHQpIHsKIAogICAgIGZvciAodmFyIHkgPSBwb2x5Z29uLm1pblk7
IHkgPCBwb2x5Z29uLm1heFk7IHkgKz0gbGluZUhlaWdodCkgewogICAgICAgICB2YXIgeEludGVy
Y2VwdHMgPSBwb2x5Z29uTGluZUludGVyY2VwdHMocG9seWdvbiwgeSwgbGluZUhlaWdodCk7Ci0g
ICAgICAgIHZhciBsZWZ0ID0gTWF0aC5jZWlsKHhJbnRlcmNlcHRzWzAgXSk7Ci0gICAgICAgIHZh
ciByaWdodCA9IE1hdGguZmxvb3IoeEludGVyY2VwdHNbMV0pOworICAgICAgICB2YXIgbGVmdCA9
IHhJbnRlcmNlcHRzWzBdOworICAgICAgICB2YXIgcmlnaHQgPSB4SW50ZXJjZXB0c1sxXTsKIAog
ICAgICAgICB2YXIgcGFkZGluZ0xlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
ICAgICAgICAgcGFkZGluZ0xlZnQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJmbG9hdCBsZWZ0Iik7
CkBAIC0xNjYsOCArMTk3LDggQEAgZnVuY3Rpb24gZ2VuZXJhdGVTaW11bGF0ZWRQb2x5Z29uU2hh
cGVJbnNpZGVFbGVtZW50KGVsZW1lbnRJZCwgc3R5bGVzaGVldCwgcG9seWcKIAogICAgIGZvciAo
dmFyIHkgPSBwb2x5Z29uLm1pblk7IHkgPCBwb2x5Z29uLm1heFk7IHkgKz0gbGluZUhlaWdodCkg
ewogICAgICAgICB2YXIgeEludGVyY2VwdHMgPSBwb2x5Z29uTGluZUludGVyY2VwdHMocG9seWdv
biwgeSwgbGluZUhlaWdodCk7Ci0gICAgICAgIHZhciBsZWZ0ID0gTWF0aC5jZWlsKHhJbnRlcmNl
cHRzWzAgXSk7Ci0gICAgICAgIHZhciByaWdodCA9IE1hdGguZmxvb3IoeEludGVyY2VwdHNbMV0p
OworICAgICAgICB2YXIgbGVmdCA9IHhJbnRlcmNlcHRzWzBdOworICAgICAgICB2YXIgcmlnaHQg
PSB4SW50ZXJjZXB0c1sxXTsKIAogICAgICAgICB2YXIgcGFkZGluZ0xlZnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgcGFkZGluZ0xlZnQuc2V0QXR0cmlidXRlKCJj
bGFzcyIsICJmbG9hdCBsZWZ0Iik7CkBAIC0xODgsMTUgKzIxOSwxMiBAQCBmdW5jdGlvbiBnZW5l
cmF0ZVNpbXVsYXRlZFBvbHlnb25TaGFwZUluc2lkZUVsZW1lbnQoZWxlbWVudElkLCBzdHlsZXNo
ZWV0LCBwb2x5ZwogICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQocCk7CiB9CiAKLQotCi0KIGZ1bmN0
aW9uIHBvc2l0aW9uSW5mb3JtYXRpdmVUZXh0KGVsZW1lbnRJZCwgc3R5bGVzaGVldCwgcG9seWdv
biwgbGluZUhlaWdodCkKIHsKICAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoIiMiICsgZWxlbWVu
dElkICsgIiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAiICsgKHBvbHlnb24ubWF4WSArIGxp
bmVIZWlnaHQpICsgInB4O30iKTsKIH0KIAotZnVuY3Rpb24gY3JlYXRlUG9seWdvblNoYXBlSW5z
aWRlVGVzdENhc2UodmVydGljZXMpIHsKK2Z1bmN0aW9uIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lk
ZVRlc3RDYXNlKCkgewogICAgIHZhciBzdHlsZXNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInN0eWxlc2hlZXQiKS5zaGVldDsKICAgICB2YXIgcG9seWdvbiA9IGNyZWF0ZVBvbHlnb24o
dmVydGljZXMpOwogICAgIGdlbmVyYXRlUG9seWdvblNoYXBlSW5zaWRlRWxlbWVudCgicG9seWdv
bi1zaGFwZS1pbnNpZGUiLCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KTsKQEAgLTIw
NCwxMSArMjMyLDEwIEBAIGZ1bmN0aW9uIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNl
KHZlcnRpY2VzKSB7CiAgICAgcG9zaXRpb25JbmZvcm1hdGl2ZVRleHQoImluZm9ybWF0aXZlLXRl
eHQiLCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KQogfQogCi1mdW5jdGlvbiBjcmVh
dGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKHZlcnRpY2VzKSB7CitmdW5jdGlv
biBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCkgewogICAgIHZhciBz
dHlsZXNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0eWxlc2hlZXQiKS5zaGVldDsK
ICAgICB2YXIgcG9seWdvbiA9IGNyZWF0ZVBvbHlnb24odmVydGljZXMpOwogICAgIGdlbmVyYXRl
U2ltdWxhdGVkUG9seWdvblNoYXBlSW5zaWRlRWxlbWVudCgicG9seWdvbi1zaGFwZS1pbnNpZGUi
LCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KTsKICAgICBnZW5lcmF0ZVBvbHlnb25T
VkdFbGVtZW50cygicG9seWdvbi1zdmctc2hhcGUiLCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5l
SGVpZ2h0KTsKICAgICBwb3NpdGlvbkluZm9ybWF0aXZlVGV4dCgiaW5mb3JtYXRpdmUtdGV4dCIs
IHN0eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpCiB9Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXIt
cG9seWdvbjE2LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb24xNi1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZjhkY2YKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1yZWd1bGFyLXBvbHlnb24xNi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2lt
cGxlLXBvbHlnb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25z
RW5hYmxlZCh0cnVlKTsKKworICAgIHZhciB2ZXJ0aWNlcyA9IGNyZWF0ZVJlZ3VsYXJQb2x5Z29u
VmVydGljZXMoNDAwLCAxNik7IC8vIDQwMHg0MDAgMTYgc2lkZWQgcmVndWxhciBwb2x5Z29uCisg
ICAgdmFyIGxpbmVIZWlnaHQgPSA0MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisg
ICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic3VicGl4ZWwtdGVzdCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAg
ICBoYXNTdWJwaXhlbFN1cHBvcnQgPSByZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0
aCk7CisgICAgICAgIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKworPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KKyAgICAjcG9seWdv
bi1zaGFwZS1pbnNpZGUsICNwb2x5Z29uLXN2Zy1zaGFwZSB7CisgICAgICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICB9Cis8
L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9ImluaXQoKSI+CisgIDxzdmcgaWQ9InBv
bHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3Zn
PgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CisgIDxwIGlkPSJpbmZv
cm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJ
dCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZworICAgICAg
ZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxsIHRoZSBzaGFw
ZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBl
YWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0IiBzdHlsZT0id2lkdGg6IDQu
NXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgorPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1y
ZWd1bGFyLXBvbHlnb24xNi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uMTYuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTI1MDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1w
b2x5Z29uMTYuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisKKyAg
ICB2YXIgdmVydGljZXMgPSBjcmVhdGVSZWd1bGFyUG9seWdvblZlcnRpY2VzKDQwMCwgMTYpOyAv
LyA0MDB4NDAwIDE2IHNpZGVkIHJlZ3VsYXIgcG9seWdvbgorICAgIHZhciBsaW5lSGVpZ2h0ID0g
NDA7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7
CisgICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRl
c3QiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0
ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQ
b2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgpOworICAgIH0KKzwvc2NyaXB0PgorCis8c3R5bGUg
aWQ9InN0eWxlc2hlZXQiPgorICAgICNwb2x5Z29uLXNoYXBlLWluc2lkZSwgI3BvbHlnb24tc3Zn
LXNoYXBlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7
CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9u
bG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CisgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUt
aW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgorICAgICAgVGhpcyB0
ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUt
aW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250
ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5k
CisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+CisgIDxkaXYgaWQ9InN1
YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7IGhlaWdodDogNXB4OyI+PC9kaXY+Cis8
L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjgtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJlZ3VsYXItcG9seWdvbjgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4yOTE1ZTljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uOC1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKworICAgIHZh
ciB2ZXJ0aWNlcyA9IGNyZWF0ZVJlZ3VsYXJQb2x5Z29uVmVydGljZXMoNDAwLCA4KTsgLy8gNDAw
eDQwMCA4IHNpZGVkIHJlZ3VsYXIgcG9seWdvbgorICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7Cisg
ICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAg
ICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVj
dC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29u
U2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxzdHls
ZSBpZD0ic3R5bGVzaGVldCI+CisgICAgI3BvbHlnb24tc2hhcGUtaW5zaWRlLCAjcG9seWdvbi1z
dmctc2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBw
eDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHkg
b25sb2FkPSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdvbi1zaGFw
ZS1pbnNpZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICBUaGlz
IHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFw
ZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNv
bnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFjayBh
bmQKKyAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0i
c3VicGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4K
KzwvYm9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uOC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxh
ci1wb2x5Z29uOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxN2M2
YjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb244Lmh0bWwKQEAgLTAsMCArMSwzOSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9zaW1wbGUtcG9seWdvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4
Y2x1c2lvbnNFbmFibGVkKHRydWUpOworCisgICAgdmFyIHZlcnRpY2VzID0gY3JlYXRlUmVndWxh
clBvbHlnb25WZXJ0aWNlcyg0MDAsIDgpOyAvLyA0MDB4NDAwIHJlZ3VsYXIgb2N0YWhlZHJvbgor
ICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKwor
ICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAg
ICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lk
dGgpOworICAgICAgICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgpOworICAgIH0K
Kzwvc2NyaXB0PgorCis8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgorICAgICNwb2x5Z29uLXNoYXBl
LWluc2lkZSwgI3BvbHlnb24tc3ZnLXNoYXBlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKzwvc3R5bGU+
Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdvbi1z
dmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CisgIDxk
aXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0aXZl
LXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0
ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxsZWQg
U1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGgg
YWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGlu
ZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7IGhl
aWdodDogNXB4OyI+PC9kaXY+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1w
b2x5Z29uLTAwMS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVjdGVkLmh0bWwK
aW5kZXggYmQ4NThhZS4uZjRmOWI0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVj
dGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVjdGVkLmh0bWwKQEAgLTksNiArOSwx
MyBAQAogICAgIC8vIENvbmNhdmUgYXNzeW1ldHJpYyBzaW1wbGUgcG9seWdvbiB3aXRoIGhvcml6
b250YWwgdG9wIGFuZCBib3R0b20gZWRnZXMuICBSb3VnaGx5IGFuIGhvdXJnbGFzcyBzaGFwZS4K
ICAgICB2YXIgdmVydGljZXMgPSBbe3g6NDAsIHk6NDB9LCB7eDo0NDAsIHk6NDB9LCB7eDozMjAs
IHk6MTYwfSwge3g6NDgwLCB5OjMyMH0sIHt4OjgwLCB5OjMyMH0sIHt4OjIwMCwgeToyMDB9XTsK
ICAgICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQ7CisK
KyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAg
ICAgIGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9vcihyZWN0Lndp
ZHRoKTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCgp
OworICAgIH0KIDwvc2NyaXB0PgogCiA8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgpAQCAtMjAsMTMg
KzI3LDE0IEBACiA8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHln
b25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQodmVydGljZXMpIj4KLSAgICA8c3ZnIGlkPSJw
b2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2
Zz4KLSAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+Ci0gICAgPHAgaWQ9
ImluZm9ybWF0aXZlLXRleHQiPgotICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0g
Zm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcK
LSAgICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxs
IHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAotICAgICAgICBlbXB0eSByZWN0
YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+Cis8Ym9keSBvbmxvYWQ9ImluaXQoKSI+CisgIDxzdmcg
aWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
Pjwvc3ZnPgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CisgIDxwIGlk
PSJpbmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBm
b250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZwor
ICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxsIHRo
ZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgZW1wdHkgcmVjdGFuZ2xl
cyBvbiBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0IiBzdHlsZT0id2lk
dGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgogPC9ib2R5PgogCiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1zaW1wbGUtcG9seWdvbi0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMS5odG1sCmluZGV4
IDgzMzRkNjUuLjYzMmM0Y2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNp
bXBsZS1wb2x5Z29uLTAwMS5odG1sCkBAIC05LDYgKzksMTMgQEAKICAgICAvLyBDb25jYXZlIGFz
c3ltZXRyaWMgc2ltcGxlIHBvbHlnb24gd2l0aCBob3Jpem9udGFsIHRvcCBhbmQgYm90dG9tIGVk
Z2VzLiAgUm91Z2hseSBhbiBob3VyZ2xhc3Mgc2hhcGUuCiAgICAgdmFyIHZlcnRpY2VzID0gW3t4
OjQwLCB5OjQwfSwge3g6NDQwLCB5OjQwfSwge3g6MzIwLCB5OjE2MH0sIHt4OjQ4MCwgeTozMjB9
LCB7eDo4MCwgeTozMjB9LCB7eDoyMDAsIHk6MjAwfV07CiAgICAgdmFyIGxpbmVIZWlnaHQgPSA0
MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsK
KyAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVz
dCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQg
PSByZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBv
bHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHlsZSBp
ZD0ic3R5bGVzaGVldCI+CkBAIC0yMCwxNSArMjcsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+CiAK
LTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UodmVydGljZXMp
Ij4KLSAgPGRpdiBpZD0icm9vdCI+Ci0gICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Ci0gICAgPGRpdiBpZD0icG9s
eWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2PgotICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4K
LSAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBw
b2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCi0gICAgICAgIGZpbGxlZCBTVkcg
cG9seWdvbi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRl
cm5hdGluZyBibGFjayBhbmQKLSAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUu
PC9wPgotICA8L2Rpdj4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdv
bi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Cisg
IDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0
aXZlLXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNy
ZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxs
ZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdp
dGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2gg
bGluZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7
IGhlaWdodDogNXB4OyI+PC9kaXY+CiA8L2JvZHk+CiAKIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBs
ZS1wb2x5Z29uLTAwMi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4cGVjdGVkLmh0
bWwKaW5kZXggZTVjNjBiOC4uMzM3MDUyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4
cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4cGVjdGVkLmh0bWwKQEAgLTEwLDYg
KzEwLDEzIEBACiAgICAgLy8gYnV0IHdpdGggYSByaWdodCByaWdodCBlZGdlLgogICAgIHZhciB2
ZXJ0aWNlcyA9IFt7eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjQ4MCwgeTozMjB9LCB7
eDo4MCwgeTozMjB9LCB7eDoyMDAsIHk6MjAwfV07CiAgICAgdmFyIGxpbmVIZWlnaHQgPSA0MDsK
KyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAg
ICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVzdCIp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQgPSBy
ZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBvbHln
b25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQoKTsKKyAgICB9CiA8L3NjcmlwdD4KIAogPHN0
eWxlIGlkPSJzdHlsZXNoZWV0Ij4KQEAgLTIxLDEzICsyOCwxNCBAQAogPC9zdHlsZT4KIDwvaGVh
ZD4KIAotPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVj
dGVkKHZlcnRpY2VzKSI+Ci0gICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Ci0gICAgPGRpdiBpZD0icG9seWdvbi1z
aGFwZS1pbnNpZGUiPjwvZGl2PgotICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KLSAgICAg
ICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29u
YWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCi0gICAgICAgIGZpbGxlZCBTVkcgcG9seWdv
bi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGlu
ZyBibGFjayBhbmQKLSAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgor
PGJvZHkgb25sb2FkPSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdv
bi1zaGFwZS1pbnNpZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAg
ICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25h
bCBzaGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4g
VGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBi
bGFjayBhbmQKKyAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRp
diBpZD0ic3VicGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48
L2Rpdj4KIDwvYm9keT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1zaW1wbGUtcG9seWdvbi0wMDIuaHRtbAppbmRleCBhOGQ0ZjEyLi5kM2RmNzBkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1zaW1wbGUtcG9seWdvbi0wMDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDIuaHRtbApAQCAt
MTAsNiArMTAsMTMgQEAKICAgICAvLyBidXQgd2l0aCBhIHNpbmdsZSByaWdodCBlZGdlLgogICAg
IHZhciB2ZXJ0aWNlcyA9IFt7eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjQ4MCwgeToz
MjB9LCB7eDo4MCwgeTozMjB9LCB7eDoyMDAsIHk6MjAwfV07CiAgICAgdmFyIGxpbmVIZWlnaHQg
PSA0MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgp
IHsKKyAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwt
dGVzdCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBv
cnQgPSByZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0
ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHls
ZSBpZD0ic3R5bGVzaGVldCI+CkBAIC0yMSwxNSArMjgsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+
CiAKLTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UodmVydGlj
ZXMpIj4KLSAgPGRpdiBpZD0icm9vdCI+Ci0gICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUi
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Ci0gICAgPGRpdiBpZD0i
cG9seWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2PgotICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0
Ij4KLSAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMg
YSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCi0gICAgICAgIGZpbGxlZCBT
VkcgcG9seWdvbi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBh
bHRlcm5hdGluZyBibGFjayBhbmQKLSAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxp
bmUuPC9wPgotICA8L2Rpdj4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9s
eWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+
CisgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9y
bWF0aXZlLXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0
IGNyZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBm
aWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBl
IHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVh
Y2ggbGluZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41
cHg7IGhlaWdodDogNXB4OyI+PC9kaXY+CiA8L2JvZHk+CiAKIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNp
bXBsZS1wb2x5Z29uLTAwMy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLWV4cGVjdGVk
Lmh0bWwKaW5kZXggZjRkYWRiYS4uY2E1MzE1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAz
LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLWV4cGVjdGVkLmh0bWwKQEAgLTEw
LDYgKzEwLDEzIEBACiAgICAgLy8gd2l0aCBhIHZlcnRpY2FsIGxlZnQgZWRnZS4KICAgICB2YXIg
dmVydGljZXMgPSBbe3g6NDAsIHk6NDB9LCB7eDo0NDAsIHk6NDB9LCB7eDozMjAsIHk6MTYwfSwg
e3g6NDgwLCB5OjMyMH0sIHt4OjQwLCB5OjMyMH1dOwogICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7
CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7Cisg
ICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3Qi
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0g
cmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5
Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxz
dHlsZSBpZD0ic3R5bGVzaGVldCI+CkBAIC0yMSwxMyArMjgsMTQgQEAKIDwvc3R5bGU+CiA8L2hl
YWQ+CiAKLTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBl
Y3RlZCh2ZXJ0aWNlcykiPgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgogICAgIDxzdmcgaWQ9InBv
bHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3Zn
PgogICAgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KICAgICA8cCBpZD0i
aW5mb3JtYXRpdmUtdGV4dCI+CiAgICAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBm
b250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZwog
ICAgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwg
dGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCiAgICAgICAgIGVtcHR5IHJlY3Rh
bmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0IiBzdHls
ZT0id2lkdGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgogPC9ib2R5PgogCiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMy5odG1s
CmluZGV4IDY5ODE5N2YuLjAyOTQ5OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXNpbXBsZS1wb2x5Z29uLTAwMy5odG1sCkBAIC0xMCw2ICsxMCwxMyBAQAogICAgIC8vIHdp
dGggYSB2ZXJ0aWNhbCBsZWZ0IGVkZ2UuCiAgICAgdmFyIHZlcnRpY2VzID0gW3t4OjQwLCB5OjQw
fSwge3g6NDQwLCB5OjQwfSwge3g6MzIwLCB5OjE2MH0sIHt4OjQ4MCwgeTozMjB9LCB7eDo0MCwg
eTozMjB9XTsKICAgICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1
cHBvcnQ7CisKKyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2YXIgcmVjdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7CisgICAgICAgIGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9v
cihyZWN0LndpZHRoKTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2Uo
KTsKKyAgICB9CiA8L3NjcmlwdD4KIAogPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KQEAgLTIxLDE1
ICsyOCwxNCBAQAogPC9zdHlsZT4KIDwvaGVhZD4KIAotPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5
Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSh2ZXJ0aWNlcykiPgotICA8ZGl2IGlkPSJyb290Ij4KLSAg
ICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIj48L3N2Zz4KLSAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+
Ci0gICAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgotICAgICAgICBUaGlzIHRlc3QgcmVxdWly
ZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5k
IGEgbWF0Y2hpbmcKLSAgICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91
bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAotICAgICAg
ICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+Ci0gIDwvZGl2PgorPGJvZHkgb25s
b2FkPSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1p
bnNpZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICBUaGlzIHRl
c3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1p
bnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRl
bnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQK
KyAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0ic3Vi
cGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4KIDwv
Ym9keT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDA0LWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1zaW1wbGUtcG9seWdvbi0wMDQtZXhwZWN0ZWQuaHRtbAppbmRleCBmY2Q4YTk2Li41NjM4Yzdj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDQtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9s
eWdvbi0wMDQtZXhwZWN0ZWQuaHRtbApAQCAtMTAsNiArMTAsMTMgQEAKICAgICAvLyBob3VyZ2xh
c3Mgc2hhcGUgd2l0aCB2ZXJ0aWNhbCBlZGdlcyBpbiB0aGUgY2VudGVyLgogICAgIHZhciB2ZXJ0
aWNlcyA9IFt7eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjMyMCwgeToxNjB9LCB7eDoz
MjAsIHk6MjQwfSwge3g6NDgwLCB5OjQwMH0sIHt4OjgwLCB5OjQwMH0sIHt4OjIwMCwgeToyODB9
LCB7eDoyMDAsIHk6MjAwfV19OwogICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAgdmFyIGhh
c1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgIHZhciBy
ZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAh
PSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNp
ZGVUZXN0Q2FzZUV4cGVjdGVkKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHlsZSBpZD0ic3R5
bGVzaGVldCI+CkBAIC0yMSwxMyArMjgsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+CiAKLTxib2R5
IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCh2ZXJ0aWNl
cykiPgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgogICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNo
YXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgogICAgIDxkaXYg
aWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KICAgICA8cCBpZD0iaW5mb3JtYXRpdmUt
dGV4dCI+CiAgICAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVh
dGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZwogICAgICAgICBmaWxs
ZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdp
dGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCiAgICAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFj
aCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0ic3VicGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVw
eDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4KIDwvYm9keT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2lt
cGxlLXBvbHlnb24tMDA0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDQuaHRtbAppbmRleCA5ZTE1MGVh
Li5lNTk0ZGYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9s
eWdvbi0wMDQuaHRtbApAQCAtMTAsNiArMTAsMTMgQEAKICAgICAvLyBob3VyZ2xhc3Mgc2hhcGUg
d2l0aCB2ZXJ0aWNhbCBlZGdlcyBpbiB0aGUgY2VudGVyLgogICAgIHZhciB2ZXJ0aWNlcyA9IFt7
eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjMyMCwgeToxNjB9LCB7eDozMjAsIHk6MjQw
fSwge3g6NDgwLCB5OjQwMH0sIHt4OjgwLCB5OjQwMH0sIHt4OjIwMCwgeToyODB9LCB7eDoyMDAs
IHk6MjAwfV19OwogICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAgdmFyIGhhc1N1YnBpeGVs
U3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgIHZhciByZWN0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZs
b29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2Fz
ZSgpOworICAgIH0KIDwvc2NyaXB0PgogCiA8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgpAQCAtMjEs
MTUgKzI4LDE0IEBACiA8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBv
bHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKHZlcnRpY2VzKSI+Ci0gIDxkaXYgaWQ9InJvb3QiPgot
ICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciPjwvc3ZnPgotICAgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rp
dj4KLSAgICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+Ci0gICAgICAgIFRoaXMgdGVzdCByZXF1
aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBh
bmQgYSBtYXRjaGluZwotICAgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNo
b3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCi0gICAg
ICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KLSAgPC9kaXY+Cis8Ym9keSBv
bmxvYWQ9ImluaXQoKSI+CisgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBl
LWluc2lkZSI+PC9kaXY+CisgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMg
dGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBl
LWluc2lkZSBhbmQgYSBtYXRjaGluZworICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29u
dGVudCBzaG91bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFu
ZAorICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJz
dWJwaXhlbC10ZXN0IiBzdHlsZT0id2lkdGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2Pgog
PC9ib2R5PgogCiA8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="182202"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169044</attachid>
            <date>2012-10-16 15:47:36 -0700</date>
            <delta_ts>2012-10-17 09:27:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>27835</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmODY1MDAyLi5kZTU1YmViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTItMTAt
MTAgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBBZGRpdGlvbmFsIHNpbXBsZSBwb2x5Z29uIHRlc3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODU0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgcGFpciBvZiBDU1MgRXhjbHVz
aW9ucyBzaGFwZS1pbnNpZGUgcmVmLXRlc3RzIGZvciByZWd1bGFyIHBvbHlnb25zCisgICAgICAg
IHdpdGggOCBhbmQgMTYgc2lkZXMuIEFsc28gbWFkZSBzb21lIHNtYWxsIHJldmlzaW9ucyB0byB0
aGUgc3VwcG9ydGluZyBjb2RlLAorICAgICAgICBzaW1wbGUtcG9seW9uLmpzLCBhbmQgdGhlIGV4
aXN0aW5nIHNpbXBsZSBwb2x5Z29uIHRlc3RzLCBhbmQgdG8gbG9jYWxpemUgYW5kCisgICAgICAg
IGNvcnJlY3QgdGhlIGNvbnZlcnNpb24gZnJvbSBmbG9hdCB0byBsYXlvdXQgY29vcmRpbmF0ZXMu
IEFsbCBvZiB0aGUgdGVzdHMKKyAgICAgICAgbm93IHJvdW5kL3RydW5jYXRlIHRoZSBsZWZ0IGVk
Z2Ugb2YgbGluZSBzZWdtZW50IGludGVydmFscyBkZXBlbmRpbmcgb24gd2hldGhlcgorICAgICAg
ICBzdWJwaXhlbCBsYXlvdXQgaXMgZW5hYmxlZC4KKworICAgICAgICAqIGZhc3QvZXhjbHVzaW9u
cy9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanM6CisgICAgICAgIChjcmVhdGVSZWd1bGFyUG9s
eWdvblZlcnRpY2VzKToKKyAgICAgICAgKHBvbHlnb25YSW50ZXJjZXB0cyk6CisgICAgICAgIChz
aW11bGF0ZVBvbHlnb25TaGFwZSk6CisgICAgICAgIChnZW5lcmF0ZVNpbXVsYXRlZFBvbHlnb25T
aGFwZUluc2lkZUVsZW1lbnQpOgorICAgICAgICAoY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVz
dENhc2UpOgorICAgICAgICAoY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3Rl
ZCk6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
cmVndWxhci1wb2x5Z29uMTYtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uMTYuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtcmVndWxhci1wb2x5Z29uOC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb244
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMS1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAw
MS5odG1sOgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXNpbXBsZS1wb2x5Z29uLTAwMi1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMi5odG1s
OgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNp
bXBsZS1wb2x5Z29uLTAwMy1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMy5odG1sOgorICAg
ICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1w
b2x5Z29uLTAwNC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwNC5odG1sOgorCiAyMDEyLTEw
LTE2ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNvbWUg
dGVzdHMgbmVlZCByZWJhc2VsaW5lIGFmdGVyIHIxMzE0OTcKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzCmluZGV4IDA0
ZTRhMDAuLjgwNmNhY2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9y
ZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qcwpAQCAtMTMsNiArMTMsMzAgQEAgZnVuY3Rp
b24gY3JlYXRlUG9seWdvbih2ZXJ0aWNlcykgewogICAgIH07CiB9CiAKK2Z1bmN0aW9uIGNyZWF0
ZVJlZ3VsYXJQb2x5Z29uVmVydGljZXMoc2l6ZSwgblNpZGVzKQoreworICAgIHZhciByYWRpdXMg
PSBzaXplIC8gKDIgKiBNYXRoLmNvcyhNYXRoLlBJIC8gblNpZGVzKSk7CisgICAgdmFyIGluc2V0
ID0gc2l6ZSAvIDIgKyAyMDsKKyAgICB2YXIgdmVydGljZXMgPSBbXTsKKworICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgblNpZGVzLzI7IGkrKykgeworICAgICAgICB2YXIgYSA9ICgxICsgMippKSAq
IChNYXRoLlBJIC8gblNpZGVzKTsKKyAgICAgICAgdmVydGljZXNbaV0gPSB7eDogTWF0aC5mbG9v
cihyYWRpdXMgKiBNYXRoLmNvcyhhKSksIHk6IE1hdGguZmxvb3IocmFkaXVzICogTWF0aC5zaW4o
YSkpfTsKKyAgICAgICAgdmVydGljZXNbblNpZGVzIC0gaSAtIDFdID0ge3g6IHZlcnRpY2VzW2ld
LngsIHk6IC12ZXJ0aWNlc1tpXS55fSAgLy8gWSBheGlzIHN5bW1ldHJ5CisgICAgfQorCisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBuU2lkZXM7IGkrKykgeworICAgICAgICB2ZXJ0aWNlc1tpXS54
ICs9IGluc2V0OworICAgICAgICB2ZXJ0aWNlc1tpXS55ICs9IGluc2V0OworICAgIH0KKworICAg
IHJldHVybiB2ZXJ0aWNlczsKK30KKworZnVuY3Rpb24gc3VicGl4ZWxSb3VuZChmKSB7IAorICAg
IHJldHVybiBNYXRoLmZsb29yKCFoYXNTdWJwaXhlbFN1cHBvcnQgPyBmIDogKE1hdGguZmxvb3Io
ZiAqIDY0KSArIDMyKSAvIDY0KTsgIC8vIHNlZSBGcmFjdGlvbkxheW91dFVuaXQ6OnJvdW5kKCkK
K30KKwogLy8gUmV0dXJuIHR3byBYIGludGVyY2VwdHMgb2YgdGhlIGhvcml6b250YWwgbGluZSBh
dCB5LiBXZSdyZSBhc3N1bWluZyB0aGF0IHRoZSBwb2x5Z29uCiAvLyAwIG9yIDIgaW50ZXJjZXB0
cyBmb3IgYWxsIHkuT2YgY291cnNlIHRoaXMgaXNuJ3QgdHJ1ZSBmb3IgcG9seWdvbnMgaW4gZ2Vu
ZXJhbCwKIC8vIGp1c3QgdGhlIG9uZXMgdXNlZCBieSB0aGUgdGVzdCBjYXNlcyBzdXBwb3J0ZWQg
YnkgdGhpcyBmaWxlLgpAQCAtNTMsNyArNzcsMTAgQEAgZnVuY3Rpb24gcG9seWdvblhJbnRlcmNl
cHRzKHBvbHlnb24sIHkpIHsKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiAoeEludGVy
Y2VwdHMubGVuZ3RoID09IDIpICA/IFtNYXRoLm1pbi5hcHBseShudWxsLCB4SW50ZXJjZXB0cyks
IE1hdGgubWF4LmFwcGx5KG51bGwsIHhJbnRlcmNlcHRzKV0gOiBbXTsKKyAgICBpZiAoeEludGVy
Y2VwdHMubGVuZ3RoICE9IDIpCisgICAgICAgIHJldHVybiBbXTsKKworICAgIHJldHVybiBbc3Vi
cGl4ZWxSb3VuZChNYXRoLm1pbi5hcHBseShudWxsLCB4SW50ZXJjZXB0cykpLCBNYXRoLmZsb29y
KE1hdGgubWF4LmFwcGx5KG51bGwsIHhJbnRlcmNlcHRzKSldOwogfQogCiBmdW5jdGlvbiBwb2x5
Z29uTGluZUludGVyY2VwdHMocG9seWdvbiwgeSwgbGluZUhlaWdodCkgewpAQCAtMTA5LDcgKzEz
NiwxMSBAQCBmdW5jdGlvbiBnZW5lcmF0ZVBvbHlnb25TVkdFbGVtZW50cyhlbGVtZW50SWQsIHN0
eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpCiAgICAgdmFyIHN2Z1BvbHlnb24gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsICJwb2x5Z29uIik7CiAgICAgc3ZnUG9seWdvbi5z
ZXRBdHRyaWJ1dGUoInBvaW50cyIsIHBvbHlnb24udmVydGljZXMubWFwKCBmdW5jdGlvbihwKSB7
IHJldHVybiBwLnggKyAiLCIgKyBwLnk7IH0gKS5qb2luKCIgIikpOwogICAgIHN2Z1BvbHlnb24u
c2V0QXR0cmlidXRlKCJmaWxsIiwgIiM2MzYzNjMiKTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SWQpLmFwcGVuZENoaWxkKHN2Z1BvbHlnb24pOworCisgICAgdmFyIHN2Z0Vs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgIHN2Z0VsZW1l
bnQuc3R5bGUud2lkdGggPSBwb2x5Z29uLm1heFggKyAicHgiOworICAgIHN2Z0VsZW1lbnQuc3R5
bGUuaGVpZ2h0ID0gcG9seWdvbi5tYXhZICsgInB4IjsKKyAgICBzdmdFbGVtZW50LmFwcGVuZENo
aWxkKHN2Z1BvbHlnb24pOwogfQogCiBmdW5jdGlvbiBzaW11bGF0ZVBvbHlnb25TaGFwZShlbGVt
ZW50SWQsIHN0eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpIHsKQEAgLTEzMSw4ICsxNjIs
OCBAQCBmdW5jdGlvbiBzaW11bGF0ZVBvbHlnb25TaGFwZShlbGVtZW50SWQsIHN0eWxlc2hlZXQs
IHBvbHlnb24sIGxpbmVIZWlnaHQpIHsKIAogICAgIGZvciAodmFyIHkgPSBwb2x5Z29uLm1pblk7
IHkgPCBwb2x5Z29uLm1heFk7IHkgKz0gbGluZUhlaWdodCkgewogICAgICAgICB2YXIgeEludGVy
Y2VwdHMgPSBwb2x5Z29uTGluZUludGVyY2VwdHMocG9seWdvbiwgeSwgbGluZUhlaWdodCk7Ci0g
ICAgICAgIHZhciBsZWZ0ID0gTWF0aC5jZWlsKHhJbnRlcmNlcHRzWzAgXSk7Ci0gICAgICAgIHZh
ciByaWdodCA9IE1hdGguZmxvb3IoeEludGVyY2VwdHNbMV0pOworICAgICAgICB2YXIgbGVmdCA9
IHhJbnRlcmNlcHRzWzBdOworICAgICAgICB2YXIgcmlnaHQgPSB4SW50ZXJjZXB0c1sxXTsKIAog
ICAgICAgICB2YXIgcGFkZGluZ0xlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
ICAgICAgICAgcGFkZGluZ0xlZnQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJmbG9hdCBsZWZ0Iik7
CkBAIC0xNjYsOCArMTk3LDggQEAgZnVuY3Rpb24gZ2VuZXJhdGVTaW11bGF0ZWRQb2x5Z29uU2hh
cGVJbnNpZGVFbGVtZW50KGVsZW1lbnRJZCwgc3R5bGVzaGVldCwgcG9seWcKIAogICAgIGZvciAo
dmFyIHkgPSBwb2x5Z29uLm1pblk7IHkgPCBwb2x5Z29uLm1heFk7IHkgKz0gbGluZUhlaWdodCkg
ewogICAgICAgICB2YXIgeEludGVyY2VwdHMgPSBwb2x5Z29uTGluZUludGVyY2VwdHMocG9seWdv
biwgeSwgbGluZUhlaWdodCk7Ci0gICAgICAgIHZhciBsZWZ0ID0gTWF0aC5jZWlsKHhJbnRlcmNl
cHRzWzAgXSk7Ci0gICAgICAgIHZhciByaWdodCA9IE1hdGguZmxvb3IoeEludGVyY2VwdHNbMV0p
OworICAgICAgICB2YXIgbGVmdCA9IHhJbnRlcmNlcHRzWzBdOworICAgICAgICB2YXIgcmlnaHQg
PSB4SW50ZXJjZXB0c1sxXTsKIAogICAgICAgICB2YXIgcGFkZGluZ0xlZnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgcGFkZGluZ0xlZnQuc2V0QXR0cmlidXRlKCJj
bGFzcyIsICJmbG9hdCBsZWZ0Iik7CkBAIC0xODgsMTUgKzIxOSwxMiBAQCBmdW5jdGlvbiBnZW5l
cmF0ZVNpbXVsYXRlZFBvbHlnb25TaGFwZUluc2lkZUVsZW1lbnQoZWxlbWVudElkLCBzdHlsZXNo
ZWV0LCBwb2x5ZwogICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQocCk7CiB9CiAKLQotCi0KIGZ1bmN0
aW9uIHBvc2l0aW9uSW5mb3JtYXRpdmVUZXh0KGVsZW1lbnRJZCwgc3R5bGVzaGVldCwgcG9seWdv
biwgbGluZUhlaWdodCkKIHsKICAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoIiMiICsgZWxlbWVu
dElkICsgIiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAiICsgKHBvbHlnb24ubWF4WSArIGxp
bmVIZWlnaHQpICsgInB4O30iKTsKIH0KIAotZnVuY3Rpb24gY3JlYXRlUG9seWdvblNoYXBlSW5z
aWRlVGVzdENhc2UodmVydGljZXMpIHsKK2Z1bmN0aW9uIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lk
ZVRlc3RDYXNlKCkgewogICAgIHZhciBzdHlsZXNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInN0eWxlc2hlZXQiKS5zaGVldDsKICAgICB2YXIgcG9seWdvbiA9IGNyZWF0ZVBvbHlnb24o
dmVydGljZXMpOwogICAgIGdlbmVyYXRlUG9seWdvblNoYXBlSW5zaWRlRWxlbWVudCgicG9seWdv
bi1zaGFwZS1pbnNpZGUiLCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KTsKQEAgLTIw
NCwxMSArMjMyLDEwIEBAIGZ1bmN0aW9uIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNl
KHZlcnRpY2VzKSB7CiAgICAgcG9zaXRpb25JbmZvcm1hdGl2ZVRleHQoImluZm9ybWF0aXZlLXRl
eHQiLCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KQogfQogCi1mdW5jdGlvbiBjcmVh
dGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKHZlcnRpY2VzKSB7CitmdW5jdGlv
biBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCkgewogICAgIHZhciBz
dHlsZXNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0eWxlc2hlZXQiKS5zaGVldDsK
ICAgICB2YXIgcG9seWdvbiA9IGNyZWF0ZVBvbHlnb24odmVydGljZXMpOwogICAgIGdlbmVyYXRl
U2ltdWxhdGVkUG9seWdvblNoYXBlSW5zaWRlRWxlbWVudCgicG9seWdvbi1zaGFwZS1pbnNpZGUi
LCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5lSGVpZ2h0KTsKICAgICBnZW5lcmF0ZVBvbHlnb25T
VkdFbGVtZW50cygicG9seWdvbi1zdmctc2hhcGUiLCBzdHlsZXNoZWV0LCBwb2x5Z29uLCBsaW5l
SGVpZ2h0KTsKICAgICBwb3NpdGlvbkluZm9ybWF0aXZlVGV4dCgiaW5mb3JtYXRpdmUtdGV4dCIs
IHN0eWxlc2hlZXQsIHBvbHlnb24sIGxpbmVIZWlnaHQpCiB9Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXIt
cG9seWdvbjE2LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb24xNi1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZjhkY2YKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1yZWd1bGFyLXBvbHlnb24xNi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2lt
cGxlLXBvbHlnb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25z
RW5hYmxlZCh0cnVlKTsKKworICAgIHZhciB2ZXJ0aWNlcyA9IGNyZWF0ZVJlZ3VsYXJQb2x5Z29u
VmVydGljZXMoNDAwLCAxNik7IC8vIDQwMHg0MDAgMTYgc2lkZWQgcmVndWxhciBwb2x5Z29uCisg
ICAgdmFyIGxpbmVIZWlnaHQgPSA0MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisg
ICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic3VicGl4ZWwtdGVzdCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAg
ICBoYXNTdWJwaXhlbFN1cHBvcnQgPSByZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0
aCk7CisgICAgICAgIGNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKworPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KKyAgICAjcG9seWdv
bi1zaGFwZS1pbnNpZGUsICNwb2x5Z29uLXN2Zy1zaGFwZSB7CisgICAgICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICB9Cis8
L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9ImluaXQoKSI+CisgIDxzdmcgaWQ9InBv
bHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3Zn
PgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CisgIDxwIGlkPSJpbmZv
cm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJ
dCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZworICAgICAg
ZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxsIHRoZSBzaGFw
ZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBl
YWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0IiBzdHlsZT0id2lkdGg6IDQu
NXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgorPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1y
ZWd1bGFyLXBvbHlnb24xNi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uMTYuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTI1MDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1w
b2x5Z29uMTYuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisKKyAg
ICB2YXIgdmVydGljZXMgPSBjcmVhdGVSZWd1bGFyUG9seWdvblZlcnRpY2VzKDQwMCwgMTYpOyAv
LyA0MDB4NDAwIDE2IHNpZGVkIHJlZ3VsYXIgcG9seWdvbgorICAgIHZhciBsaW5lSGVpZ2h0ID0g
NDA7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7
CisgICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRl
c3QiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0
ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQ
b2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgpOworICAgIH0KKzwvc2NyaXB0PgorCis8c3R5bGUg
aWQ9InN0eWxlc2hlZXQiPgorICAgICNwb2x5Z29uLXNoYXBlLWluc2lkZSwgI3BvbHlnb24tc3Zn
LXNoYXBlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7
CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9u
bG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CisgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUt
aW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgorICAgICAgVGhpcyB0
ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUt
aW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250
ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5k
CisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+CisgIDxkaXYgaWQ9InN1
YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7IGhlaWdodDogNXB4OyI+PC9kaXY+Cis8
L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJlZ3VsYXItcG9seWdvbjgtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJlZ3VsYXItcG9seWdvbjgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4yOTE1ZTljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uOC1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxlLXBvbHlnb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKworICAgIHZh
ciB2ZXJ0aWNlcyA9IGNyZWF0ZVJlZ3VsYXJQb2x5Z29uVmVydGljZXMoNDAwLCA4KTsgLy8gNDAw
eDQwMCA4IHNpZGVkIHJlZ3VsYXIgcG9seWdvbgorICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7Cisg
ICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAg
ICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVj
dC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29u
U2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxzdHls
ZSBpZD0ic3R5bGVzaGVldCI+CisgICAgI3BvbHlnb24tc2hhcGUtaW5zaWRlLCAjcG9seWdvbi1z
dmctc2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBw
eDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHkg
b25sb2FkPSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdvbi1zaGFw
ZS1pbnNpZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICBUaGlz
IHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFw
ZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNv
bnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFjayBh
bmQKKyAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0i
c3VicGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4K
KzwvYm9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxhci1wb2x5Z29uOC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcmVndWxh
ci1wb2x5Z29uOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxN2M2
YjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1yZWd1bGFyLXBvbHlnb244Lmh0bWwKQEAgLTAsMCArMSwzOSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9zaW1wbGUtcG9seWdvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4
Y2x1c2lvbnNFbmFibGVkKHRydWUpOworCisgICAgdmFyIHZlcnRpY2VzID0gY3JlYXRlUmVndWxh
clBvbHlnb25WZXJ0aWNlcyg0MDAsIDgpOyAvLyA0MDB4NDAwIHJlZ3VsYXIgb2N0YWhlZHJvbgor
ICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKwor
ICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAg
ICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lk
dGgpOworICAgICAgICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSgpOworICAgIH0K
Kzwvc2NyaXB0PgorCis8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgorICAgICNwb2x5Z29uLXNoYXBl
LWluc2lkZSwgI3BvbHlnb24tc3ZnLXNoYXBlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKzwvc3R5bGU+
Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdvbi1z
dmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CisgIDxk
aXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0aXZl
LXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0
ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxsZWQg
U1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGgg
YWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGlu
ZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7IGhl
aWdodDogNXB4OyI+PC9kaXY+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1w
b2x5Z29uLTAwMS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVjdGVkLmh0bWwK
aW5kZXggYmQ4NThhZS4uZjRmOWI0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVj
dGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAxLWV4cGVjdGVkLmh0bWwKQEAgLTksNiArOSwx
MyBAQAogICAgIC8vIENvbmNhdmUgYXNzeW1ldHJpYyBzaW1wbGUgcG9seWdvbiB3aXRoIGhvcml6
b250YWwgdG9wIGFuZCBib3R0b20gZWRnZXMuICBSb3VnaGx5IGFuIGhvdXJnbGFzcyBzaGFwZS4K
ICAgICB2YXIgdmVydGljZXMgPSBbe3g6NDAsIHk6NDB9LCB7eDo0NDAsIHk6NDB9LCB7eDozMjAs
IHk6MTYwfSwge3g6NDgwLCB5OjMyMH0sIHt4OjgwLCB5OjMyMH0sIHt4OjIwMCwgeToyMDB9XTsK
ICAgICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQ7CisK
KyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAg
ICAgIGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9vcihyZWN0Lndp
ZHRoKTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCgp
OworICAgIH0KIDwvc2NyaXB0PgogCiA8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgpAQCAtMjAsMTMg
KzI3LDE0IEBACiA8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBvbHln
b25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQodmVydGljZXMpIj4KLSAgICA8c3ZnIGlkPSJw
b2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2
Zz4KLSAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+Ci0gICAgPHAgaWQ9
ImluZm9ybWF0aXZlLXRleHQiPgotICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0g
Zm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcK
LSAgICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxs
IHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAotICAgICAgICBlbXB0eSByZWN0
YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+Cis8Ym9keSBvbmxvYWQ9ImluaXQoKSI+CisgIDxzdmcg
aWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
Pjwvc3ZnPgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CisgIDxwIGlk
PSJpbmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBm
b250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZwor
ICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxsIHRo
ZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgZW1wdHkgcmVjdGFuZ2xl
cyBvbiBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0IiBzdHlsZT0id2lk
dGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgogPC9ib2R5PgogCiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1zaW1wbGUtcG9seWdvbi0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMS5odG1sCmluZGV4
IDgzMzRkNjUuLjYzMmM0Y2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNp
bXBsZS1wb2x5Z29uLTAwMS5odG1sCkBAIC05LDYgKzksMTMgQEAKICAgICAvLyBDb25jYXZlIGFz
c3ltZXRyaWMgc2ltcGxlIHBvbHlnb24gd2l0aCBob3Jpem9udGFsIHRvcCBhbmQgYm90dG9tIGVk
Z2VzLiAgUm91Z2hseSBhbiBob3VyZ2xhc3Mgc2hhcGUuCiAgICAgdmFyIHZlcnRpY2VzID0gW3t4
OjQwLCB5OjQwfSwge3g6NDQwLCB5OjQwfSwge3g6MzIwLCB5OjE2MH0sIHt4OjQ4MCwgeTozMjB9
LCB7eDo4MCwgeTozMjB9LCB7eDoyMDAsIHk6MjAwfV07CiAgICAgdmFyIGxpbmVIZWlnaHQgPSA0
MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsK
KyAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVz
dCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQg
PSByZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBv
bHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHlsZSBp
ZD0ic3R5bGVzaGVldCI+CkBAIC0yMCwxNSArMjcsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+CiAK
LTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UodmVydGljZXMp
Ij4KLSAgPGRpdiBpZD0icm9vdCI+Ci0gICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Ci0gICAgPGRpdiBpZD0icG9s
eWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2PgotICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4K
LSAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBw
b2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCi0gICAgICAgIGZpbGxlZCBTVkcg
cG9seWdvbi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRl
cm5hdGluZyBibGFjayBhbmQKLSAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUu
PC9wPgotICA8L2Rpdj4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9seWdv
bi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Cisg
IDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9ybWF0
aXZlLXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNy
ZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBmaWxs
ZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdp
dGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2gg
bGluZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41cHg7
IGhlaWdodDogNXB4OyI+PC9kaXY+CiA8L2JvZHk+CiAKIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBs
ZS1wb2x5Z29uLTAwMi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4cGVjdGVkLmh0
bWwKaW5kZXggZTVjNjBiOC4uMzM3MDUyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4
cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLWV4cGVjdGVkLmh0bWwKQEAgLTEwLDYg
KzEwLDEzIEBACiAgICAgLy8gYnV0IHdpdGggYSByaWdodCByaWdodCBlZGdlLgogICAgIHZhciB2
ZXJ0aWNlcyA9IFt7eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjQ4MCwgeTozMjB9LCB7
eDo4MCwgeTozMjB9LCB7eDoyMDAsIHk6MjAwfV07CiAgICAgdmFyIGxpbmVIZWlnaHQgPSA0MDsK
KyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAg
ICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwtdGVzdCIp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBvcnQgPSBy
ZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0ZVBvbHln
b25TaGFwZUluc2lkZVRlc3RDYXNlRXhwZWN0ZWQoKTsKKyAgICB9CiA8L3NjcmlwdD4KIAogPHN0
eWxlIGlkPSJzdHlsZXNoZWV0Ij4KQEAgLTIxLDEzICsyOCwxNCBAQAogPC9zdHlsZT4KIDwvaGVh
ZD4KIAotPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVj
dGVkKHZlcnRpY2VzKSI+Ci0gICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Ci0gICAgPGRpdiBpZD0icG9seWdvbi1z
aGFwZS1pbnNpZGUiPjwvZGl2PgotICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KLSAgICAg
ICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29u
YWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCi0gICAgICAgIGZpbGxlZCBTVkcgcG9seWdv
bi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGlu
ZyBibGFjayBhbmQKLSAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgor
PGJvZHkgb25sb2FkPSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdv
bi1zaGFwZS1pbnNpZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAg
ICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25h
bCBzaGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4g
VGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBi
bGFjayBhbmQKKyAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRp
diBpZD0ic3VicGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48
L2Rpdj4KIDwvYm9keT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1zaW1wbGUtcG9seWdvbi0wMDIuaHRtbAppbmRleCBhOGQ0ZjEyLi5kM2RmNzBkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1zaW1wbGUtcG9seWdvbi0wMDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDIuaHRtbApAQCAt
MTAsNiArMTAsMTMgQEAKICAgICAvLyBidXQgd2l0aCBhIHNpbmdsZSByaWdodCBlZGdlLgogICAg
IHZhciB2ZXJ0aWNlcyA9IFt7eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjQ4MCwgeToz
MjB9LCB7eDo4MCwgeTozMjB9LCB7eDoyMDAsIHk6MjAwfV07CiAgICAgdmFyIGxpbmVIZWlnaHQg
PSA0MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0OworCisgICAgZnVuY3Rpb24gaW5pdCgp
IHsKKyAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VicGl4ZWwt
dGVzdCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBoYXNTdWJwaXhlbFN1cHBv
cnQgPSByZWN0LndpZHRoICE9IE1hdGguZmxvb3IocmVjdC53aWR0aCk7CisgICAgICAgIGNyZWF0
ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHls
ZSBpZD0ic3R5bGVzaGVldCI+CkBAIC0yMSwxNSArMjgsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+
CiAKLTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UodmVydGlj
ZXMpIj4KLSAgPGRpdiBpZD0icm9vdCI+Ci0gICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUi
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+Ci0gICAgPGRpdiBpZD0i
cG9seWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2PgotICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0
Ij4KLSAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMg
YSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCi0gICAgICAgIGZpbGxlZCBT
VkcgcG9seWdvbi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBh
bHRlcm5hdGluZyBibGFjayBhbmQKLSAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxp
bmUuPC9wPgotICA8L2Rpdj4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKyAgPHN2ZyBpZD0icG9s
eWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+
CisgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgPHAgaWQ9ImluZm9y
bWF0aXZlLXRleHQiPgorICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0
IGNyZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICBm
aWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBl
IHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVh
Y2ggbGluZS48L3A+CisgIDxkaXYgaWQ9InN1YnBpeGVsLXRlc3QiIHN0eWxlPSJ3aWR0aDogNC41
cHg7IGhlaWdodDogNXB4OyI+PC9kaXY+CiA8L2JvZHk+CiAKIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNp
bXBsZS1wb2x5Z29uLTAwMy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLWV4cGVjdGVk
Lmh0bWwKaW5kZXggZjRkYWRiYS4uY2E1MzE1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAz
LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDAzLWV4cGVjdGVkLmh0bWwKQEAgLTEw
LDYgKzEwLDEzIEBACiAgICAgLy8gd2l0aCBhIHZlcnRpY2FsIGxlZnQgZWRnZS4KICAgICB2YXIg
dmVydGljZXMgPSBbe3g6NDAsIHk6NDB9LCB7eDo0NDAsIHk6NDB9LCB7eDozMjAsIHk6MTYwfSwg
e3g6NDgwLCB5OjMyMH0sIHt4OjQwLCB5OjMyMH1dOwogICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7
CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7Cisg
ICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3Qi
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0g
cmVjdC53aWR0aCAhPSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5
Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxz
dHlsZSBpZD0ic3R5bGVzaGVldCI+CkBAIC0yMSwxMyArMjgsMTQgQEAKIDwvc3R5bGU+CiA8L2hl
YWQ+CiAKLTxib2R5IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBl
Y3RlZCh2ZXJ0aWNlcykiPgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgogICAgIDxzdmcgaWQ9InBv
bHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3Zn
PgogICAgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KICAgICA8cCBpZD0i
aW5mb3JtYXRpdmUtdGV4dCI+CiAgICAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBm
b250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZwog
ICAgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwg
dGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCiAgICAgICAgIGVtcHR5IHJlY3Rh
bmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgICA8ZGl2IGlkPSJzdWJwaXhlbC10ZXN0IiBzdHls
ZT0id2lkdGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2PgogPC9ib2R5PgogCiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMy5odG1s
CmluZGV4IDY5ODE5N2YuLjAyOTQ5OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXNpbXBsZS1wb2x5Z29uLTAwMy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXNpbXBsZS1wb2x5Z29uLTAwMy5odG1sCkBAIC0xMCw2ICsxMCwxMyBAQAogICAgIC8vIHdp
dGggYSB2ZXJ0aWNhbCBsZWZ0IGVkZ2UuCiAgICAgdmFyIHZlcnRpY2VzID0gW3t4OjQwLCB5OjQw
fSwge3g6NDQwLCB5OjQwfSwge3g6MzIwLCB5OjE2MH0sIHt4OjQ4MCwgeTozMjB9LCB7eDo0MCwg
eTozMjB9XTsKICAgICB2YXIgbGluZUhlaWdodCA9IDQwOworICAgIHZhciBoYXNTdWJwaXhlbFN1
cHBvcnQ7CisKKyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICB2YXIgcmVjdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzdWJwaXhlbC10ZXN0IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7CisgICAgICAgIGhhc1N1YnBpeGVsU3VwcG9ydCA9IHJlY3Qud2lkdGggIT0gTWF0aC5mbG9v
cihyZWN0LndpZHRoKTsKKyAgICAgICAgY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2Uo
KTsKKyAgICB9CiA8L3NjcmlwdD4KIAogPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KQEAgLTIxLDE1
ICsyOCwxNCBAQAogPC9zdHlsZT4KIDwvaGVhZD4KIAotPGJvZHkgb25sb2FkPSJjcmVhdGVQb2x5
Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSh2ZXJ0aWNlcykiPgotICA8ZGl2IGlkPSJyb290Ij4KLSAg
ICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIj48L3N2Zz4KLSAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+
Ci0gICAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgotICAgICAgICBUaGlzIHRlc3QgcmVxdWly
ZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5k
IGEgbWF0Y2hpbmcKLSAgICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91
bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAotICAgICAg
ICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+Ci0gIDwvZGl2PgorPGJvZHkgb25s
b2FkPSJpbml0KCkiPgorICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1p
bnNpZGUiPjwvZGl2PgorICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICBUaGlzIHRl
c3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1p
bnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRl
bnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQK
KyAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0ic3Vi
cGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVweDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4KIDwv
Ym9keT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2ltcGxlLXBvbHlnb24tMDA0LWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1zaW1wbGUtcG9seWdvbi0wMDQtZXhwZWN0ZWQuaHRtbAppbmRleCBmY2Q4YTk2Li41NjM4Yzdj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDQtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9s
eWdvbi0wMDQtZXhwZWN0ZWQuaHRtbApAQCAtMTAsNiArMTAsMTMgQEAKICAgICAvLyBob3VyZ2xh
c3Mgc2hhcGUgd2l0aCB2ZXJ0aWNhbCBlZGdlcyBpbiB0aGUgY2VudGVyLgogICAgIHZhciB2ZXJ0
aWNlcyA9IFt7eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjMyMCwgeToxNjB9LCB7eDoz
MjAsIHk6MjQwfSwge3g6NDgwLCB5OjQwMH0sIHt4OjgwLCB5OjQwMH0sIHt4OjIwMCwgeToyODB9
LCB7eDoyMDAsIHk6MjAwfV19OwogICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAgdmFyIGhh
c1N1YnBpeGVsU3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgIHZhciBy
ZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAh
PSBNYXRoLmZsb29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNp
ZGVUZXN0Q2FzZUV4cGVjdGVkKCk7CisgICAgfQogPC9zY3JpcHQ+CiAKIDxzdHlsZSBpZD0ic3R5
bGVzaGVldCI+CkBAIC0yMSwxMyArMjgsMTQgQEAKIDwvc3R5bGU+CiA8L2hlYWQ+CiAKLTxib2R5
IG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2VFeHBlY3RlZCh2ZXJ0aWNl
cykiPgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgogICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNo
YXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgogICAgIDxkaXYg
aWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KICAgICA8cCBpZD0iaW5mb3JtYXRpdmUt
dGV4dCI+CiAgICAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVh
dGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZwogICAgICAgICBmaWxs
ZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdp
dGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCiAgICAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFj
aCBsaW5lLjwvcD4KKyAgPGRpdiBpZD0ic3VicGl4ZWwtdGVzdCIgc3R5bGU9IndpZHRoOiA0LjVw
eDsgaGVpZ2h0OiA1cHg7Ij48L2Rpdj4KIDwvYm9keT4KIAogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtc2lt
cGxlLXBvbHlnb24tMDA0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDQuaHRtbAppbmRleCA5ZTE1MGVh
Li5lNTk0ZGYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9seWdvbi0wMDQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1zaW1wbGUtcG9s
eWdvbi0wMDQuaHRtbApAQCAtMTAsNiArMTAsMTMgQEAKICAgICAvLyBob3VyZ2xhc3Mgc2hhcGUg
d2l0aCB2ZXJ0aWNhbCBlZGdlcyBpbiB0aGUgY2VudGVyLgogICAgIHZhciB2ZXJ0aWNlcyA9IFt7
eDo0MCwgeTo0MH0sIHt4OjQ0MCwgeTo0MH0sIHt4OjMyMCwgeToxNjB9LCB7eDozMjAsIHk6MjQw
fSwge3g6NDgwLCB5OjQwMH0sIHt4OjgwLCB5OjQwMH0sIHt4OjIwMCwgeToyODB9LCB7eDoyMDAs
IHk6MjAwfV19OwogICAgIHZhciBsaW5lSGVpZ2h0ID0gNDA7CisgICAgdmFyIGhhc1N1YnBpeGVs
U3VwcG9ydDsKKworICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgIHZhciByZWN0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1YnBpeGVsLXRlc3QiKS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKTsKKyAgICAgICAgaGFzU3VicGl4ZWxTdXBwb3J0ID0gcmVjdC53aWR0aCAhPSBNYXRoLmZs
b29yKHJlY3Qud2lkdGgpOworICAgICAgICBjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2Fz
ZSgpOworICAgIH0KIDwvc2NyaXB0PgogCiA8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgpAQCAtMjEs
MTUgKzI4LDE0IEBACiA8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9ImNyZWF0ZVBv
bHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKHZlcnRpY2VzKSI+Ci0gIDxkaXYgaWQ9InJvb3QiPgot
ICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciPjwvc3ZnPgotICAgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rp
dj4KLSAgICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+Ci0gICAgICAgIFRoaXMgdGVzdCByZXF1
aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBh
bmQgYSBtYXRjaGluZwotICAgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNo
b3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCi0gICAg
ICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KLSAgPC9kaXY+Cis8Ym9keSBv
bmxvYWQ9ImluaXQoKSI+CisgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgorICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBl
LWluc2lkZSI+PC9kaXY+CisgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgIFRoaXMg
dGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBl
LWluc2lkZSBhbmQgYSBtYXRjaGluZworICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29u
dGVudCBzaG91bGQganVzdCBmaWxsIHRoZSBzaGFwZSB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFu
ZAorICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorICA8ZGl2IGlkPSJz
dWJwaXhlbC10ZXN0IiBzdHlsZT0id2lkdGg6IDQuNXB4OyBoZWlnaHQ6IDVweDsiPjwvZGl2Pgog
PC9ib2R5PgogCiA8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>