<?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>104952</bug_id>
          
          <creation_ts>2012-12-13 14:12:37 -0800</creation_ts>
          <short_desc>URL duplication in mouse cursor tests mean minor typos can cause flakiness</short_desc>
          <delta_ts>2013-01-04 14:46:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rick Byers">rbyers</reporter>
          <assigned_to name="Rick Byers">rbyers</assigned_to>
          <cc>bdakin</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>790915</commentid>
    <comment_count>0</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-12-13 14:12:37 -0800</bug_when>
    <thetext>In bug 104945 we saw flakiness in one of my mouse cursor tests as a result of a typo in one of the two copies of a URL.  It sucks that accidentally missing or mistyping one of the URLs in the preload list leads to random flakiness instead of a deterministic failure.   I need to come up with some way to fix this - ideally by having only a single list of URLs that need to be preloaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796299</commentid>
    <comment_count>1</comment_count>
      <attachid>180520</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-12-21 07:32:54 -0800</bug_when>
    <thetext>Created attachment 180520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796300</commentid>
    <comment_count>2</comment_count>
      <attachid>180520</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-12-21 07:33:34 -0800</bug_when>
    <thetext>Comment on attachment 180520
Patch

I think this approach is a better trade-off between simplicity and brittleness.  Eric, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796313</commentid>
    <comment_count>3</comment_count>
      <attachid>180520</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-21 08:00:46 -0800</bug_when>
    <thetext>Comment on attachment 180520
Patch

Attachment 180520 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15454435

New failing tests:
fast/events/mouse-cursor-multiframecur.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796428</commentid>
    <comment_count>4</comment_count>
      <attachid>180546</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-12-21 12:50:44 -0800</bug_when>
    <thetext>Created attachment 180546
Fix mac failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800470</commentid>
    <comment_count>5</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2013-01-04 11:56:12 -0800</bug_when>
    <thetext>Ping - eric, do you want to review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800542</commentid>
    <comment_count>6</comment_count>
      <attachid>180546</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-04 12:55:25 -0800</bug_when>
    <thetext>Comment on attachment 180546
Fix mac failure

Very cool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800565</commentid>
    <comment_count>7</comment_count>
      <attachid>180546</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-04 13:11:59 -0800</bug_when>
    <thetext>Comment on attachment 180546
Fix mac failure

Rejecting attachment 180546 from commit-queue.

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

/mnt/git/webkit-commit-queue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/15700236</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800584</commentid>
    <comment_count>8</comment_count>
      <attachid>181368</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2013-01-04 13:30:18 -0800</bug_when>
    <thetext>Created attachment 181368
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800631</commentid>
    <comment_count>9</comment_count>
      <attachid>181368</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-04 14:46:48 -0800</bug_when>
    <thetext>Comment on attachment 181368
Patch for landing

Clearing flags on attachment: 181368

Committed r138857: &lt;http://trac.webkit.org/changeset/138857&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800632</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-04 14:46:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180520</attachid>
            <date>2012-12-21 07:32:54 -0800</date>
            <delta_ts>2012-12-21 12:50:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104952-20121221103009.patch</filename>
            <type>text/plain</type>
            <size>15248</size>
            <attacher name="Rick Byers">rbyers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MzcwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDYxMGIwMzA2YWQzOTUxODEwOTZi
