<?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>77854</bug_id>
          
          <creation_ts>2012-02-05 23:11:45 -0800</creation_ts>
          <short_desc>XMLHttpRequest status &amp; statusText should be 0 &amp; &quot;&quot; following an abort()</short_desc>
          <delta_ts>2014-03-18 08:25:13 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>45994</dup_id>
          
          <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>0</everconfirmed>
          <reporter name="Mark Toller">mark.toller</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>dglazkov</cc>
    
    <cc>d-r</cc>
    
    <cc>jarred</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>549753</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2012-02-05 23:11:45 -0800</bug_when>
    <thetext>Apologies if this isn&apos;t on the correct component...

Here&apos;s the scenario:

A page creates an XMLHttpRequest for a file (there is a global variable &apos;req&apos; which is set to the XMLHttpRequest).  The onreadystatechange handler contains the following code:

 function() {
        if (req.readyState !== 4 || req.status !== 200) {
            return;
        }
        var txt = req.responseText;
        req.onreadystatechange = null;
        configreq = null;
        eval(&apos;(&apos; + txt + &apos;)&apos;);
    };

There is also a plugin (NPAPI) running, which has a javascript function property &apos;onChannelChangeSucceeded&apos;. This is set to the following code:

function() {
    if (req) {
        req.abort();
        req.onreadystatechange = null;
        req = false;
    }
}

It seems that the plugin onChannelChangeSucceeded can be called and execute the &apos;abort()&apos; method whilst the onreadystatechange is being processed... i.e. the XMLHttpRequest completes, and starts processing the onreadstatechange handler, this passes the if(readyState || status) statement, but before the responseText is read into &apos;txt&apos;, the plugin onChannelChangeSucceeded is called, and this resets the XMLHttpRequest by calling &apos;abort()&apos;.  The result is that the reponseText is then empty when read in the onreadystatechange handler.

I wouldn&apos;t expect the contents of the XMLHttpRequest to be changed *during* the execution of the onreadystatechange handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550317</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-06 14:59:00 -0800</bug_when>
    <thetext>I also wouldn&apos;t expect that.

Do you have a test case that you could share?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550779</commentid>
    <comment_count>2</comment_count>
      <attachid>125801</attachid>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2012-02-07 03:24:48 -0800</bug_when>
    <thetext>Created attachment 125801
HTML file to generate this bug using just XMLHttpRequest.

This HTML page (can be served as XHTML as well) will generate the bug on my setup, using ONLY XmlHttpRequests (no plugin required).
The file &apos;test.txt&apos; this page retrieves simply contains the text &quot;Bug 77854&quot;.
I ran this test on an Ubuntu Linux server running webkit-gtk (build 97042, a bit old I know), accessing an apache server on the same machine.

This test doesn&apos;t fail for Safari, Firefox, I.E. or Chrome (either from the Ubuntu server in the case of Chrome, or another PC for the others).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550991</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-07 08:08:16 -0800</bug_when>
    <thetext>Thank you. Sounds like Gtk folks should take a look first then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744182</commentid>
    <comment_count>4</comment_count>
      <attachid>169165</attachid>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2012-10-17 05:24:46 -0700</bug_when>
    <thetext>Created attachment 169165
Updated test to simply reproduce the problem.

Simple page to reproduce the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744183</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2012-10-17 05:25:43 -0700</bug_when>
    <thetext>Now I&apos;ve had some time to actually debug this issue, it appears it is a duplicate of 54162 - or at least one portion (status and statusText) of 54162.

If the abort() occurs following HEADERS_RECEIVED, the status is set to 200, and then the state is changed to &apos;DONE&apos;, which makes the code successfully pass

if (req.readyState !== 4 || req.status !== 200) {
    return
}

passing this code expects the responseText to be available and correct, but it isn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744194</commentid>
    <comment_count>6</comment_count>
      <attachid>169167</attachid>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2012-10-17 05:50:26 -0700</bug_when>
    <thetext>Created attachment 169167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744203</commentid>
    <comment_count>7</comment_count>
      <attachid>169167</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-17 06:12:59 -0700</bug_when>
    <thetext>Comment on attachment 169167
Patch

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

New failing tests:
http/tests/xmlhttprequest/status-after-abort.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744276</commentid>
    <comment_count>8</comment_count>
      <attachid>169167</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 08:48:33 -0700</bug_when>
    <thetext>Comment on attachment 169167
Patch

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

New failing tests:
http/tests/xmlhttprequest/status-after-abort.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744277</commentid>
    <comment_count>9</comment_count>
      <attachid>169167</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-17 08:49:31 -0700</bug_when>
    <thetext>Comment on attachment 169167
Patch

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

r- for lack of ChangeLog, test cases, and for broken regression test.

I do not understand how this Gtk-only bug has come to modify cross-platform behavior. Could you please explain that in more detail?

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:1024
&gt; +    // From the http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute:
&gt; +    // If the error flag is set, return 0 and terminate these steps.

This comment is not very helpful. It just describes what the code below does, and provides a link to XHR spec.

First, anyone working on this code would know where the spec is anyway. But also, matching an ancient version of the spec will not be relevant five years from now. We make such behavior decisions based on multiple factors, including spec compliance, and our own compatibility testing. The desired behavior is captured in regression tests, not in code comments, unless there is something exceptionally interesting to say.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745198</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2012-10-18 06:17:58 -0700</bug_when>
    <thetext>When I first reported this bug, it was from a &apos;user&apos; point of view, and I could only reproduce on GTK.  Now I&apos;ve had a chance to actually debug it, I&apos;ve found the real cause, which is common to all platforms, I&apos;ve updated the test and can now reproduce on all platforms.

I&apos;ve also changed the title to reflect the actual problem.

The failing testcase (http/tests/xmlhttprequest/status-after-abort.html) was created in http://trac.webkit.org/changeset/30665 5 years ago. At that time the XHR spec did no require the status and statusText to return 0 &amp; &quot;&quot; on error (i.e. after an abort()), and the change was made to align with Firefox behaviour (?) at the time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745211</commentid>
    <comment_count>11</comment_count>
      <attachid>169404</attachid>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2012-10-18 06:30:40 -0700</bug_when>
    <thetext>Created attachment 169404
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746415</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-19 10:18:44 -0700</bug_when>
    <thetext>As you said, this looks like a duplicate of bug 54162. Why did you choose to continue work in a separate patch?

