<?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>18752</bug_id>
          
          <creation_ts>2008-04-26 00:02:19 -0700</creation_ts>
          <short_desc>SQUIRRELFISH: exceptions are not always handled by the vm</short_desc>
          <delta_ts>2008-05-18 17:36:57 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mjs</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>78958</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-04-26 00:02:19 -0700</bug_when>
    <thetext>Here is an example:

var x = &quot;PASS&quot;;
try { x = (new Number(1)).toString(0); } catch (e) { }
print(x);

On trunk, it prints PASS, but on SquirrelFish it prints an exception. This is because the VM_CHECK_EXCEPTION(); statements in many opcodes in Machine.cpp are after the writes to registers, which may store local variables. It shouldn&apos;t be too hard to move all of the checks out, and hopefully it won&apos;t be another performance regression due to compiler insanity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79416</commentid>
    <comment_count>1</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-05-02 00:21:25 -0700</bug_when>
    <thetext>This has been fixed in r32756 except for the exception check on returns from native calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79417</commentid>
    <comment_count>2</comment_count>
      <attachid>20920</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-05-02 00:29:08 -0700</bug_when>
    <thetext>Created attachment 20920
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79422</commentid>
    <comment_count>3</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-05-02 04:05:33 -0700</bug_when>
    <thetext>Since r32756 is implicated in a performance regression we should probably hold off on doing more of the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79445</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-02 09:43:45 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; This has been fixed in r32756 except for the exception check on returns from
&gt; native calls.
&gt; 

That rev only fixed op_resolve, given there are multiple resolves, and basically every other op can throw this is not anywhere near fixed :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79486</commentid>
    <comment_count>5</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-05-02 14:50:41 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #1)