ODlmZWY2OTk4MDg5YTVmMGZkMC4uMDdiZWJhMzU3YjJkMzVmMzljN2EwYTM4NTUwM2JmNzhjYjM3
YmQ5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEyLTIxICBSaWNrIEJ5ZXJzICA8cmJ5
ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBVUkwgZHVwbGljYXRpb24gaW4gbW91c2UgY3Vy
c29yIHRlc3RzIG1lYW4gbWlub3IgdHlwb3MgY2FuIGNhdXNlIGZsYWtpbmVzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0OTUyCisKKyAgICAgICAg
UmVwbGFjZSB0aGUgZXhwbGljaXQgbGlzdCBvZiBpbWFnZXMgdG8gcHJlbG9hZCB3aXRoIGNvZGUg
dGhhdCBleHRyYWN0cworICAgICAgICBVUkxzIGZyb20gc3R5bGUgZGVmaW5pdGlvbnMuICBBbHNv
IG1vdmUgYWxsIHRoaXMgaW1hZ2UgcHJlbG9hZCBjb2RlIHRvCisgICAgICAgIGEgY29tbW9uIGhl
bHBlciBmaWxlIHNvIHRoYXQgaXQgY2FuIGVhc2lseSBiZSB1c2VkIGJ5IG90aGVyIHRlc3RzLgor
CisgICAgICAgICogZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLWltYWdlLXNldC5odG1sOgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1tdWx0aWZyYW1lY3VyLmh0bWw6CisgICAg
ICAgICogZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLmh0bWw6CisgICAgICAgICogZmFzdC9qcy9y
ZXNvdXJjZXMvaW1hZ2UtcHJlbG9hZC1oZWxwZXIuanM6IEFkZGVkLgorICAgICAgICAocHJlbG9h
ZEltYWdlc0Zyb21TdHlsZSk6CisgICAgICAgIChvbkNvbXBsZXRlKToKKyAgICAgICAgKGltYWdl
c1RvTG9hZCk6CisKIDIwMTItMTItMjEgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96
ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl0gVGlsZWRCYWNraW5nU3RvcmU6IFNj
cm9sbCBwb3NpdGlvbiBpcyBub3QgcmVzZXQgd2hlbiBuZXcgcGFnZSBpcyBsb2FkZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1pbWFnZS1zZXQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1pbWFnZS1zZXQuaHRtbApp
bmRleCAzZTg0MDVjZGM3ZTk2OWEwNTBjMTM5YjA3MmUzMDk3NDUzYWUzOTQ3Li5hYTljMGU4MGVi
ZDAyNGQyYmI3NWE1ZGY2MjE5MGExNDhkNmUyNzNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9tb3VzZS1jdXJzb3ItaW1hZ2Utc2V0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLWltYWdlLXNldC5odG1sCkBAIC0yLDYgKzIsNyBAQAog
PGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9pbWFnZS1wcmVsb2Fk
LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogPC9zdHlsZT4K
IDwvaGVhZD4KQEAgLTI1LDI1ICsyNiw3IEBACiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxz
Y3JpcHQ+CiB2YXIgaW1hZ2VzTGVmdFRvTG9hZCA9IDA7Ci0KLWZ1bmN0aW9uIG9uSW1hZ2VMb2Fk
KHN1Y2Nlc3MsIG9uZG9uZSwgZSkgewotCi0gICAgLy8gVGhpcyBkZWJ1ZyBvdXRwdXQgaXMgbm9u
LWRldGVybWluaXN0aWMgYW5kIGNvbnRhaW5zIGFic29sdXRlIFVSTHMgLSBvbmx5IHNob3cgd2hl
bgotICAgIC8vIG5vdCBydW5uaW5nIGluIERSVAotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgIGRlYnVnKCAnRXZlbnQgIicgKyBlLnR5cGUgKyAnIjogJyArIGUudGFyZ2V0LnNy
Yyk7Ci0KLSAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgIHRlc3RGYWlsZWQoJ0dvdCB1bmV4cGVj
dGVkIFwnJyArIGUudHlwZSArICdcJyBldmVudCBmb3IgaW1hZ2U6ICcgKyBlLnRhcmdldC5zcmMp
OyAKLQotICAgIGltYWdlc0xlZnRUb0xvYWQtLTsKLSAgICAKLSAgICBpZiAoaW1hZ2VzTGVmdFRv
TG9hZCA8IDApCi0gICAgICAgIHRlc3RGYWlsZWQoJ0dvdCBtb3JlIGxvYWQvZXJyb3IgY2FsbGJh
Y2sgdGhhbiBleHBlY3RlZC4nKTsKLSAgICAKLSAgICBpZiAoaW1hZ2VzTGVmdFRvTG9hZCA9PSAw
KQotICAgICAgICBvbmRvbmUoKTsKLX0KK3ZhciB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QtY29udGFpbmVyJyk7CiAKIGZ1bmN0aW9uIGNoZWNrQ3Vyc29ycygp
IHsKICAgICBkZWJ1ZygnQ2hlY2tpbmcgY3Vyc29ycyB3aXRoIGRldmljZSBwaXhlbCByYXRpbyBv
ZiAnICsgd2luZG93LmRldmljZVBpeGVsUmF0aW8pOyAgCkBAIC03Miw5ICs1NSw5IEBAIGZ1bmN0
aW9uIHJ1blRlc3RzKCkgewogICAgICAgICAvLyBSZXBlYXQgaW4gaGlnaC1kcGkgbW9kZQogICAg
ICAgICB0ZXN0UnVubmVyLnNldEJhY2tpbmdTY2FsZUZhY3RvcigyLCBmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgIC8vIEZhaWxlZCBpbWFnZXMgYXJlIGFwcGFyZW50bHkgcmVzZXQgb24gc2NhbGUg
ZmFjdG9yIGNoYW5nZS4gCi0gICAgICAgICAgICBlbnN1cmVJbWFnZXNMb2FkZWQoW3sgdXJsOiAn
ZG9lc250ZXhpc3QucG5nJywgZXJyb3I6IHRydWUgfV0sIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgbG9hZEltYWdlcyhbeyB1cmw6ICdkb2VzbnRleGlzdC5wbmcnLCBlcnJvcjogdHJ1ZSB9XSwg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgY2hlY2tDdXJzb3JzKCk7Ci0gICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtY29udGFpbmVyJykuc3R5bGUuZGlz
cGxheSA9ICdub25lJzsKKyAgICAgICAgICAgICAgICB0ZXN0Q29udGFpbmVyLnN0eWxlLmRpc3Bs
YXkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAg
ICB9KTsKICAgICAJfSk7CQpAQCAtODMsMTggKzY2LDYgQEAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7
CiAgICAgfQogfQogCi1mdW5jdGlvbiBlbnN1cmVJbWFnZXNMb2FkZWQoaW1hZ2VzVG9Mb2FkLCBj
YWxsYmFjaykKLXsKLSAgICBpbWFnZXNMZWZ0VG9Mb2FkID0gaW1hZ2VzVG9Mb2FkLmxlbmd0aDsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGltYWdlc1RvTG9hZC5sZW5ndGg7IGkrKykgewotICAg
ICAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7Ci0gICAgICAgIHZhciBleHBlY3RFcnJvciA9IGlt
YWdlc1RvTG9hZFtpXS5lcnJvcjsgCi0gICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdsb2Fk
Jywgb25JbWFnZUxvYWQuYmluZCh1bmRlZmluZWQsICFleHBlY3RFcnJvciwgY2FsbGJhY2spKTsK
LSAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgb25JbWFnZUxvYWQuYmluZCh1
bmRlZmluZWQsIGV4cGVjdEVycm9yLCBjYWxsYmFjaykpOwotICAgICAgICBpbWcuc3JjID0gaW1h
Z2VzVG9Mb2FkW2ldLnVybDsKLSAgICB9Ci19Ci0KIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgbW91
c2UgY3Vyc29ycyBhcmUgYXBwbGllZCBjb3JyZWN0bHkuIik7CiAKIGlmICghd2luZG93LmV2ZW50
U2VuZGVyKSB7CkBAIC0xMDksMTQgKzgwLDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAK
IC8vIE5vdyB3YWl0IGZvciBlYWNoIGltYWdlIHRvIGxvYWQgb3IgZmFpbCB0byBsb2FkIGJlZm9y
ZSBzdGFydGluZyB0ZXN0cy4KIC8vIFdpdGhvdXQgdGhpcyB3ZSBjYW4gZ2V0IG51bGwgaW1hZ2Vz
IGluIHRoZSBjdXJzb3JzIC0gZWcuIG5vIGtub3duIHNpemUuCi12YXIgaW1hZ2VzVG9Mb2FkID0g
WwotIHsgdXJsOiAncmVzb3VyY2VzL2dyZWVuYm94LnBuZycgfSwKLSB7IHVybDogJ3Jlc291cmNl
cy9ncmVlbmJveDMwLnBuZycgfSwKLSB7IHVybDogJ3Jlc291cmNlcy9ncmVlbmJveDIwMC5wbmcn
IH0sCi0geyB1cmw6ICdyZXNvdXJjZXMvZ3JlZW5ib3gtaG90c3BvdDUtNC5jdXInIH0sCi0geyB1
cmw6ICdyZXNvdXJjZXMvZ3JlZW5ib3gzMC1ob3RzcG90MjgtMy5jdXInIH0sCi0geyB1cmw6ICdk
b2VzbnRleGlzdC5wbmcnLCBlcnJvcjogdHJ1ZSB9IF07Ci1lbnN1cmVJbWFnZXNMb2FkZWQoaW1h
Z2VzVG9Mb2FkLCBydW5UZXN0cyk7CitwcmVsb2FkSW1hZ2VzRnJvbVN0eWxlKHRlc3RDb250YWlu
ZXIsIDYsIHJ1blRlc3RzLCAvZG9lc250ZXhpc3RbXi9dKiQvKTsKIAogPC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1tdWx0
aWZyYW1lY3VyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tb3VzZS1jdXJzb3ItbXVs
dGlmcmFtZWN1ci5odG1sCmluZGV4IDI1NmE0OTljMTVkNTFiNjY3OTE4MTU4ZmYzYWVkZjgxYTVm
MGE5NzkuLmYxNTI0MmVkMjk0MGE4NzQ5NDc1NmY1NmJkN2MxZjhmZWI2Yjc0ZGIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1tdWx0aWZyYW1lY3VyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLW11bHRpZnJhbWVj
dXIuaHRtbApAQCAtMiw2ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvaW1hZ2UtcHJlbG9hZC1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHN0eWxlIHR5
cGU9InRleHQvY3NzIj4KIDwvc3R5bGU+CiA8L2hlYWQ+CkBAIC0xNiwyOCArMTcsNyBAQAogPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgogdmFyIGltYWdlc0xlZnRUb0xvYWQgPSAw
OwotCi1mdW5jdGlvbiBvbkltYWdlTG9hZChzdWNjZXNzLCBwYXRoLCBlKSB7Ci0KLSAgICAvLyBU
aGlzIGRlYnVnIG91dHB1dCBvcmRlciBpcyBub24tZGV0ZXJtaW5pc3RpYyAtIG9ubHkgc2hvdyB3
aGVuIG5vdCBydW5uaW5nIGluIERSVAotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgIGRlYnVnKCAnRXZlbnQgIicgKyBlLnR5cGUgKyAnIjogJyArIHBhdGgpOwotICAgICAgICAK
LSAgICBpbWFnZXNMZWZ0VG9Mb2FkLS07Ci0gICAgCi0gICAgaWYgKCFzdWNjZXNzKSB7Ci0gICAg
ICAgIC8vIE5vdGUgdGhhdCBvbiB0aGUgTWFjIHBvcnQsIENVUiBmaWxlcyBhcmUgbG9hZGVkIHVz
aW5nIENvcmVHcmFwaGljcywgYW5kIGl0IGRvZXNuJ3QKLSAgICAgICAgLy8gYXBwZWFyIHRvIHN1
cHBvcnQgbXVsdGktZnJhbWUgQ1VSIGZpbGVzLCBzbyB0aGUgbG9hZCB3aWxsIGZhaWwgaW4gdGhp
cyBjYXNlLgotICAgICAgICAvLyBXZSBleHBsaWNpdGx5IGxvb2sgZm9yIHRoaXMgYmVoYXZpb3Ig
b24gTWFjIHNvIHRoYXQgaWYgaXQgZXZlciBzdGFydHMgYmVpbmcgc3VwcG9ydGVkLAotICAgICAg
ICAvLyB3ZSBjYW4gZW5zdXJlIHRoZSBiZWhhdmlvciBpcyBjb25zaXN0ZW50IHdpdGggdGhlIG90
aGVyIHBvcnRzLgotICAgICAgICB0ZXN0RmFpbGVkKCdHb3QgdW5leHBlY3RlZCBcJycgKyBlLnR5
cGUgKyAnXCcgZXZlbnQgZm9yIGltYWdlOiAnICsgcGF0aCk7IAotICAgIH0KLQotICAgIGlmIChp
bWFnZXNMZWZ0VG9Mb2FkID09IDApCi0gICAgICAgIHJ1blRlc3RzKCk7Ci0gICAgaWYgKGltYWdl
c0xlZnRUb0xvYWQgPCAwKQotICAgICAgICB0ZXN0RmFpbGVkKCdHb3QgbW9yZSBsb2FkL2Vycm9y
IGNhbGxiYWNrIHRoYW4gZXhwZWN0ZWQuJyk7Ci19Cit2YXIgdGVzdENvbnRhaW5lciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LWNvbnRhaW5lcicpOwogCiBmdW5jdGlvbiBydW5UZXN0
cygpIHsKICAgICAvLyBDYW4ndCBkbyBhbnl0aGluZyB1c2VmdWwgaGVyZSB3aXRob3V0IGV2ZW50
U2VuZGVyCkBAIC01OSw3ICszOSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewogICAgICAgICAg
ICAgZGVidWcoJycpOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoaXMgdGV4dCBpcyByZWR1bmRh
bnQgd2l0aCB0aGUgdGVzdCBvdXRwdXQgLSBoaWRlIGl0Ci0gICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0LWNvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAg
ICAgIHRlc3RDb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICB9CiAgICAgCiAg
ICAgZmluaXNoSlNUZXN0KCk7CkBAIC03OSwxNyArNTksNyBAQCBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKIAogLy8gTm93IHdhaXQgZm9yIGVhY2ggaW1hZ2UgdG8gbG9hZCBvciBmYWlsIHRvIGxv
YWQgYmVmb3JlIHN0YXJ0aW5nIHRlc3RzLgogLy8gV2l0aG91dCB0aGlzIHdlIGNhbiBnZXQgbnVs
bCBpbWFnZXMgaW4gdGhlIGN1cnNvcnMgLSBlZy4gbm8ga25vd24gc2l6ZS4KLXZhciBpbWFnZXNU
b0xvYWQgPSBbCi0gICAgeyB1cmw6ICdyZXNvdXJjZXMvZ3JlZW5ib3gtM2ZyYW1lcy5jdXInIH0g
XTsKLWltYWdlc0xlZnRUb0xvYWQgPSBpbWFnZXNUb0xvYWQubGVuZ3RoOwotZm9yICh2YXIgaSA9
IDA7IGkgPCBpbWFnZXNUb0xvYWQubGVuZ3RoOyBpKyspIHsKLSAgICB2YXIgaW1nID0gbmV3IElt
YWdlKCk7Ci0gICAgdmFyIGV4cGVjdEVycm9yID0gaW1hZ2VzVG9Mb2FkW2ldLmVycm9yOyAKLSAg
ICB2YXIgdXJsID0gaW1hZ2VzVG9Mb2FkW2ldLnVybDsKLSAgICBpbWcuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZCcsIG9uSW1hZ2VMb2FkLmJpbmQodW5kZWZpbmVkLCAhZXhwZWN0RXJyb3IsIHVybCkp
OwotICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uSW1hZ2VMb2FkLmJpbmQodW5k
ZWZpbmVkLCBleHBlY3RFcnJvciwgdXJsKSk7Ci0gICAgaW1nLnNyYyA9IHVybDsKLX0KK3ByZWxv
YWRJbWFnZXNGcm9tU3R5bGUodGVzdENvbnRhaW5lciwgMSwgcnVuVGVzdHMpOwogCiA8L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbW91c2UtY3Vy
c29yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tb3VzZS1jdXJzb3IuaHRtbAppbmRl
eCA5MDYwODA2NWVmOGFiYWZiNTBhYzI0NjExYjc5MTlmMjQ3N2VhNzk4Li5mOTQ3MjRjM2U3ODQ3
ZTY3YTY3MzEyNTlkNmU5YzZkZTZkMTNmODY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9tb3VzZS1jdXJzb3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9t
b3VzZS1jdXJzb3IuaHRtbApAQCAtMiw2ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvaW1hZ2UtcHJlbG9hZC1oZWxwZXIuanMiPjwvc2NyaXB0Pgog
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KIDwvc3R5bGU+CiA8L2hlYWQ+CkBAIC0yMiw4ICsyMyw4
IEBACiAgIDxkaXYgc3R5bGU9J2N1cnNvcjogcG9pbnRlcic+UG9pbnRlcjwvZGl2PgogICA8ZGl2
IHN0eWxlPSdjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmcnPi13ZWJraXQtZ3JhYmJpbmc8L2Rpdj4K
ICAgPGRpdiBzdHlsZT0nY3Vyc29yOiB1cmwocmVzb3VyY2VzL2dyZWVuYm94LnBuZyksIGhhbmQn
PkV4aXN0aW5nIDI1eDI1IGltYWdlPC9kaXY+Ci0gIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJsKGRv
ZXNudGV4aXN0LnBuZyksIHBvaW50ZXInPkludmFsaWQgVVJMIHdpdGggZmFsbGJhY2sgdG8gcG9p
bnRlcjwvZGl2PgotICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybChkb2VzbnRleGlzdC5wbmcpLCB1
cmwocmVzb3VyY2VzL2dyZWVuYm94LnBuZyksIHBvaW50ZXInPkludmFsaWQgd2l0aCBmYWxsYmFj
ayB0byAyNXgyNSBpbWFnZTwvZGl2PgorICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybChkb2VzbnRl
eGlzdF9GQUlMLnBuZyksIHBvaW50ZXInPkludmFsaWQgVVJMIHdpdGggZmFsbGJhY2sgdG8gcG9p
bnRlcjwvZGl2PgorICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybChkb2VzbnRleGlzdF9GQUlMLnBu
ZyksIHVybChyZXNvdXJjZXMvZ3JlZW5ib3gucG5nKSwgcG9pbnRlcic+SW52YWxpZCB3aXRoIGZh
bGxiYWNrIHRvIDI1eDI1IGltYWdlPC9kaXY+CiAgIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJsKHJl
c291cmNlcy9ncmVlbmJveC5wbmcpIDAgMCwgcG9pbnRlcic+SW1hZ2Ugd2l0aCBleHBsaWNpdCBo
b3Qgc3BvdCBhdCAoMCwwKTwvZGl2PgogICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybChyZXNvdXJj
ZXMvZ3JlZW5ib3gucG5nKSAyMCAxMCwgcG9pbnRlcic+SW1hZ2Ugd2l0aCBleHBsaWNpdCBob3Qg
c3BvdCBhdCAoMjAsMTApPC9kaXY+CiAgIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJsKHJlc291cmNl
cy9ncmVlbmJveC5wbmcpIC0xIC0xLCBwb2ludGVyJz5JbWFnZSB3aXRoIGV4cGxpY2l0IGhvdCBz
cG90IGF0ICgtMSwtMSk8L2Rpdj4KQEAgLTMzLDggKzM0LDggQEAKICAgPGRpdiBzdHlsZT0nY3Vy
c29yOiB1cmwocmVzb3VyY2VzL2dyZWVuYm94LWhvdHNwb3QzNS00LmN1ciksIHBvaW50ZXInPklt
YWdlIHdpdGggaW1wbGljaXQgaG90IHNwb3Qgb3V0c2lkZSBpbWFnZSBhdCAoMzUsNCk8L2Rpdj4K
ICAgPGRpdiBzdHlsZT0nY3Vyc29yOiB1cmwocmVzb3VyY2VzL29ubG9hZC1pbWFnZS5wbmcpLCBw
b2ludGVyJz5PdmVyIGxhcmdlIGltYWdlIHdpdGggZmFsbGJhY2sgdG8gcG9pbnRlcjwvZGl2Pgog
ICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybCgjZ3JlZW5ib3gpLCBwb2ludGVyJz5TVkcgY3Vyc29y
PC9kaXY+Ci0gIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJsKG1vdXNlLWN1cnNvci5odG1sKSwgdXJs
KHVua25vd24tc2NoZW1lOmN1cnNvci5wbmcpLCBwb2ludGVyJz5NdWx0aXBsZSBpbnZhbGlkIGN1
cnNvcnMgd2l0aCBmYWxsYmFjayB0byBwb2ludGVyPC9kaXY+Ci0gIDxkaXYgc3R5bGU9J2N1cnNv
cjogdXJsKCNub25leGlzdGVudCksIHBvaW50ZXInPk5vbmV4aXN0ZW50IFNWRyBjdXJzb3Igd2l0
aCBmYWxsYmFjayB0byBwb2ludGVyPC9kaXY+CisgIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJsKG1v
dXNlLWN1cnNvcl9GQUlMLmh0bWwpLCB1cmwodW5rbm93bi1zY2hlbWU6Y3Vyc29yX0ZBSUwucG5n
KSwgcG9pbnRlcic+TXVsdGlwbGUgaW52YWxpZCBjdXJzb3JzIHdpdGggZmFsbGJhY2sgdG8gcG9p
bnRlcjwvZGl2PgorICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybCgjbm9uZXhpc3RlbnRfRkFJTCks
IHBvaW50ZXInPk5vbmV4aXN0ZW50IFNWRyBjdXJzb3Igd2l0aCBmYWxsYmFjayB0byBwb2ludGVy
PC9kaXY+CiAgIDxkaXY+PGEgaHJlZj0nIyc+QSBsaW5rIHdpdGggZGVmYXVsdCBjdXJzb3I8L2E+
PC9kaXY+CiAgIDxkaXYgc3R5bGU9J2N1cnNvcjogd2FpdCc+PGEgaHJlZj0nIyc+TGluayB3aXRo
IGRlZmF1bHQgY3Vyc29yIG92ZXJyaWRpbmcgd2FpdDwvYT48L2Rpdj4KICAgPGRpdiBzdHlsZT0n
Y3Vyc29yOiB3YWl0Jz48ZGl2IHN0eWxlPSdjdXJzb3I6IGRvZXNudGV4aXN0Jz5XYWl0IGN1cnNv
ciB3aGljaCBzaG91bGQgbm90IGJlIGFmZmVjdGVkIGJ5IHVua25vd24gY3Vyc29yIHJ1bGU8L2Rp
dj48L2Rpdj4KQEAgLTQyLDI1ICs0Myw5IEBACiA8YnIvPgogPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CiA8c2NyaXB0PgotdmFyIGltYWdlc0xlZnRUb0xvYWQgPSAwOwogCi1mdW5jdGlvbiBvbklt
YWdlTG9hZChzdWNjZXNzLCBlKSB7Ci0KLSAgICAvLyBUaGlzIGRlYnVnIG91dHB1dCBpcyBub24t
ZGV0ZXJtaW5pc3RpYyBhbmQgY29udGFpbnMgYWJzb2x1dGUgVVJMcyAtIG9ubHkgc2hvdyB3aGVu
Ci0gICAgLy8gbm90IHJ1bm5pbmcgaW4gRFJUCi0gICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgZGVidWcoICdFdmVudCAiJyArIGUudHlwZSArICciOiAnICsgZS50YXJnZXQuc3Jj
KTsKK3ZhciB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtY29u
dGFpbmVyJyk7CiAgICAgCi0gICAgaWYgKCFzdWNjZXNzKQotICAgICAgICB0ZXN0RmFpbGVkKCdH
b3QgdW5leHBlY3RlZCBcJycgKyBlLnR5cGUgKyAnXCcgZXZlbnQgZm9yIGltYWdlOiAnICsgZS50
YXJnZXQuc3JjKTsgCi0gICAgICAgIAotICAgIGltYWdlc0xlZnRUb0xvYWQtLTsKLSAgICBpZiAo
aW1hZ2VzTGVmdFRvTG9hZCA9PSAwKQotICAgICAgICBydW5UZXN0cygpOwotICAgIGlmIChpbWFn
ZXNMZWZ0VG9Mb2FkIDwgMCkKLSAgICAgICAgdGVzdEZhaWxlZCgnR290IG1vcmUgbG9hZC9lcnJv
ciBjYWxsYmFjayB0aGFuIGV4cGVjdGVkLicpOwotfQotCiBmdW5jdGlvbiBydW5UZXN0cygpIHsK
ICAgICAvLyBDYW4ndCBkbyBhbnl0aGluZyB1c2VmdWwgaGVyZSB3aXRob3V0IGV2ZW50U2VuZGVy
CiAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewpAQCAtODEsNyArNjYsNyBAQCBmdW5jdGlv
biBydW5UZXN0cygpIHsKICAgICAgICAgICAgIGRlYnVnKCcnKTsKICAgICAgICAgfQogICAgICAg
ICAvLyBUaGlzIHRleHQgaXMgcmVkdW5kYW50IHdpdGggdGhlIHRlc3Qgb3V0cHV0IC0gaGlkZSBp
dAotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1jb250YWluZXInKS5zdHls
ZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgICB0ZXN0Q29udGFpbmVyLnN0eWxlLmRpc3BsYXkg
PSAnbm9uZSc7CiAgICAgfQogICAgIAogICAgIGZpbmlzaEpTVGVzdCgpOwpAQCAtMTAxLDI0ICs4
Niw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogCiAvLyBOb3cgd2FpdCBmb3IgZWFjaCBp
bWFnZSB0byBsb2FkIG9yIGZhaWwgdG8gbG9hZCBiZWZvcmUgc3RhcnRpbmcgdGVzdHMuCiAvLyBX
aXRob3V0IHRoaXMgd2UgY2FuIGdldCBudWxsIGltYWdlcyBpbiB0aGUgY3Vyc29ycyAtIGVnLiBu
byBrbm93biBzaXplLgotdmFyIGltYWdlc1RvTG9hZCA9IFsKLSAgICB7IHVybDogJ3Jlc291cmNl
cy9ncmVlbmJveC5wbmcnIH0sCi0gICAgeyB1cmw6ICdyZXNvdXJjZXMvb25sb2FkLWltYWdlLnBu
ZycgfSwKLSAgICB7IHVybDogJ3Jlc291cmNlcy9ncmVlbmJveC1ob3RzcG90NS00LmN1cicgfSwK
LSAgICB7IHVybDogJ3Jlc291cmNlcy9ncmVlbmJveC1ob3RzcG90MzUtNC5jdXInIH0sCi0gICAg
eyB1cmw6ICdkb2VzbnRleGlzdC5wbmcnLCBlcnJvcjogdHJ1ZSB9LAotICAgIHsgdXJsOiAndW5r
bm93bi1zY2hlbWU6Y3Vyc29yLnBuZycsIGVycm9yOiB0cnVlIH0sCi0gICAgeyB1cmw6ICdtb3Vz
ZS1jdXJzb3IuaHRtbCcsIGVycm9yOiB0cnVlIH0sCi0gICAgeyB1cmw6ICcjZ3JlZW5ib3gnLCBl
cnJvcjogdHJ1ZSB9LAotICAgIHsgdXJsOiAnI25vbmV4aXN0ZW50JywgZXJyb3I6IHRydWUgfSBd
OwotaW1hZ2VzTGVmdFRvTG9hZCA9IGltYWdlc1RvTG9hZC5sZW5ndGg7Ci1mb3IgKHZhciBpID0g
MDsgaSA8IGltYWdlc1RvTG9hZC5sZW5ndGg7IGkrKykgewotICAgIHZhciBpbWcgPSBuZXcgSW1h
Z2UoKTsKLSAgICB2YXIgZXhwZWN0RXJyb3IgPSBpbWFnZXNUb0xvYWRbaV0uZXJyb3I7IAotICAg
IGltZy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgb25JbWFnZUxvYWQuYmluZCh1bmRlZmluZWQs
ICFleHBlY3RFcnJvcikpOwotICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uSW1h
Z2VMb2FkLmJpbmQodW5kZWZpbmVkLCBleHBlY3RFcnJvcikpOwotICAgIGltZy5zcmMgPSBpbWFn
ZXNUb0xvYWRbaV0udXJsOwotfQorcHJlbG9hZEltYWdlc0Zyb21TdHlsZSh0ZXN0Q29udGFpbmVy
LCA5LCBydW5UZXN0cywgLygjZ3JlZW5ib3h8X0ZBSUwpW14vXSokLyk7CiAKIDwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9pbWFnZS1w
cmVsb2FkLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2ltYWdlLXBy
ZWxvYWQtaGVscGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2YmRlZTZhOTRkM2I2YzAyOTRiNDFhNjkyNjlk
ODlmZmUxNzhiYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291
cmNlcy9pbWFnZS1wcmVsb2FkLWhlbHBlci5qcwpAQCAtMCwwICsxLDY5IEBACisvLyBUaGlzIGlz
IHVzZWQgYnkgc2V2ZXJhbCB0ZXN0cyB0byBoZWxwIGdldCBpbWFnZXMgcmVsaWFibHkgcHJlbG9h
ZGVkLgorCisvLyBHaXZlbiBhIG5vZGUsIGxvYWRzIGFsbCB1cmxzIHNwZWNpZmllZCBpbiBzdHls
ZSBkZWNsYXJhdGlvbnMKKy8vIGF0dGFjaGVkIHRvIHRoZSBub2RlIG9yIGl0J3MgZGVjZW5kYW50
cy4KKy8vIGltYWdlQ291bnQgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgaW1hZ2VzIHdlIGV4cGVj
dCB0byBmaW5kICh0byB0cnkgdG8gYWRkIHNvbWUKKy8vIHByb3RlY3Rpb24gYWdhaW5zdCBicml0
dGxlbmVzcyBkdWUgdG8gaW1wZXJmZWN0IHVybCBwYXJzaW5nLCBzaW5jZSBvdGhlciBtaXNzaW5n
IGEgcHJlbG9hZAorLy8gd2lsbCB0eXBpY2FsbHkgcmVzdWx0IGluIGEgdGVzdCB0aGF0IGZhaWxz
IG9ubHkgb2NjYXNpb25hbGx5KS4KKy8vIElmIGZhaWxQYXR0ZXJuIGlzIHNwZWNpZmllZCwgdGhl
biBhbnkgdXJsIHRoYXQgbWF0Y2hlcyB0aGUgcmVnZXgKKy8vIHdpbGwgYmUgZXhwZWN0ZWQgdG8g
ZmFpbCB0byBsb2FkLgorZnVuY3Rpb24gcHJlbG9hZEltYWdlc0Zyb21TdHlsZShyb290Tm9kZSwg
aW1hZ2VDb3VudCwgb25Db21wbGV0ZSwgZmFpbFBhdHRlcm4pIHsKKyAgICB2YXIgbm9kZXMgPSBy
b290Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKCdbc3R5bGVdJyk7CisgICAgdmFyIGltYWdlc1RvTG9h
ZCA9IFtdOworICAgIHZhciBzZWVuVXJscyA9IHt9OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bm9kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHVybHMgPSBub2Rlc1tpXS5zdHlsZS5j
c3NUZXh0LnNwbGl0KC91cmxcdypcKChbXildKilcKS8pOworICAgICAgICBmb3IgKHZhciBqID0g
MTsgaiA8IHVybHMubGVuZ3RoOyBqICs9IDIpIHsKKyAgICAgICAgICAgIHZhciBlcnJvciA9IGZh
bHNlOworICAgICAgICAgICAgaWYgKGZhaWxQYXR0ZXJuICYmIGZhaWxQYXR0ZXJuLnRlc3QodXJs
c1tqXSkpCisgICAgICAgICAgICAgICAgZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgaWYgKHVy
bHNbal0gaW4gc2VlblVybHMpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICBzZWVuVXJsc1t1cmxzW2pdXSA9IHRydWU7CisgICAgICAgICAgICBpbWFnZXNUb0xvYWQucHVz
aCh7dXJsOiB1cmxzW2pdLCBlcnJvcjogZXJyb3J9KTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChpbWFnZUNvdW50ICE9IGltYWdlc1RvTG9hZC5sZW5ndGgpIHsKKyAgICAgICAgdmFyIG1z
ZyA9ICdGb3VuZCB0aGUgZm9sbG93aW5nICcgKyBpbWFnZXNUb0xvYWQubGVuZ3RoICsgJyBpbWFn
ZXMsIHdoZW4gZXhwZWN0aW5nICcgKyBpbWFnZUNvdW50ICsgJzogJzsKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBpbWFnZXNUb0xvYWQubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG1z
ZyArPSAnXG4nICsgaW1hZ2VzVG9Mb2FkW2ldLnVybDsKKyAgICAgICAgfQorICAgICAgICB0ZXN0
RmFpbGVkKG1zZyk7CisgICAgfQorCisgICAgbG9hZEltYWdlcyhpbWFnZXNUb0xvYWQsIG9uQ29t
cGxldGUpOworfQorCisvLyBGb3IgZWFjaCBvYmplY3QgaW4gdGhlIGdpdmVuIGFycmF5LCBhdHRl
bXB0IHRvIGxvYWQgdGhlIGltYWdlIHNwZWNpZmllZCBieSB0aGUKKy8vIHVybCBwcm9wZXJ0eS4g
IElmIHRoZSBlcnJvciBwcm9wZXJ0eSBpcyBzcGVjaWZpZWQgYW5kIHRydWUsIHRoZW4gdGhlIGxv
YWQgaXMKKy8vIGV4cGVjdGVkIHRvIGZhaWwuICBPbmNlIGFsbCBsb2FkcyBoYXZlIGNvbXBsZXRl
ZCBvciBmYWlsZWQsIG9uQ29tcGxldGUgaXMgaW52b2tlZC4KK2Z1bmN0aW9uIGxvYWRJbWFnZXMo
aW1hZ2VzVG9Mb2FkLCBvbkNvbXBsZXRlKSB7CisKKyAgICB2YXIgaW1hZ2VzTGVmdFRvTG9hZCA9
IGltYWdlc1RvTG9hZC5sZW5ndGg7CisKKyAgICBmdW5jdGlvbiBvbkltYWdlTG9hZChzdWNjZXNz
LCBlKSB7CisgICAgICAgIC8vIFRoaXMgZGVidWcgb3V0cHV0IGlzIG5vbi1kZXRlcm1pbmlzdGlj
IGFuZCBjb250YWlucyBhYnNvbHV0ZSBVUkxzIC0gb25seSBzaG93IHdoZW4KKyAgICAgICAgLy8g
bm90IHJ1bm5pbmcgaW4gRFJUCisgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICBkZWJ1ZyggJ0V2ZW50ICInICsgZS50eXBlICsgJyI6ICcgKyBlLnRhcmdldC5zcmMp
OworICAgICAgICAKKyAgICAgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgnR290IHVuZXhwZWN0ZWQgXCcnICsgZS50eXBlICsgJ1wnIGV2ZW50IGZvciBpbWFnZTogJyAr
IGUudGFyZ2V0LnNyYyk7CisgICAgICAgIAorICAgICAgICBpbWFnZXNMZWZ0VG9Mb2FkLS07Cisg
ICAgICAgIGlmIChpbWFnZXNMZWZ0VG9Mb2FkID09IDApIHsKKyAgICAgICAgICAgIG9uQ29tcGxl
dGUoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW1hZ2VzTGVmdFRvTG9hZCA8IDApCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCdHb3QgbW9yZSBsb2FkL2Vycm9yIGNhbGxiYWNrcyB0aGFuIGV4
cGVjdGVkLicpOworICAgIH0KKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VzVG9Mb2Fk
Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsKKyAgICAgICAg
dmFyIGV4cGVjdEVycm9yID0gaW1hZ2VzVG9Mb2FkW2ldLmVycm9yOworICAgICAgICBpbWcuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsIG9uSW1hZ2VMb2FkLmJpbmQodW5kZWZpbmVkLCAhZXhwZWN0
RXJyb3IpKTsKKyAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgb25JbWFnZUxv
YWQuYmluZCh1bmRlZmluZWQsICEhZXhwZWN0RXJyb3IpKTsKKyAgICAgICAgaW1nLnNyYyA9IGlt
YWdlc1RvTG9hZFtpXS51cmw7CisgICAgfQorfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180546</attachid>
            <date>2012-12-21 12:50:44 -0800</date>
            <delta_ts>2013-01-04 13:30:15 -0800</delta_ts>
            <desc>Fix mac failure</desc>
            <filename>bug-104952-20121221154759.patch</filename>
            <type>text/plain</type>
            <size>15531</size>
            <attacher name="Rick Byers">rbyers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MzcwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDYxMGIwMzA2YWQzOTUxODEwOTZi