The difficult part in moving it forward is not just implementing what a spec says. We need to make sure that we don&apos;t break sites that users depend on. With over 80% mobile market share belonging to WebKit, any change like this has a big chance of being bad for users and for WebKit, because authors don&apos;t even test with other engines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746523</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2012-10-19 12:19:59 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; As you said, this looks like a duplicate of bug 54162. Why did you choose to continue work in a separate patch?

A number of reasons actually:

1) This is a bug that actually occurred on our device in the field, so it&apos;s a fix we are likely to roll out.
2) It matches the spec, and also the behaviour of Opera re: status and statusText being 0 &amp; &quot;&quot;.
3) Internet Explorer throws (incorrectly I believe) an exception when accessing status or statusText after the abort() 
   in this case (but certainly doesn&apos;t return values prior to the abort() call).
4) The other bug (54162) tries to fix all outstanding issues to match the spec (throwing exceptions, etc), and 
   someone said it might be better to split and fix the issues seperately. As I was fixing this anyway for our SW, it 
   seemed like the sensible option.

&gt; The difficult part in moving it forward is not just implementing what a spec says. We need to make sure that we don&apos;t break sites that users depend on. With over 80% mobile market share belonging to WebKit, any change like this has a big chance of being bad for users and for WebKit, because authors don&apos;t even test with other engines.

I can appreciate that. I&apos;m coming from the view that this was reported to us as a defect. I can&apos;t see the 
use case for being able to check what status and statusText were before an abort() was called (after all, 
the application could check before calling abort()). Following the call to abort(), the data is no longer 
available, and signalling DONE and status == 200 can (and in our case did) cause the application handler to 
behave as if it had succeeded.

How *do* you go about checking that changes like this don&apos;t break sites users depend on?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762941</commentid>
    <comment_count>14</comment_count>
    <who name="Mark Toller">mark.toller</who>
    <bug_when>2012-11-09 06:15:49 -0800</bug_when>
    <thetext>Any further thoughts on this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976983</commentid>
    <comment_count>15</comment_count>
      <attachid>169404</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-05 11:17:11 -0800</bug_when>
    <thetext>Comment on attachment 169404
Patch

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978780</commentid>
    <comment_count>16</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-02-10 00:57:48 -0800</bug_when>
    <thetext>This bug is handled by bug 45994 last patch (which goes a little bit beyond what its bug title says).