&gt; &gt; This has been fixed in r32756 except for the exception check on returns from
&gt; &gt; native calls.
&gt; 
&gt; That rev only fixed op_resolve, given there are multiple resolves, and
&gt; basically every other op can throw this is not anywhere near fixed :-(

Oh yeah, I was only checking for VM_CHECK_EXCEPTION() in Machine::privateExecute(), but there are other exception checks in external functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79487</commentid>
    <comment_count>6</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-02 14:56:41 -0700</bug_when>
    <thetext>It also effects most of the math operators, etc, etc

The problem is a number of the places where we do bogus assignments are also in opcodes where we don&apos;t do sufficient/any exception checks. (all the numeric operations for instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79654</commentid>
    <comment_count>7</comment_count>
      <attachid>20965</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-04 23:33:44 -0700</bug_when>
    <thetext>Created attachment 20965
Test case for various and exciting combinations of throwing and arithmetic

Here is a test case that triggers (and tests many exciting issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79656</commentid>
    <comment_count>8</comment_count>
      <attachid>20966</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-05 00:13:35 -0700</bug_when>
    <thetext>Created attachment 20966
Better testcase

Now in html, and with tests for execution of the right hand side of the expressions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79662</commentid>
    <comment_count>9</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-05 00:41:35 -0700</bug_when>
    <thetext>Firefox fails in the *, -, /, and % cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79718</commentid>
    <comment_count>10</comment_count>
      <attachid>20977</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-05 19:44:10 -0700</bug_when>
    <thetext>Created attachment 20977
Test that can be run as JS or HTML</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79910</commentid>
    <comment_count>11</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-08 13:16:03 -0700</bug_when>
    <thetext>SadEagle&apos;s sequencing test: http://websvn.kde.org/*checkout*/trunk/tests/khtmltests/regression/tests/js/sequencing.js?revision=782984&amp;content-type=text%2Fplain</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80242</commentid>
    <comment_count>12</comment_count>
      <attachid>21097</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-12 20:06:55 -0700</bug_when>
    <thetext>Created attachment 21097
Yet more insane testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80251</commentid>
    <comment_count>13</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-13 00:12:02 -0700</bug_when>
    <thetext>Fixed extraneous evaluation of RHS type conversions
	M	JavaScriptCore/API/JSCallbackObjectFunctions.h
	M	JavaScriptCore/ChangeLog
	M	JavaScriptCore/kjs/object.cpp
Committed r33372
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80252</commentid>
    <comment_count>14</comment_count>
      <attachid>21104</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-13 01:23:05 -0700</bug_when>
    <thetext>Created attachment 21104
More coverage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80253</commentid>
    <comment_count>15</comment_count>
      <attachid>21105</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-13 01:33:51 -0700</bug_when>
    <thetext>Created attachment 21105
Even more coverage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80299</commentid>
    <comment_count>16</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-13 14:52:08 -0700</bug_when>
    <thetext>More fixes (all toNumber, and numerous other places now have correct checks)
	M	JavaScriptCore/ChangeLog
	M	JavaScriptCore/VM/Machine.cpp
	M	JavaScriptCore/VM/Opcode.h
	M	JavaScriptCore/kjs/value.h
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/js/exception-sequencing-expected.txt
	A	LayoutTests/fast/js/exception-sequencing.html
Committed r33393
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80871</commentid>
    <comment_count>17</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-18 17:36:57 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/branches/squirrelfish ...
        M       JavaScriptCore/ChangeLog
        M       JavaScriptCore/VM/Machine.cpp
        M       LayoutTests/ChangeLog
        A       LayoutTests/fast/js/resources/tostring-exception-in-property-access.js
        A       LayoutTests/fast/js/tostring-exception-in-property-access-expected.txt
        A       LayoutTests/fast/js/tostring-exception-in-property-access.html
Committed r33566

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20920</attachid>
            <date>2008-05-02 00:29:08 -0700</date>
            <delta_ts>2008-05-02 14:47:31 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>exceptioncheck.diff</filename>
            <type>text/plain</type>
            <size>1216</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMyODAy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDgtMDUt
MDIgIENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDE4NzUyOiBTUVVJUlJF
TEZJU0g6IHRocm93biBleGNlcHRpb25zIG1heSBiZSBlcnJvbmVvdXNseSBzdG9yZWQgaW4gbG9j
YWwgdmFyaWFibGVzCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg3NTI+CisKKyAgICAgICAgTW92ZSB0aGUgbGFzdCBlcnJvbmVvdXMgZXhjZXB0aW9u
IGNoZWNrIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyByZWdpc3RlciBhc3NpZ25tZW50LgorCisg
ICAgICAgICogVk0vTWFjaGluZS5jcHA6CisgICAgICAgIChLSlM6Ok1hY2hpbmU6OnByaXZhdGVF
eGVjdXRlKToKKwogMjAwOC0wNS0wMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmIGFuZCBNYWNpZWouCkluZGV4OiBWTS9NYWNoaW5l
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBWTS9NYWNoaW5lLmNwcAkocmV2aXNpb24gMzI4MDIpCisrKyBW
TS9NYWNoaW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ5Myw5ICsxNDkzLDggQEAgSlNWYWx1
ZSogTWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aQogICAgICAgICAgICAgSlNWYWx1ZSog
cmV0dXJuVmFsdWUgPSBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHYpLT5jYWxsQXNGdW5jdGlvbihl
eGVjLCB0aGlzT2JqLCBhcmdzKTsKIAogICAgICAgICAgICAgciA9ICgqcmVnaXN0ZXJCYXNlKSAr
IHJlZ2lzdGVyT2Zmc2V0OwotICAgICAgICAgICAgcltyMF0udS5qc1ZhbHVlID0gcmV0dXJuVmFs
dWU7Ci0KICAgICAgICAgICAgIFZNX0NIRUNLX0VYQ0VQVElPTigpOworICAgICAgICAgICAgclty
MF0udS5qc1ZhbHVlID0gcmV0dXJuVmFsdWU7CiAKICAgICAgICAgICAgICsrdlBDOwogICAgICAg
ICAgICAgTkVYVF9PUENPREU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>20965</attachid>
            <date>2008-05-04 23:33:44 -0700</date>
            <delta_ts>2008-05-05 00:13:35 -0700</delta_ts>
            <desc>Test case for various and exciting combinations of throwing and arithmetic</desc>
            <filename>test.js</filename>
            <type>text/plain</type>
            <size>2648</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">aWYgKCF0aGlzLmxvZykKICAgIGxvZyA9IHByaW50OwoKdmFyIHVuYXJ5T3BzID0gWyd+JywgJysn
LCAnLSddOwp2YXIgYmluYXJ5T3BzID0gWyctJywgJysnLCAnKicsICcvJywgJyUnLCAnfCcsICcm
JywgJ14nLCAnfHwnLCAnJiYnLCAnPCcsICc8PScsICc9PicsICc+JywgJz09JywgJyE9JywgJz09
PScsICchPT0nLCAnPDwnLCAnPj4nXTsKCnZhciB2YWx1ZU9mVGhyb3dlciA9IHsgdmFsdWVPZjog
ZnVuY3Rpb24oKSB7IHRocm93ICJ0aHJvdyBmcm9tIHZhbHVlT2YiOyB9IH0KdmFyIHRvU3RyaW5n
VGhyb3dlciA9IHsgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyB0aHJvdyAidGhyb3cgZnJvbSB0b1N0
cmluZyI7IH0gfQoKCnZhciBmdW5jdGlvblByZWZpeCA9ICIoZnVuY3Rpb24oKXsgdmFyIHJlc3Vs
dCA9ICdQQVNTJzsgdHJ5IHsgcmVzdWx0ID0gIjsKdmFyIGZ1bmN0aW9uUG9zdGZpeCA9ICI7IGxv
ZygnRkFJTEVEIHRvIHRocm93IGV4Y2VwdGlvbiB3aXRoIFwiJyArIGV4cHIgKyAnXCInKSB9IGNh
dGNoIChlKSB7IGlmIChyZXN1bHQgIT0gJ1BBU1MnKSBsb2coJ0ZBSUw6IFwiJytleHByKydcIiB0
aHJldyBleGNlcHRpb24sIGJ1dCBtb2RpZmllZCBhc3NpZ25tZW50IHRhcmdldCcpOyB9IH0pIjsK
ZnVuY3Rpb24gY3JlYXRlVGVzdChleHByKSB7CiAgICByZXR1cm4gZXZhbChmdW5jdGlvblByZWZp
eCArIGV4cHIgKyBmdW5jdGlvblBvc3RmaXgpOwp9CgpfX2RlZmluZUdldHRlcl9fKCd0aHJvd2lu
Z1Byb3BlcnR5JywgZnVuY3Rpb24oKXsgdGhyb3cgInRocm93aW5nIHJlc29sdmUiOyB9KTsKCnZh
ciB0aHJvd2luZ1Byb3BTdHIgPSAndGhyb3dpbmdQcm9wZXJ0eSc7CnZhciB2YWx1ZU9mVGhyb3dl
clN0ciA9ICd2YWx1ZU9mVGhyb3dlcic7CnZhciB0b1N0cmluZ1Rocm93ZXJTdHIgPSAndG9TdHJp
bmdUaHJvd2VyJzsKdmFyIHRocm93aW5nT2JqR2V0dGVyID0gJyh7Z2V0IHRocm93aW5nUHJvcGVy
dHkoKXsgdGhyb3cgInRocm93aW5nIHByb3BlcnR5IiB9fSkudGhyb3dpbmdQcm9wZXJ0eSc7Cgpj
cmVhdGVUZXN0KHRocm93aW5nUHJvcFN0cikoKTsKY3JlYXRlVGVzdCh0aHJvd2luZ09iakdldHRl
cikoKTsKY3JlYXRlVGVzdCgiIXVuZGVmaW5lZFByb3BlcnR5IikoKTsKCmZvciAodmFyIGkgPSAw
OyBpIDwgdW5hcnlPcHMubGVuZ3RoOyBpKyspIHsKICAgIGNyZWF0ZVRlc3QodW5hcnlPcHNbaV0r
dmFsdWVPZlRocm93ZXJTdHIpKCk7CiAgICBjcmVhdGVUZXN0KHVuYXJ5T3BzW2ldK3RvU3RyaW5n
VGhyb3dlclN0cikoKTsKICAgIGNyZWF0ZVRlc3QodW5hcnlPcHNbaV0rdGhyb3dpbmdQcm9wU3Ry
KSgpOwogICAgY3JlYXRlVGVzdCh1bmFyeU9wc1tpXSt0aHJvd2luZ09iakdldHRlcikoKTsKfQoK
Zm9yICh2YXIgaSA9IDA7IGkgPCBiaW5hcnlPcHMubGVuZ3RoOyBpKyspIHsKICAgIHZhciBudW1W
YWwgPSBiaW5hcnlPcHNbaV0gPT0gJ3x8JyA/ICcwJyA6ICcxJzsKICAgIGNyZWF0ZVRlc3QobnVt
VmFsICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgdmFsdWVPZlRocm93ZXJTdHIgKSgpOwog
ICAgY3JlYXRlVGVzdChudW1WYWwgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyB0b1N0cmlu
Z1Rocm93ZXJTdHIpKCk7CiAgICBjcmVhdGVUZXN0KG51bVZhbCArICIgIiArIGJpbmFyeU9wc1tp
XSArICIgIiArIHRocm93aW5nUHJvcFN0ciAgICkoKTsKICAgIGNyZWF0ZVRlc3QobnVtVmFsICsg
IiAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgdGhyb3dpbmdPYmpHZXR0ZXIgKSgpOwoKICAgIGlm
IChiaW5hcnlPcHNbaV0gIT0gJ3x8JykgewogICAgICAgIGNyZWF0ZVRlc3QoIicnICIgKyBiaW5h
cnlPcHNbaV0gKyAiICIgKyB2YWx1ZU9mVGhyb3dlclN0ciApKCk7CiAgICAgICAgY3JlYXRlVGVz
dCgiJycgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIHRvU3RyaW5nVGhyb3dlclN0cikoKTsKICAg
ICAgICBjcmVhdGVUZXN0KCInJyAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgdGhyb3dpbmdQcm9w
U3RyICAgKSgpOwogICAgICAgIGNyZWF0ZVRlc3QoIicnICIgKyBiaW5hcnlPcHNbaV0gKyAiICIg
KyB0aHJvd2luZ09iakdldHRlciApKCk7CiAgICB9CiAgICBjcmVhdGVUZXN0KHZhbHVlT2ZUaHJv
d2VyU3RyICArICIgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIG51bVZhbCkoKTsKICAgIGNyZWF0
ZVRlc3QodG9TdHJpbmdUaHJvd2VyU3RyICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgbnVt
VmFsKSgpOwogICAgY3JlYXRlVGVzdCh0aHJvd2luZ1Byb3BTdHIgICAgKyAiICIgKyBiaW5hcnlP
cHNbaV0gKyAiICIgKyBudW1WYWwpKCk7CiAgICBjcmVhdGVUZXN0KHRocm93aW5nT2JqR2V0dGVy
ICArICIgIiArIGJpbmFyeU9wc1tpXSArICIiICsgbnVtVmFsKSgpOwogICAgY3JlYXRlVGVzdCh2
YWx1ZU9mVGhyb3dlclN0ciAgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiICcnIikoKTsKICAgIGNy
ZWF0ZVRlc3QodG9TdHJpbmdUaHJvd2VyU3RyICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiAnJyIp
KCk7CiAgICBjcmVhdGVUZXN0KHRocm93aW5nUHJvcFN0ciAgICArICIgIiArIGJpbmFyeU9wc1tp
XSArICIgJyciKSgpOwogICAgY3JlYXRlVGVzdCh0aHJvd2luZ09iakdldHRlciAgKyAiICIgKyBi
aW5hcnlPcHNbaV0gKyAiICcnIikoKTsKfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>20966</attachid>
            <date>2008-05-05 00:13:35 -0700</date>
            <delta_ts>2008-05-05 19:44:10 -0700</delta_ts>
            <desc>Better testcase</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>3710</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">VGVzdCBleGNlcHRpb24gaGFuZGxpbmcgd2l0aCB2YXJpb3VzIGFyaXRobWV0aWMgYW5kIGxvZ2lj
IG9wZXJhdG9ycwo8ZGl2IGlkPSJsb2ciPjwvZGl2Pgo8c2NyaXB0PgppZiAodGhpcy5kb2N1bWVu
dCkgewogICAgbG9nID0gZnVuY3Rpb24obXNnKSB7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxv
ZyIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyIC8+Ijt9OwogICAgZmFpbCA9IGZ1bmN0aW9uKG1z
Zykge2xvZygiPHNwYW4gc3R5bGU9J2NvbG9yOiByZWQnPkZBSUw6IDwvc3Bhbj4iICsgbXNnKSB9
OwogICAgcGFzcyA9IGZ1bmN0aW9uKG1zZykge2xvZygiPHNwYW4gc3R5bGU9J2NvbG9yOiBncmVl
bic+UEFTUzogPC9zcGFuPiIgKyBtc2cpIH07Cn0gZWxzZSB7CiAgICBsb2cgPSBwcmludDsKICAg
IGZhaWwgPSBmdW5jdGlvbihtc2cpIHtsb2coIkZBSUw6ICIgKyBtc2cpIH07CiAgICBwYXNzID0g
ZnVuY3Rpb24obXNnKSB7bG9nKCJQQVNTOiAiICsgbXNnKSB9Owp9Cgp2YXIgdW5hcnlPcHMgPSBb
J34nLCAnKycsICctJ107CnZhciBiaW5hcnlPcHMgPSBbJy0nLCAnKycsICcqJywgJy8nLCAnJScs
ICd8JywgJyYnLCAnXicsICc8JywgJzw9JywgJz0+JywgJz4nLCAnPT0nLCAnIT0nLCAnPT09Jywg
JyE9PScsICc8PCcsICc+PiddOwoKdmFyIHZhbHVlT2ZUaHJvd2VyID0geyB2YWx1ZU9mOiBmdW5j
dGlvbigpIHsgdGhyb3cgInRocm93IGZyb20gdmFsdWVPZiI7IH0gfQp2YXIgdG9TdHJpbmdUaHJv
d2VyID0geyB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHRocm93ICJ0aHJvdyBmcm9tIHRvU3RyaW5n
IjsgfSB9CgoKdmFyIGZ1bmN0aW9uUHJlZml4ID0gIihmdW5jdGlvbigpeyBleGVjdXRlZFJIUyA9
IGZhbHNlOyB2YXIgcmVzdWx0ID0gJ1BBU1MnOyB0cnkgeyByZXN1bHQgPSAiOwp2YXIgZnVuY3Rp
b25Qb3N0Zml4ID0gIjsgZmFpbCgnRGlkIG5vdCB0aHJvdyBleGNlcHRpb24gd2l0aCBcIicgKyBl
eHByICsgJ1wiJykgfSBjYXRjaCAoZSkgeyAiICsKICAgICAgICAgICAgICAgICAgICAgICIgaWYg
KHJlc3VsdCAhPSAnUEFTUycpIHsgZmFpbCgnXCInK2V4cHIrJ1wiIHRocmV3IGV4Y2VwdGlvbiwg
YnV0IG1vZGlmaWVkIGFzc2lnbm1lbnQgdGFyZ2V0Jyk7ICIgKwogICAgICAgICAgICAgICAgICAg
ICAgIiB9IGVsc2UgaWYgKGV4ZWN1dGVkUkhTKSB7IGZhaWwoJ1wiJytleHByKydcIiB0aHJldyBl
eGNlcHRpb24sIGJ1dCBleGVjdXRlZCByaWdodCBoYW5kIGhhbGYgb2YgZXhwcmVzc2lvbicpIiAr
CiAgICAgICAgICAgICAgICAgICAgICAiIH0gZWxzZSB7IHBhc3MoJ0hhbmRsZWQgXCInKyBleHBy
ICsnXCIgY29ycmVjdGx5LicpIH0gfSB9KSI7CmZ1bmN0aW9uIGNyZWF0ZVRlc3QoZXhwcikgewog
ICAgcmV0dXJuIGV2YWwoZnVuY3Rpb25QcmVmaXggKyBleHByICsgZnVuY3Rpb25Qb3N0Zml4KTsK
fQoKX19kZWZpbmVHZXR0ZXJfXygndGhyb3dpbmdQcm9wZXJ0eScsIGZ1bmN0aW9uKCl7IHRocm93
ICJ0aHJvd2luZyByZXNvbHZlIjsgfSk7Cgp2YXIgdGhyb3dpbmdQcm9wU3RyID0gJ3Rocm93aW5n
UHJvcGVydHknOwp2YXIgdmFsdWVPZlRocm93ZXJTdHIgPSAndmFsdWVPZlRocm93ZXInOwp2YXIg
dG9TdHJpbmdUaHJvd2VyU3RyID0gJ3RvU3RyaW5nVGhyb3dlcic7CnZhciB0aHJvd2luZ09iakdl
dHRlciA9ICcoe2dldCB0aHJvd2luZ1Byb3BlcnR5KCl7IHRocm93ICJ0aHJvd2luZyBwcm9wZXJ0
eSIgfX0pLnRocm93aW5nUHJvcGVydHknOwoKY3JlYXRlVGVzdCh0aHJvd2luZ1Byb3BTdHIpKCk7
CmNyZWF0ZVRlc3QodGhyb3dpbmdPYmpHZXR0ZXIpKCk7CmNyZWF0ZVRlc3QoIiF1bmRlZmluZWRQ
cm9wZXJ0eSIpKCk7Cgpmb3IgKHZhciBpID0gMDsgaSA8IHVuYXJ5T3BzLmxlbmd0aDsgaSsrKSB7
CiAgICBjcmVhdGVUZXN0KHVuYXJ5T3BzW2ldK3ZhbHVlT2ZUaHJvd2VyU3RyKSgpOwogICAgY3Jl
YXRlVGVzdCh1bmFyeU9wc1tpXSt0b1N0cmluZ1Rocm93ZXJTdHIpKCk7CiAgICBjcmVhdGVUZXN0
KHVuYXJ5T3BzW2ldK3Rocm93aW5nUHJvcFN0cikoKTsKICAgIGNyZWF0ZVRlc3QodW5hcnlPcHNb
aV0rdGhyb3dpbmdPYmpHZXR0ZXIpKCk7Cn0KcmhzTm9uWmVyb051bSA9IHsgdmFsdWVPZjogZnVu
Y3Rpb24oKXsgZXhlY3V0ZWRSSFMgPSB0cnVlOyByZXR1cm4gMTsgfSB9OwpyaHNaZXJvTnVtID0g
eyB2YWx1ZU9mOiBmdW5jdGlvbigpeyBleGVjdXRlZFJIUyA9IHRydWU7IHJldHVybiAwOyB9IH07
CnJoc1RvU3RyaW5nVGhyb3dlciA9IHsgdG9TdHJpbmc6IGZ1bmN0aW9uKCl7IGV4ZWN1dGVkUkhT
ID0gdHJ1ZTsgcmV0dXJuICdzdHJpbmcnOyB9fTsKCmZvciAodmFyIGkgPSAwOyBpIDwgYmluYXJ5
T3BzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgbnVtVmFsID0gYmluYXJ5T3BzW2ldID09ICd8fCcg
PyAnMCcgOiAnMSc7CiAgICBjcmVhdGVUZXN0KG51bVZhbCArICIgIiArIGJpbmFyeU9wc1tpXSAr
ICIgIiArIHZhbHVlT2ZUaHJvd2VyU3RyICkoKTsKICAgIGNyZWF0ZVRlc3QobnVtVmFsICsgIiAi
ICsgYmluYXJ5T3BzW2ldICsgIiAiICsgdG9TdHJpbmdUaHJvd2VyU3RyKSgpOwogICAgY3JlYXRl
VGVzdChudW1WYWwgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyB0aHJvd2luZ1Byb3BTdHIg
ICApKCk7CiAgICBjcmVhdGVUZXN0KG51bVZhbCArICIgIiArIGJpbmFyeU9wc1tpXSArICIgIiAr
IHRocm93aW5nT2JqR2V0dGVyICkoKTsKCiAgICBjcmVhdGVUZXN0KCInc3RyaW5nJyAiICsgYmlu
YXJ5T3BzW2ldICsgIiAiICsgdmFsdWVPZlRocm93ZXJTdHIgKSgpOwogICAgY3JlYXRlVGVzdCgi
J3N0cmluZycgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIHRvU3RyaW5nVGhyb3dlclN0cikoKTsK
ICAgIGNyZWF0ZVRlc3QoIidzdHJpbmcnICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyB0aHJvd2lu
Z1Byb3BTdHIgICApKCk7CiAgICBjcmVhdGVUZXN0KCInc3RyaW5nJyAiICsgYmluYXJ5T3BzW2ld
ICsgIiAiICsgdGhyb3dpbmdPYmpHZXR0ZXIgKSgpOwogICAgCiAgICBudW1WYWwgPSBiaW5hcnlP
cHNbaV0gPT0gJ3x8JyA/ICdyaHNaZXJvTnVtJyA6ICdyaHNOb25aZXJvTnVtJzsKICAgIGNyZWF0
ZVRlc3QodmFsdWVPZlRocm93ZXJTdHIgICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgbnVt
VmFsKSgpOwogICAgY3JlYXRlVGVzdCh0b1N0cmluZ1Rocm93ZXJTdHIgKyAiICIgKyBiaW5hcnlP
cHNbaV0gKyAiICIgKyBudW1WYWwpKCk7CiAgICBjcmVhdGVUZXN0KHRocm93aW5nUHJvcFN0ciAg
ICArICIgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIG51bVZhbCkoKTsKICAgIGNyZWF0ZVRlc3Qo
dGhyb3dpbmdPYmpHZXR0ZXIgICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgbnVtVmFsKSgp
OwogICAgY3JlYXRlVGVzdCh2YWx1ZU9mVGhyb3dlclN0ciAgKyAiICIgKyBiaW5hcnlPcHNbaV0g
KyAiIHJoc1RvU3RyaW5nVGhyb3dlciIpKCk7CiAgICBjcmVhdGVUZXN0KHRvU3RyaW5nVGhyb3dl
clN0ciArICIgIiArIGJpbmFyeU9wc1tpXSArICIgcmhzVG9TdHJpbmdUaHJvd2VyIikoKTsKICAg
IGNyZWF0ZVRlc3QodGhyb3dpbmdQcm9wU3RyICAgICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiBy
aHNUb1N0cmluZ1Rocm93ZXIiKSgpOwogICAgY3JlYXRlVGVzdCh0aHJvd2luZ09iakdldHRlciAg
KyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiIHJoc1RvU3RyaW5nVGhyb3dlciIpKCk7Cgp9Cjwvc2Ny
aXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>20977</attachid>
            <date>2008-05-05 19:44:10 -0700</date>
            <delta_ts>2008-05-12 20:06:55 -0700</delta_ts>
            <desc>Test that can be run as JS or HTML</desc>
            <filename>exception-test.html</filename>
            <type>text/html</type>
            <size>3718</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">Ly9UZXN0IGV4Y2VwdGlvbiBoYW5kbGluZyB3aXRoIHZhcmlvdXMgYXJpdGhtZXRpYyBhbmQgbG9n
aWMgb3BlcmF0b3JzCi8vPGRpdiBpZD0ibG9nIj48L2Rpdj4KLy88c2NyaXB0PgppZiAodGhpcy5k
b2N1bWVudCkgewogICAgbG9nID0gZnVuY3Rpb24obXNnKSB7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImxvZyIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyIC8+Ijt9OwogICAgZmFpbCA9IGZ1bmN0
aW9uKG1zZykge2xvZygiPHNwYW4gc3R5bGU9J2NvbG9yOiByZWQnPkZBSUw6IDwvc3Bhbj4iICsg
bXNnKSB9OwogICAgcGFzcyA9IGZ1bmN0aW9uKG1zZykge2xvZygiPHNwYW4gc3R5bGU9J2NvbG9y
OiBncmVlbic+UEFTUzogPC9zcGFuPiIgKyBtc2cpIH07Cn0gZWxzZSB7CiAgICBsb2cgPSBwcmlu
dDsKICAgIGZhaWwgPSBmdW5jdGlvbihtc2cpIHtsb2coIkZBSUw6ICIgKyBtc2cpIH07CiAgICBw
YXNzID0gZnVuY3Rpb24obXNnKSB7bG9nKCJQQVNTOiAiICsgbXNnKSB9Owp9Cgp2YXIgdW5hcnlP
cHMgPSBbJ34nLCAnKycsICctJ107CnZhciBiaW5hcnlPcHMgPSBbJy0nLCAnKycsICcqJywgJy8n
LCAnJScsICd8JywgJyYnLCAnXicsICc8JywgJzw9JywgJz0+JywgJz4nLCAnPT0nLCAnIT0nLCAn
PT09JywgJyE9PScsICc8PCcsICc+PiddOwoKdmFyIHZhbHVlT2ZUaHJvd2VyID0geyB2YWx1ZU9m
OiBmdW5jdGlvbigpIHsgdGhyb3cgInRocm93IGZyb20gdmFsdWVPZiI7IH0gfQp2YXIgdG9TdHJp
bmdUaHJvd2VyID0geyB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHRocm93ICJ0aHJvdyBmcm9tIHRv
U3RyaW5nIjsgfSB9CgoKdmFyIGZ1bmN0aW9uUHJlZml4ID0gIihmdW5jdGlvbigpeyBleGVjdXRl
ZFJIUyA9IGZhbHNlOyB2YXIgcmVzdWx0ID0gJ1BBU1MnOyB0cnkgeyByZXN1bHQgPSAiOwp2YXIg
ZnVuY3Rpb25Qb3N0Zml4ID0gIjsgZmFpbCgnRGlkIG5vdCB0aHJvdyBleGNlcHRpb24gd2l0aCBc
IicgKyBleHByICsgJ1wiJykgfSBjYXRjaCAoZSkgeyAiICsKICAgICAgICAgICAgICAgICAgICAg
ICIgaWYgKHJlc3VsdCAhPSAnUEFTUycpIHsgZmFpbCgnXCInK2V4cHIrJ1wiIHRocmV3IGV4Y2Vw
dGlvbiwgYnV0IG1vZGlmaWVkIGFzc2lnbm1lbnQgdGFyZ2V0Jyk7ICIgKwogICAgICAgICAgICAg
ICAgICAgICAgIiB9IGVsc2UgaWYgKGV4ZWN1dGVkUkhTKSB7IGZhaWwoJ1wiJytleHByKydcIiB0
aHJldyBleGNlcHRpb24sIGJ1dCBleGVjdXRlZCByaWdodCBoYW5kIGhhbGYgb2YgZXhwcmVzc2lv
bicpIiArCiAgICAgICAgICAgICAgICAgICAgICAiIH0gZWxzZSB7IHBhc3MoJ0hhbmRsZWQgXCIn
KyBleHByICsnXCIgY29ycmVjdGx5LicpIH0gfSB9KSI7CmZ1bmN0aW9uIGNyZWF0ZVRlc3QoZXhw
cikgewogICAgcmV0dXJuIGV2YWwoZnVuY3Rpb25QcmVmaXggKyBleHByICsgZnVuY3Rpb25Qb3N0
Zml4KTsKfQoKX19kZWZpbmVHZXR0ZXJfXygndGhyb3dpbmdQcm9wZXJ0eScsIGZ1bmN0aW9uKCl7
IHRocm93ICJ0aHJvd2luZyByZXNvbHZlIjsgfSk7Cgp2YXIgdGhyb3dpbmdQcm9wU3RyID0gJ3Ro
cm93aW5nUHJvcGVydHknOwp2YXIgdmFsdWVPZlRocm93ZXJTdHIgPSAndmFsdWVPZlRocm93ZXIn
Owp2YXIgdG9TdHJpbmdUaHJvd2VyU3RyID0gJ3RvU3RyaW5nVGhyb3dlcic7CnZhciB0aHJvd2lu
Z09iakdldHRlciA9ICcoe2dldCB0aHJvd2luZ1Byb3BlcnR5KCl7IHRocm93ICJ0aHJvd2luZyBw
cm9wZXJ0eSIgfX0pLnRocm93aW5nUHJvcGVydHknOwoKY3JlYXRlVGVzdCh0aHJvd2luZ1Byb3BT
dHIpKCk7CmNyZWF0ZVRlc3QodGhyb3dpbmdPYmpHZXR0ZXIpKCk7CmNyZWF0ZVRlc3QoIiF1bmRl
ZmluZWRQcm9wZXJ0eSIpKCk7Cgpmb3IgKHZhciBpID0gMDsgaSA8IHVuYXJ5T3BzLmxlbmd0aDsg
aSsrKSB7CiAgICBjcmVhdGVUZXN0KHVuYXJ5T3BzW2ldK3ZhbHVlT2ZUaHJvd2VyU3RyKSgpOwog
ICAgY3JlYXRlVGVzdCh1bmFyeU9wc1tpXSt0b1N0cmluZ1Rocm93ZXJTdHIpKCk7CiAgICBjcmVh
dGVUZXN0KHVuYXJ5T3BzW2ldK3Rocm93aW5nUHJvcFN0cikoKTsKICAgIGNyZWF0ZVRlc3QodW5h
cnlPcHNbaV0rdGhyb3dpbmdPYmpHZXR0ZXIpKCk7Cn0KcmhzTm9uWmVyb051bSA9IHsgdmFsdWVP
ZjogZnVuY3Rpb24oKXsgZXhlY3V0ZWRSSFMgPSB0cnVlOyByZXR1cm4gMTsgfSB9OwpyaHNaZXJv
TnVtID0geyB2YWx1ZU9mOiBmdW5jdGlvbigpeyBleGVjdXRlZFJIUyA9IHRydWU7IHJldHVybiAw
OyB9IH07CnJoc1RvU3RyaW5nVGhyb3dlciA9IHsgdG9TdHJpbmc6IGZ1bmN0aW9uKCl7IGV4ZWN1
dGVkUkhTID0gdHJ1ZTsgcmV0dXJuICdzdHJpbmcnOyB9fTsKCmZvciAodmFyIGkgPSAwOyBpIDwg
YmluYXJ5T3BzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgbnVtVmFsID0gYmluYXJ5T3BzW2ldID09
ICd8fCcgPyAnMCcgOiAnMSc7CiAgICBjcmVhdGVUZXN0KG51bVZhbCArICIgIiArIGJpbmFyeU9w
c1tpXSArICIgIiArIHZhbHVlT2ZUaHJvd2VyU3RyICkoKTsKICAgIGNyZWF0ZVRlc3QobnVtVmFs
ICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgdG9TdHJpbmdUaHJvd2VyU3RyKSgpOwogICAg
Y3JlYXRlVGVzdChudW1WYWwgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyB0aHJvd2luZ1By
b3BTdHIgICApKCk7CiAgICBjcmVhdGVUZXN0KG51bVZhbCArICIgIiArIGJpbmFyeU9wc1tpXSAr
ICIgIiArIHRocm93aW5nT2JqR2V0dGVyICkoKTsKCiAgICBjcmVhdGVUZXN0KCInc3RyaW5nJyAi
ICsgYmluYXJ5T3BzW2ldICsgIiAiICsgdmFsdWVPZlRocm93ZXJTdHIgKSgpOwogICAgY3JlYXRl
VGVzdCgiJ3N0cmluZycgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIHRvU3RyaW5nVGhyb3dlclN0
cikoKTsKICAgIGNyZWF0ZVRlc3QoIidzdHJpbmcnICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyB0
aHJvd2luZ1Byb3BTdHIgICApKCk7CiAgICBjcmVhdGVUZXN0KCInc3RyaW5nJyAiICsgYmluYXJ5
T3BzW2ldICsgIiAiICsgdGhyb3dpbmdPYmpHZXR0ZXIgKSgpOwogICAgCiAgICBudW1WYWwgPSBi
aW5hcnlPcHNbaV0gPT0gJ3x8JyA/ICdyaHNaZXJvTnVtJyA6ICdyaHNOb25aZXJvTnVtJzsKICAg
IGNyZWF0ZVRlc3QodmFsdWVPZlRocm93ZXJTdHIgICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiAi
ICsgbnVtVmFsKSgpOwogICAgY3JlYXRlVGVzdCh0b1N0cmluZ1Rocm93ZXJTdHIgKyAiICIgKyBi
aW5hcnlPcHNbaV0gKyAiICIgKyBudW1WYWwpKCk7CiAgICBjcmVhdGVUZXN0KHRocm93aW5nUHJv
cFN0ciAgICArICIgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIG51bVZhbCkoKTsKICAgIGNyZWF0
ZVRlc3QodGhyb3dpbmdPYmpHZXR0ZXIgICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgbnVt
VmFsKSgpOwogICAgY3JlYXRlVGVzdCh2YWx1ZU9mVGhyb3dlclN0ciAgKyAiICIgKyBiaW5hcnlP
cHNbaV0gKyAiIHJoc1RvU3RyaW5nVGhyb3dlciIpKCk7CiAgICBjcmVhdGVUZXN0KHRvU3RyaW5n
VGhyb3dlclN0ciArICIgIiArIGJpbmFyeU9wc1tpXSArICIgcmhzVG9TdHJpbmdUaHJvd2VyIiko
KTsKICAgIGNyZWF0ZVRlc3QodGhyb3dpbmdQcm9wU3RyICAgICsgIiAiICsgYmluYXJ5T3BzW2ld
ICsgIiByaHNUb1N0cmluZ1Rocm93ZXIiKSgpOwogICAgY3JlYXRlVGVzdCh0aHJvd2luZ09iakdl
dHRlciAgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiIHJoc1RvU3RyaW5nVGhyb3dlciIpKCk7Cgp9
Ci8vPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21097</attachid>
            <date>2008-05-12 20:06:55 -0700</date>
            <delta_ts>2008-05-13 01:23:05 -0700</delta_ts>
            <desc>Yet more insane testing</desc>
            <filename>test_throw.html</filename>
            <type>text/html</type>
            <size>6090</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">LypUZXN0IGV4Y2VwdGlvbiBoYW5kbGluZyB3aXRoIHZhcmlvdXMgYXJpdGhtZXRpYyBhbmQgbG9n
aWMgb3BlcmF0b3JzLCBpdCBjaGVja3MgdGhlIGZvbGxvd2luZyB0aGluZ3M6PGJyLz4KPHVsPgog
ICAgPGxpPkluIGFzc2lnbm1lbnQgZXhwcmVzc2lvbnMgdGhlIGxlZnRoYW5kIHNpZGUgaXMgbm90
IG1vZGlmaWVkIGlmIHRoZSByaWdodCBoYW5kIHNpZGUgdGhyb3dzPC9saT4KICAgIDxsaT5JZiB0
aGUgbGVmdCBoYW5kIHNpZGUgb2YgYSBiaW5hcnkgb3BlcmF0b3IgdGhyb3dzIHRoZW4gdGhlIHJp
Z2h0IGhhbmQgc2hvdWxkIG5vdCBiZSBleGVjdXRlZDwvbGk+CiAgICA8bGk+SWYgdmFsdWVPZi90
b1N0cmluZyB0aHJvd3MgaW4gdGhlIGxlZnQgaGFuZCBleHByZXNzaW9uIG9mIGEgYmlub3AgaXQg
ZG9lcyBub3QgcHJldmVudCBldmFsdWF0aW9uIG9mIHRoZSByaWdodCBoYW5kIGV4cHJlc3Npb24s
IGJ1dCBkb2VzIHByZXZlbnQgZXZhbHVhdGlvbiBvZiB0b1N0cmluZy92YWx1ZU9mIG9uIHRoZSBy
aHMuPC9saT4KPC91bD4KPGRpdiBpZD0ibG9nIj48L2Rpdj4KKi88c2NyaXB0PgppZiAodGhpcy5k
b2N1bWVudCkgewogICAgbG9nID0gZnVuY3Rpb24obXNnKSB7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImxvZyIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyIC8+Ijt9OwogICAgZmFpbCA9IGZ1bmN0
aW9uKG1zZykge2xvZygiPHNwYW4gc3R5bGU9J2NvbG9yOiByZWQnPkZBSUw6IDwvc3Bhbj4iICsg
bXNnKSB9OwogICAgcGFzcyA9IGZ1bmN0aW9uKG1zZykge2xvZygiPHNwYW4gc3R5bGU9J2NvbG9y
OiBncmVlbic+UEFTUzogPC9zcGFuPiIgKyBtc2cpIH07Cn0gZWxzZSB7CiAgICBsb2cgPSBwcmlu
dDsKICAgIGZhaWwgPSBmdW5jdGlvbihtc2cpIHtsb2coIkZBSUw6ICIgKyBtc2cpIH07CiAgICBw
YXNzID0gZnVuY3Rpb24obXNnKSB7bG9nKCJQQVNTOiAiICsgbXNnKSB9Owp9Cgp2YXIgdW5hcnlP
cHMgPSBbJ34nLCAnKycsICctJ107CnZhciBiaW5hcnlPcHMgPSBbJy0nLCAnKycsICcqJywgJy8n
LCAnJScsICd8JywgJyYnLCAnXicsICc8JywgJzw9JywgJz0+JywgJz4nLCAnPT0nLCAnIT0nLCAn
PT09JywgJyE9PScsICc8PCcsICc+PiddOwoKdmFyIHZhbHVlT2ZUaHJvd2VyID0geyB2YWx1ZU9m
OiBmdW5jdGlvbigpIHsgdGhyb3cgInRocm93IGZyb20gdmFsdWVPZiI7IH0gfQp2YXIgdG9TdHJp
bmdUaHJvd2VyID0geyB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHRocm93ICJ0aHJvdyBmcm9tIHRv
U3RyaW5nIjsgfSB9CgpmdW5jdGlvbiBjcmVhdGVUZXN0KGV4cHIpIHsKICAgIC8vIFRoaXMgY3Jl
YXRlcyBhIHRlc3QgY2FzZSB0aGF0IGVuc3VyZXMgdGhhdCBhIGJpbmFyeSBvcGVyYW5kIHdpbGwg
ZXhlY3V0ZSB0aGUgbGVmdCBoYW5kIGV4cHJlc3Npb24gZmlyc3QsCiAgICAvLyBhbmQgd2lsbCBu
b3QgZXhlY3V0ZSB0aGUgcmlnaHQgaGFuZCBzaWRlIGlmIHRoZSBsZWZ0IGhhbmQgc2lkZSB0aHJv
d3MuCiAgICB2YXIgZnVuY3Rpb25QcmVmaXggPSAiKGZ1bmN0aW9uKCl7IGV4ZWN1dGVkUkhTID0g
ZmFsc2U7IHZhciByZXN1bHQgPSAnUEFTUyc7IHRyeSB7IHJlc3VsdCA9ICI7CiAgICB2YXIgZnVu
Y3Rpb25Qb3N0Zml4ID0gIjsgZmFpbCgnRGlkIG5vdCB0aHJvdyBleGNlcHRpb24gd2l0aCBcIicg
KyBleHByICsgJ1wiJykgfSBjYXRjaCAoZSkgeyAiICsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAiIGlmIChyZXN1bHQgIT0gJ1BBU1MnICYmIGV4ZWN1dGVkUkhTKSB7IGZhaWwoJ1wiJytleHBy
KydcIiB0aHJldyBleGNlcHRpb24sIGJ1dCBtb2RpZmllZCBhc3NpZ25tZW50IHRhcmdldCBhbmQg
ZXhlY3V0ZWQgUkhTJyk7ICIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICIgfSBlbHNlIGlm
IChyZXN1bHQgIT0gJ1BBU1MnKSB7IGZhaWwoJ1wiJytleHByKydcIiB0aHJldyBleGNlcHRpb24s
IGJ1dCBtb2RpZmllZCBhc3NpZ25tZW50IHRhcmdldCcpOyAiICsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAiIH0gZWxzZSBpZiAoZXhlY3V0ZWRSSFMpIHsgZmFpbCgnXCInK2V4cHIrJ1wiIHRo
cmV3IGV4Y2VwdGlvbiwgYnV0IGV4ZWN1dGVkIHJpZ2h0IGhhbmQgaGFsZiBvZiBleHByZXNzaW9u
JykiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiIH0gZWxzZSB7IHBhc3MoJ0hhbmRsZWQg
XCInKyBleHByICsnXCIgY29ycmVjdGx5LicpIH0gfSB9KSI7CiAgICByZXR1cm4gZXZhbChmdW5j
dGlvblByZWZpeCArIGV4cHIgKyBmdW5jdGlvblBvc3RmaXgpOwp9CgpmdW5jdGlvbiBjcmVhdGVU
ZXN0V2l0aFJIU0V4ZWMoZXhwcikgewogICAgLy8gVGhpcyB0ZXN0cyB0aGF0IHdlIGV2YWx1YXRl
IHRoZSByaWdodCBoYW5kIHNpZGUgb2YgYSBiaW5hcnkgZXhwcmVzc2lvbiBiZWZvcmUgd2UKICAg
IC8vIGRvIGFueSB0eXBlIGNvbnZlcnNpb24gd2l0aCB0b1N0cmluZyBhbmQvb3IgdmFsdWVPZiB3
aGljaCBtYXkgdGhyb3cuCiAgICB2YXIgZnVuY3Rpb25QcmVmaXggPSAiKGZ1bmN0aW9uKCl7IGV4
ZWN1dGVkUkhTID0gZmFsc2U7IHZhciByZXN1bHQgPSAnUEFTUyc7IHRyeSB7IHJlc3VsdCA9ICI7
CiAgICB2YXIgZnVuY3Rpb25Qb3N0Zml4ID0gIjsgZmFpbCgnRGlkIG5vdCB0aHJvdyBleGNlcHRp
b24gd2l0aCBcIicgKyBleHByICsgJ1wiJykgfSBjYXRjaCAoZSkgeyAiICsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAiIGlmIChyZXN1bHQgIT0gJ1BBU1MnKSB7IGZhaWwoJ1wiJytleHByKydc
IiB0aHJldyBleGNlcHRpb24sIGJ1dCBtb2RpZmllZCBhc3NpZ25tZW50IHRhcmdldCcpOyAiICsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAiIH0gZWxzZSBpZiAoIWV4ZWN1dGVkUkhTKSB7IGZh
aWwoJ1wiJytleHByKydcIiB0aHJldyBleGNlcHRpb24sIGFuZCBmYWlsZWQgdG8gZXhlY3V0ZSBS
SFMgd2hlbiBleHBlY3RlZCcpIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiB9IGVsc2Ug
eyBwYXNzKCdIYW5kbGVkIFwiJysgZXhwciArJ1wiIGNvcnJlY3RseS4nKSB9IH0gfSkiOwogICAg
cmV0dXJuIGV2YWwoZnVuY3Rpb25QcmVmaXggKyBleHByICsgZnVuY3Rpb25Qb3N0Zml4KTsKfQoK
X19kZWZpbmVHZXR0ZXJfXygndGhyb3dpbmdQcm9wZXJ0eScsIGZ1bmN0aW9uKCl7IHRocm93ICJ0
aHJvd2luZyByZXNvbHZlIjsgfSk7Cgp2YXIgdGhyb3dpbmdQcm9wU3RyID0gJ3Rocm93aW5nUHJv
cGVydHknOwp2YXIgdmFsdWVPZlRocm93ZXJTdHIgPSAndmFsdWVPZlRocm93ZXInOwp2YXIgdG9T
dHJpbmdUaHJvd2VyU3RyID0gJ3RvU3RyaW5nVGhyb3dlcic7CnZhciB0aHJvd2luZ09iakdldHRl
ciA9ICcoe2dldCB0aHJvd2luZ1Byb3BlcnR5KCl7IHRocm93ICJ0aHJvd2luZyBwcm9wZXJ0eSIg
fX0pLnRocm93aW5nUHJvcGVydHknOwoKY3JlYXRlVGVzdCh0aHJvd2luZ1Byb3BTdHIpKCk7CmNy
ZWF0ZVRlc3QodGhyb3dpbmdPYmpHZXR0ZXIpKCk7CmNyZWF0ZVRlc3QoIiF1bmRlZmluZWRQcm9w
ZXJ0eSIpKCk7Cgpmb3IgKHZhciBpID0gMDsgaSA8IHVuYXJ5T3BzLmxlbmd0aDsgaSsrKSB7CiAg
ICBjcmVhdGVUZXN0KHVuYXJ5T3BzW2ldK3ZhbHVlT2ZUaHJvd2VyU3RyKSgpOwogICAgY3JlYXRl
VGVzdCh1bmFyeU9wc1tpXSt0b1N0cmluZ1Rocm93ZXJTdHIpKCk7CiAgICBjcmVhdGVUZXN0KHVu
YXJ5T3BzW2ldK3Rocm93aW5nUHJvcFN0cikoKTsKICAgIGNyZWF0ZVRlc3QodW5hcnlPcHNbaV0r
dGhyb3dpbmdPYmpHZXR0ZXIpKCk7Cn0KcmhzTm9uWmVyb051bSA9IHsgdmFsdWVPZjogZnVuY3Rp
b24oKXsgZXhlY3V0ZWRSSFMgPSB0cnVlOyByZXR1cm4gMTsgfSB9OwpyaHNaZXJvTnVtID0geyB2
YWx1ZU9mOiBmdW5jdGlvbigpeyBleGVjdXRlZFJIUyA9IHRydWU7IHJldHVybiAwOyB9IH07CnJo
c1RvU3RyaW5nVGhyb3dlciA9IHsgdG9TdHJpbmc6IGZ1bmN0aW9uKCl7IGV4ZWN1dGVkUkhTID0g
dHJ1ZTsgcmV0dXJuICdzdHJpbmcnOyB9fTsKZ2V0dGVyVGhyb3dlciA9IHsgZ2V0IHZhbHVlKCkg
eyB0aHJvdyAidGhyb3dpbmcgaW4gZ2V0dGVyIjsgfX07CnZhciBnZXR0ZXJUaHJvd2VyU3RyID0g
ImdldHRlclRocm93ZXIudmFsdWUiOwpyaHNHZXR0ZXJUZXN0ZXIgPSB7IGdldCB2YWx1ZSgpIHsg
ZXhlY3V0ZWRSSFMgPSB0cnVlOyByZXR1cm4gJ3N0cmluZyc7IH19Owp2YXIgcmhzR2V0dGVyVGVz
dGVyU3RyID0gInJoc0dldHRlclRlc3Rlci52YWx1ZSI7Cgpmb3IgKHZhciBpID0gMDsgaSA8IGJp
bmFyeU9wcy5sZW5ndGg7IGkrKykgewogICAgdmFyIG51bVZhbCA9IGJpbmFyeU9wc1tpXSA9PSAn
fHwnID8gJzAnIDogJzEnOwogICAgY3JlYXRlVGVzdChudW1WYWwgKyAiICIgKyBiaW5hcnlPcHNb
aV0gKyAiICIgKyB2YWx1ZU9mVGhyb3dlclN0ciApKCk7CiAgICBjcmVhdGVUZXN0KG51bVZhbCAr
ICIgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIHRvU3RyaW5nVGhyb3dlclN0cikoKTsKICAgIGNy
ZWF0ZVRlc3QobnVtVmFsICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgdGhyb3dpbmdQcm9w
U3RyICAgKSgpOwogICAgY3JlYXRlVGVzdChudW1WYWwgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAi
ICIgKyB0aHJvd2luZ09iakdldHRlciApKCk7CiAgICBjcmVhdGVUZXN0KG51bVZhbCArICIgIiAr
IGJpbmFyeU9wc1tpXSArICIgIiArIGdldHRlclRocm93ZXJTdHIgKSgpOwoKICAgIGNyZWF0ZVRl
c3QoIidzdHJpbmcnICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyB2YWx1ZU9mVGhyb3dlclN0ciAp
KCk7CiAgICBjcmVhdGVUZXN0KCInc3RyaW5nJyAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgdG9T
dHJpbmdUaHJvd2VyU3RyKSgpOwogICAgY3JlYXRlVGVzdCgiJ3N0cmluZycgIiArIGJpbmFyeU9w
c1tpXSArICIgIiArIHRocm93aW5nUHJvcFN0ciAgICkoKTsKICAgIGNyZWF0ZVRlc3QoIidzdHJp
bmcnICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyB0aHJvd2luZ09iakdldHRlciApKCk7CiAgICBj
cmVhdGVUZXN0KCInc3RyaW5nJyAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgZ2V0dGVyVGhyb3dl
clN0ciApKCk7CiAgICAKICAgIG51bVZhbCA9IGJpbmFyeU9wc1tpXSA9PSAnfHwnID8gJ3Joc1pl
cm9OdW0nIDogJ3Joc05vblplcm9OdW0nOwogICAgY3JlYXRlVGVzdCh2YWx1ZU9mVGhyb3dlclN0
ciAgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyBudW1WYWwpKCk7CiAgICBjcmVhdGVUZXN0
KHRvU3RyaW5nVGhyb3dlclN0ciArICIgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIG51bVZhbCko
KTsKICAgIGNyZWF0ZVRlc3QodGhyb3dpbmdQcm9wU3RyICAgICsgIiAiICsgYmluYXJ5T3BzW2ld
ICsgIiAiICsgbnVtVmFsKSgpOwogICAgY3JlYXRlVGVzdCh0aHJvd2luZ09iakdldHRlciAgKyAi
ICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyBudW1WYWwpKCk7CiAgICBjcmVhdGVUZXN0KGdldHRl
clRocm93ZXJTdHIgICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgbnVtVmFsKSgpOwogICAg
Y3JlYXRlVGVzdCh2YWx1ZU9mVGhyb3dlclN0ciAgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiIHJo
c1RvU3RyaW5nVGhyb3dlciIpKCk7CiAgICBjcmVhdGVUZXN0KHRvU3RyaW5nVGhyb3dlclN0ciAr
ICIgIiArIGJpbmFyeU9wc1tpXSArICIgcmhzVG9TdHJpbmdUaHJvd2VyIikoKTsKICAgIGNyZWF0
ZVRlc3QodGhyb3dpbmdQcm9wU3RyICAgICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiByaHNUb1N0
cmluZ1Rocm93ZXIiKSgpOwogICAgY3JlYXRlVGVzdCh0aHJvd2luZ09iakdldHRlciAgKyAiICIg
KyBiaW5hcnlPcHNbaV0gKyAiIHJoc1RvU3RyaW5nVGhyb3dlciIpKCk7CiAgICBjcmVhdGVUZXN0
KGdldHRlclRocm93ZXJTdHIgICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiByaHNUb1N0cmluZ1Ro
cm93ZXIiKSgpOwogICAgY3JlYXRlVGVzdFdpdGhSSFNFeGVjKHZhbHVlT2ZUaHJvd2VyU3RyICAr
ICIgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIHJoc0dldHRlclRlc3RlclN0cikoKTsKICAgIGNy
ZWF0ZVRlc3RXaXRoUkhTRXhlYyh0b1N0cmluZ1Rocm93ZXJTdHIgKyAiICIgKyBiaW5hcnlPcHNb
aV0gKyAiICIgKyByaHNHZXR0ZXJUZXN0ZXJTdHIpKCk7Cgp9Ci8vPC9zY3JpcHQ+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21104</attachid>
            <date>2008-05-13 01:23:05 -0700</date>
            <delta_ts>2008-05-13 01:33:51 -0700</delta_ts>
            <desc>More coverage</desc>
            <filename>test_throw.html</filename>
            <type>text/html</type>
            <size>9947</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">LypUZXN0IGV4Y2VwdGlvbiBoYW5kbGluZyB3aXRoIHZhcmlvdXMgYXJpdGhtZXRpYyBhbmQgbG9n
aWMgb3BlcmF0b3JzLCBpdCBjaGVja3MgdGhlIGZvbGxvd2luZyB0aGluZ3M6PGJyLz4KPHVsPgog
ICAgPGxpPkluIGFzc2lnbm1lbnQgZXhwcmVzc2lvbnMgdGhlIGxlZnRoYW5kIHNpZGUgaXMgbm90
IG1vZGlmaWVkIGlmIHRoZSByaWdodCBoYW5kIHNpZGUgdGhyb3dzPC9saT4KICAgIDxsaT5JZiB0
aGUgbGVmdCBoYW5kIHNpZGUgb2YgYSBiaW5hcnkgb3BlcmF0b3IgdGhyb3dzIHRoZW4gdGhlIHJp
Z2h0IGhhbmQgc2hvdWxkIG5vdCBiZSBleGVjdXRlZDwvbGk+CiAgICA8bGk+SWYgdmFsdWVPZi90
b1N0cmluZyB0aHJvd3MgaW4gdGhlIGxlZnQgaGFuZCBleHByZXNzaW9uIG9mIGEgYmlub3AgaXQg
ZG9lcyBub3QgcHJldmVudCBldmFsdWF0aW9uIG9mIHRoZSByaWdodCBoYW5kIGV4cHJlc3Npb24s
IGJ1dCBkb2VzIHByZXZlbnQgZXZhbHVhdGlvbiBvZiB0b1N0cmluZy92YWx1ZU9mIG9uIHRoZSBy
aHMuPC9saT4KPC91bD4KPGRpdiBpZD0ibG9nIj48L2Rpdj4KKi88c2NyaXB0PgppZiAodGhpcy5k
b2N1bWVudCkgewogICAgbG9nID0gZnVuY3Rpb24obXNnKSB7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImxvZyIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyIC8+Ijt9OwogICAgZmFpbCA9IGZ1bmN0
aW9uKG1zZykge2xvZygiPHNwYW4gc3R5bGU9J2NvbG9yOiByZWQnPkZBSUw6IDwvc3Bhbj4iICsg
bXNnKSB9OwogICAgcGFzcyA9IGZ1bmN0aW9uKG1zZykgeyBwYXNzQ291bnQrKzsgbG9nKCI8c3Bh
biBzdHlsZT0nY29sb3I6IGdyZWVuJz5QQVNTOiA8L3NwYW4+IiArIG1zZykgfTsKfSBlbHNlIHsK
ICAgIGxvZyA9IHByaW50OwogICAgZmFpbCA9IGZ1bmN0aW9uKG1zZykge2xvZygiRkFJTDogIiAr
IG1zZykgfTsKICAgIHBhc3MgPSBmdW5jdGlvbihtc2cpIHsgcGFzc0NvdW50Kys7IGxvZygiUEFT
UzogIiArIG1zZyk7IH07Cn0KCnZhciB1bmFyeU9wcyA9IFsnficsICcrJywgJy0nXTsKdmFyIGJp
bmFyeU9wcyA9IFsnLScsICcrJywgJyonLCAnLycsICclJywgJ3wnLCAnJicsICdeJywgJzwnLCAn
PD0nLCAnPj0nLCAnPicsICc9PScsICchPScsICc8PCcsICc+PiddOwoKdmFyIHZhbHVlT2ZUaHJv
d2VyID0geyB2YWx1ZU9mOiBmdW5jdGlvbigpIHsgdGhyb3cgInRocm93IGZyb20gdmFsdWVPZiI7
IH0gfQp2YXIgdG9TdHJpbmdUaHJvd2VyID0geyB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHRocm93
ICJ0aHJvdyBmcm9tIHRvU3RyaW5nIjsgfSB9CnZhciB0ZXN0Q291bnQgPSAwOwp2YXIgcGFzc0Nv
dW50ID0gMDsKZnVuY3Rpb24gY3JlYXRlVGVzdChleHByKSB7CiAgICAvLyBUaGlzIGNyZWF0ZXMg
YSB0ZXN0IGNhc2UgdGhhdCBlbnN1cmVzIHRoYXQgYSBiaW5hcnkgb3BlcmFuZCB3aWxsIGV4ZWN1
dGUgdGhlIGxlZnQgaGFuZCBleHByZXNzaW9uIGZpcnN0LAogICAgLy8gYW5kIHdpbGwgbm90IGV4
ZWN1dGUgdGhlIHJpZ2h0IGhhbmQgc2lkZSBpZiB0aGUgbGVmdCBoYW5kIHNpZGUgdGhyb3dzLgog
ICAgdmFyIGZ1bmN0aW9uUHJlZml4ID0gIihmdW5jdGlvbigpeyBleGVjdXRlZFJIUyA9IGZhbHNl
OyB2YXIgcmVzdWx0ID0gJ1BBU1MnOyB0cnkgeyByZXN1bHQgPSAiOwogICAgdmFyIGZ1bmN0aW9u
UG9zdGZpeCA9ICI7IGZhaWwoJ0RpZCBub3QgdGhyb3cgZXhjZXB0aW9uIHdpdGggXCInICsgZXhw
ciArICdcIicpIH0gY2F0Y2ggKGUpIHsgIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiBp
ZiAocmVzdWx0ICE9ICdQQVNTJyAmJiBleGVjdXRlZFJIUykgeyBmYWlsKCdcIicrZXhwcisnXCIg
dGhyZXcgZXhjZXB0aW9uLCBidXQgbW9kaWZpZWQgYXNzaWdubWVudCB0YXJnZXQgYW5kIGV4ZWN1
dGVkIFJIUycpOyAiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiIH0gZWxzZSBpZiAocmVz
dWx0ICE9ICdQQVNTJykgeyBmYWlsKCdcIicrZXhwcisnXCIgdGhyZXcgZXhjZXB0aW9uLCBidXQg
bW9kaWZpZWQgYXNzaWdubWVudCB0YXJnZXQnKTsgIiArCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIiB9IGVsc2UgaWYgKGV4ZWN1dGVkUkhTKSB7IGZhaWwoJ1wiJytleHByKydcIiB0aHJldyBl
eGNlcHRpb24sIGJ1dCBleGVjdXRlZCByaWdodCBoYW5kIGhhbGYgb2YgZXhwcmVzc2lvbicpIiAr
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIiB9IGVsc2UgeyBwYXNzKCdIYW5kbGVkIFwiJysg
ZXhwciArJ1wiIGNvcnJlY3RseS4nKSB9IH0gfSkiOwogICAgdGVzdENvdW50Kys7CiAgICB0cnkg
ewogICAgICAgIHJldHVybiBldmFsKGZ1bmN0aW9uUHJlZml4ICsgZXhwciArIGZ1bmN0aW9uUG9z
dGZpeCk7CiAgICB9IGNhdGNoKGUpIHsKICAgICAgICB0aHJvdyBuZXcgU3RyaW5nKGV4cHIpOwog
ICAgfQp9CgpmdW5jdGlvbiBjcmVhdGVUZXN0V2l0aFJIU0V4ZWMoZXhwcikgewogICAgLy8gVGhp
cyB0ZXN0cyB0aGF0IHdlIGV2YWx1YXRlIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgYSBiaW5hcnkg
ZXhwcmVzc2lvbiBiZWZvcmUgd2UKICAgIC8vIGRvIGFueSB0eXBlIGNvbnZlcnNpb24gd2l0aCB0
b1N0cmluZyBhbmQvb3IgdmFsdWVPZiB3aGljaCBtYXkgdGhyb3cuCiAgICB2YXIgZnVuY3Rpb25Q
cmVmaXggPSAiKGZ1bmN0aW9uKCl7IGV4ZWN1dGVkUkhTID0gZmFsc2U7IHZhciByZXN1bHQgPSAn
UEFTUyc7IHRyeSB7IHJlc3VsdCA9ICI7CiAgICB2YXIgZnVuY3Rpb25Qb3N0Zml4ID0gIjsgZmFp
bCgnRGlkIG5vdCB0aHJvdyBleGNlcHRpb24gd2l0aCBcIicgKyBleHByICsgJ1wiJykgfSBjYXRj
aCAoZSkgeyAiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiIGlmIChyZXN1bHQgIT0gJ1BB
U1MnKSB7IGZhaWwoJ1wiJytleHByKydcIiB0aHJldyBleGNlcHRpb24sIGJ1dCBtb2RpZmllZCBh
c3NpZ25tZW50IHRhcmdldCcpOyAiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiIH0gZWxz
ZSBpZiAoIWV4ZWN1dGVkUkhTKSB7IGZhaWwoJ1wiJytleHByKydcIiB0aHJldyBleGNlcHRpb24s
IGFuZCBmYWlsZWQgdG8gZXhlY3V0ZSBSSFMgd2hlbiBleHBlY3RlZCcpIiArCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIiB9IGVsc2UgeyBwYXNzKCdIYW5kbGVkIFwiJysgZXhwciArJ1wiIGNv
cnJlY3RseS4nKSB9IH0gfSkiOwogICAgdGVzdENvdW50Kys7CiAgICB0cnkgewogICAgICAgIHJl
dHVybiBldmFsKGZ1bmN0aW9uUHJlZml4ICsgZXhwciArIGZ1bmN0aW9uUG9zdGZpeCk7CiAgICB9
IGNhdGNoKGUpIHsKICAgICAgICB0aHJvdyBuZXcgU3RyaW5nKGV4cHIpOwogICAgfQp9CgpfX2Rl
ZmluZUdldHRlcl9fKCd0aHJvd2luZ1Byb3BlcnR5JywgZnVuY3Rpb24oKXsgdGhyb3cgInRocm93
aW5nIHJlc29sdmUiOyB9KTsKCnZhciB0aHJvd2luZ1Byb3BTdHIgPSAndGhyb3dpbmdQcm9wZXJ0
eSc7CnZhciB2YWx1ZU9mVGhyb3dlclN0ciA9ICd2YWx1ZU9mVGhyb3dlcic7CnZhciB0b1N0cmlu
Z1Rocm93ZXJTdHIgPSAndG9TdHJpbmdUaHJvd2VyJzsKdmFyIHRocm93aW5nT2JqR2V0dGVyID0g
Jyh7Z2V0IHRocm93aW5nUHJvcGVydHkoKXsgdGhyb3cgInRocm93aW5nIHByb3BlcnR5IiB9fSku
dGhyb3dpbmdQcm9wZXJ0eSc7CgpjcmVhdGVUZXN0KHRocm93aW5nUHJvcFN0cikoKTsKY3JlYXRl
VGVzdCh0aHJvd2luZ09iakdldHRlcikoKTsKY3JlYXRlVGVzdCgiIXVuZGVmaW5lZFByb3BlcnR5
IikoKTsKCmZvciAodmFyIGkgPSAwOyBpIDwgdW5hcnlPcHMubGVuZ3RoOyBpKyspIHsKICAgIGNy
ZWF0ZVRlc3QodW5hcnlPcHNbaV0rdmFsdWVPZlRocm93ZXJTdHIpKCk7CiAgICBjcmVhdGVUZXN0
KHVuYXJ5T3BzW2ldK3RvU3RyaW5nVGhyb3dlclN0cikoKTsKICAgIGNyZWF0ZVRlc3QodW5hcnlP
cHNbaV0rdGhyb3dpbmdQcm9wU3RyKSgpOwogICAgY3JlYXRlVGVzdCh1bmFyeU9wc1tpXSt0aHJv
d2luZ09iakdldHRlcikoKTsKfQpyaHNOb25aZXJvTnVtID0geyB2YWx1ZU9mOiBmdW5jdGlvbigp
eyBleGVjdXRlZFJIUyA9IHRydWU7IHJldHVybiAxOyB9IH07CnJoc1plcm9OdW0gPSB7IHZhbHVl
T2Y6IGZ1bmN0aW9uKCl7IGV4ZWN1dGVkUkhTID0gdHJ1ZTsgcmV0dXJuIDA7IH0gfTsKcmhzVG9T
dHJpbmdUaHJvd2VyID0geyB0b1N0cmluZzogZnVuY3Rpb24oKXsgZXhlY3V0ZWRSSFMgPSB0cnVl
OyByZXR1cm4gJ3N0cmluZyc7IH19OwpnZXR0ZXJUaHJvd2VyID0geyBnZXQgdmFsdWUoKSB7IHRo
cm93ICJ0aHJvd2luZyBpbiBnZXR0ZXIiOyB9fTsKdmFyIGdldHRlclRocm93ZXJTdHIgPSAiZ2V0
dGVyVGhyb3dlci52YWx1ZSI7CnJoc0dldHRlclRlc3RlciA9IHsgZ2V0IHZhbHVlKCkgeyBleGVj
dXRlZFJIUyA9IHRydWU7IHJldHVybiAnc3RyaW5nJzsgfX07CnZhciByaHNHZXR0ZXJUZXN0ZXJT
dHIgPSAicmhzR2V0dGVyVGVzdGVyLnZhbHVlIjsKCmZvciAodmFyIGkgPSAwOyBpIDwgYmluYXJ5
T3BzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgbnVtVmFsID0gYmluYXJ5T3BzW2ldID09ICd8fCcg
PyAnMCcgOiAnMSc7CiAgICBjcmVhdGVUZXN0KG51bVZhbCArICIgIiArIGJpbmFyeU9wc1tpXSAr
ICIgIiArIHZhbHVlT2ZUaHJvd2VyU3RyICkoKTsKICAgIGNyZWF0ZVRlc3QobnVtVmFsICsgIiAi
ICsgYmluYXJ5T3BzW2ldICsgIiAiICsgdG9TdHJpbmdUaHJvd2VyU3RyKSgpOwogICAgY3JlYXRl
VGVzdChudW1WYWwgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyB0aHJvd2luZ1Byb3BTdHIg
ICApKCk7CiAgICBjcmVhdGVUZXN0KG51bVZhbCArICIgIiArIGJpbmFyeU9wc1tpXSArICIgIiAr
IHRocm93aW5nT2JqR2V0dGVyICkoKTsKICAgIGNyZWF0ZVRlc3QobnVtVmFsICsgIiAiICsgYmlu
YXJ5T3BzW2ldICsgIiAiICsgZ2V0dGVyVGhyb3dlclN0ciApKCk7CgogICAgY3JlYXRlVGVzdCgi
J3N0cmluZycgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIHZhbHVlT2ZUaHJvd2VyU3RyICkoKTsK
ICAgIGNyZWF0ZVRlc3QoIidzdHJpbmcnICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyB0b1N0cmlu
Z1Rocm93ZXJTdHIpKCk7CiAgICBjcmVhdGVUZXN0KCInc3RyaW5nJyAiICsgYmluYXJ5T3BzW2ld
ICsgIiAiICsgdGhyb3dpbmdQcm9wU3RyICAgKSgpOwogICAgY3JlYXRlVGVzdCgiJ3N0cmluZycg
IiArIGJpbmFyeU9wc1tpXSArICIgIiArIHRocm93aW5nT2JqR2V0dGVyICkoKTsKICAgIGNyZWF0
ZVRlc3QoIidzdHJpbmcnICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyBnZXR0ZXJUaHJvd2VyU3Ry
ICkoKTsKICAgIAogICAgbnVtVmFsID0gYmluYXJ5T3BzW2ldID09ICd8fCcgPyAncmhzWmVyb051
bScgOiAncmhzTm9uWmVyb051bSc7CiAgICBjcmVhdGVUZXN0KHZhbHVlT2ZUaHJvd2VyU3RyICAr
ICIgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIG51bVZhbCkoKTsKICAgIGNyZWF0ZVRlc3QodG9T
dHJpbmdUaHJvd2VyU3RyICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgbnVtVmFsKSgpOwog
ICAgY3JlYXRlVGVzdCh0aHJvd2luZ1Byb3BTdHIgICAgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAi
ICIgKyBudW1WYWwpKCk7CiAgICBjcmVhdGVUZXN0KHRocm93aW5nT2JqR2V0dGVyICArICIgIiAr
IGJpbmFyeU9wc1tpXSArICIgIiArIG51bVZhbCkoKTsKICAgIGNyZWF0ZVRlc3QoZ2V0dGVyVGhy
b3dlclN0ciAgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyBudW1WYWwpKCk7CiAgICBjcmVh
dGVUZXN0KHZhbHVlT2ZUaHJvd2VyU3RyICArICIgIiArIGJpbmFyeU9wc1tpXSArICIgcmhzVG9T
dHJpbmdUaHJvd2VyIikoKTsKICAgIGNyZWF0ZVRlc3QodG9TdHJpbmdUaHJvd2VyU3RyICsgIiAi
ICsgYmluYXJ5T3BzW2ldICsgIiByaHNUb1N0cmluZ1Rocm93ZXIiKSgpOwogICAgY3JlYXRlVGVz
dCh0aHJvd2luZ1Byb3BTdHIgICAgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiIHJoc1RvU3RyaW5n
VGhyb3dlciIpKCk7CiAgICBjcmVhdGVUZXN0KHRocm93aW5nT2JqR2V0dGVyICArICIgIiArIGJp
bmFyeU9wc1tpXSArICIgcmhzVG9TdHJpbmdUaHJvd2VyIikoKTsKICAgIGNyZWF0ZVRlc3QoZ2V0
dGVyVGhyb3dlclN0ciAgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiIHJoc1RvU3RyaW5nVGhyb3dl
ciIpKCk7CiAgICBjcmVhdGVUZXN0V2l0aFJIU0V4ZWModmFsdWVPZlRocm93ZXJTdHIgICsgIiAi
ICsgYmluYXJ5T3BzW2ldICsgIiAiICsgcmhzR2V0dGVyVGVzdGVyU3RyKSgpOwogICAgY3JlYXRl
VGVzdFdpdGhSSFNFeGVjKHRvU3RyaW5nVGhyb3dlclN0ciArICIgIiArIGJpbmFyeU9wc1tpXSAr
ICIgIiArIHJoc0dldHRlclRlc3RlclN0cikoKTsKCn0KCnZhciBleGVjdXRpb25PcmRlciA9ICIi
OwpfX2RlZmluZUdldHRlcl9fKCJub25UaHJvd2luZ0luZGV4QmFzZSIsIGZ1bmN0aW9uKCl7IAog
ICAgZXhlY3V0aW9uT3JkZXIgKz0gIm5vblRocm93aW5nSW5kZXhCYXNlLCAiOyAKICAgIHJldHVy
biB7CiAgICAgICAgZ2V0IG5vblRocm93aW5nVGVzdEluZGV4KCl7IGV4ZWN1dGlvbk9yZGVyICs9
ICJnZXQgbm9uVGhyb3dpbmdUZXN0SW5kZXgsICI7IHJldHVybiB1bmRlZmluZWQ7IH0sCiAgICAg
ICAgZ2V0IHRocm93aW5nVGVzdEluZGV4KCl7IGV4ZWN1dGlvbk9yZGVyICs9ICJnZXQgbm9uVGhy
b3dpbmdUZXN0SW5kZXgsICI7IHRocm93IHt9OyByZXR1cm4gdW5kZWZpbmVkOyB9LAogICAgICAg
IHNldCBub25UaHJvd2luZ1Rlc3RJbmRleCgpeyBleGVjdXRpb25PcmRlciArPSAic2V0IG5vblRo
cm93aW5nVGVzdEluZGV4LCAiOyByZXR1cm4gdW5kZWZpbmVkOyB9LAogICAgICAgIHNldCB0aHJv
d2luZ1Rlc3RJbmRleCgpeyBleGVjdXRpb25PcmRlciArPSAic2V0IG5vblRocm93aW5nVGVzdElu
ZGV4LCAiOyB0aHJvdyB7fTsgcmV0dXJuIHVuZGVmaW5lZDsgfQogICAgfQogIH0pOwpfX2RlZmlu
ZUdldHRlcl9fKCJ0aHJvd2luZ0luZGV4QmFzZSIsIGZ1bmN0aW9uKCl7IAogICAgZXhlY3V0aW9u
T3JkZXIgKz0gInRocm93aW5nSW5kZXhCYXNlLCAiOyAKICAgIHRocm93IHt9OwogIH0pOwoKX19k
ZWZpbmVHZXR0ZXJfXygibm9uVGhyb3dpbmdJbmRleE5vVGhyb3dQcm9wZXJ0eSIsIGZ1bmN0aW9u
KCl7CiAgICByZXR1cm4gewogICAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtleGVjdXRpb25P
cmRlciArPSAibm9uVGhyb3dpbmdJbmRleE5vVGhyb3dQcm9wZXJ0eSwgIjsgcmV0dXJuICJub25U
aHJvd2luZ1Rlc3RJbmRleCI7IH0KICAgIH0KfSk7CgpfX2RlZmluZUdldHRlcl9fKCJub25UaHJv
d2luZ0luZGV4VGhyb3dQcm9wZXJ0eSIsIGZ1bmN0aW9uKCl7IAogICAgcmV0dXJuIHsKICAgICAg
ICB0b1N0cmluZzogZnVuY3Rpb24oKSB7ZXhlY3V0aW9uT3JkZXIgKz0gIm5vblRocm93aW5nSW5k
ZXhUaHJvd1Byb3BlcnR5LCAiOyByZXR1cm4gInRocm93aW5nVGVzdEluZGV4IjsgfQogICAgfQp9
KTsKCl9fZGVmaW5lR2V0dGVyX18oInRocm93aW5nSW5kZXgiLCBmdW5jdGlvbigpewogICAgcmV0
dXJuIHsKICAgICAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7ZXhlY3V0aW9uT3JkZXIgKz0gInRo
cm93aW5nSW5kZXgsICI7IHRocm93IHt9O30KICAgIH0KfSk7CgoKZnVuY3Rpb24gY3JlYXRlVGVz
dFdpdGhFeGVjT3JkZXJUZXN0KGV4cHIsIGV4cGVjdGVkKSB7CiAgICAvLyBUaGlzIHRlc3RzIHRo
YXQgd2UgZXZhbHVhdGUgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZiBhIGJpbmFyeSBleHByZXNzaW9u
IGJlZm9yZSB3ZQogICAgLy8gZG8gYW55IHR5cGUgY29udmVyc2lvbiB3aXRoIHRvU3RyaW5nIGFu
ZC9vciB2YWx1ZU9mIHdoaWNoIG1heSB0aHJvdy4KICAgIHZhciBmdW5jdGlvblByZWZpeCA9ICIo
ZnVuY3Rpb24oKXsgZXhlY3V0aW9uT3JkZXIgPSAnJzsgdmFyIHJlc3VsdCA9ICdQQVNTJzsgdHJ5
IHsgcmVzdWx0ID0gIjsKICAgIHZhciBmdW5jdGlvblBvc3RmaXggPSAiOyB9IGNhdGNoIChlKSB7
IGV4ZWN1dGlvbk9yZGVyICs9ICAnKioqdGhyb3cqKionOyB9IGlmIChleGVjdXRpb25PcmRlciA9
PSBleHBlY3RlZCkgcGFzcyhleHByKTsgZWxzZSBmYWlsKGV4cHIgKyAnIGV4ZWN1dGVkIGFzOiA8
YnIvPicgKyBleGVjdXRpb25PcmRlcik7IH0pIjsKICAgIHRlc3RDb3VudCsrOwogICAgdHJ5IHsK
ICAgICAgICByZXR1cm4gZXZhbChmdW5jdGlvblByZWZpeCArIGV4cHIgKyBmdW5jdGlvblBvc3Rm
aXgpOwogICAgfSBjYXRjaChlKSB7CiAgICAgICAgdGhyb3cgbmV3IFN0cmluZyhleHByKTsKICAg
IH0KfQoKY3JlYXRlVGVzdFdpdGhFeGVjT3JkZXJUZXN0KCJub25UaHJvd2luZ0luZGV4QmFzZVtu
b25UaHJvd2luZ0luZGV4Tm9UaHJvd1Byb3BlcnR5XSIsICJub25UaHJvd2luZ0luZGV4QmFzZSwg
bm9uVGhyb3dpbmdJbmRleE5vVGhyb3dQcm9wZXJ0eSwgZ2V0IG5vblRocm93aW5nVGVzdEluZGV4
LCAiKSgpOwoKY3JlYXRlVGVzdFdpdGhFeGVjT3JkZXJUZXN0KCJub25UaHJvd2luZ0luZGV4QmFz
ZVtub25UaHJvd2luZ0luZGV4VGhyb3dQcm9wZXJ0eV0iLCAibm9uVGhyb3dpbmdJbmRleEJhc2Us
IG5vblRocm93aW5nSW5kZXhUaHJvd1Byb3BlcnR5LCBnZXQgbm9uVGhyb3dpbmdUZXN0SW5kZXgs
ICoqKnRocm93KioqIikoKTsKCmNyZWF0ZVRlc3RXaXRoRXhlY09yZGVyVGVzdCgibm9uVGhyb3dp
bmdJbmRleEJhc2VbdGhyb3dpbmdJbmRleF0iLCAibm9uVGhyb3dpbmdJbmRleEJhc2UsIHRocm93
aW5nSW5kZXgsICoqKnRocm93KioqIikoKTsKCmNyZWF0ZVRlc3RXaXRoRXhlY09yZGVyVGVzdCgi
dGhyb3dpbmdJbmRleEJhc2Vbbm9uVGhyb3dpbmdJbmRleE5vVGhyb3dQcm9wZXJ0eV0iLCAidGhy
b3dpbmdJbmRleEJhc2UsICoqKnRocm93KioqIikoKTsKCmNyZWF0ZVRlc3RXaXRoRXhlY09yZGVy
VGVzdCgidGhyb3dpbmdJbmRleEJhc2Vbbm9uVGhyb3dpbmdJbmRleFRocm93UHJvcGVydHldIiwg
InRocm93aW5nSW5kZXhCYXNlLCAqKip0aHJvdyoqKiIpKCk7CgpjcmVhdGVUZXN0V2l0aEV4ZWNP
cmRlclRlc3QoInRocm93aW5nSW5kZXhCYXNlW3Rocm93aW5nSW5kZXhdIiwgInRocm93aW5nSW5k
ZXhCYXNlLCAqKip0aHJvdyoqKiIpKCk7CgpjcmVhdGVUZXN0V2l0aEV4ZWNPcmRlclRlc3QoIm5v
blRocm93aW5nSW5kZXhCYXNlW25vblRocm93aW5nSW5kZXhOb1Rocm93UHJvcGVydHldID0gMSIs
ICJub25UaHJvd2luZ0luZGV4QmFzZSwgbm9uVGhyb3dpbmdJbmRleE5vVGhyb3dQcm9wZXJ0eSwg
c2V0IG5vblRocm93aW5nVGVzdEluZGV4LCAiKSgpOwoKY3JlYXRlVGVzdFdpdGhFeGVjT3JkZXJU
ZXN0KCJub25UaHJvd2luZ0luZGV4QmFzZVtub25UaHJvd2luZ0luZGV4VGhyb3dQcm9wZXJ0eV0g
PSAxIiwgIm5vblRocm93aW5nSW5kZXhCYXNlLCBub25UaHJvd2luZ0luZGV4VGhyb3dQcm9wZXJ0
eSwgc2V0IG5vblRocm93aW5nVGVzdEluZGV4LCAqKip0aHJvdyoqKiIpKCk7CgpjcmVhdGVUZXN0
V2l0aEV4ZWNPcmRlclRlc3QoIm5vblRocm93aW5nSW5kZXhCYXNlW3Rocm93aW5nSW5kZXhdID0g
MSIsICJub25UaHJvd2luZ0luZGV4QmFzZSwgdGhyb3dpbmdJbmRleCwgKioqdGhyb3cqKioiKSgp
OwoKY3JlYXRlVGVzdFdpdGhFeGVjT3JkZXJUZXN0KCJ0aHJvd2luZ0luZGV4QmFzZVtub25UaHJv
d2luZ0luZGV4Tm9UaHJvd1Byb3BlcnR5XSA9IDEiLCAidGhyb3dpbmdJbmRleEJhc2UsICoqKnRo
cm93KioqIikoKTsKCmNyZWF0ZVRlc3RXaXRoRXhlY09yZGVyVGVzdCgidGhyb3dpbmdJbmRleEJh
c2Vbbm9uVGhyb3dpbmdJbmRleFRocm93UHJvcGVydHldID0gMSIsICJ0aHJvd2luZ0luZGV4QmFz
ZSwgKioqdGhyb3cqKioiKSgpOwoKY3JlYXRlVGVzdFdpdGhFeGVjT3JkZXJUZXN0KCJ0aHJvd2lu
Z0luZGV4QmFzZVt0aHJvd2luZ0luZGV4XSA9IDEiLCAidGhyb3dpbmdJbmRleEJhc2UsICoqKnRo
cm93KioqIikoKTsKCgpsb2coIlBhc3NlZCAiICsgcGFzc0NvdW50ICsgIiBvZiAiICsgdGVzdENv
dW50ICsgIiB0ZXN0cy4iKTsKLy88L3NjcmlwdD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21105</attachid>
            <date>2008-05-13 01:33:51 -0700</date>
            <delta_ts>2008-05-13 01:33:51 -0700</delta_ts>
            <desc>Even more coverage</desc>
            <filename>test_throw.html</filename>
            <type>text/html</type>
            <size>10281</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">LypUZXN0IGV4Y2VwdGlvbiBoYW5kbGluZyB3aXRoIHZhcmlvdXMgYXJpdGhtZXRpYyBhbmQgbG9n
aWMgb3BlcmF0b3JzLCBpdCBjaGVja3MgdGhlIGZvbGxvd2luZyB0aGluZ3M6PGJyLz4KPHVsPgog
ICAgPGxpPkluIGFzc2lnbm1lbnQgZXhwcmVzc2lvbnMgdGhlIGxlZnRoYW5kIHNpZGUgaXMgbm90
IG1vZGlmaWVkIGlmIHRoZSByaWdodCBoYW5kIHNpZGUgdGhyb3dzPC9saT4KICAgIDxsaT5JZiB0
aGUgbGVmdCBoYW5kIHNpZGUgb2YgYSBiaW5hcnkgb3BlcmF0b3IgdGhyb3dzIHRoZW4gdGhlIHJp
Z2h0IGhhbmQgc2hvdWxkIG5vdCBiZSBleGVjdXRlZDwvbGk+CiAgICA8bGk+SWYgdmFsdWVPZi90
b1N0cmluZyB0aHJvd3MgaW4gdGhlIGxlZnQgaGFuZCBleHByZXNzaW9uIG9mIGEgYmlub3AgaXQg
ZG9lcyBub3QgcHJldmVudCBldmFsdWF0aW9uIG9mIHRoZSByaWdodCBoYW5kIGV4cHJlc3Npb24s
IGJ1dCBkb2VzIHByZXZlbnQgZXZhbHVhdGlvbiBvZiB0b1N0cmluZy92YWx1ZU9mIG9uIHRoZSBy
aHMuPC9saT4KPC91bD4KPGRpdiBpZD0ibG9nIj48L2Rpdj4KKi88c2NyaXB0PgppZiAodGhpcy5k
b2N1bWVudCkgewogICAgbG9nID0gZnVuY3Rpb24obXNnKSB7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImxvZyIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyIC8+Ijt9OwogICAgZmFpbCA9IGZ1bmN0
aW9uKG1zZykge2xvZygiPHNwYW4gc3R5bGU9J2NvbG9yOiByZWQnPkZBSUw6IDwvc3Bhbj4iICsg
bXNnKSB9OwogICAgcGFzcyA9IGZ1bmN0aW9uKG1zZykgeyBwYXNzQ291bnQrKzsgbG9nKCI8c3Bh
biBzdHlsZT0nY29sb3I6IGdyZWVuJz5QQVNTOiA8L3NwYW4+IiArIG1zZykgfTsKfSBlbHNlIHsK
ICAgIGxvZyA9IHByaW50OwogICAgZmFpbCA9IGZ1bmN0aW9uKG1zZykge2xvZygiRkFJTDogIiAr
IG1zZykgfTsKICAgIHBhc3MgPSBmdW5jdGlvbihtc2cpIHsgcGFzc0NvdW50Kys7IGxvZygiUEFT
UzogIiArIG1zZyk7IH07Cn0KCnZhciB1bmFyeU9wcyA9IFsnficsICcrJywgJy0nXTsKdmFyIGJp
bmFyeU9wcyA9IFsnLScsICcrJywgJyonLCAnLycsICclJywgJ3wnLCAnJicsICdeJywgJzwnLCAn
PD0nLCAnPj0nLCAnPicsICc9PScsICchPScsICc8PCcsICc+PiddOwoKdmFyIHZhbHVlT2ZUaHJv
d2VyID0geyB2YWx1ZU9mOiBmdW5jdGlvbigpIHsgdGhyb3cgInRocm93IGZyb20gdmFsdWVPZiI7
IH0gfQp2YXIgdG9TdHJpbmdUaHJvd2VyID0geyB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHRocm93
ICJ0aHJvdyBmcm9tIHRvU3RyaW5nIjsgfSB9CnZhciB0ZXN0Q291bnQgPSAwOwp2YXIgcGFzc0Nv
dW50ID0gMDsKZnVuY3Rpb24gY3JlYXRlVGVzdChleHByKSB7CiAgICAvLyBUaGlzIGNyZWF0ZXMg
YSB0ZXN0IGNhc2UgdGhhdCBlbnN1cmVzIHRoYXQgYSBiaW5hcnkgb3BlcmFuZCB3aWxsIGV4ZWN1
dGUgdGhlIGxlZnQgaGFuZCBleHByZXNzaW9uIGZpcnN0LAogICAgLy8gYW5kIHdpbGwgbm90IGV4
ZWN1dGUgdGhlIHJpZ2h0IGhhbmQgc2lkZSBpZiB0aGUgbGVmdCBoYW5kIHNpZGUgdGhyb3dzLgog
ICAgdmFyIGZ1bmN0aW9uUHJlZml4ID0gIihmdW5jdGlvbigpeyBleGVjdXRlZFJIUyA9IGZhbHNl
OyB2YXIgcmVzdWx0ID0gJ1BBU1MnOyB0cnkgeyByZXN1bHQgPSAiOwogICAgdmFyIGZ1bmN0aW9u
UG9zdGZpeCA9ICI7IGZhaWwoJ0RpZCBub3QgdGhyb3cgZXhjZXB0aW9uIHdpdGggXCInICsgZXhw
ciArICdcIicpIH0gY2F0Y2ggKGUpIHsgIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiBp
ZiAocmVzdWx0ICE9ICdQQVNTJyAmJiBleGVjdXRlZFJIUykgeyBmYWlsKCdcIicrZXhwcisnXCIg
dGhyZXcgZXhjZXB0aW9uLCBidXQgbW9kaWZpZWQgYXNzaWdubWVudCB0YXJnZXQgYW5kIGV4ZWN1
dGVkIFJIUycpOyAiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiIH0gZWxzZSBpZiAocmVz
dWx0ICE9ICdQQVNTJykgeyBmYWlsKCdcIicrZXhwcisnXCIgdGhyZXcgZXhjZXB0aW9uLCBidXQg
bW9kaWZpZWQgYXNzaWdubWVudCB0YXJnZXQnKTsgIiArCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIiB9IGVsc2UgaWYgKGV4ZWN1dGVkUkhTKSB7IGZhaWwoJ1wiJytleHByKydcIiB0aHJldyBl
eGNlcHRpb24sIGJ1dCBleGVjdXRlZCByaWdodCBoYW5kIGhhbGYgb2YgZXhwcmVzc2lvbicpIiAr
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIiB9IGVsc2UgeyBwYXNzKCdIYW5kbGVkIFwiJysg
ZXhwciArJ1wiIGNvcnJlY3RseS4nKSB9IH0gfSkiOwogICAgdGVzdENvdW50Kys7CiAgICB0cnkg
ewogICAgICAgIHJldHVybiBldmFsKGZ1bmN0aW9uUHJlZml4ICsgZXhwciArIGZ1bmN0aW9uUG9z
dGZpeCk7CiAgICB9IGNhdGNoKGUpIHsKICAgICAgICB0aHJvdyBuZXcgU3RyaW5nKGV4cHIpOwog
ICAgfQp9CgpmdW5jdGlvbiBjcmVhdGVUZXN0V2l0aFJIU0V4ZWMoZXhwcikgewogICAgLy8gVGhp
cyB0ZXN0cyB0aGF0IHdlIGV2YWx1YXRlIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgYSBiaW5hcnkg
ZXhwcmVzc2lvbiBiZWZvcmUgd2UKICAgIC8vIGRvIGFueSB0eXBlIGNvbnZlcnNpb24gd2l0aCB0
b1N0cmluZyBhbmQvb3IgdmFsdWVPZiB3aGljaCBtYXkgdGhyb3cuCiAgICB2YXIgZnVuY3Rpb25Q
cmVmaXggPSAiKGZ1bmN0aW9uKCl7IGV4ZWN1dGVkUkhTID0gZmFsc2U7IHZhciByZXN1bHQgPSAn
UEFTUyc7IHRyeSB7IHJlc3VsdCA9ICI7CiAgICB2YXIgZnVuY3Rpb25Qb3N0Zml4ID0gIjsgZmFp
bCgnRGlkIG5vdCB0aHJvdyBleGNlcHRpb24gd2l0aCBcIicgKyBleHByICsgJ1wiJykgfSBjYXRj
aCAoZSkgeyAiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiIGlmIChyZXN1bHQgIT0gJ1BB
U1MnKSB7IGZhaWwoJ1wiJytleHByKydcIiB0aHJldyBleGNlcHRpb24sIGJ1dCBtb2RpZmllZCBh
c3NpZ25tZW50IHRhcmdldCcpOyAiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiIH0gZWxz
ZSBpZiAoIWV4ZWN1dGVkUkhTKSB7IGZhaWwoJ1wiJytleHByKydcIiB0aHJldyBleGNlcHRpb24s
IGFuZCBmYWlsZWQgdG8gZXhlY3V0ZSBSSFMgd2hlbiBleHBlY3RlZCcpIiArCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIiB9IGVsc2UgeyBwYXNzKCdIYW5kbGVkIFwiJysgZXhwciArJ1wiIGNv
cnJlY3RseS4nKSB9IH0gfSkiOwogICAgdGVzdENvdW50Kys7CiAgICB0cnkgewogICAgICAgIHJl
dHVybiBldmFsKGZ1bmN0aW9uUHJlZml4ICsgZXhwciArIGZ1bmN0aW9uUG9zdGZpeCk7CiAgICB9
IGNhdGNoKGUpIHsKICAgICAgICB0aHJvdyBuZXcgU3RyaW5nKGV4cHIpOwogICAgfQp9CgpfX2Rl
ZmluZUdldHRlcl9fKCd0aHJvd2luZ1Byb3BlcnR5JywgZnVuY3Rpb24oKXsgdGhyb3cgInRocm93
aW5nIHJlc29sdmUiOyB9KTsKCnZhciB0aHJvd2luZ1Byb3BTdHIgPSAndGhyb3dpbmdQcm9wZXJ0
eSc7CnZhciB2YWx1ZU9mVGhyb3dlclN0ciA9ICd2YWx1ZU9mVGhyb3dlcic7CnZhciB0b1N0cmlu
Z1Rocm93ZXJTdHIgPSAndG9TdHJpbmdUaHJvd2VyJzsKdmFyIHRocm93aW5nT2JqR2V0dGVyID0g
Jyh7Z2V0IHRocm93aW5nUHJvcGVydHkoKXsgdGhyb3cgInRocm93aW5nIHByb3BlcnR5IiB9fSku
dGhyb3dpbmdQcm9wZXJ0eSc7CgpjcmVhdGVUZXN0KHRocm93aW5nUHJvcFN0cikoKTsKY3JlYXRl
VGVzdCh0aHJvd2luZ09iakdldHRlcikoKTsKY3JlYXRlVGVzdCgiIXVuZGVmaW5lZFByb3BlcnR5
IikoKTsKCmZvciAodmFyIGkgPSAwOyBpIDwgdW5hcnlPcHMubGVuZ3RoOyBpKyspIHsKICAgIGNy
ZWF0ZVRlc3QodW5hcnlPcHNbaV0rdmFsdWVPZlRocm93ZXJTdHIpKCk7CiAgICBjcmVhdGVUZXN0
KHVuYXJ5T3BzW2ldK3RvU3RyaW5nVGhyb3dlclN0cikoKTsKICAgIGNyZWF0ZVRlc3QodW5hcnlP
cHNbaV0rdGhyb3dpbmdQcm9wU3RyKSgpOwogICAgY3JlYXRlVGVzdCh1bmFyeU9wc1tpXSt0aHJv
d2luZ09iakdldHRlcikoKTsKfQpyaHNOb25aZXJvTnVtID0geyB2YWx1ZU9mOiBmdW5jdGlvbigp
eyBleGVjdXRlZFJIUyA9IHRydWU7IHJldHVybiAxOyB9IH07CnJoc1plcm9OdW0gPSB7IHZhbHVl
T2Y6IGZ1bmN0aW9uKCl7IGV4ZWN1dGVkUkhTID0gdHJ1ZTsgcmV0dXJuIDA7IH0gfTsKcmhzVG9T
dHJpbmdUaHJvd2VyID0geyB0b1N0cmluZzogZnVuY3Rpb24oKXsgZXhlY3V0ZWRSSFMgPSB0cnVl
OyByZXR1cm4gJ3N0cmluZyc7IH19OwpnZXR0ZXJUaHJvd2VyID0geyBnZXQgdmFsdWUoKSB7IHRo
cm93ICJ0aHJvd2luZyBpbiBnZXR0ZXIiOyB9fTsKdmFyIGdldHRlclRocm93ZXJTdHIgPSAiZ2V0
dGVyVGhyb3dlci52YWx1ZSI7CnJoc0dldHRlclRlc3RlciA9IHsgZ2V0IHZhbHVlKCkgeyBleGVj
dXRlZFJIUyA9IHRydWU7IHJldHVybiAnc3RyaW5nJzsgfX07CnZhciByaHNHZXR0ZXJUZXN0ZXJT
dHIgPSAicmhzR2V0dGVyVGVzdGVyLnZhbHVlIjsKCmZvciAodmFyIGkgPSAwOyBpIDwgYmluYXJ5
T3BzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgbnVtVmFsID0gYmluYXJ5T3BzW2ldID09ICd8fCcg
PyAnMCcgOiAnMSc7CiAgICBjcmVhdGVUZXN0KG51bVZhbCArICIgIiArIGJpbmFyeU9wc1tpXSAr
ICIgIiArIHZhbHVlT2ZUaHJvd2VyU3RyICkoKTsKICAgIGNyZWF0ZVRlc3QobnVtVmFsICsgIiAi
ICsgYmluYXJ5T3BzW2ldICsgIiAiICsgdG9TdHJpbmdUaHJvd2VyU3RyKSgpOwogICAgY3JlYXRl
VGVzdChudW1WYWwgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyB0aHJvd2luZ1Byb3BTdHIg
ICApKCk7CiAgICBjcmVhdGVUZXN0KG51bVZhbCArICIgIiArIGJpbmFyeU9wc1tpXSArICIgIiAr
IHRocm93aW5nT2JqR2V0dGVyICkoKTsKICAgIGNyZWF0ZVRlc3QobnVtVmFsICsgIiAiICsgYmlu
YXJ5T3BzW2ldICsgIiAiICsgZ2V0dGVyVGhyb3dlclN0ciApKCk7CgogICAgY3JlYXRlVGVzdCgi
J3N0cmluZycgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIHZhbHVlT2ZUaHJvd2VyU3RyICkoKTsK
ICAgIGNyZWF0ZVRlc3QoIidzdHJpbmcnICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyB0b1N0cmlu
Z1Rocm93ZXJTdHIpKCk7CiAgICBjcmVhdGVUZXN0KCInc3RyaW5nJyAiICsgYmluYXJ5T3BzW2ld
ICsgIiAiICsgdGhyb3dpbmdQcm9wU3RyICAgKSgpOwogICAgY3JlYXRlVGVzdCgiJ3N0cmluZycg
IiArIGJpbmFyeU9wc1tpXSArICIgIiArIHRocm93aW5nT2JqR2V0dGVyICkoKTsKICAgIGNyZWF0
ZVRlc3QoIidzdHJpbmcnICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyBnZXR0ZXJUaHJvd2VyU3Ry
ICkoKTsKICAgIAogICAgbnVtVmFsID0gYmluYXJ5T3BzW2ldID09ICd8fCcgPyAncmhzWmVyb051
bScgOiAncmhzTm9uWmVyb051bSc7CiAgICBjcmVhdGVUZXN0KHZhbHVlT2ZUaHJvd2VyU3RyICAr
ICIgIiArIGJpbmFyeU9wc1tpXSArICIgIiArIG51bVZhbCkoKTsKICAgIGNyZWF0ZVRlc3QodG9T
dHJpbmdUaHJvd2VyU3RyICsgIiAiICsgYmluYXJ5T3BzW2ldICsgIiAiICsgbnVtVmFsKSgpOwog
ICAgY3JlYXRlVGVzdCh0aHJvd2luZ1Byb3BTdHIgICAgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAi
ICIgKyBudW1WYWwpKCk7CiAgICBjcmVhdGVUZXN0KHRocm93aW5nT2JqR2V0dGVyICArICIgIiAr
IGJpbmFyeU9wc1tpXSArICIgIiArIG51bVZhbCkoKTsKICAgIGNyZWF0ZVRlc3QoZ2V0dGVyVGhy
b3dlclN0ciAgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiICIgKyBudW1WYWwpKCk7CiAgICBjcmVh
dGVUZXN0KHZhbHVlT2ZUaHJvd2VyU3RyICArICIgIiArIGJpbmFyeU9wc1tpXSArICIgcmhzVG9T
dHJpbmdUaHJvd2VyIikoKTsKICAgIGNyZWF0ZVRlc3QodG9TdHJpbmdUaHJvd2VyU3RyICsgIiAi
ICsgYmluYXJ5T3BzW2ldICsgIiByaHNUb1N0cmluZ1Rocm93ZXIiKSgpOwogICAgY3JlYXRlVGVz
dCh0aHJvd2luZ1Byb3BTdHIgICAgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiIHJoc1RvU3RyaW5n
VGhyb3dlciIpKCk7CiAgICBjcmVhdGVUZXN0KHRocm93aW5nT2JqR2V0dGVyICArICIgIiArIGJp
bmFyeU9wc1tpXSArICIgcmhzVG9TdHJpbmdUaHJvd2VyIikoKTsKICAgIGNyZWF0ZVRlc3QoZ2V0
dGVyVGhyb3dlclN0ciAgKyAiICIgKyBiaW5hcnlPcHNbaV0gKyAiIHJoc1RvU3RyaW5nVGhyb3dl
ciIpKCk7CiAgICBjcmVhdGVUZXN0V2l0aFJIU0V4ZWModmFsdWVPZlRocm93ZXJTdHIgICsgIiAi
ICsgYmluYXJ5T3BzW2ldICsgIiAiICsgcmhzR2V0dGVyVGVzdGVyU3RyKSgpOwogICAgY3JlYXRl
VGVzdFdpdGhSSFNFeGVjKHRvU3RyaW5nVGhyb3dlclN0ciArICIgIiArIGJpbmFyeU9wc1tpXSAr
ICIgIiArIHJoc0dldHRlclRlc3RlclN0cikoKTsKCn0KCnZhciBleGVjdXRpb25PcmRlciA9ICIi
OwpfX2RlZmluZUdldHRlcl9fKCJub25UaHJvd2luZ0luZGV4QmFzZSIsIGZ1bmN0aW9uKCl7IAog
ICAgZXhlY3V0aW9uT3JkZXIgKz0gIm5vblRocm93aW5nSW5kZXhCYXNlLCAiOyAKICAgIHJldHVy
biB7CiAgICAgICAgZ2V0IG5vblRocm93aW5nVGVzdEluZGV4KCl7IGV4ZWN1dGlvbk9yZGVyICs9
ICJnZXQgbm9uVGhyb3dpbmdUZXN0SW5kZXgsICI7IHJldHVybiB1bmRlZmluZWQ7IH0sCiAgICAg
ICAgZ2V0IHRocm93aW5nVGVzdEluZGV4KCl7IGV4ZWN1dGlvbk9yZGVyICs9ICJnZXQgbm9uVGhy
b3dpbmdUZXN0SW5kZXgsICI7IHRocm93IHt9OyByZXR1cm4gdW5kZWZpbmVkOyB9LAogICAgICAg
IHNldCBub25UaHJvd2luZ1Rlc3RJbmRleCgpeyBleGVjdXRpb25PcmRlciArPSAic2V0IG5vblRo
cm93aW5nVGVzdEluZGV4LCAiOyByZXR1cm4gdW5kZWZpbmVkOyB9LAogICAgICAgIHNldCB0aHJv
d2luZ1Rlc3RJbmRleCgpeyBleGVjdXRpb25PcmRlciArPSAic2V0IG5vblRocm93aW5nVGVzdElu
ZGV4LCAiOyB0aHJvdyB7fTsgcmV0dXJuIHVuZGVmaW5lZDsgfQogICAgfQogIH0pOwpfX2RlZmlu
ZUdldHRlcl9fKCJ0aHJvd2luZ0luZGV4QmFzZSIsIGZ1bmN0aW9uKCl7IAogICAgZXhlY3V0aW9u
T3JkZXIgKz0gInRocm93aW5nSW5kZXhCYXNlLCAiOyAKICAgIHRocm93IHt9OwogIH0pOwoKX19k
ZWZpbmVHZXR0ZXJfXygibm9uVGhyb3dpbmdJbmRleE5vVGhyb3dQcm9wZXJ0eSIsIGZ1bmN0aW9u
KCl7CiAgICByZXR1cm4gewogICAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtleGVjdXRpb25P
cmRlciArPSAibm9uVGhyb3dpbmdJbmRleE5vVGhyb3dQcm9wZXJ0eSwgIjsgcmV0dXJuICJub25U
aHJvd2luZ1Rlc3RJbmRleCI7IH0KICAgIH0KfSk7CgpfX2RlZmluZUdldHRlcl9fKCJub25UaHJv
d2luZ0luZGV4VGhyb3dQcm9wZXJ0eSIsIGZ1bmN0aW9uKCl7IAogICAgcmV0dXJuIHsKICAgICAg
ICB0b1N0cmluZzogZnVuY3Rpb24oKSB7ZXhlY3V0aW9uT3JkZXIgKz0gIm5vblRocm93aW5nSW5k
ZXhUaHJvd1Byb3BlcnR5LCAiOyByZXR1cm4gInRocm93aW5nVGVzdEluZGV4IjsgfQogICAgfQp9
KTsKCl9fZGVmaW5lR2V0dGVyX18oInRocm93aW5nSW5kZXgiLCBmdW5jdGlvbigpewogICAgcmV0
dXJuIHsKICAgICAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7ZXhlY3V0aW9uT3JkZXIgKz0gInRo
cm93aW5nSW5kZXgsICI7IHRocm93IHt9O30KICAgIH0KfSk7CgpfX2RlZmluZUdldHRlcl9fKCJ2
YWx1ZUZvckFzc2lnbm1lbnQiLCBmdW5jdGlvbigpeyBleGVjdXRpb25PcmRlciArPSAidmFsdWVG
b3JBc3NpZ25tZW50LCAiOyByZXR1cm4gMTsgfSkKCmZ1bmN0aW9uIGNyZWF0ZVRlc3RXaXRoRXhl
Y09yZGVyVGVzdChleHByLCBleHBlY3RlZCkgewogICAgLy8gVGhpcyB0ZXN0cyB0aGF0IHdlIGV2
YWx1YXRlIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgYSBiaW5hcnkgZXhwcmVzc2lvbiBiZWZvcmUg
d2UKICAgIC8vIGRvIGFueSB0eXBlIGNvbnZlcnNpb24gd2l0aCB0b1N0cmluZyBhbmQvb3IgdmFs
dWVPZiB3aGljaCBtYXkgdGhyb3cuCiAgICB2YXIgZnVuY3Rpb25QcmVmaXggPSAiKGZ1bmN0aW9u
KCl7IGV4ZWN1dGlvbk9yZGVyID0gJyc7IHZhciByZXN1bHQgPSAnUEFTUyc7IHRyeSB7IHJlc3Vs
dCA9ICI7CiAgICB2YXIgZnVuY3Rpb25Qb3N0Zml4ID0gIjsgfSBjYXRjaCAoZSkgeyBleGVjdXRp
b25PcmRlciArPSAgJyoqKnRocm93KioqJzsgfSBpZiAoZXhlY3V0aW9uT3JkZXIgPT0gZXhwZWN0
ZWQpIHBhc3MoZXhwcik7IGVsc2UgIiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgImZhaWwo
ZXhwciArICcgZXhlY3V0ZWQgYXM6IDxici8+JyArIGV4ZWN1dGlvbk9yZGVyICsgJzxici8+ZXhw
ZWN0ZWQ6ICcrZXhlY3V0aW9uT3JkZXIpOyB9KSI7CiAgICB0ZXN0Q291bnQrKzsKICAgIHRyeSB7
CiAgICAgICAgcmV0dXJuIGV2YWwoZnVuY3Rpb25QcmVmaXggKyBleHByICsgZnVuY3Rpb25Qb3N0
Zml4KTsKICAgIH0gY2F0Y2goZSkgewogICAgICAgIHRocm93IG5ldyBTdHJpbmcoZXhwcik7CiAg
ICB9Cn0KCmNyZWF0ZVRlc3RXaXRoRXhlY09yZGVyVGVzdCgibm9uVGhyb3dpbmdJbmRleEJhc2Vb
bm9uVGhyb3dpbmdJbmRleE5vVGhyb3dQcm9wZXJ0eV0iLCAibm9uVGhyb3dpbmdJbmRleEJhc2Us
IG5vblRocm93aW5nSW5kZXhOb1Rocm93UHJvcGVydHksIGdldCBub25UaHJvd2luZ1Rlc3RJbmRl
eCwgIikoKTsKCmNyZWF0ZVRlc3RXaXRoRXhlY09yZGVyVGVzdCgibm9uVGhyb3dpbmdJbmRleEJh
c2Vbbm9uVGhyb3dpbmdJbmRleFRocm93UHJvcGVydHldIiwgIm5vblRocm93aW5nSW5kZXhCYXNl
LCBub25UaHJvd2luZ0luZGV4VGhyb3dQcm9wZXJ0eSwgZ2V0IG5vblRocm93aW5nVGVzdEluZGV4
LCAqKip0aHJvdyoqKiIpKCk7CgpjcmVhdGVUZXN0V2l0aEV4ZWNPcmRlclRlc3QoIm5vblRocm93
aW5nSW5kZXhCYXNlW3Rocm93aW5nSW5kZXhdIiwgIm5vblRocm93aW5nSW5kZXhCYXNlLCB0aHJv
d2luZ0luZGV4LCAqKip0aHJvdyoqKiIpKCk7CgpjcmVhdGVUZXN0V2l0aEV4ZWNPcmRlclRlc3Qo
InRocm93aW5nSW5kZXhCYXNlW25vblRocm93aW5nSW5kZXhOb1Rocm93UHJvcGVydHldIiwgInRo
cm93aW5nSW5kZXhCYXNlLCAqKip0aHJvdyoqKiIpKCk7CgpjcmVhdGVUZXN0V2l0aEV4ZWNPcmRl
clRlc3QoInRocm93aW5nSW5kZXhCYXNlW25vblRocm93aW5nSW5kZXhUaHJvd1Byb3BlcnR5XSIs
ICJ0aHJvd2luZ0luZGV4QmFzZSwgKioqdGhyb3cqKioiKSgpOwoKY3JlYXRlVGVzdFdpdGhFeGVj
T3JkZXJUZXN0KCJ0aHJvd2luZ0luZGV4QmFzZVt0aHJvd2luZ0luZGV4XSIsICJ0aHJvd2luZ0lu
ZGV4QmFzZSwgKioqdGhyb3cqKioiKSgpOwoKY3JlYXRlVGVzdFdpdGhFeGVjT3JkZXJUZXN0KCJu
b25UaHJvd2luZ0luZGV4QmFzZVtub25UaHJvd2luZ0luZGV4Tm9UaHJvd1Byb3BlcnR5XSA9IHZh
bHVlRm9yQXNzaWdubWVudCIsICJub25UaHJvd2luZ0luZGV4QmFzZSwgdmFsdWVGb3JBc3NpZ25t
ZW50LCBub25UaHJvd2luZ0luZGV4Tm9UaHJvd1Byb3BlcnR5LCBzZXQgbm9uVGhyb3dpbmdUZXN0
SW5kZXgsICIpKCk7CgpjcmVhdGVUZXN0V2l0aEV4ZWNPcmRlclRlc3QoIm5vblRocm93aW5nSW5k
ZXhCYXNlW25vblRocm93aW5nSW5kZXhUaHJvd1Byb3BlcnR5XSA9IHZhbHVlRm9yQXNzaWdubWVu
dCIsICJub25UaHJvd2luZ0luZGV4QmFzZSwgdmFsdWVGb3JBc3NpZ25tZW50LCBub25UaHJvd2lu
Z0luZGV4VGhyb3dQcm9wZXJ0eSwgc2V0IG5vblRocm93aW5nVGVzdEluZGV4LCAqKip0aHJvdyoq
KiIpKCk7CgpjcmVhdGVUZXN0V2l0aEV4ZWNPcmRlclRlc3QoIm5vblRocm93aW5nSW5kZXhCYXNl
W3Rocm93aW5nSW5kZXhdID0gdmFsdWVGb3JBc3NpZ25tZW50IiwgIm5vblRocm93aW5nSW5kZXhC
YXNlLCB2YWx1ZUZvckFzc2lnbm1lbnQsIHRocm93aW5nSW5kZXgsICoqKnRocm93KioqIikoKTsK
CmNyZWF0ZVRlc3RXaXRoRXhlY09yZGVyVGVzdCgidGhyb3dpbmdJbmRleEJhc2Vbbm9uVGhyb3dp
bmdJbmRleE5vVGhyb3dQcm9wZXJ0eV0gPSB2YWx1ZUZvckFzc2lnbm1lbnQiLCAidGhyb3dpbmdJ
bmRleEJhc2UsICoqKnRocm93KioqIikoKTsKCmNyZWF0ZVRlc3RXaXRoRXhlY09yZGVyVGVzdCgi
dGhyb3dpbmdJbmRleEJhc2Vbbm9uVGhyb3dpbmdJbmRleFRocm93UHJvcGVydHldID0gdmFsdWVG
b3JBc3NpZ25tZW50IiwgInRocm93aW5nSW5kZXhCYXNlLCAqKip0aHJvdyoqKiIpKCk7CgpjcmVh
dGVUZXN0V2l0aEV4ZWNPcmRlclRlc3QoInRocm93aW5nSW5kZXhCYXNlW3Rocm93aW5nSW5kZXhd
ID0gdmFsdWVGb3JBc3NpZ25tZW50IiwgInRocm93aW5nSW5kZXhCYXNlLCAqKip0aHJvdyoqKiIp
KCk7CgoKbG9nKCJQYXNzZWQgIiArIHBhc3NDb3VudCArICIgb2YgIiArIHRlc3RDb3VudCArICIg
dGVzdHMuIik7Ci8vPC9zY3JpcHQ+
</data>

          </attachment>
      

    </bug>

</bugzilla>