ODlmZWY2OTk4MDg5YTVmMGZkMC4uMDdiZWJhMzU3YjJkMzVmMzljN2EwYTM4NTUwM2JmNzhjYjM3
YmQ5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEyLTIxICBSaWNrIEJ5ZXJzICA8cmJ5
ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBVUkwgZHVwbGljYXRpb24gaW4gbW91c2UgY3Vy
c29yIHRlc3RzIG1lYW4gbWlub3IgdHlwb3MgY2FuIGNhdXNlIGZsYWtpbmVzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0OTUyCisKKyAgICAgICAg
UmVwbGFjZSB0aGUgZXhwbGljaXQgbGlzdCBvZiBpbWFnZXMgdG8gcHJlbG9hZCB3aXRoIGNvZGUg
dGhhdCBleHRyYWN0cworICAgICAgICBVUkxzIGZyb20gc3R5bGUgZGVmaW5pdGlvbnMuICBBbHNv
IG1vdmUgYWxsIHRoaXMgaW1hZ2UgcHJlbG9hZCBjb2RlIHRvCisgICAgICAgIGEgY29tbW9uIGhl
bHBlciBmaWxlIHNvIHRoYXQgaXQgY2FuIGVhc2lseSBiZSB1c2VkIGJ5IG90aGVyIHRlc3RzLgor
CisgICAgICAgICogZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLWltYWdlLXNldC5odG1sOgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1tdWx0aWZyYW1lY3VyLmh0bWw6CisgICAg
ICAgICogZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLmh0bWw6CisgICAgICAgICogZmFzdC9qcy9y
ZXNvdXJjZXMvaW1hZ2UtcHJlbG9hZC1oZWxwZXIuanM6IEFkZGVkLgorICAgICAgICAocHJlbG9h
ZEltYWdlc0Zyb21TdHlsZSk6CisgICAgICAgIChvbkNvbXBsZXRlKToKKyAgICAgICAgKGltYWdl
c1RvTG9hZCk6CisKIDIwMTItMTItMjEgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96
ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl0gVGlsZWRCYWNraW5nU3RvcmU6IFNj
cm9sbCBwb3NpdGlvbiBpcyBub3QgcmVzZXQgd2hlbiBuZXcgcGFnZSBpcyBsb2FkZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1pbWFnZS1zZXQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1pbWFnZS1zZXQuaHRtbApp
bmRleCAzZTg0MDVjZGM3ZTk2OWEwNTBjMTM5YjA3MmUzMDk3NDUzYWUzOTQ3Li44MjIxNDZjZGRi
NGFiOTViMjhiNWIxMDNjMGJjMTQzNWQzZGVlNWViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9tb3VzZS1jdXJzb3ItaW1hZ2Utc2V0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLWltYWdlLXNldC5odG1sCkBAIC0yLDYgKzIsNyBAQAog
PGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9pbWFnZS1wcmVsb2Fk
LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogPC9zdHlsZT4K
IDwvaGVhZD4KQEAgLTI1LDI1ICsyNiw3IEBACiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxz
Y3JpcHQ+CiB2YXIgaW1hZ2VzTGVmdFRvTG9hZCA9IDA7Ci0KLWZ1bmN0aW9uIG9uSW1hZ2VMb2Fk
KHN1Y2Nlc3MsIG9uZG9uZSwgZSkgewotCi0gICAgLy8gVGhpcyBkZWJ1ZyBvdXRwdXQgaXMgbm9u
LWRldGVybWluaXN0aWMgYW5kIGNvbnRhaW5zIGFic29sdXRlIFVSTHMgLSBvbmx5IHNob3cgd2hl
bgotICAgIC8vIG5vdCBydW5uaW5nIGluIERSVAotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgIGRlYnVnKCAnRXZlbnQgIicgKyBlLnR5cGUgKyAnIjogJyArIGUudGFyZ2V0LnNy
Yyk7Ci0KLSAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgIHRlc3RGYWlsZWQoJ0dvdCB1bmV4cGVj
dGVkIFwnJyArIGUudHlwZSArICdcJyBldmVudCBmb3IgaW1hZ2U6ICcgKyBlLnRhcmdldC5zcmMp
OyAKLQotICAgIGltYWdlc0xlZnRUb0xvYWQtLTsKLSAgICAKLSAgICBpZiAoaW1hZ2VzTGVmdFRv
TG9hZCA8IDApCi0gICAgICAgIHRlc3RGYWlsZWQoJ0dvdCBtb3JlIGxvYWQvZXJyb3IgY2FsbGJh
Y2sgdGhhbiBleHBlY3RlZC4nKTsKLSAgICAKLSAgICBpZiAoaW1hZ2VzTGVmdFRvTG9hZCA9PSAw
KQotICAgICAgICBvbmRvbmUoKTsKLX0KK3ZhciB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QtY29udGFpbmVyJyk7CiAKIGZ1bmN0aW9uIGNoZWNrQ3Vyc29ycygp
IHsKICAgICBkZWJ1ZygnQ2hlY2tpbmcgY3Vyc29ycyB3aXRoIGRldmljZSBwaXhlbCByYXRpbyBv
ZiAnICsgd2luZG93LmRldmljZVBpeGVsUmF0aW8pOyAgCkBAIC03Miw5ICs1NSw5IEBAIGZ1bmN0
aW9uIHJ1blRlc3RzKCkgewogICAgICAgICAvLyBSZXBlYXQgaW4gaGlnaC1kcGkgbW9kZQogICAg
ICAgICB0ZXN0UnVubmVyLnNldEJhY2tpbmdTY2FsZUZhY3RvcigyLCBmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgIC8vIEZhaWxlZCBpbWFnZXMgYXJlIGFwcGFyZW50bHkgcmVzZXQgb24gc2NhbGUg
ZmFjdG9yIGNoYW5nZS4gCi0gICAgICAgICAgICBlbnN1cmVJbWFnZXNMb2FkZWQoW3sgdXJsOiAn
ZG9lc250ZXhpc3QucG5nJywgZXJyb3I6IHRydWUgfV0sIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgbG9hZEltYWdlcyhbeyB1cmw6ICdkb2VzbnRleGlzdC5wbmcnLCBlcnJvcjogdHJ1ZSB9XSwg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgY2hlY2tDdXJzb3JzKCk7Ci0gICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtY29udGFpbmVyJykuc3R5bGUuZGlz
cGxheSA9ICdub25lJzsKKyAgICAgICAgICAgICAgICB0ZXN0Q29udGFpbmVyLnN0eWxlLmRpc3Bs
YXkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAg
ICB9KTsKICAgICAJfSk7CQpAQCAtODMsMTggKzY2LDYgQEAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7
CiAgICAgfQogfQogCi1mdW5jdGlvbiBlbnN1cmVJbWFnZXNMb2FkZWQoaW1hZ2VzVG9Mb2FkLCBj
YWxsYmFjaykKLXsKLSAgICBpbWFnZXNMZWZ0VG9Mb2FkID0gaW1hZ2VzVG9Mb2FkLmxlbmd0aDsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGltYWdlc1RvTG9hZC5sZW5ndGg7IGkrKykgewotICAg
ICAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7Ci0gICAgICAgIHZhciBleHBlY3RFcnJvciA9IGlt
YWdlc1RvTG9hZFtpXS5lcnJvcjsgCi0gICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdsb2Fk
Jywgb25JbWFnZUxvYWQuYmluZCh1bmRlZmluZWQsICFleHBlY3RFcnJvciwgY2FsbGJhY2spKTsK
LSAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgb25JbWFnZUxvYWQuYmluZCh1
bmRlZmluZWQsIGV4cGVjdEVycm9yLCBjYWxsYmFjaykpOwotICAgICAgICBpbWcuc3JjID0gaW1h
Z2VzVG9Mb2FkW2ldLnVybDsKLSAgICB9Ci19Ci0KIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgbW91
c2UgY3Vyc29ycyBhcmUgYXBwbGllZCBjb3JyZWN0bHkuIik7CiAKIGlmICghd2luZG93LmV2ZW50
U2VuZGVyKSB7CkBAIC0xMDksMTQgKzgwLDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAK
IC8vIE5vdyB3YWl0IGZvciBlYWNoIGltYWdlIHRvIGxvYWQgb3IgZmFpbCB0byBsb2FkIGJlZm9y
ZSBzdGFydGluZyB0ZXN0cy4KIC8vIFdpdGhvdXQgdGhpcyB3ZSBjYW4gZ2V0IG51bGwgaW1hZ2Vz
IGluIHRoZSBjdXJzb3JzIC0gZWcuIG5vIGtub3duIHNpemUuCi12YXIgaW1hZ2VzVG9Mb2FkID0g
WwotIHsgdXJsOiAncmVzb3VyY2VzL2dyZWVuYm94LnBuZycgfSwKLSB7IHVybDogJ3Jlc291cmNl
cy9ncmVlbmJveDMwLnBuZycgfSwKLSB7IHVybDogJ3Jlc291cmNlcy9ncmVlbmJveDIwMC5wbmcn
IH0sCi0geyB1cmw6ICdyZXNvdXJjZXMvZ3JlZW5ib3gtaG90c3BvdDUtNC5jdXInIH0sCi0geyB1
cmw6ICdyZXNvdXJjZXMvZ3JlZW5ib3gzMC1ob3RzcG90MjgtMy5jdXInIH0sCi0geyB1cmw6ICdk
b2VzbnRleGlzdC5wbmcnLCBlcnJvcjogdHJ1ZSB9IF07Ci1lbnN1cmVJbWFnZXNMb2FkZWQoaW1h
Z2VzVG9Mb2FkLCBydW5UZXN0cyk7CitwcmVsb2FkSW1hZ2VzRnJvbVN0eWxlKHRlc3RDb250YWlu
ZXIsIDYsIHJ1blRlc3RzLCAvZG9lc250ZXhpc3QvKTsKIAogPC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1tdWx0aWZyYW1l
Y3VyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tb3VzZS1jdXJzb3ItbXVsdGlmcmFt
ZWN1ci5odG1sCmluZGV4IDI1NmE0OTljMTVkNTFiNjY3OTE4MTU4ZmYzYWVkZjgxYTVmMGE5Nzku
LmYxNTI0MmVkMjk0MGE4NzQ5NDc1NmY1NmJkN2MxZjhmZWI2Yjc0ZGIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1tdWx0aWZyYW1lY3VyLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLW11bHRpZnJhbWVjdXIuaHRt
bApAQCAtMiw2ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvaW1hZ2UtcHJlbG9hZC1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KIDwvc3R5bGU+CiA8L2hlYWQ+CkBAIC0xNiwyOCArMTcsNyBAQAogPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgogdmFyIGltYWdlc0xlZnRUb0xvYWQgPSAwOwotCi1m
dW5jdGlvbiBvbkltYWdlTG9hZChzdWNjZXNzLCBwYXRoLCBlKSB7Ci0KLSAgICAvLyBUaGlzIGRl
YnVnIG91dHB1dCBvcmRlciBpcyBub24tZGV0ZXJtaW5pc3RpYyAtIG9ubHkgc2hvdyB3aGVuIG5v
dCBydW5uaW5nIGluIERSVAotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIGRl
YnVnKCAnRXZlbnQgIicgKyBlLnR5cGUgKyAnIjogJyArIHBhdGgpOwotICAgICAgICAKLSAgICBp
bWFnZXNMZWZ0VG9Mb2FkLS07Ci0gICAgCi0gICAgaWYgKCFzdWNjZXNzKSB7Ci0gICAgICAgIC8v
IE5vdGUgdGhhdCBvbiB0aGUgTWFjIHBvcnQsIENVUiBmaWxlcyBhcmUgbG9hZGVkIHVzaW5nIENv
cmVHcmFwaGljcywgYW5kIGl0IGRvZXNuJ3QKLSAgICAgICAgLy8gYXBwZWFyIHRvIHN1cHBvcnQg
bXVsdGktZnJhbWUgQ1VSIGZpbGVzLCBzbyB0aGUgbG9hZCB3aWxsIGZhaWwgaW4gdGhpcyBjYXNl
LgotICAgICAgICAvLyBXZSBleHBsaWNpdGx5IGxvb2sgZm9yIHRoaXMgYmVoYXZpb3Igb24gTWFj
IHNvIHRoYXQgaWYgaXQgZXZlciBzdGFydHMgYmVpbmcgc3VwcG9ydGVkLAotICAgICAgICAvLyB3
ZSBjYW4gZW5zdXJlIHRoZSBiZWhhdmlvciBpcyBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVyIHBv
cnRzLgotICAgICAgICB0ZXN0RmFpbGVkKCdHb3QgdW5leHBlY3RlZCBcJycgKyBlLnR5cGUgKyAn
XCcgZXZlbnQgZm9yIGltYWdlOiAnICsgcGF0aCk7IAotICAgIH0KLQotICAgIGlmIChpbWFnZXNM
ZWZ0VG9Mb2FkID09IDApCi0gICAgICAgIHJ1blRlc3RzKCk7Ci0gICAgaWYgKGltYWdlc0xlZnRU
b0xvYWQgPCAwKQotICAgICAgICB0ZXN0RmFpbGVkKCdHb3QgbW9yZSBsb2FkL2Vycm9yIGNhbGxi
YWNrIHRoYW4gZXhwZWN0ZWQuJyk7Ci19Cit2YXIgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0LWNvbnRhaW5lcicpOwogCiBmdW5jdGlvbiBydW5UZXN0cygpIHsK
ICAgICAvLyBDYW4ndCBkbyBhbnl0aGluZyB1c2VmdWwgaGVyZSB3aXRob3V0IGV2ZW50U2VuZGVy
CkBAIC01OSw3ICszOSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewogICAgICAgICAgICAgZGVi
dWcoJycpOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoaXMgdGV4dCBpcyByZWR1bmRhbnQgd2l0
aCB0aGUgdGVzdCBvdXRwdXQgLSBoaWRlIGl0Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0LWNvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgIHRl
c3RDb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICB9CiAgICAgCiAgICAgZmlu
aXNoSlNUZXN0KCk7CkBAIC03OSwxNyArNTksNyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
IAogLy8gTm93IHdhaXQgZm9yIGVhY2ggaW1hZ2UgdG8gbG9hZCBvciBmYWlsIHRvIGxvYWQgYmVm
b3JlIHN0YXJ0aW5nIHRlc3RzLgogLy8gV2l0aG91dCB0aGlzIHdlIGNhbiBnZXQgbnVsbCBpbWFn
ZXMgaW4gdGhlIGN1cnNvcnMgLSBlZy4gbm8ga25vd24gc2l6ZS4KLXZhciBpbWFnZXNUb0xvYWQg
PSBbCi0gICAgeyB1cmw6ICdyZXNvdXJjZXMvZ3JlZW5ib3gtM2ZyYW1lcy5jdXInIH0gXTsKLWlt
YWdlc0xlZnRUb0xvYWQgPSBpbWFnZXNUb0xvYWQubGVuZ3RoOwotZm9yICh2YXIgaSA9IDA7IGkg
PCBpbWFnZXNUb0xvYWQubGVuZ3RoOyBpKyspIHsKLSAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7
Ci0gICAgdmFyIGV4cGVjdEVycm9yID0gaW1hZ2VzVG9Mb2FkW2ldLmVycm9yOyAKLSAgICB2YXIg
dXJsID0gaW1hZ2VzVG9Mb2FkW2ldLnVybDsKLSAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZCcsIG9uSW1hZ2VMb2FkLmJpbmQodW5kZWZpbmVkLCAhZXhwZWN0RXJyb3IsIHVybCkpOwotICAg
IGltZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uSW1hZ2VMb2FkLmJpbmQodW5kZWZpbmVk
LCBleHBlY3RFcnJvciwgdXJsKSk7Ci0gICAgaW1nLnNyYyA9IHVybDsKLX0KK3ByZWxvYWRJbWFn
ZXNGcm9tU3R5bGUodGVzdENvbnRhaW5lciwgMSwgcnVuVGVzdHMpOwogCiA8L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tb3VzZS1jdXJzb3IuaHRtbAppbmRleCA5MDYw
ODA2NWVmOGFiYWZiNTBhYzI0NjExYjc5MTlmMjQ3N2VhNzk4Li4xODRiZmVhMTVjNGU0MzdiMThk
YzlmY2M0NGM4Mzc4ZjU0OWU0NWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9tb3VzZS1jdXJzb3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tb3VzZS1j
dXJzb3IuaHRtbApAQCAtMiw2ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvaW1hZ2UtcHJlbG9hZC1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KIDwvc3R5bGU+CiA8L2hlYWQ+CkBAIC0yMiw4ICsyMyw4IEBACiAg
IDxkaXYgc3R5bGU9J2N1cnNvcjogcG9pbnRlcic+UG9pbnRlcjwvZGl2PgogICA8ZGl2IHN0eWxl
PSdjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmcnPi13ZWJraXQtZ3JhYmJpbmc8L2Rpdj4KICAgPGRp
diBzdHlsZT0nY3Vyc29yOiB1cmwocmVzb3VyY2VzL2dyZWVuYm94LnBuZyksIGhhbmQnPkV4aXN0
aW5nIDI1eDI1IGltYWdlPC9kaXY+Ci0gIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJsKGRvZXNudGV4
aXN0LnBuZyksIHBvaW50ZXInPkludmFsaWQgVVJMIHdpdGggZmFsbGJhY2sgdG8gcG9pbnRlcjwv
ZGl2PgotICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybChkb2VzbnRleGlzdC5wbmcpLCB1cmwocmVz
b3VyY2VzL2dyZWVuYm94LnBuZyksIHBvaW50ZXInPkludmFsaWQgd2l0aCBmYWxsYmFjayB0byAy
NXgyNSBpbWFnZTwvZGl2PgorICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybChkb2VzbnRleGlzdF9G
QUlMLnBuZyksIHBvaW50ZXInPkludmFsaWQgVVJMIHdpdGggZmFsbGJhY2sgdG8gcG9pbnRlcjwv
ZGl2PgorICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybChkb2VzbnRleGlzdF9GQUlMLnBuZyksIHVy
bChyZXNvdXJjZXMvZ3JlZW5ib3gucG5nKSwgcG9pbnRlcic+SW52YWxpZCB3aXRoIGZhbGxiYWNr
IHRvIDI1eDI1IGltYWdlPC9kaXY+CiAgIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJsKHJlc291cmNl
cy9ncmVlbmJveC5wbmcpIDAgMCwgcG9pbnRlcic+SW1hZ2Ugd2l0aCBleHBsaWNpdCBob3Qgc3Bv
dCBhdCAoMCwwKTwvZGl2PgogICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybChyZXNvdXJjZXMvZ3Jl
ZW5ib3gucG5nKSAyMCAxMCwgcG9pbnRlcic+SW1hZ2Ugd2l0aCBleHBsaWNpdCBob3Qgc3BvdCBh
dCAoMjAsMTApPC9kaXY+CiAgIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJsKHJlc291cmNlcy9ncmVl
bmJveC5wbmcpIC0xIC0xLCBwb2ludGVyJz5JbWFnZSB3aXRoIGV4cGxpY2l0IGhvdCBzcG90IGF0
ICgtMSwtMSk8L2Rpdj4KQEAgLTMzLDggKzM0LDggQEAKICAgPGRpdiBzdHlsZT0nY3Vyc29yOiB1
cmwocmVzb3VyY2VzL2dyZWVuYm94LWhvdHNwb3QzNS00LmN1ciksIHBvaW50ZXInPkltYWdlIHdp
dGggaW1wbGljaXQgaG90IHNwb3Qgb3V0c2lkZSBpbWFnZSBhdCAoMzUsNCk8L2Rpdj4KICAgPGRp
diBzdHlsZT0nY3Vyc29yOiB1cmwocmVzb3VyY2VzL29ubG9hZC1pbWFnZS5wbmcpLCBwb2ludGVy
Jz5PdmVyIGxhcmdlIGltYWdlIHdpdGggZmFsbGJhY2sgdG8gcG9pbnRlcjwvZGl2PgogICA8ZGl2
IHN0eWxlPSdjdXJzb3I6IHVybCgjZ3JlZW5ib3gpLCBwb2ludGVyJz5TVkcgY3Vyc29yPC9kaXY+
Ci0gIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJsKG1vdXNlLWN1cnNvci5odG1sKSwgdXJsKHVua25v
d24tc2NoZW1lOmN1cnNvci5wbmcpLCBwb2ludGVyJz5NdWx0aXBsZSBpbnZhbGlkIGN1cnNvcnMg
d2l0aCBmYWxsYmFjayB0byBwb2ludGVyPC9kaXY+Ci0gIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJs
KCNub25leGlzdGVudCksIHBvaW50ZXInPk5vbmV4aXN0ZW50IFNWRyBjdXJzb3Igd2l0aCBmYWxs
YmFjayB0byBwb2ludGVyPC9kaXY+CisgIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJsKG1vdXNlLWN1
cnNvcl9GQUlMLmh0bWwpLCB1cmwodW5rbm93bi1zY2hlbWU6Y3Vyc29yX0ZBSUwucG5nKSwgcG9p
bnRlcic+TXVsdGlwbGUgaW52YWxpZCBjdXJzb3JzIHdpdGggZmFsbGJhY2sgdG8gcG9pbnRlcjwv
ZGl2PgorICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybCgjbm9uZXhpc3RlbnRfRkFJTCksIHBvaW50
ZXInPk5vbmV4aXN0ZW50IFNWRyBjdXJzb3Igd2l0aCBmYWxsYmFjayB0byBwb2ludGVyPC9kaXY+
CiAgIDxkaXY+PGEgaHJlZj0nIyc+QSBsaW5rIHdpdGggZGVmYXVsdCBjdXJzb3I8L2E+PC9kaXY+
CiAgIDxkaXYgc3R5bGU9J2N1cnNvcjogd2FpdCc+PGEgaHJlZj0nIyc+TGluayB3aXRoIGRlZmF1
bHQgY3Vyc29yIG92ZXJyaWRpbmcgd2FpdDwvYT48L2Rpdj4KICAgPGRpdiBzdHlsZT0nY3Vyc29y
OiB3YWl0Jz48ZGl2IHN0eWxlPSdjdXJzb3I6IGRvZXNudGV4aXN0Jz5XYWl0IGN1cnNvciB3aGlj
aCBzaG91bGQgbm90IGJlIGFmZmVjdGVkIGJ5IHVua25vd24gY3Vyc29yIHJ1bGU8L2Rpdj48L2Rp
dj4KQEAgLTQyLDI1ICs0Myw5IEBACiA8YnIvPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8
c2NyaXB0PgotdmFyIGltYWdlc0xlZnRUb0xvYWQgPSAwOwogCi1mdW5jdGlvbiBvbkltYWdlTG9h
ZChzdWNjZXNzLCBlKSB7Ci0KLSAgICAvLyBUaGlzIGRlYnVnIG91dHB1dCBpcyBub24tZGV0ZXJt
aW5pc3RpYyBhbmQgY29udGFpbnMgYWJzb2x1dGUgVVJMcyAtIG9ubHkgc2hvdyB3aGVuCi0gICAg
Ly8gbm90IHJ1bm5pbmcgaW4gRFJUCi0gICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgZGVidWcoICdFdmVudCAiJyArIGUudHlwZSArICciOiAnICsgZS50YXJnZXQuc3JjKTsKK3Zh
ciB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtY29udGFpbmVy
Jyk7CiAgICAgCi0gICAgaWYgKCFzdWNjZXNzKQotICAgICAgICB0ZXN0RmFpbGVkKCdHb3QgdW5l
eHBlY3RlZCBcJycgKyBlLnR5cGUgKyAnXCcgZXZlbnQgZm9yIGltYWdlOiAnICsgZS50YXJnZXQu
c3JjKTsgCi0gICAgICAgIAotICAgIGltYWdlc0xlZnRUb0xvYWQtLTsKLSAgICBpZiAoaW1hZ2Vz
TGVmdFRvTG9hZCA9PSAwKQotICAgICAgICBydW5UZXN0cygpOwotICAgIGlmIChpbWFnZXNMZWZ0
VG9Mb2FkIDwgMCkKLSAgICAgICAgdGVzdEZhaWxlZCgnR290IG1vcmUgbG9hZC9lcnJvciBjYWxs
YmFjayB0aGFuIGV4cGVjdGVkLicpOwotfQotCiBmdW5jdGlvbiBydW5UZXN0cygpIHsKICAgICAv
LyBDYW4ndCBkbyBhbnl0aGluZyB1c2VmdWwgaGVyZSB3aXRob3V0IGV2ZW50U2VuZGVyCiAgICAg
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewpAQCAtODEsNyArNjYsNyBAQCBmdW5jdGlvbiBydW5U
ZXN0cygpIHsKICAgICAgICAgICAgIGRlYnVnKCcnKTsKICAgICAgICAgfQogICAgICAgICAvLyBU
aGlzIHRleHQgaXMgcmVkdW5kYW50IHdpdGggdGhlIHRlc3Qgb3V0cHV0IC0gaGlkZSBpdAotICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1jb250YWluZXInKS5zdHlsZS5kaXNw
bGF5ID0gJ25vbmUnOworICAgICAgICB0ZXN0Q29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnbm9u
ZSc7CiAgICAgfQogICAgIAogICAgIGZpbmlzaEpTVGVzdCgpOwpAQCAtMTAxLDI0ICs4Niw3IEBA
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogCiAvLyBOb3cgd2FpdCBmb3IgZWFjaCBpbWFnZSB0
byBsb2FkIG9yIGZhaWwgdG8gbG9hZCBiZWZvcmUgc3RhcnRpbmcgdGVzdHMuCiAvLyBXaXRob3V0
IHRoaXMgd2UgY2FuIGdldCBudWxsIGltYWdlcyBpbiB0aGUgY3Vyc29ycyAtIGVnLiBubyBrbm93
biBzaXplLgotdmFyIGltYWdlc1RvTG9hZCA9IFsKLSAgICB7IHVybDogJ3Jlc291cmNlcy9ncmVl
bmJveC5wbmcnIH0sCi0gICAgeyB1cmw6ICdyZXNvdXJjZXMvb25sb2FkLWltYWdlLnBuZycgfSwK
LSAgICB7IHVybDogJ3Jlc291cmNlcy9ncmVlbmJveC1ob3RzcG90NS00LmN1cicgfSwKLSAgICB7
IHVybDogJ3Jlc291cmNlcy9ncmVlbmJveC1ob3RzcG90MzUtNC5jdXInIH0sCi0gICAgeyB1cmw6
ICdkb2VzbnRleGlzdC5wbmcnLCBlcnJvcjogdHJ1ZSB9LAotICAgIHsgdXJsOiAndW5rbm93bi1z
Y2hlbWU6Y3Vyc29yLnBuZycsIGVycm9yOiB0cnVlIH0sCi0gICAgeyB1cmw6ICdtb3VzZS1jdXJz
b3IuaHRtbCcsIGVycm9yOiB0cnVlIH0sCi0gICAgeyB1cmw6ICcjZ3JlZW5ib3gnLCBlcnJvcjog
dHJ1ZSB9LAotICAgIHsgdXJsOiAnI25vbmV4aXN0ZW50JywgZXJyb3I6IHRydWUgfSBdOwotaW1h
Z2VzTGVmdFRvTG9hZCA9IGltYWdlc1RvTG9hZC5sZW5ndGg7Ci1mb3IgKHZhciBpID0gMDsgaSA8
IGltYWdlc1RvTG9hZC5sZW5ndGg7IGkrKykgewotICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsK
LSAgICB2YXIgZXhwZWN0RXJyb3IgPSBpbWFnZXNUb0xvYWRbaV0uZXJyb3I7IAotICAgIGltZy5h
ZGRFdmVudExpc3RlbmVyKCdsb2FkJywgb25JbWFnZUxvYWQuYmluZCh1bmRlZmluZWQsICFleHBl
Y3RFcnJvcikpOwotICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uSW1hZ2VMb2Fk
LmJpbmQodW5kZWZpbmVkLCBleHBlY3RFcnJvcikpOwotICAgIGltZy5zcmMgPSBpbWFnZXNUb0xv
YWRbaV0udXJsOwotfQorcHJlbG9hZEltYWdlc0Zyb21TdHlsZSh0ZXN0Q29udGFpbmVyLCA5LCBy
dW5UZXN0cywgLygjZ3JlZW5ib3h8X0ZBSUwpLyk7CiAKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9pbWFnZS1wcmVsb2FkLWhlbHBl
ci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2ltYWdlLXByZWxvYWQtaGVscGVy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI3ZWExN2QxNDNhYmFhZDNmMWNkMWYwYjkxNDRkZWUyN2I5YjI4MDQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9pbWFnZS1w
cmVsb2FkLWhlbHBlci5qcwpAQCAtMCwwICsxLDc0IEBACisvLyBUaGlzIGlzIHVzZWQgYnkgc2V2
ZXJhbCB0ZXN0cyB0byBoZWxwIGdldCBpbWFnZXMgcmVsaWFibHkgcHJlbG9hZGVkLgorCisvLyBH
aXZlbiBhIG5vZGUsIGxvYWRzIGFsbCB1cmxzIHNwZWNpZmllZCBpbiBzdHlsZSBkZWNsYXJhdGlv
bnMKKy8vIGF0dGFjaGVkIHRvIHRoZSBub2RlIG9yIGl0J3MgZGVjZW5kYW50cy4KKy8vIGltYWdl
Q291bnQgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgaW1hZ2VzIHdlIGV4cGVjdCB0byBmaW5kICh0
byB0cnkgdG8gYWRkIHNvbWUKKy8vIHByb3RlY3Rpb24gYWdhaW5zdCBicml0dGxlbmVzcyBkdWUg
dG8gaW1wZXJmZWN0IHVybCBwYXJzaW5nLCBzaW5jZSBvdGhlciBtaXNzaW5nIGEgcHJlbG9hZAor
Ly8gd2lsbCB0eXBpY2FsbHkgcmVzdWx0IGluIGEgdGVzdCB0aGF0IGZhaWxzIG9ubHkgb2NjYXNp
b25hbGx5KS4KKy8vIElmIGZhaWxQYXR0ZXJuIGlzIHNwZWNpZmllZCwgdGhlbiBhbnkgdXJsIHRo
YXQgbWF0Y2hlcyB0aGUgcmVnZXgKKy8vIHdpbGwgYmUgZXhwZWN0ZWQgdG8gZmFpbCB0byBsb2Fk
LgorZnVuY3Rpb24gcHJlbG9hZEltYWdlc0Zyb21TdHlsZShyb290Tm9kZSwgaW1hZ2VDb3VudCwg
b25Db21wbGV0ZSwgZmFpbFBhdHRlcm4pIHsKKyAgICB2YXIgYmFzZVBhdGggPSBsb2NhdGlvbi5o
cmVmLnN1YnN0cmluZygwLCBsb2NhdGlvbi5ocmVmLmxhc3RJbmRleE9mKCcvJykgKyAxKTsKKyAg
ICB2YXIgbm9kZXMgPSByb290Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKCdbc3R5bGVdJyk7CisgICAg
dmFyIGltYWdlc1RvTG9hZCA9IFtdOworICAgIHZhciBzZWVuVXJscyA9IHt9OworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIHVybHMgPSBu
b2Rlc1tpXS5zdHlsZS5jc3NUZXh0LnNwbGl0KC91cmxcdypcKChbXildKilcKS8pOworICAgICAg
ICBmb3IgKHZhciBqID0gMTsgaiA8IHVybHMubGVuZ3RoOyBqICs9IDIpIHsKKyAgICAgICAgICAg
IC8vIEF0dGVtcHQgdG8gY29udmVydCBVUkwgdG8gYSByZWxhdGl2ZSBwYXRoIGluIG9yZGVyIHRv
IGhhdmUgZGV0ZXJtaW5pc3RpYyBlcnJvciBtZXNzYWdlcy4KKyAgICAgICAgICAgIHZhciB1cmwg
PSB1cmxzW2pdOworICAgICAgICAgICAgaWYgKHVybC5pbmRleE9mKGJhc2VQYXRoKSA9PSAwKQor
ICAgICAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHJpbmcoYmFzZVBhdGgubGVuZ3RoKTsKKwor
ICAgICAgICAgICAgdmFyIGVycm9yID0gZmFsc2U7CisgICAgICAgICAgICBpZiAoZmFpbFBhdHRl
cm4gJiYgZmFpbFBhdHRlcm4udGVzdCh1cmwpKQorICAgICAgICAgICAgICAgIGVycm9yID0gdHJ1
ZTsKKyAgICAgICAgICAgIGlmICh1cmwgaW4gc2VlblVybHMpCisgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICBzZWVuVXJsc1t1cmxdID0gdHJ1ZTsKKyAgICAgICAgICAgIGlt
YWdlc1RvTG9hZC5wdXNoKHt1cmw6IHVybCwgZXJyb3I6IGVycm9yfSk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoaW1hZ2VDb3VudCAhPSBpbWFnZXNUb0xvYWQubGVuZ3RoKSB7CisgICAg
ICAgIHZhciBtc2cgPSAnRm91bmQgdGhlIGZvbGxvd2luZyAnICsgaW1hZ2VzVG9Mb2FkLmxlbmd0
aCArICcgaW1hZ2VzLCB3aGVuIGV4cGVjdGluZyAnICsgaW1hZ2VDb3VudCArICc6ICc7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VzVG9Mb2FkLmxlbmd0aDsgaSsrKSB7CisgICAg
ICAgICAgICBtc2cgKz0gJ1xuJyArIGltYWdlc1RvTG9hZFtpXS51cmw7CisgICAgICAgIH0KKyAg
ICAgICAgdGVzdEZhaWxlZChtc2cpOworICAgIH0KKworICAgIGxvYWRJbWFnZXMoaW1hZ2VzVG9M
b2FkLCBvbkNvbXBsZXRlKTsKK30KKworLy8gRm9yIGVhY2ggb2JqZWN0IGluIHRoZSBnaXZlbiBh
cnJheSwgYXR0ZW1wdCB0byBsb2FkIHRoZSBpbWFnZSBzcGVjaWZpZWQgYnkgdGhlCisvLyB1cmwg
cHJvcGVydHkuICBJZiB0aGUgZXJyb3IgcHJvcGVydHkgaXMgc3BlY2lmaWVkIGFuZCB0cnVlLCB0
aGVuIHRoZSBsb2FkIGlzCisvLyBleHBlY3RlZCB0byBmYWlsLiAgT25jZSBhbGwgbG9hZHMgaGF2
ZSBjb21wbGV0ZWQgb3IgZmFpbGVkLCBvbkNvbXBsZXRlIGlzIGludm9rZWQuCitmdW5jdGlvbiBs
b2FkSW1hZ2VzKGltYWdlc1RvTG9hZCwgb25Db21wbGV0ZSkgeworCisgICAgdmFyIGltYWdlc0xl
ZnRUb0xvYWQgPSBpbWFnZXNUb0xvYWQubGVuZ3RoOworCisgICAgZnVuY3Rpb24gb25JbWFnZUxv
YWQodXJsLCBzdWNjZXNzLCBlKSB7CisgICAgICAgIC8vIFRoaXMgZGVidWcgb3V0cHV0IG9yZGVy
IGlzIG5vbi1kZXRlcm1pbmlzdGljIC0gb25seSBzaG93IHdoZW4gbm90IHJ1bm5pbmcgaW4gRFJU
CisgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICBkZWJ1ZyggJ0V2
ZW50ICInICsgZS50eXBlICsgJyI6ICcgKyB1cmwpOworCisgICAgICAgIGlmICghc3VjY2VzcykK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0dvdCB1bmV4cGVjdGVkIFwnJyArIGUudHlwZSArICdc
JyBldmVudCBmb3IgaW1hZ2U6ICcgKyB1cmwpOworICAgICAgICAKKyAgICAgICAgaW1hZ2VzTGVm
dFRvTG9hZC0tOworICAgICAgICBpZiAoaW1hZ2VzTGVmdFRvTG9hZCA9PSAwKSB7CisgICAgICAg
ICAgICBvbkNvbXBsZXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGltYWdlc0xlZnRUb0xv
YWQgPCAwKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgnR290IG1vcmUgbG9hZC9lcnJvciBjYWxs
YmFja3MgdGhhbiBleHBlY3RlZC4nKTsKKyAgICB9CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGltYWdlc1RvTG9hZC5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgaW1nID0gbmV3IEltYWdl
KCk7CisgICAgICAgIHZhciBleHBlY3RFcnJvciA9IGltYWdlc1RvTG9hZFtpXS5lcnJvcjsKKyAg
ICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkltYWdlTG9hZC5iaW5kKHVuZGVm
aW5lZCwgaW1hZ2VzVG9Mb2FkW2ldLnVybCwgIWV4cGVjdEVycm9yKSk7CisgICAgICAgIGltZy5h
ZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uSW1hZ2VMb2FkLmJpbmQodW5kZWZpbmVkLCBpbWFn
ZXNUb0xvYWRbaV0udXJsLCAhIWV4cGVjdEVycm9yKSk7CisgICAgICAgIGltZy5zcmMgPSBpbWFn
ZXNUb0xvYWRbaV0udXJsOworICAgIH0KK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181368</attachid>
            <date>2013-01-04 13:30:18 -0800</date>
            <delta_ts>2013-01-04 14:46:48 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-104952-20130104162725.patch</filename>
            <type>text/plain</type>
            <size>15543</size>
            <attacher name="Rick Byers">rbyers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4ODQ4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmJkNzJkNmU5OTczYjFjZjUxOTI2