Once bug 45994 is closed, this bug should probably be closed as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991671</commentid>
    <comment_count>17</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2014-03-18 08:25:13 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 45994 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>125801</attachid>
            <date>2012-02-07 03:24:48 -0800</date>
            <delta_ts>2012-02-07 03:24:48 -0800</delta_ts>
            <desc>HTML file to generate this bug using just XMLHttpRequest.</desc>
            <filename>index.html</filename>
            <type>application/xhtml+xml</type>
            <size>4736</size>
            <attacher name="Mark Toller">mark.toller</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxodG1sIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KPGhlYWQ+Cjx0aXRsZT5CdWcgNzc4NTQ8L3RpdGxl
Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8vPCFbQ0RBVEFbCi8vIFdpbGwgYmUg
bnVsbCBvciB0aGUgaGFuZGxlIHRvIG91ciBYTUxIdHRwUmVxdWVzdAp2YXIgcmVxID0gbnVsbDsK
Ci8vIENvdW50ZXIgaWRlbnRpZnlpbmcgdGhlIHJlcXVlc3QuCnZhciBjb3VudCA9IDA7CgovLyBU
aGUgaW5mbyBkaXYgaW4gdGhlIEhUTUwgcGFnZS4KdmFyIGluZm87CgovLyBVc2VkIHRvIHN0b3Ag
dGhlIHJlcXVlc3QgcHJvY2Vzc2luZyB3aGVuIHdlJ3ZlIGNhdXNlZCBhIGZhaWx1cmUuCnZhciBm
YWlsZWQgPSBmYWxzZTsKLy8gVXNlZCB0byB2YXJ5IHRoZSBzdGF0ZSAodGltaW5nKSB0byBpbnRl
cnVwdCB0aGUgcmVxdWVzdC4KdmFyIGJyZWFrc3RhdGUgPSAxOwoKLy8gTG9nIHRvIHRoZSBpbmZv
IGRpdiBhbmQgY29uc29sZS4KZnVuY3Rpb24gbG9nKG1zZykgewogICAgY29uc29sZS5sb2cobXNn
KTsKICAgIGluZm8uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnKSk7CiAg
ICBpbmZvLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2JyJykpOwp9CgovLyBK
UyBlbnRyeSBmdW5jdGlvbi4KZnVuY3Rpb24gaW5pdGFwcCgpIHsKICAgIC8vIFNldCBvdXIgJ2lu
Zm8nIG9iamVjdCBmb3IgbG9nZ2luZyBmdW5jdGlvbiBhYm92ZS4KICAgIGluZm8gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaW5mbycpOwoKICAgIC8vIEZpcmUgb2ZmIHRoZSBmaXJzdCBYTUxI
dHRwUmVxdWVzdC4uCiAgICBkb1htbEh0dHAoKTsKCiAgICAvLyBXaXRob3V0IGEgcGx1Z2luLCB0
aGUgZm9sbG93aW5nICptYXkqIGFsc28gY2F1c2UgdGhlIHByb2JsZW0gLSBjcmVhdGUgYSAqZGlm
ZmVyZW50KiBYTUxIdHRwUmVxdWVzdCwgYW5kIHVzZSB0aGUKICAgIC8vIG9ucmVhZHlzdGF0ZWNo
YW5nZSBoYW5kbGVyIG9mIHRoaXMgb25lIHRvIGNhbGwgZG9YbWxIdHRwIHRvIGFib3J0IHRoZSBp
bml0aWFsIG9uZS4KICAgIC8vIEN1cnJlbnRseSBJIGNhbiBvbmx5IHJlcHJvZHVjZSB0aGlzIGlz
c3VlIG9uIHdlYmtpdC1ndGsuCiAgICBkb0ludGVycnVwdFhtbEh0dHAoKTsKfQoKZnVuY3Rpb24g
ZG9JbnRlcnJ1cHRYbWxIdHRwKCkKewogICAgLy8gU3RvcCBpZiB3ZSd2ZSBhbHJlYWR5IGZhaWxl
ZC4KICAgIGlmKGZhaWxlZCkKICAgICAgICByZXR1cm47CgogICAgLy8gQ3JlYXRlIGEgbmV3IFhN
TEh0dHBSZXF1ZXN0IHRvIHRyeSBhbmQgaW50ZXJydXB0IHRoZSBnbG9iYWwgJ3JlcScgWE1MSHR0
cFJlcXVlc3QgYW5kIGNhdXNlIHRoZSBidWcuCiAgICB2YXIgaW50ZXJ1cHQgPSBuZXcgWE1MSHR0
cFJlcXVlc3QoKTsKICAgIGludGVydXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkK
ICAgIHsKICAgICAgICB2YXIgY3VyciA9IGNvdW50OwogICAgICAgIC8vIEl0J3MgYWxsIGFib3V0
IHRoZSB0aW1pbmcsIGJ1dCB0aGlzIGNhdXNlcyB0aGUgcHJvYmxlbSBmb3IgbWUuCiAgICAgICAg
dHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAocmVxICE9IG51bGwgJiYgcmVxLnJlYWR5U3Rh
dGUgIT09IGJyZWFrc3RhdGUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8vIGNhbGxp
bmcgdGhpcyB3aWxsIGFib3J0KCkgdGhlIGN1cnJlbnQgJ3JlcScsIGhvcGVmdWxseSB3aGlsZSBp
dCdzIHByb2Nlc3NpbmcgdGhlIG9ucmVhZHlzdGF0ZWNoYW5nZQogICAgICAgICAgICAgICAgLy8g
aW4gb3JkZXIgdG8gZ2VuZXJhdGUgdGhlIGVycm9yIChpdCB3aWxsIGFsc28gY3JlYXRlIGEgbmV3
IHJlcXVlc3QsIHdoaWNoIHdlIHdpbGwgdHJ5IGFuZCBpbnRlcnJ1cHQKICAgICAgICAgICAgICAg
IC8vIGFnYWluLCB1bnRpbCB3ZSBjYXVzZSB0aGUgZXJyb3IpLgogICAgICAgICAgICAgICAgZG9Y
bWxIdHRwKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZihyZXEgIT0gbnVsbCkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLy9sb2coJ2ludGVydXB0IGZpcmVkIHdoZW4g
cmVxID09ICcgKyByZXEucmVhZHlTdGF0ZSk7CiAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAvL2xvZygnaW50ZXJ1cHQgZmlyZWQgd2hlbiByZXEgPT0gbnVs
bCcpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoKGUpCiAgICAgICAgewog
ICAgICAgICAgICBsb2coZSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoaW50ZXJ1cHQucmVhZHlT
dGF0ZSAhPT0gNCB8fCBpbnRlcnVwdC5zdGF0dXMgIT09IDIwMCkKICAgICAgICB7CiAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIC8vbG9nKCdpbnRlcnVwdCByZXEgY29tcGxl
dGVkJyk7CiAgICAgICAgLy8gQ2xlYXIgdGhpcyBvbmUuCiAgICAgICAgaW50ZXJ1cHQub25yZWFk
eXN0YXRlY2hhbmdlID0gbnVsbDsKCiAgICAgICAgLy8ga2VlcCBpdCBnb2luZy4KICAgICAgICBp
ZihyZXEgPT0gbnVsbCAmJiBjb3VudCA9PSBjdXJyKQogICAgICAgICAgICBkb1htbEh0dHAoKTsK
CiAgICAgICAgLy8gVHJ5IGFnYWluLgogICAgICAgIGRvSW50ZXJydXB0WG1sSHR0cCgpOwogICAg
fQogICAgLy8gRmlyZSB0aGUgYXN5bmNocm9ub3VzIFhNTEh0dHBSZXF1ZXN0CiAgICBpbnRlcnVw
dC5vcGVuKCdHRVQnLCAndGVzdC50eHQnLCB0cnVlKTsKICAgIGludGVydXB0LnNlbmQobnVsbCk7
Cn0KCmZ1bmN0aW9uIGRvWG1sSHR0cCgpCnsKICAgIC8vIFN0b3AgaWYgd2UndmUgY2F1c2VkIHRo
ZSBmYWlsdXJlLgogICAgaWYoZmFpbGVkKQogICAgICAgIHJldHVybjsKCiAgICBpZiAocmVxKQog
ICAgewogICAgICAgIC8vIEFib3J0IGlmIHdlJ3JlIHByb2Nlc3NpbmcgYW4gWE1MSHR0cFJlcXVl
c3QgYWxyZWFkeS4KICAgICAgICAvL2xvZygnSW50ZXJydXB0IHRoZSBYTUxIdHRwUmVxdWVzdCBp
ZCAnICsgcmVxLm91cmlkKTsKICAgICAgICByZXEuYWJvcnQoKTsKICAgICAgICByZXEub25yZWFk
eXN0YXRlY2hhbmdlID0gbnVsbDsKICAgICAgICByZXEgPSBmYWxzZTsKICAgIH0KCiAgICAvLyBD
cmVhdGUgYSBuZXcgcmVxdWVzdC4KICAgIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwogICAg
Y291bnQrKzsKICAgIGJyZWFrc3RhdGUrKzsKICAgIGlmKGJyZWFrc3RhdGUgPT09IDUpCiAgICAg
ICAgYnJlYWtzdGF0ZSA9IDE7CiAgICByZXEub3VyaWQgPSBjb3VudDsKCiAgICB2YXIgbXlyZXEg
PSByZXE7CiAgICBteXJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpCiAgICB7CiAg
ICAgICAgLy9sb2coJ1hNTEh0dHBSZXF1ZXN0IHN0YXRlICcgKyBteXJlcS5yZWFkeVN0YXRlKTsK
ICAgICAgICAvLyBQcm9jZXNzIHRoZSBzdGF0ZSBjaGFuZ2UuCiAgICAgICAgaWYgKG15cmVxLnJl
YWR5U3RhdGUgIT09IDQgfHwgbXlyZXEuc3RhdHVzICE9PSAyMDApCiAgICAgICAgewogICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAvLyBJZiB0aGUgb25DaGFubmVsQ2hhbmdl
U3VjY2VlZGVkIG9jY3VycmVkLCB3ZSdsbCBub3cgZ2V0IGFuIGVtcHR5IHN0cmluZy4KICAgICAg
ICAvL2xvZyhteXJlcS5vdXJpZCArICc6IFhNTEh0dHBSZXF1ZXN0IHN0YXRlIDQgYW5kIHN0YXR1
cyAyMDAsIHJlc3BvbnNlVGV4dDogJyArIG15cmVxLnJlc3BvbnNlVGV4dCk7CiAgICAgICAgdmFy
IHR4dCA9IG15cmVxLnJlc3BvbnNlVGV4dDsKCiAgICAgICAgaWYodHh0ID09PSAiIikKICAgICAg
ICB7CiAgICAgICAgICAgIC8vIFNob3VsZCBub3QgYmUgcG9zc2libGUgdG8gcmVhY2ggdGhpcy4K
ICAgICAgICAgICAgbG9nKCdGQUlMVVJFJyk7CiAgICAgICAgICAgIGxvZygnY291bnQ6ICcgKyBj
b3VudCArICcgc3RhdGU6ICcgKyBteXJlcS5yZWFkeVN0YXRlICsgJywgc3RhdHVzOiAnICsgbXly
ZXEuc3RhdHVzICsgJywgcmVzcG9uc2VUZXh0IFwnJyArIHR4dCArICdcJycpOwogICAgICAgICAg
ICBmYWlsZWQgPSB0cnVlOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIC8v
IENsZWFyIG91ciBvbnJlYWR5c3RhdGVjaGFuZ2UgYW5kIHRoZSBnbG9iYWwgcmVxIGhhbmRsZQog
ICAgICAgIG15cmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7CiAgICAgICAgLy9sb2coJ3N0
YXRlOiAnICsgbXlyZXEucmVhZHlTdGF0ZSArICcsIHN0YXR1czogJyArIG15cmVxLnN0YXR1cyAr
ICcsIHJlc3BvbnNlVGV4dCAnICsgdHh0KTsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAg
ICAgIHJlcSA9IG51bGw7CiAgICAgICAgfQogICAgICAgIGNhdGNoKGUpCiAgICAgICAgewogICAg
ICAgICAgICBsb2coZSk7CiAgICAgICAgfQogICAgfTsKCiAgICAvLyBGaXJlIHRoZSBhc3luY2hy
b25vdXMgWE1MSHR0cFJlcXVlc3QKICAgIG15cmVxLm9wZW4oJ0dFVCcsICd0ZXN0LnR4dCcsIHRy
dWUpOwogICAgbXlyZXEuc2VuZChudWxsKTsKfQoKd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkg
ewogIGluaXRhcHAoKTsKfTsKLy9dXT4KPC9zY3JpcHQ+Cgo8L2hlYWQ+Cjxib2R5IHN0eWxlPSJi
YWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsiPgogICAgPGRpdiBpZD0iaW5mbyIgc3R5bGU9InBvc2l0
aW9uOiBhYnNvbHV0ZTsgbGVmdDogMHB4OyB0b3A6IDIwMHB4Ij48L2Rpdj4KPC9ib2R5Pgo8L2h0
bWw+Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>169165</attachid>
            <date>2012-10-17 05:24:46 -0700</date>
            <delta_ts>2012-10-17 05:24:46 -0700</delta_ts>
            <desc>Updated test to simply reproduce the problem.</desc>
            <filename>index.html</filename>
            <type>application/xhtml+xml</type>
            <size>2096</size>
            <attacher name="Mark Toller">mark.toller</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxodG1sIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KPGhlYWQ+Cjx0aXRsZT5CdWcgNzc4NTQ8L3RpdGxl
Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8vPCFbQ0RBVEFbCgovLyBUaGUgaW5m
byBkaXYgaW4gdGhlIEhUTUwgcGFnZS4KdmFyIGluZm87CgovLyBMb2cgdG8gdGhlIGluZm8gZGl2
IGFuZCBjb25zb2xlLgpmdW5jdGlvbiBsb2cobXNnKSB7CiAgICBjb25zb2xlLmxvZyhtc2cpOwog
ICAgaW5mby5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cpKTsKICAgIGlu
Zm8uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnInKSk7Cn0KCi8vIEpTIGVu
dHJ5IGZ1bmN0aW9uLgpmdW5jdGlvbiBpbml0YXBwKCkgewogICAgLy8gU2V0IG91ciAnaW5mbycg
b2JqZWN0IGZvciBsb2dnaW5nIGZ1bmN0aW9uIGFib3ZlLgogICAgaW5mbyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpbmZvJyk7CgogICAgLy8gRmlyZSBvZmYgdGhlIGZpcnN0IFhNTEh0dHBS
ZXF1ZXN0Li4KICAgIGRvWG1sSHR0cCgpOwp9CgpmdW5jdGlvbiBkb1htbEh0dHAoKQp7CiAgICAv
LyBDcmVhdGUgYSBuZXcgcmVxdWVzdC4KICAgIHZhciBteXJlcSA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOwogICAgbXlyZXEub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKQogICAgewogICAg
ICAgIC8vIFByb2Nlc3MgdGhlIHN0YXRlIGNoYW5nZS4KCiAgICAgICAgLy8gVG8gY2F1c2UgdGhl
IGJ1Zywgd2UgY2FsbCBhYm9ydCgpIGFmdGVyIHJlY2VpdmluZyB0aGUgaGVhZGVycywgdGhpcyBs
ZWF2ZXMgdGhlIHJlc3BvbnNlIGNvZGUgc2V0IHRvIDIwMC9PSwogICAgICAgIC8vIGFuZCB0aGVu
IHdoZW4gdGhlIGFib3J0KCkgcHJvY2VzcyBjaGFuZ2VzIHRvIHRoZSBET05FIHN0YXRlLCB3ZSBw
YXNzIHRocm91Z2ggdGhlIGNoZWNrIGJlbG93LgogICAgICAgIGlmIChteXJlcS5yZWFkeVN0YXRl
ID09PSAyICYmIG15cmVxLnN0YXR1cyA9PT0gMjAwKQogICAgICAgICAgICBteXJlcS5hYm9ydCgp
OwoKICAgICAgICBpZiAobXlyZXEucmVhZHlTdGF0ZSAhPT0gNCB8fCBteXJlcS5zdGF0dXMgIT09
IDIwMCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIC8v
IGxvZyhteXJlcS5vdXJpZCArICc6IFhNTEh0dHBSZXF1ZXN0IHN0YXRlIDQgYW5kIHN0YXR1cyAy
MDAsIHJlc3BvbnNlVGV4dDogJyArIG15cmVxLnJlc3BvbnNlVGV4dCk7CiAgICAgICAgdmFyIHR4
dCA9IG15cmVxLnJlc3BvbnNlVGV4dDsKCiAgICAgICAgaWYodHh0ID09PSAiIikKICAgICAgICB7
CiAgICAgICAgICAgIC8vIFNob3VsZCBub3QgYmUgcG9zc2libGUgdG8gcmVhY2ggdGhpcy4KICAg
ICAgICAgICAgbG9nKCdGQUlMVVJFJyk7CiAgICAgICAgICAgIGxvZygnIHN0YXRlOiAnICsgbXly
ZXEucmVhZHlTdGF0ZSArICcsIHN0YXR1czogJyArIG15cmVxLnN0YXR1cyArICcsIHJlc3BvbnNl
VGV4dCBcJycgKyB0eHQgKyAnXCcnKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAg
ICAgICAvLyBDbGVhciBvdXIgb25yZWFkeXN0YXRlY2hhbmdlLgogICAgICAgIG15cmVxLm9ucmVh
ZHlzdGF0ZWNoYW5nZSA9IG51bGw7CiAgICAgICAgLy9sb2coJ3N0YXRlOiAnICsgbXlyZXEucmVh
ZHlTdGF0ZSArICcsIHN0YXR1czogJyArIG15cmVxLnN0YXR1cyArICcsIHJlc3BvbnNlVGV4dCAn
ICsgdHh0KTsKICAgIH0KCiAgICAvLyBGaXJlIHRoZSBhc3luY2hyb25vdXMgWE1MSHR0cFJlcXVl
c3QKICAgIG15cmVxLm9wZW4oJ0dFVCcsICd0ZXN0LnR4dCcsIHRydWUpOwogICAgbXlyZXEuc2Vu
ZChudWxsKTsKfQoKd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogIGluaXRhcHAoKTsKfTsK
Ly9dXT4KPC9zY3JpcHQ+Cgo8L2hlYWQ+Cjxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kOiB0cmFuc3Bh
cmVudDsiPgogICAgPGRpdiBpZD0iaW5mbyIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVm
dDogMHB4OyB0b3A6IDIwMHB4Ij48L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169167</attachid>
            <date>2012-10-17 05:50:26 -0700</date>
            <delta_ts>2012-10-18 06:30:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77854-20121017134945.patch</filename>
            <type>text/plain</type>
            <size>1042</size>
            <attacher name="Mark Toller">mark.toller</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gMTMxNTkw
KQorKysgU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTAyMCw2ICsxMDIwLDExIEBAIGJvb2wgWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlSXNY
TUwoKSBjb24KIAogaW50IFhNTEh0dHBSZXF1ZXN0OjpzdGF0dXMoRXhjZXB0aW9uQ29kZSYgZWMp
IGNvbnN0CiB7CisgICAgLy8gRnJvbSB0aGUgaHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJl
cXVlc3QvI3RoZS1zdGF0dXMtYXR0cmlidXRlOgorICAgIC8vIElmIHRoZSBlcnJvciBmbGFnIGlz
IHNldCwgcmV0dXJuIDAgYW5kIHRlcm1pbmF0ZSB0aGVzZSBzdGVwcy4KKyAgICBpZiAobV9lcnJv
cikKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBpZiAobV9yZXNwb25zZS5odHRwU3RhdHVzQ29k
ZSgpKQogICAgICAgICByZXR1cm4gbV9yZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpOwogCkBAIC0x
MDM0LDYgKzEwMzksMTEgQEAgaW50IFhNTEh0dHBSZXF1ZXN0OjpzdGF0dXMoRXhjZXB0aW9uQ29k
ZQogCiBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OnN0YXR1c1RleHQoRXhjZXB0aW9uQ29kZSYgZWMp
IGNvbnN0CiB7CisgICAgLy8gRnJvbSB0aGUgaHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJl
cXVlc3QvI3RoZS1zdGF0dXN0ZXh0LWF0dHJpYnV0ZToKKyAgICAvLyBJZiB0aGUgZXJyb3IgZmxh
ZyBpcyBzZXQsIHJldHVybiAwIGFuZCB0ZXJtaW5hdGUgdGhlc2Ugc3RlcHMuCisgICAgaWYgKG1f
ZXJyb3IpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKwogICAgIGlmICghbV9yZXNwb25zZS5o
dHRwU3RhdHVzVGV4dCgpLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gbV9yZXNwb25zZS5odHRw
U3RhdHVzVGV4dCgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169404</attachid>
            <date>2012-10-18 06:30:40 -0700</date>
            <delta_ts>2014-02-05 11:17:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77854-20121018142957.patch</filename>
            <type>text/plain</type>
            <size>8629</size>
            <attacher name="Mark Toller">mark.toller</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMTYxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEwLTE3ICBNYXJrIFRv