OTc0YTRiMjgzZDg1OTEzMTlkZC4uMmUzYTA0YWI5NDk4M2YyOTRlZDVhODIwY2U2OGJlZDQyYzVh
MDFjZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEyLTIxICBSaWNrIEJ5ZXJzICA8cmJ5
ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBVUkwgZHVwbGljYXRpb24gaW4gbW91c2UgY3Vy
c29yIHRlc3RzIG1lYW4gbWlub3IgdHlwb3MgY2FuIGNhdXNlIGZsYWtpbmVzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0OTUyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAgUmVwbGFjZSB0aGUgZXhwbGljaXQg
bGlzdCBvZiBpbWFnZXMgdG8gcHJlbG9hZCB3aXRoIGNvZGUgdGhhdCBleHRyYWN0cworICAgICAg
ICBVUkxzIGZyb20gc3R5bGUgZGVmaW5pdGlvbnMuICBBbHNvIG1vdmUgYWxsIHRoaXMgaW1hZ2Ug
cHJlbG9hZCBjb2RlIHRvCisgICAgICAgIGEgY29tbW9uIGhlbHBlciBmaWxlIHNvIHRoYXQgaXQg
Y2FuIGVhc2lseSBiZSB1c2VkIGJ5IG90aGVyIHRlc3RzLgorCisgICAgICAgICogZmFzdC9ldmVu
dHMvbW91c2UtY3Vyc29yLWltYWdlLXNldC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL21v
dXNlLWN1cnNvci1tdWx0aWZyYW1lY3VyLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvbW91
c2UtY3Vyc29yLmh0bWw6CisgICAgICAgICogZmFzdC9qcy9yZXNvdXJjZXMvaW1hZ2UtcHJlbG9h
ZC1oZWxwZXIuanM6IEFkZGVkLgorICAgICAgICAocHJlbG9hZEltYWdlc0Zyb21TdHlsZSk6Cisg
ICAgICAgIChvbkNvbXBsZXRlKToKKyAgICAgICAgKGltYWdlc1RvTG9hZCk6CisKIDIwMTMtMDEt
MDQgIFRlcnJ5IEFuZGVyc29uICA8dGRhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBnYXJkZW5pbmcuIFRoZSBmb2xsb3dpbmcgdHdvIHRlc3RzIGFyZSBmbGFreSBv
biBYUDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1p
bWFnZS1zZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1pbWFn
ZS1zZXQuaHRtbAppbmRleCAzZTg0MDVjZGM3ZTk2OWEwNTBjMTM5YjA3MmUzMDk3NDUzYWUzOTQ3
Li44MjIxNDZjZGRiNGFiOTViMjhiNWIxMDNjMGJjMTQzNWQzZGVlNWViIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tb3VzZS1jdXJzb3ItaW1hZ2Utc2V0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLWltYWdlLXNldC5odG1sCkBAIC0y
LDYgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9p
bWFnZS1wcmVsb2FkLWhlbHBlci5qcyI+PC9zY3JpcHQ+CiA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PgogPC9zdHlsZT4KIDwvaGVhZD4KQEAgLTI1LDI1ICsyNiw3IEBACiA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KIDxzY3JpcHQ+CiB2YXIgaW1hZ2VzTGVmdFRvTG9hZCA9IDA7Ci0KLWZ1bmN0aW9u
IG9uSW1hZ2VMb2FkKHN1Y2Nlc3MsIG9uZG9uZSwgZSkgewotCi0gICAgLy8gVGhpcyBkZWJ1ZyBv
dXRwdXQgaXMgbm9uLWRldGVybWluaXN0aWMgYW5kIGNvbnRhaW5zIGFic29sdXRlIFVSTHMgLSBv
bmx5IHNob3cgd2hlbgotICAgIC8vIG5vdCBydW5uaW5nIGluIERSVAotICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIpCi0gICAgICAgIGRlYnVnKCAnRXZlbnQgIicgKyBlLnR5cGUgKyAnIjogJyAr
IGUudGFyZ2V0LnNyYyk7Ci0KLSAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgIHRlc3RGYWlsZWQo
J0dvdCB1bmV4cGVjdGVkIFwnJyArIGUudHlwZSArICdcJyBldmVudCBmb3IgaW1hZ2U6ICcgKyBl
LnRhcmdldC5zcmMpOyAKLQotICAgIGltYWdlc0xlZnRUb0xvYWQtLTsKLSAgICAKLSAgICBpZiAo
aW1hZ2VzTGVmdFRvTG9hZCA8IDApCi0gICAgICAgIHRlc3RGYWlsZWQoJ0dvdCBtb3JlIGxvYWQv
ZXJyb3IgY2FsbGJhY2sgdGhhbiBleHBlY3RlZC4nKTsKLSAgICAKLSAgICBpZiAoaW1hZ2VzTGVm
dFRvTG9hZCA9PSAwKQotICAgICAgICBvbmRvbmUoKTsKLX0KK3ZhciB0ZXN0Q29udGFpbmVyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtY29udGFpbmVyJyk7CiAKIGZ1bmN0aW9uIGNo
ZWNrQ3Vyc29ycygpIHsKICAgICBkZWJ1ZygnQ2hlY2tpbmcgY3Vyc29ycyB3aXRoIGRldmljZSBw
aXhlbCByYXRpbyBvZiAnICsgd2luZG93LmRldmljZVBpeGVsUmF0aW8pOyAgCkBAIC03Miw5ICs1
NSw5IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewogICAgICAgICAvLyBSZXBlYXQgaW4gaGlnaC1k
cGkgbW9kZQogICAgICAgICB0ZXN0UnVubmVyLnNldEJhY2tpbmdTY2FsZUZhY3RvcigyLCBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIC8vIEZhaWxlZCBpbWFnZXMgYXJlIGFwcGFyZW50bHkgcmVz
ZXQgb24gc2NhbGUgZmFjdG9yIGNoYW5nZS4gCi0gICAgICAgICAgICBlbnN1cmVJbWFnZXNMb2Fk
ZWQoW3sgdXJsOiAnZG9lc250ZXhpc3QucG5nJywgZXJyb3I6IHRydWUgfV0sIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgbG9hZEltYWdlcyhbeyB1cmw6ICdkb2VzbnRleGlzdC5wbmcnLCBlcnJv
cjogdHJ1ZSB9XSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgY2hlY2tDdXJzb3JzKCk7
Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtY29udGFpbmVy
Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgICAgICAgICB0ZXN0Q29udGFpbmVy
LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CiAgICAgICAgICAgICB9KTsKICAgICAJfSk7CQpAQCAtODMsMTggKzY2LDYgQEAgZnVuY3Rpb24g
cnVuVGVzdHMoKSB7CiAgICAgfQogfQogCi1mdW5jdGlvbiBlbnN1cmVJbWFnZXNMb2FkZWQoaW1h
Z2VzVG9Mb2FkLCBjYWxsYmFjaykKLXsKLSAgICBpbWFnZXNMZWZ0VG9Mb2FkID0gaW1hZ2VzVG9M
b2FkLmxlbmd0aDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGltYWdlc1RvTG9hZC5sZW5ndGg7
IGkrKykgewotICAgICAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7Ci0gICAgICAgIHZhciBleHBl
Y3RFcnJvciA9IGltYWdlc1RvTG9hZFtpXS5lcnJvcjsgCi0gICAgICAgIGltZy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgb25JbWFnZUxvYWQuYmluZCh1bmRlZmluZWQsICFleHBlY3RFcnJvciwg
Y2FsbGJhY2spKTsKLSAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgb25JbWFn
ZUxvYWQuYmluZCh1bmRlZmluZWQsIGV4cGVjdEVycm9yLCBjYWxsYmFjaykpOwotICAgICAgICBp
bWcuc3JjID0gaW1hZ2VzVG9Mb2FkW2ldLnVybDsKLSAgICB9Ci19Ci0KIGRlc2NyaXB0aW9uKCJU
ZXN0IHRoYXQgbW91c2UgY3Vyc29ycyBhcmUgYXBwbGllZCBjb3JyZWN0bHkuIik7CiAKIGlmICgh
d2luZG93LmV2ZW50U2VuZGVyKSB7CkBAIC0xMDksMTQgKzgwLDcgQEAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAKIC8vIE5vdyB3YWl0IGZvciBlYWNoIGltYWdlIHRvIGxvYWQgb3IgZmFpbCB0
byBsb2FkIGJlZm9yZSBzdGFydGluZyB0ZXN0cy4KIC8vIFdpdGhvdXQgdGhpcyB3ZSBjYW4gZ2V0
IG51bGwgaW1hZ2VzIGluIHRoZSBjdXJzb3JzIC0gZWcuIG5vIGtub3duIHNpemUuCi12YXIgaW1h
Z2VzVG9Mb2FkID0gWwotIHsgdXJsOiAncmVzb3VyY2VzL2dyZWVuYm94LnBuZycgfSwKLSB7IHVy
bDogJ3Jlc291cmNlcy9ncmVlbmJveDMwLnBuZycgfSwKLSB7IHVybDogJ3Jlc291cmNlcy9ncmVl
bmJveDIwMC5wbmcnIH0sCi0geyB1cmw6ICdyZXNvdXJjZXMvZ3JlZW5ib3gtaG90c3BvdDUtNC5j
dXInIH0sCi0geyB1cmw6ICdyZXNvdXJjZXMvZ3JlZW5ib3gzMC1ob3RzcG90MjgtMy5jdXInIH0s
Ci0geyB1cmw6ICdkb2VzbnRleGlzdC5wbmcnLCBlcnJvcjogdHJ1ZSB9IF07Ci1lbnN1cmVJbWFn
ZXNMb2FkZWQoaW1hZ2VzVG9Mb2FkLCBydW5UZXN0cyk7CitwcmVsb2FkSW1hZ2VzRnJvbVN0eWxl
KHRlc3RDb250YWluZXIsIDYsIHJ1blRlc3RzLCAvZG9lc250ZXhpc3QvKTsKIAogPC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21vdXNlLWN1cnNv
ci1tdWx0aWZyYW1lY3VyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tb3VzZS1jdXJz
b3ItbXVsdGlmcmFtZWN1ci5odG1sCmluZGV4IDI1NmE0OTljMTVkNTFiNjY3OTE4MTU4ZmYzYWVk
ZjgxYTVmMGE5NzkuLmYxNTI0MmVkMjk0MGE4NzQ5NDc1NmY1NmJkN2MxZjhmZWI2Yjc0ZGIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21vdXNlLWN1cnNvci1tdWx0aWZyYW1l
Y3VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLW11bHRp
ZnJhbWVjdXIuaHRtbApAQCAtMiw2ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvaW1hZ2UtcHJlbG9hZC1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KIDwvc3R5bGU+CiA8L2hlYWQ+CkBAIC0xNiwyOCArMTcsNyBA
QAogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgogdmFyIGltYWdlc0xlZnRUb0xv
YWQgPSAwOwotCi1mdW5jdGlvbiBvbkltYWdlTG9hZChzdWNjZXNzLCBwYXRoLCBlKSB7Ci0KLSAg
ICAvLyBUaGlzIGRlYnVnIG91dHB1dCBvcmRlciBpcyBub24tZGV0ZXJtaW5pc3RpYyAtIG9ubHkg
c2hvdyB3aGVuIG5vdCBydW5uaW5nIGluIERSVAotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgIGRlYnVnKCAnRXZlbnQgIicgKyBlLnR5cGUgKyAnIjogJyArIHBhdGgpOwotICAg
ICAgICAKLSAgICBpbWFnZXNMZWZ0VG9Mb2FkLS07Ci0gICAgCi0gICAgaWYgKCFzdWNjZXNzKSB7
Ci0gICAgICAgIC8vIE5vdGUgdGhhdCBvbiB0aGUgTWFjIHBvcnQsIENVUiBmaWxlcyBhcmUgbG9h
ZGVkIHVzaW5nIENvcmVHcmFwaGljcywgYW5kIGl0IGRvZXNuJ3QKLSAgICAgICAgLy8gYXBwZWFy
IHRvIHN1cHBvcnQgbXVsdGktZnJhbWUgQ1VSIGZpbGVzLCBzbyB0aGUgbG9hZCB3aWxsIGZhaWwg
aW4gdGhpcyBjYXNlLgotICAgICAgICAvLyBXZSBleHBsaWNpdGx5IGxvb2sgZm9yIHRoaXMgYmVo
YXZpb3Igb24gTWFjIHNvIHRoYXQgaWYgaXQgZXZlciBzdGFydHMgYmVpbmcgc3VwcG9ydGVkLAot
ICAgICAgICAvLyB3ZSBjYW4gZW5zdXJlIHRoZSBiZWhhdmlvciBpcyBjb25zaXN0ZW50IHdpdGgg
dGhlIG90aGVyIHBvcnRzLgotICAgICAgICB0ZXN0RmFpbGVkKCdHb3QgdW5leHBlY3RlZCBcJycg
KyBlLnR5cGUgKyAnXCcgZXZlbnQgZm9yIGltYWdlOiAnICsgcGF0aCk7IAotICAgIH0KLQotICAg
IGlmIChpbWFnZXNMZWZ0VG9Mb2FkID09IDApCi0gICAgICAgIHJ1blRlc3RzKCk7Ci0gICAgaWYg
KGltYWdlc0xlZnRUb0xvYWQgPCAwKQotICAgICAgICB0ZXN0RmFpbGVkKCdHb3QgbW9yZSBsb2Fk
L2Vycm9yIGNhbGxiYWNrIHRoYW4gZXhwZWN0ZWQuJyk7Ci19Cit2YXIgdGVzdENvbnRhaW5lciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LWNvbnRhaW5lcicpOwogCiBmdW5jdGlvbiBy
dW5UZXN0cygpIHsKICAgICAvLyBDYW4ndCBkbyBhbnl0aGluZyB1c2VmdWwgaGVyZSB3aXRob3V0
IGV2ZW50U2VuZGVyCkBAIC01OSw3ICszOSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewogICAg
ICAgICAgICAgZGVidWcoJycpOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoaXMgdGV4dCBpcyBy
ZWR1bmRhbnQgd2l0aCB0aGUgdGVzdCBvdXRwdXQgLSBoaWRlIGl0Ci0gICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0LWNvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7
CisgICAgICAgIHRlc3RDb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICB9CiAg
ICAgCiAgICAgZmluaXNoSlNUZXN0KCk7CkBAIC03OSwxNyArNTksNyBAQCBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKIAogLy8gTm93IHdhaXQgZm9yIGVhY2ggaW1hZ2UgdG8gbG9hZCBvciBmYWls
IHRvIGxvYWQgYmVmb3JlIHN0YXJ0aW5nIHRlc3RzLgogLy8gV2l0aG91dCB0aGlzIHdlIGNhbiBn
ZXQgbnVsbCBpbWFnZXMgaW4gdGhlIGN1cnNvcnMgLSBlZy4gbm8ga25vd24gc2l6ZS4KLXZhciBp
bWFnZXNUb0xvYWQgPSBbCi0gICAgeyB1cmw6ICdyZXNvdXJjZXMvZ3JlZW5ib3gtM2ZyYW1lcy5j
dXInIH0gXTsKLWltYWdlc0xlZnRUb0xvYWQgPSBpbWFnZXNUb0xvYWQubGVuZ3RoOwotZm9yICh2
YXIgaSA9IDA7IGkgPCBpbWFnZXNUb0xvYWQubGVuZ3RoOyBpKyspIHsKLSAgICB2YXIgaW1nID0g
bmV3IEltYWdlKCk7Ci0gICAgdmFyIGV4cGVjdEVycm9yID0gaW1hZ2VzVG9Mb2FkW2ldLmVycm9y
OyAKLSAgICB2YXIgdXJsID0gaW1hZ2VzVG9Mb2FkW2ldLnVybDsKLSAgICBpbWcuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsIG9uSW1hZ2VMb2FkLmJpbmQodW5kZWZpbmVkLCAhZXhwZWN0RXJyb3Is
IHVybCkpOwotICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uSW1hZ2VMb2FkLmJp
bmQodW5kZWZpbmVkLCBleHBlY3RFcnJvciwgdXJsKSk7Ci0gICAgaW1nLnNyYyA9IHVybDsKLX0K
K3ByZWxvYWRJbWFnZXNGcm9tU3R5bGUodGVzdENvbnRhaW5lciwgMSwgcnVuVGVzdHMpOwogCiA8
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbW91
c2UtY3Vyc29yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tb3VzZS1jdXJzb3IuaHRt
bAppbmRleCA5MDYwODA2NWVmOGFiYWZiNTBhYzI0NjExYjc5MTlmMjQ3N2VhNzk4Li4xODRiZmVh
MTVjNGU0MzdiMThkYzlmY2M0NGM4Mzc4ZjU0OWU0NWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9tb3VzZS1jdXJzb3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9tb3VzZS1jdXJzb3IuaHRtbApAQCAtMiw2ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvaW1hZ2UtcHJlbG9hZC1oZWxwZXIuanMiPjwvc2Ny
aXB0PgogPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KIDwvc3R5bGU+CiA8L2hlYWQ+CkBAIC0yMiw4
ICsyMyw4IEBACiAgIDxkaXYgc3R5bGU9J2N1cnNvcjogcG9pbnRlcic+UG9pbnRlcjwvZGl2Pgog
ICA8ZGl2IHN0eWxlPSdjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmcnPi13ZWJraXQtZ3JhYmJpbmc8
L2Rpdj4KICAgPGRpdiBzdHlsZT0nY3Vyc29yOiB1cmwocmVzb3VyY2VzL2dyZWVuYm94LnBuZyks
IGhhbmQnPkV4aXN0aW5nIDI1eDI1IGltYWdlPC9kaXY+Ci0gIDxkaXYgc3R5bGU9J2N1cnNvcjog
dXJsKGRvZXNudGV4aXN0LnBuZyksIHBvaW50ZXInPkludmFsaWQgVVJMIHdpdGggZmFsbGJhY2sg
dG8gcG9pbnRlcjwvZGl2PgotICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybChkb2VzbnRleGlzdC5w
bmcpLCB1cmwocmVzb3VyY2VzL2dyZWVuYm94LnBuZyksIHBvaW50ZXInPkludmFsaWQgd2l0aCBm
YWxsYmFjayB0byAyNXgyNSBpbWFnZTwvZGl2PgorICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybChk
b2VzbnRleGlzdF9GQUlMLnBuZyksIHBvaW50ZXInPkludmFsaWQgVVJMIHdpdGggZmFsbGJhY2sg
dG8gcG9pbnRlcjwvZGl2PgorICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybChkb2VzbnRleGlzdF9G
QUlMLnBuZyksIHVybChyZXNvdXJjZXMvZ3JlZW5ib3gucG5nKSwgcG9pbnRlcic+SW52YWxpZCB3
aXRoIGZhbGxiYWNrIHRvIDI1eDI1IGltYWdlPC9kaXY+CiAgIDxkaXYgc3R5bGU9J2N1cnNvcjog
dXJsKHJlc291cmNlcy9ncmVlbmJveC5wbmcpIDAgMCwgcG9pbnRlcic+SW1hZ2Ugd2l0aCBleHBs
aWNpdCBob3Qgc3BvdCBhdCAoMCwwKTwvZGl2PgogICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybChy
ZXNvdXJjZXMvZ3JlZW5ib3gucG5nKSAyMCAxMCwgcG9pbnRlcic+SW1hZ2Ugd2l0aCBleHBsaWNp
dCBob3Qgc3BvdCBhdCAoMjAsMTApPC9kaXY+CiAgIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJsKHJl
c291cmNlcy9ncmVlbmJveC5wbmcpIC0xIC0xLCBwb2ludGVyJz5JbWFnZSB3aXRoIGV4cGxpY2l0
IGhvdCBzcG90IGF0ICgtMSwtMSk8L2Rpdj4KQEAgLTMzLDggKzM0LDggQEAKICAgPGRpdiBzdHls
ZT0nY3Vyc29yOiB1cmwocmVzb3VyY2VzL2dyZWVuYm94LWhvdHNwb3QzNS00LmN1ciksIHBvaW50
ZXInPkltYWdlIHdpdGggaW1wbGljaXQgaG90IHNwb3Qgb3V0c2lkZSBpbWFnZSBhdCAoMzUsNCk8
L2Rpdj4KICAgPGRpdiBzdHlsZT0nY3Vyc29yOiB1cmwocmVzb3VyY2VzL29ubG9hZC1pbWFnZS5w
bmcpLCBwb2ludGVyJz5PdmVyIGxhcmdlIGltYWdlIHdpdGggZmFsbGJhY2sgdG8gcG9pbnRlcjwv
ZGl2PgogICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybCgjZ3JlZW5ib3gpLCBwb2ludGVyJz5TVkcg
Y3Vyc29yPC9kaXY+Ci0gIDxkaXYgc3R5bGU9J2N1cnNvcjogdXJsKG1vdXNlLWN1cnNvci5odG1s
KSwgdXJsKHVua25vd24tc2NoZW1lOmN1cnNvci5wbmcpLCBwb2ludGVyJz5NdWx0aXBsZSBpbnZh
bGlkIGN1cnNvcnMgd2l0aCBmYWxsYmFjayB0byBwb2ludGVyPC9kaXY+Ci0gIDxkaXYgc3R5bGU9
J2N1cnNvcjogdXJsKCNub25leGlzdGVudCksIHBvaW50ZXInPk5vbmV4aXN0ZW50IFNWRyBjdXJz
b3Igd2l0aCBmYWxsYmFjayB0byBwb2ludGVyPC9kaXY+CisgIDxkaXYgc3R5bGU9J2N1cnNvcjog
dXJsKG1vdXNlLWN1cnNvcl9GQUlMLmh0bWwpLCB1cmwodW5rbm93bi1zY2hlbWU6Y3Vyc29yX0ZB
SUwucG5nKSwgcG9pbnRlcic+TXVsdGlwbGUgaW52YWxpZCBjdXJzb3JzIHdpdGggZmFsbGJhY2sg
dG8gcG9pbnRlcjwvZGl2PgorICA8ZGl2IHN0eWxlPSdjdXJzb3I6IHVybCgjbm9uZXhpc3RlbnRf
RkFJTCksIHBvaW50ZXInPk5vbmV4aXN0ZW50IFNWRyBjdXJzb3Igd2l0aCBmYWxsYmFjayB0byBw
b2ludGVyPC9kaXY+CiAgIDxkaXY+PGEgaHJlZj0nIyc+QSBsaW5rIHdpdGggZGVmYXVsdCBjdXJz
b3I8L2E+PC9kaXY+CiAgIDxkaXYgc3R5bGU9J2N1cnNvcjogd2FpdCc+PGEgaHJlZj0nIyc+TGlu
ayB3aXRoIGRlZmF1bHQgY3Vyc29yIG92ZXJyaWRpbmcgd2FpdDwvYT48L2Rpdj4KICAgPGRpdiBz
dHlsZT0nY3Vyc29yOiB3YWl0Jz48ZGl2IHN0eWxlPSdjdXJzb3I6IGRvZXNudGV4aXN0Jz5XYWl0
IGN1cnNvciB3aGljaCBzaG91bGQgbm90IGJlIGFmZmVjdGVkIGJ5IHVua25vd24gY3Vyc29yIHJ1
bGU8L2Rpdj48L2Rpdj4KQEAgLTQyLDI1ICs0Myw5IEBACiA8YnIvPgogPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CiA8c2NyaXB0PgotdmFyIGltYWdlc0xlZnRUb0xvYWQgPSAwOwogCi1mdW5jdGlv
biBvbkltYWdlTG9hZChzdWNjZXNzLCBlKSB7Ci0KLSAgICAvLyBUaGlzIGRlYnVnIG91dHB1dCBp
cyBub24tZGV0ZXJtaW5pc3RpYyBhbmQgY29udGFpbnMgYWJzb2x1dGUgVVJMcyAtIG9ubHkgc2hv
dyB3aGVuCi0gICAgLy8gbm90IHJ1bm5pbmcgaW4gRFJUCi0gICAgaWYgKCF3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgZGVidWcoICdFdmVudCAiJyArIGUudHlwZSArICciOiAnICsgZS50YXJn
ZXQuc3JjKTsKK3ZhciB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3QtY29udGFpbmVyJyk7CiAgICAgCi0gICAgaWYgKCFzdWNjZXNzKQotICAgICAgICB0ZXN0RmFp
bGVkKCdHb3QgdW5leHBlY3RlZCBcJycgKyBlLnR5cGUgKyAnXCcgZXZlbnQgZm9yIGltYWdlOiAn
ICsgZS50YXJnZXQuc3JjKTsgCi0gICAgICAgIAotICAgIGltYWdlc0xlZnRUb0xvYWQtLTsKLSAg
ICBpZiAoaW1hZ2VzTGVmdFRvTG9hZCA9PSAwKQotICAgICAgICBydW5UZXN0cygpOwotICAgIGlm
IChpbWFnZXNMZWZ0VG9Mb2FkIDwgMCkKLSAgICAgICAgdGVzdEZhaWxlZCgnR290IG1vcmUgbG9h
ZC9lcnJvciBjYWxsYmFjayB0aGFuIGV4cGVjdGVkLicpOwotfQotCiBmdW5jdGlvbiBydW5UZXN0
cygpIHsKICAgICAvLyBDYW4ndCBkbyBhbnl0aGluZyB1c2VmdWwgaGVyZSB3aXRob3V0IGV2ZW50
U2VuZGVyCiAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewpAQCAtODEsNyArNjYsNyBAQCBm
dW5jdGlvbiBydW5UZXN0cygpIHsKICAgICAgICAgICAgIGRlYnVnKCcnKTsKICAgICAgICAgfQog
ICAgICAgICAvLyBUaGlzIHRleHQgaXMgcmVkdW5kYW50IHdpdGggdGhlIHRlc3Qgb3V0cHV0IC0g
aGlkZSBpdAotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1jb250YWluZXIn
KS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgICAgICB0ZXN0Q29udGFpbmVyLnN0eWxlLmRp
c3BsYXkgPSAnbm9uZSc7CiAgICAgfQogICAgIAogICAgIGZpbmlzaEpTVGVzdCgpOwpAQCAtMTAx
LDI0ICs4Niw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogCiAvLyBOb3cgd2FpdCBmb3Ig
ZWFjaCBpbWFnZSB0byBsb2FkIG9yIGZhaWwgdG8gbG9hZCBiZWZvcmUgc3RhcnRpbmcgdGVzdHMu
CiAvLyBXaXRob3V0IHRoaXMgd2UgY2FuIGdldCBudWxsIGltYWdlcyBpbiB0aGUgY3Vyc29ycyAt
IGVnLiBubyBrbm93biBzaXplLgotdmFyIGltYWdlc1RvTG9hZCA9IFsKLSAgICB7IHVybDogJ3Jl
c291cmNlcy9ncmVlbmJveC5wbmcnIH0sCi0gICAgeyB1cmw6ICdyZXNvdXJjZXMvb25sb2FkLWlt
YWdlLnBuZycgfSwKLSAgICB7IHVybDogJ3Jlc291cmNlcy9ncmVlbmJveC1ob3RzcG90NS00LmN1
cicgfSwKLSAgICB7IHVybDogJ3Jlc291cmNlcy9ncmVlbmJveC1ob3RzcG90MzUtNC5jdXInIH0s
Ci0gICAgeyB1cmw6ICdkb2VzbnRleGlzdC5wbmcnLCBlcnJvcjogdHJ1ZSB9LAotICAgIHsgdXJs
OiAndW5rbm93bi1zY2hlbWU6Y3Vyc29yLnBuZycsIGVycm9yOiB0cnVlIH0sCi0gICAgeyB1cmw6
ICdtb3VzZS1jdXJzb3IuaHRtbCcsIGVycm9yOiB0cnVlIH0sCi0gICAgeyB1cmw6ICcjZ3JlZW5i
b3gnLCBlcnJvcjogdHJ1ZSB9LAotICAgIHsgdXJsOiAnI25vbmV4aXN0ZW50JywgZXJyb3I6IHRy
dWUgfSBdOwotaW1hZ2VzTGVmdFRvTG9hZCA9IGltYWdlc1RvTG9hZC5sZW5ndGg7Ci1mb3IgKHZh
ciBpID0gMDsgaSA8IGltYWdlc1RvTG9hZC5sZW5ndGg7IGkrKykgewotICAgIHZhciBpbWcgPSBu
ZXcgSW1hZ2UoKTsKLSAgICB2YXIgZXhwZWN0RXJyb3IgPSBpbWFnZXNUb0xvYWRbaV0uZXJyb3I7
IAotICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgb25JbWFnZUxvYWQuYmluZCh1bmRl
ZmluZWQsICFleHBlY3RFcnJvcikpOwotICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcics
IG9uSW1hZ2VMb2FkLmJpbmQodW5kZWZpbmVkLCBleHBlY3RFcnJvcikpOwotICAgIGltZy5zcmMg
PSBpbWFnZXNUb0xvYWRbaV0udXJsOwotfQorcHJlbG9hZEltYWdlc0Zyb21TdHlsZSh0ZXN0Q29u
dGFpbmVyLCA5LCBydW5UZXN0cywgLygjZ3JlZW5ib3h8X0ZBSUwpLyk7CiAKIDwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9pbWFnZS1w
cmVsb2FkLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2ltYWdlLXBy
ZWxvYWQtaGVscGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3ZWExN2QxNDNhYmFhZDNmMWNkMWYwYjkxNDRk
ZWUyN2I5YjI4MDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291
cmNlcy9pbWFnZS1wcmVsb2FkLWhlbHBlci5qcwpAQCAtMCwwICsxLDc0IEBACisvLyBUaGlzIGlz
IHVzZWQgYnkgc2V2ZXJhbCB0ZXN0cyB0byBoZWxwIGdldCBpbWFnZXMgcmVsaWFibHkgcHJlbG9h
ZGVkLgorCisvLyBHaXZlbiBhIG5vZGUsIGxvYWRzIGFsbCB1cmxzIHNwZWNpZmllZCBpbiBzdHls
ZSBkZWNsYXJhdGlvbnMKKy8vIGF0dGFjaGVkIHRvIHRoZSBub2RlIG9yIGl0J3MgZGVjZW5kYW50
cy4KKy8vIGltYWdlQ291bnQgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgaW1hZ2VzIHdlIGV4cGVj
dCB0byBmaW5kICh0byB0cnkgdG8gYWRkIHNvbWUKKy8vIHByb3RlY3Rpb24gYWdhaW5zdCBicml0
dGxlbmVzcyBkdWUgdG8gaW1wZXJmZWN0IHVybCBwYXJzaW5nLCBzaW5jZSBvdGhlciBtaXNzaW5n
IGEgcHJlbG9hZAorLy8gd2lsbCB0eXBpY2FsbHkgcmVzdWx0IGluIGEgdGVzdCB0aGF0IGZhaWxz
IG9ubHkgb2NjYXNpb25hbGx5KS4KKy8vIElmIGZhaWxQYXR0ZXJuIGlzIHNwZWNpZmllZCwgdGhl
biBhbnkgdXJsIHRoYXQgbWF0Y2hlcyB0aGUgcmVnZXgKKy8vIHdpbGwgYmUgZXhwZWN0ZWQgdG8g
ZmFpbCB0byBsb2FkLgorZnVuY3Rpb24gcHJlbG9hZEltYWdlc0Zyb21TdHlsZShyb290Tm9kZSwg
aW1hZ2VDb3VudCwgb25Db21wbGV0ZSwgZmFpbFBhdHRlcm4pIHsKKyAgICB2YXIgYmFzZVBhdGgg
PSBsb2NhdGlvbi5ocmVmLnN1YnN0cmluZygwLCBsb2NhdGlvbi5ocmVmLmxhc3RJbmRleE9mKCcv
JykgKyAxKTsKKyAgICB2YXIgbm9kZXMgPSByb290Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKCdbc3R5
bGVdJyk7CisgICAgdmFyIGltYWdlc1RvTG9hZCA9IFtdOworICAgIHZhciBzZWVuVXJscyA9IHt9
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAg
dmFyIHVybHMgPSBub2Rlc1tpXS5zdHlsZS5jc3NUZXh0LnNwbGl0KC91cmxcdypcKChbXildKilc
KS8pOworICAgICAgICBmb3IgKHZhciBqID0gMTsgaiA8IHVybHMubGVuZ3RoOyBqICs9IDIpIHsK
KyAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gY29udmVydCBVUkwgdG8gYSByZWxhdGl2ZSBwYXRo
IGluIG9yZGVyIHRvIGhhdmUgZGV0ZXJtaW5pc3RpYyBlcnJvciBtZXNzYWdlcy4KKyAgICAgICAg
ICAgIHZhciB1cmwgPSB1cmxzW2pdOworICAgICAgICAgICAgaWYgKHVybC5pbmRleE9mKGJhc2VQ
YXRoKSA9PSAwKQorICAgICAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHJpbmcoYmFzZVBhdGgu
bGVuZ3RoKTsKKworICAgICAgICAgICAgdmFyIGVycm9yID0gZmFsc2U7CisgICAgICAgICAgICBp
ZiAoZmFpbFBhdHRlcm4gJiYgZmFpbFBhdHRlcm4udGVzdCh1cmwpKQorICAgICAgICAgICAgICAg
IGVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICh1cmwgaW4gc2VlblVybHMpCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBzZWVuVXJsc1t1cmxdID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGltYWdlc1RvTG9hZC5wdXNoKHt1cmw6IHVybCwgZXJyb3I6IGVycm9yfSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoaW1hZ2VDb3VudCAhPSBpbWFnZXNUb0xvYWQubGVu
Z3RoKSB7CisgICAgICAgIHZhciBtc2cgPSAnRm91bmQgdGhlIGZvbGxvd2luZyAnICsgaW1hZ2Vz
VG9Mb2FkLmxlbmd0aCArICcgaW1hZ2VzLCB3aGVuIGV4cGVjdGluZyAnICsgaW1hZ2VDb3VudCAr
ICc6ICc7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VzVG9Mb2FkLmxlbmd0aDsg
aSsrKSB7CisgICAgICAgICAgICBtc2cgKz0gJ1xuJyArIGltYWdlc1RvTG9hZFtpXS51cmw7Cisg
ICAgICAgIH0KKyAgICAgICAgdGVzdEZhaWxlZChtc2cpOworICAgIH0KKworICAgIGxvYWRJbWFn
ZXMoaW1hZ2VzVG9Mb2FkLCBvbkNvbXBsZXRlKTsKK30KKworLy8gRm9yIGVhY2ggb2JqZWN0IGlu
IHRoZSBnaXZlbiBhcnJheSwgYXR0ZW1wdCB0byBsb2FkIHRoZSBpbWFnZSBzcGVjaWZpZWQgYnkg
dGhlCisvLyB1cmwgcHJvcGVydHkuICBJZiB0aGUgZXJyb3IgcHJvcGVydHkgaXMgc3BlY2lmaWVk
IGFuZCB0cnVlLCB0aGVuIHRoZSBsb2FkIGlzCisvLyBleHBlY3RlZCB0byBmYWlsLiAgT25jZSBh
bGwgbG9hZHMgaGF2ZSBjb21wbGV0ZWQgb3IgZmFpbGVkLCBvbkNvbXBsZXRlIGlzIGludm9rZWQu
CitmdW5jdGlvbiBsb2FkSW1hZ2VzKGltYWdlc1RvTG9hZCwgb25Db21wbGV0ZSkgeworCisgICAg
dmFyIGltYWdlc0xlZnRUb0xvYWQgPSBpbWFnZXNUb0xvYWQubGVuZ3RoOworCisgICAgZnVuY3Rp
b24gb25JbWFnZUxvYWQodXJsLCBzdWNjZXNzLCBlKSB7CisgICAgICAgIC8vIFRoaXMgZGVidWcg
b3V0cHV0IG9yZGVyIGlzIG5vbi1kZXRlcm1pbmlzdGljIC0gb25seSBzaG93IHdoZW4gbm90IHJ1
bm5pbmcgaW4gRFJUCisgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICBkZWJ1ZyggJ0V2ZW50ICInICsgZS50eXBlICsgJyI6ICcgKyB1cmwpOworCisgICAgICAgIGlm
ICghc3VjY2VzcykKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0dvdCB1bmV4cGVjdGVkIFwnJyAr
IGUudHlwZSArICdcJyBldmVudCBmb3IgaW1hZ2U6ICcgKyB1cmwpOworICAgICAgICAKKyAgICAg
ICAgaW1hZ2VzTGVmdFRvTG9hZC0tOworICAgICAgICBpZiAoaW1hZ2VzTGVmdFRvTG9hZCA9PSAw
KSB7CisgICAgICAgICAgICBvbkNvbXBsZXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlt
YWdlc0xlZnRUb0xvYWQgPCAwKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgnR290IG1vcmUgbG9h
ZC9lcnJvciBjYWxsYmFja3MgdGhhbiBleHBlY3RlZC4nKTsKKyAgICB9CisKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGltYWdlc1RvTG9hZC5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgaW1n
ID0gbmV3IEltYWdlKCk7CisgICAgICAgIHZhciBleHBlY3RFcnJvciA9IGltYWdlc1RvTG9hZFtp
XS5lcnJvcjsKKyAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkltYWdlTG9h
ZC5iaW5kKHVuZGVmaW5lZCwgaW1hZ2VzVG9Mb2FkW2ldLnVybCwgIWV4cGVjdEVycm9yKSk7Cisg
ICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uSW1hZ2VMb2FkLmJpbmQodW5k
ZWZpbmVkLCBpbWFnZXNUb0xvYWRbaV0udXJsLCAhIWV4cGVjdEVycm9yKSk7CisgICAgICAgIGlt
Zy5zcmMgPSBpbWFnZXNUb0xvYWRbaV0udXJsOworICAgIH0KK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>