bGxlciAgPG1hcmsudG9sbGVyQHNhbXN1bmcuY29tPgorCisgICAgICAgIENvcnJlY3QgdGhlIGJl
aGF2aW91ciBvZiBzdGF0dXMgYW5kIHN0YXR1c1RleHQgYXR0cmlidXRlcyBvZiB0aGUgWE1MSHR0
cFJlcXVlc3QgY2xhc3MuIFRoZXNlCisgICAgICAgIHNob3VsZCByZXR1cm4gMCBhbmQgYW4gZW1w
dHkgc3RyaW5nIHJlc3BlY3RpdmVseSBpZiB0aGUgZXJyb3IgZmxhZyBpcyBzZXQuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3ODU0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpc3N1ZSBjYW4g
YmUgc2VlbiB3aGVuIGFuIFhNTEh0dHBSZXF1ZXN0IGlzIGFib3J0ZWQgKHZpYSBhYm9ydCgpKSBh
ZnRlciByZWNlaXZpbmcKKyAgICAgICAgZGlkUmVjZWl2ZVJlc3BvbnNlIGJ1dCBiZWZvcmUgZGlk
RmluaXNoTG9hZGluZy4gSW4gdGhpcyBjYXNlLCB0aGUgSFRUUCBzdGF0dXMgYW5kIHN0YXR1cwor
ICAgICAgICB0ZXh0IGNvdWxkIGJlIChmb3IgZXhhbXBsZSkgMjAwIGFuZCAnT0snLiBXaGVuIGFi
b3J0KCkgaXMgY2FsbGVkLCB0aGUgWE1MSHR0cFJlcXVlc3QgY2hhbmdlcworICAgICAgICB0byB0
aGUgRE9ORSBzdGF0ZSwgYW5kIGNhbGxzIHRoZSBvbnJlYWR5c3RhdGVjaGFuZ2UgaGFuZGxlciAt
IGlmIHRoaXMgY29udGFpbnMgYSBjaGVjayBzdWNoCisgICAgICAgIGFzOgorCisgICAgICAgIGlm
IChteXJlcS5yZWFkeVN0YXRlID09PSA0IHx8IG15cmVxLnN0YXR1cyA9PT0gMjAwKQorICAgICAg
ICB7CisgICAgICAgICAgICBkb1NvbWV0aGluZ1dpdGgobXlyZXEucmVzcG9uc2VUZXh0KTsKKyAg
ICAgICAgfQorCisgICAgICAgIGl0IHdpbGwgZmFpbCwgYXMgcmVwb25zZVRleHQgKG9yIHJlc3Bv
bnNlWE1MKSBoYXZlIGJlZW4gY2xlYXJlZC4KKworICAgICAgICBOZXcgdGVzdCBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3N0YXR1cy1hZnRlci1oZWFkZXItYWJvcnQuaHRt
bCBhZGRlZCB0byBjaGVjaworICAgICAgICBmb3IgY29ycmVjdCBiZWhhdmlvdXIgd2hlbiBhYm9y
dCgpIGlzIGNhbGxlZCBkdXJpbmcgc3RhdGUgMiAoSEVBREVSKS4KKyAgICAgICAgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zdGF0dXMtYWZ0ZXItYWJvcnQuaHRtbCB1cGRh
dGVkIHRvIHJlZmxlY3QgY29ycmVjdAorICAgICAgICBzcGVjaWZpY2F0aW9uIGJlaGF2aW91ci4K
KworICAgICAgICBJJ3ZlIHVwZGF0ZWQgdGhlIHRlc3QgY2FzZSBhdHRhY2hlZCBub3cgSSB1bmRl
cnN0YW5kIHRoZSBidWcgLSBpdCBpcyB0cml2aWFsIHRvIHJlcHJvZHVjZSBieSBjYWxsaW5nIGFi
b3J0KCkKKyAgICAgICAgd2hlbiB0aGUgc3RhdGUgY2hhbmdlcyB0byBIRUFERVJTX1JFQ0VJVkVE
IGFuZCB0aGUgc3RhdHVzIGlzIDIwMC4KKworICAgICAgICBBY3R1YWxseSwgbm93IHRoYXQgSSB1
bmRlcnN0YW5kIHRoZSBwcm9ibGVtLCBpdCdzIGFjdHVhbGx5IGEgZHVwbGljYXRlIG9mIAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxNjIgd2hpY2gg
aGFzIG1vZGlmaWVkIHRoZSB0ZXN0IGNhc2UgZm9yIHRoaXMKKyAgICAgICAgc2NlbmFyaW8uCisK
KyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3Q6OnN0YXR1cyk6IHJldHVybiAwIGlmIHRoZSBlcnJvciBmbGFnIGlzIHNldC4K
KyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpzdGF0dXNUZXh0KTogcmV0dXJuIGFu
IGVtcHR5IHN0cmluZyBpZiB0aGUgZXJyb3IgZmxhZyBpcyBzZXQuCisKIDIwMTItMTAtMTcgIFl1
cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3Rvcjogbm8gImRlbGV0ZSB3YXRjaCBleHByZXNzaW9uIiBjb250ZXh0IG1lbnUgaXRlbSB3aGVu
IGNsaWNraW5nIG9uIHRoZSBleHByZXNzaW9uIHZhbHVlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAJKHJldmlzaW9uIDEzMTYxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMjAsNiArMTAyMCw5IEBA
IGJvb2wgWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlSXNYTUwoKSBjb24KIAogaW50IFhNTEh0dHBS
ZXF1ZXN0OjpzdGF0dXMoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CisgICAgaWYgKG1fZXJy
b3IpCisgICAgICAgIHJldHVybiAwOworCiAgICAgaWYgKG1fcmVzcG9uc2UuaHR0cFN0YXR1c0Nv
ZGUoKSkKICAgICAgICAgcmV0dXJuIG1fcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKTsKIApAQCAt
MTAzNCw2ICsxMDM3LDkgQEAgaW50IFhNTEh0dHBSZXF1ZXN0OjpzdGF0dXMoRXhjZXB0aW9uQ29k
ZQogCiBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OnN0YXR1c1RleHQoRXhjZXB0aW9uQ29kZSYgZWMp
IGNvbnN0CiB7CisgICAgaWYgKG1fZXJyb3IpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKwog
ICAgIGlmICghbV9yZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpLmlzTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gbV9yZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
MzE3MTYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyMSBAQAorMjAxMi0xMC0xOCAgTWFyayBUb2xsZXIgIDxtYXJrLnRvbGxlckBzYW1zdW5nLmNv
bT4KKworICAgICAgICBVcGRhdGUgc3RhdHVzLWFmdGVyLWFib3J0Lmh0bWwgdG8gcmVmbGVjdCBj
dXJyZW50IFhIUiBzcGVjaWZpY2F0aW9uIC0gc3RhdHVzIGFuZCBzdGF0dXNUZXh0CisgICAgICAg
IHNob3VsZCBiZSAwIGFuZCBhbiBlbXB0eSBzdHJpbmcgcmVzcGVjdGl2ZWx5IGZvbGxvd2luZyBh
biBhYm9ydCgpLgorICAgICAgICBBZGRlZCBzdGF0dXMtYWZ0ZXItaGVhZGVyLWFib3J0Lmh0bWwg
dG8gdGVzdCBmb3IgY29ycmVjdCBiZWhhdmlvdXIgaWYgdGhlIHJlcXVlc3QgaXMgYWJvcnRlZAor
ICAgICAgICBkdXJpbmcgdGhlIG9ucmVhZHlzdGF0ZWNoYW5nZSBpbiBzdGF0ZSBIRUFERVIgKDIp
LiBUaGlzIHNob3VsZCByZXNldCB0aGUgc3RhdHVzIGFuZAorICAgICAgICBzdGF0dXNUZXh0LCBh
bmQgdGhlbiBnZW5lcmF0ZSBhIERPTkUgKDQpIG9ucmVhZHlzdGF0ZWNoYW5nZS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc4NTQuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnJpbmdzIHN0YXR1cyBh
bmQgc3RhdHVzVGV4dCByZXR1cm4gdmFsdWVzIHdoZW4gdGhlIGVycm9yIGZsYWcgaXMgc2V0IGlu
IGxpbmUgd2l0aCB0aGUgWEhSIHNwZWMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3N0YXR1cy1hZnRlci1hYm9ydC1leHBlY3RlZC50eHQ6IHJlZmxlY3QgY29ycmVjdCBY
SFIgYmVoYXZpb3VyCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zdGF0dXMt
YWZ0ZXItaGVhZGVyLWFib3J0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9zdGF0dXMtYWZ0ZXItaGVhZGVyLWFib3J0Lmh0bWw6IEFkZGVk
LgorCiAyMDEyLTEwLTE4ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZA
aW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIEdhcmRlbmluZyBhZnRlciByMTMxNjQwCkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3N0YXR1cy1hZnRlci1hYm9y
dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9zdGF0dXMtYWZ0ZXItYWJvcnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMzE2
MTIpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3N0YXR1cy1hZnRl
ci1hYm9ydC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBAIE9ucmVh
ZHlzdGF0ZWNoYW5nZS4gUmVzcG9uc2Ugc3RhdHVzOiAyMDAKIE9ucmVhZHlzdGF0ZWNoYW5nZS4g
UmVzcG9uc2Ugc3RhdHVzOiAyMDA7IHN0YXR1c1RleHQ6ICdPSyc7IHJlYWR5U3RhdGU6IDMKIE9u
cmVhZHlzdGF0ZWNoYW5nZS4gUmVzcG9uc2Ugc3RhdHVzOiAyMDA7IHN0YXR1c1RleHQ6ICdPSyc7
IHJlYWR5U3RhdGU6IDQKIEFib3J0aW5nIHRoZSByZXF1ZXN0Li4uCi1BZnRlciBhYm9ydGluZyB0
aGUgcmVxdWVzdC4gUmVzcG9uc2Ugc3RhdHVzOiAyMDA7IHN0YXR1c1RleHQ6ICdPSyc7IHJlYWR5
U3RhdGU6IDAKK0FmdGVyIGFib3J0aW5nIHRoZSByZXF1ZXN0LiBSZXNwb25zZSBzdGF0dXM6IDA7
IHN0YXR1c1RleHQ6ICcnOyByZWFkeVN0YXRlOiAwCiBSZW9wZW5pbmcgdGhlIHJlcXVlc3QgdG8g
Y2hlY2sgdGhhdCB0aGUgc3RhdHVzIGlzIHJlc2V0Li4uCiBPbnJlYWR5c3RhdGVjaGFuZ2UuIFJl
c3BvbnNlIHN0YXR1czogW2V4Y2VwdGlvbl07IHN0YXR1c1RleHQ6ICdbZXhjZXB0aW9uXSc7IHJl
YWR5U3RhdGU6IDEKIERvbmUuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3N0YXR1cy1hZnRlci1oZWFkZXItYWJvcnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvc3RhdHVzLWFmdGVyLWhl
YWRlci1hYm9ydC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3N0YXR1cy1hZnRlci1oZWFkZXItYWJvcnQtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACitUZXN0IGZvciBYTUxIdHRwUmVxdWVz
dC5hYm9ydCgpIGR1cmluZyBIRUFERVIgKDIpIHN0YXRlIC0gcmVzZXRzIHJlc3BvbnNlIHN0YXR1
cywgYW5kIGdlbmVyYXRlIERPTkUgKDQpIG9ucmVhZHlzdGF0ZWNoYW5nZS4KKworQSBuZXdseSBj
cmVhdGVkIHJlcXVlc3QuIFJlc3BvbnNlIHN0YXR1czogMDsgc3RhdHVzVGV4dDogJyc7IHJlYWR5
U3RhdGU6IDAKK09wZW5pbmcuLi4KK09ucmVhZHlzdGF0ZWNoYW5nZS4gUmVzcG9uc2Ugc3RhdHVz
OiBbZXhjZXB0aW9uXTsgc3RhdHVzVGV4dDogJ1tleGNlcHRpb25dJzsgcmVhZHlTdGF0ZTogMQor
T3BlbmVkIHJlcXVlc3QuIFJlc3BvbnNlIHN0YXR1czogW2V4Y2VwdGlvbl07IHN0YXR1c1RleHQ6
ICdbZXhjZXB0aW9uXSc7IHJlYWR5U3RhdGU6IDEKK1NlbnQgcmVxdWVzdC4gUmVzcG9uc2Ugc3Rh
dHVzOiBbZXhjZXB0aW9uXTsgc3RhdHVzVGV4dDogJ1tleGNlcHRpb25dJzsgcmVhZHlTdGF0ZTog
MQorT25yZWFkeXN0YXRlY2hhbmdlLiBSZXNwb25zZSBzdGF0dXM6IDIwMDsgc3RhdHVzVGV4dDog
J09LJzsgcmVhZHlTdGF0ZTogMgorQWJvcnRpbmcgdGhlIHJlcXVlc3QuLi4KK09ucmVhZHlzdGF0
ZWNoYW5nZS4gUmVzcG9uc2Ugc3RhdHVzOiAwOyBzdGF0dXNUZXh0OiAnJzsgcmVhZHlTdGF0ZTog
NAorQWZ0ZXIgYWJvcnRpbmcgdGhlIHJlcXVlc3QuIFJlc3BvbnNlIHN0YXR1czogMDsgc3RhdHVz
VGV4dDogJyc7IHJlYWR5U3RhdGU6IDAKK1Jlb3BlbmluZyB0aGUgcmVxdWVzdCB0byBjaGVjayB0
aGF0IHRoZSBzdGF0dXMgaXMgcmVzZXQuLi4KK09ucmVhZHlzdGF0ZWNoYW5nZS4gUmVzcG9uc2Ug
c3RhdHVzOiBbZXhjZXB0aW9uXTsgc3RhdHVzVGV4dDogJ1tleGNlcHRpb25dJzsgcmVhZHlTdGF0
ZTogMQorRG9uZS4KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9zdGF0dXMtYWZ0ZXItaGVhZGVyLWFib3J0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zdGF0dXMtYWZ0ZXItaGVhZGVyLWFib3J0Lmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3N0YXR1cy1hZnRlci1oZWFkZXItYWJvcnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4
NSBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIFhNTEh0dHBSZXF1ZXN0LmFib3J0KCkg
ZHVyaW5nIEhFQURFUiAoMikgc3RhdGUgLSByZXNldHMgcmVzcG9uc2Ugc3RhdHVzLCBhbmQgZ2Vu
ZXJhdGUgRE9ORSAoNCkgb25yZWFkeXN0YXRlY2hhbmdlLgorPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KworCis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBy
ZXEgPSBudWxsOworCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibG9nIikuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7Cit9CisKK2Z1
bmN0aW9uIGxvZ1N0YXR1c0FuZFN0YXRlKGNvbW1lbnQpCit7CisgICAgdmFyIHN0YXR1czsKKyAg
ICB2YXIgc3RhdHVzVGV4dDsKKyAgICB2YXIgcmVhZHlTdGF0ZTsKKyAgICB0cnkKKyAgICB7Cisg
ICAgICAgIHN0YXR1cyA9IHJlcS5zdGF0dXM7CisgICAgfSBjYXRjaCAoZXgpCisgICAgeworICAg
ICAgICBzdGF0dXMgPSAiW2V4Y2VwdGlvbl0iOworICAgIH0KKworICAgIHRyeQorICAgIHsKKyAg
ICAgICAgc3RhdHVzVGV4dCA9IHJlcS5zdGF0dXNUZXh0OworICAgIH0gY2F0Y2ggKGV4KQorICAg
IHsKKyAgICAgICAgc3RhdHVzVGV4dCA9ICJbZXhjZXB0aW9uXSI7CisgICAgfQorCisgICAgdHJ5
CisgICAgeworICAgICAgICByZWFkeVN0YXRlID0gcmVxLnJlYWR5U3RhdGU7CisgICAgfSBjYXRj
aCAoZXgpCisgICAgeworICAgICAgICByZWFkeVN0YXRlID0gIltleGNlcHRpb25dIjsKKyAgICB9
CisKKyAgICBsb2coKGNvbW1lbnQgPyBjb21tZW50ICsgIi4gIjogIiIpICsgIlJlc3BvbnNlIHN0
YXR1czogIiArIHN0YXR1cyArICI7IHN0YXR1c1RleHQ6ICciICsgc3RhdHVzVGV4dCArICInOyBy
ZWFkeVN0YXRlOiAiICsgcmVhZHlTdGF0ZSk7Cit9CisKK2Z1bmN0aW9uIGNhbGxCYWNrRnVuY3Rp
b24oKQoreworICAgIGxvZ1N0YXR1c0FuZFN0YXRlKCJPbnJlYWR5c3RhdGVjaGFuZ2UiKTsKKyAg
ICAKKyAgICBpZiAocmVxLnJlYWR5U3RhdGUgPT0gMikKKyAgICB7CisgICAgICAgIGxvZygiQWJv
cnRpbmcgdGhlIHJlcXVlc3QuLi4iKTsKKyAgICAgICAgcmVxLmFib3J0KCk7CisgICAgICAgIGxv
Z1N0YXR1c0FuZFN0YXRlKCJBZnRlciBhYm9ydGluZyB0aGUgcmVxdWVzdCIpOworCisgICAgICAg
IGxvZygiUmVvcGVuaW5nIHRoZSByZXF1ZXN0IHRvIGNoZWNrIHRoYXQgdGhlIHN0YXR1cyBpcyBy
ZXNldC4uLiIpOworICAgICAgICByZXEub25yZWFkeXN0YXRlY2hhbmdlID0gY2FsbEJhY2tGdW5j
dGlvbjsKKyAgICAgICAgcmVxLm9wZW4oIkdFVCIsICJmb29iYXIiLCB0cnVlKTsKKyAgICAgICAg
cmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7CisgICAgICAgIHJlcS5hYm9ydCgpOworICAg
ICAgICBsb2coIkRvbmUuIik7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KKworcmVxID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7Citsb2dTdGF0dXNBbmRTdGF0ZSgiQSBuZXdseSBjcmVhdGVkIHJlcXVl
c3QiKTsKK3JlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBjYWxsQmFja0Z1bmN0aW9uOworbG9nKCJP
cGVuaW5nLi4uIik7CityZXEub3BlbigiR0VUIiwic3RhdHVzLWFmdGVyLWhlYWRlci1hYm9ydC5o
dG1sIix0cnVlKTsKK2xvZ1N0YXR1c0FuZFN0YXRlKCJPcGVuZWQgcmVxdWVzdCIpOworcmVxLnNl
bmQobnVsbCk7Citsb2dTdGF0dXNBbmRTdGF0ZSgiU2VudCByZXF1ZXN0Iik7CisKKzwvc2NyaXB0
PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>