<?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>26496</bug_id>
          
          <creation_ts>2009-06-17 15:37:04 -0700</creation_ts>
          <short_desc>iframe isn&apos;t loaded until xmlhttprequest in parent completes</short_desc>
          <delta_ts>2025-12-17 12:50:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Frames</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=27392</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="pablo">pablo.platt</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>gmajian</cc>
    
    <cc>levin</cc>
    
    <cc>vicki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>126574</commentid>
    <comment_count>0</comment_count>
    <who name="pablo">pablo.platt</who>
    <bug_when>2009-06-17 15:37:04 -0700</bug_when>
    <thetext>I have a parent frame that uses long-polling(comet/BOSH) requests and an iframe.
Both the parent frame and the iframe are from the same domain.
The iframe displays webpages and users can navigate in it.

If a user tries to navigate the iframe when a long-polling request is running in the parent, the iframe won&apos;t load until the request completes. It happens when using xmlhttprequest or dynamic script tags (JSONP).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127196</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-06-21 00:07:37 -0700</bug_when>
    <thetext>Would it be possible for you to make a reproducible test case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128673</commentid>
    <comment_count>2</comment_count>
    <who name="pablo">pablo.platt</who>
    <bug_when>2009-06-27 16:03:58 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Would it be possible for you to make a reproducible test case?
&gt; 

I&apos;m working on a test case.
I think this is related:
http://groups.google.com/group/prototype-scriptaculous/browse_thread/thread/919bf83a1a9a88da/8166655d6643611d?lnk=raot
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129529</commentid>
    <comment_count>3</comment_count>
    <who name="Albert Ma">gmajian</who>
    <bug_when>2009-07-02 10:54:14 -0700</bug_when>
    <thetext>I also met this bug on Safari 4 (build 530). 
The XHR stream connection not only blocks iframe loading, but also possibly blocks all kinds of resources downloading. 

The cause seems to be:  
While a resource loader/worker is working on XHR stream connection, the other resource might be enqueue into this loader/worker. But because XHR stream connection is  persistent, so the resource request queued won&apos;t get downloaded.

The worst cases are that the blocked resource is iframe or Javascript file, when iframe is blocked, the content won&apos;t get shown. when Javascript is blocked, no content after the JS will be rendered.

I will provide repro step for it soon.



(In reply to comment #0)
&gt; I have a parent frame that uses long-polling(comet/BOSH) requests and an
&gt; iframe.
&gt; Both the parent frame and the iframe are from the same domain.
&gt; The iframe displays webpages and users can navigate in it.
&gt; 
&gt; If a user tries to navigate the iframe when a long-polling request is running
&gt; in the parent, the iframe won&apos;t load until the request completes. It happens
&gt; when using xmlhttprequest or dynamic script tags (JSONP).
&gt; 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129553</commentid>
    <comment_count>4</comment_count>
      <attachid>32192</attachid>
    <who name="Albert Ma">gmajian</who>
    <bug_when>2009-07-02 13:00:57 -0700</bug_when>
    <thetext>Created attachment 32192
php files for repro step

1 extract the tar ball to a PHP enabled web server
2. visit the index.php
3. click the button to see the result</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129554</commentid>
    <comment_count>5</comment_count>
    <who name="Albert Ma">gmajian</who>
    <bug_when>2009-07-02 13:05:08 -0700</bug_when>
    <thetext>simple repro steps: 
1. visit http://www.ieasy.org/webkit26496/
2. click the first button to launch XHR stream request (which lasts for 40s)
3. click the second button to load iframe (which contains 200 JS files to load)
4. see the content of the iframe

expected result:
the content of the iframe should be rendered gradually as &quot;0~199&quot;

actual result:
in Safari 4, the rendering stops at &quot;2&quot; or &quot;3&quot;, after 40 seconds, it resumes to complete to 199.

Only repro on Safari 4.

Safari 3, IE, Firefox has no problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130781</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-09 17:39:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/7046520&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130972</commentid>
    <comment_count>7</comment_count>
      <attachid>32581</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-10 14:58:56 -0700</bug_when>
    <thetext>Created attachment 32581
Patch that fixes XHR&apos;s confusing the max-connections-per-host count.

Patch that fixes XHR&apos;s confusing the max-connections-per-host count.

I think we should land this very localized fix while we hash out a reworking of the Loader::Host mechanism that tracks connections-per-host at the ResourceHandle level.

(a test case is coming)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130980</commentid>
    <comment_count>8</comment_count>
      <attachid>32581</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-10 15:19:36 -0700</bug_when>
    <thetext>Comment on attachment 32581
Patch that fixes XHR&apos;s confusing the max-connections-per-host count.

Sent out wrong version, fixing soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130991</commentid>
    <comment_count>9</comment_count>
      <attachid>32585</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-10 15:51:12 -0700</bug_when>
    <thetext>Created attachment 32585
Updated (removed overzealous decrement in internalAbort())

Still fixing up a layout test but this is the patch to go with!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130994</commentid>
    <comment_count>10</comment_count>
      <attachid>32587</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-10 15:54:23 -0700</bug_when>
    <thetext>Created attachment 32587
Now as a patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130996</commentid>
    <comment_count>11</comment_count>
      <attachid>32587</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2009-07-10 15:59:47 -0700</bug_when>
    <thetext>Comment on attachment 32587
Now as a patch

&gt; +    if (m_didTellLoaderAboutRequest) {
&gt; +            cache()-&gt;loader()-&gt;nonCacheRequestComplete(m_url);
&gt; +            m_didTellLoaderAboutRequest = false;
&gt; +    }

Double indentation here.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130998</commentid>
    <comment_count>12</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-10 16:02:38 -0700</bug_when>
    <thetext>Sending        WebCore/ChangeLog
Sending        WebCore/loader/loader.cpp
Sending        WebCore/loader/loader.h
Sending        WebCore/xml/XMLHttpRequest.cpp
Sending        WebCore/xml/XMLHttpRequest.h
Transmitting file data .....
Committed revision 45732.

Leaving the bug open until we can rework the Loader::Host and ResourceHandle machinery to work 100%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131003</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-10 16:17:58 -0700</bug_when>
    <thetext>Layout test is difficult because reproducing the actual bug is a long running thing.

Adding methods to track and dump the actual number of live resource handles to a host seem to be a requirement to make an efficient and dependable test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131013</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-10 16:47:10 -0700</bug_when>
    <thetext>We&apos;ll close this - I filed https://bugs.webkit.org/show_bug.cgi?id=27165 as a followup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131126</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-11 12:22:47 -0700</bug_when>
    <thetext>r45755 tweaked this a little to disable the workaround for XHRs on worker threads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131222</commentid>
    <comment_count>16</comment_count>
    <who name="Albert Ma">gmajian</who>
    <bug_when>2009-07-12 18:19:31 -0700</bug_when>
    <thetext>Just verified on webkit build 45763. 

Issue on the simple repro step for bug 26496 (http://www.ieasy.org/webkit26496/) seems fixed.

But Exchange Outlook Web Access 2010 still has the similar issue. 

It seems the fix(workaround) for webkit bug 26496 is incomplete. 

I will write another test page (repro steps) for webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131326</commentid>
    <comment_count>17</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-13 09:19:39 -0700</bug_when>
    <thetext>Please do that as soon as you can!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131447</commentid>
    <comment_count>18</comment_count>
    <who name="Vicki Murley">vicki</who>
    <bug_when>2009-07-13 17:14:10 -0700</bug_when>
    <thetext>Albert, please use WebKit nightly build r45834 or later for any test cases or general testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131919</commentid>
    <comment_count>19</comment_count>
    <who name="Albert Ma">gmajian</who>
    <bug_when>2009-07-15 09:38:23 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Albert, please use WebKit nightly build r45834 or later for any test cases or
&gt; general testing.

Sorry, I was on flight whole day of yesterday. 

I have tried r45834, Outlook Web Access 2010 still have problem on it. 
I am working on the simpler repro (that is not specific to OWA), but I haven&apos;t got it yet. I will continue working on it. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132238</commentid>
    <comment_count>20</comment_count>
    <who name="Albert Ma">gmajian</who>
    <bug_when>2009-07-16 04:54:19 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Please do that as soon as you can!

I have found the repro steps for webkit.  The main point is about &quot;Etag&quot; or &quot;Last-Modified&quot; Header, which triggers Safari bug.

Repro steps for webkit:

(I updated php files in www.ieasy.org for this repro steps, js.php adds &quot;Last-Modified:&quot; header:
=== start of js.php ===
&lt;?
header(&quot;Content-Type: text/javascript&quot;);
header(&quot;Last-Modified: Fri, 12 Jun 2009 08:56:45 GMT&quot;);
printf(&quot;document.write(&apos;%s&lt;br&gt;&apos;);\n&quot;, $_GET[&apos;id&apos;]);
?&gt;
== end of js.php ==
)

0. Empty Safari Cache
1. visit http://www.ieasy.org/webkit26496/
2. click the first button to launch XHR stream request (which lasts for 40s)
3. click the second button to load iframe (which contains 200 JS files to load)
4. when 0~199 are printed, refresh current page
5. click the first button to launch XHR stream request
6. click the second button to load iframe

expected result:
the content of the iframe should be rendered gradually as &quot;0~199&quot;

actual result:
in Safari 4, the rendering stops at &quot;2&quot; or &quot;3&quot;, after 40 seconds, it resumes to
complete to 199.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132278</commentid>
    <comment_count>21</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-16 09:26:07 -0700</bug_when>
    <thetext>Reopening based on the new test case.

Thanks Albert!  I&apos;ll look at this shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132297</commentid>
    <comment_count>22</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-16 10:35:05 -0700</bug_when>
    <thetext>The old Radar tracked the old reported problem.

The new one is now covered by &lt;rdar://problem/7065391&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132301</commentid>
    <comment_count>23</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-16 11:13:05 -0700</bug_when>
    <thetext>We have a new fix for this.

The key here is on a largely uncached web page where cache revalidation still gets a free pass around the connection limit, we&apos;re still running in to the same issue we had before r45732</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132303</commentid>
    <comment_count>24</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-16 11:36:18 -0700</bug_when>
    <thetext>Antti reviewed the one-liner on IRC.

Sending        WebCore/ChangeLog
Sending        WebCore/loader/loader.cpp
Transmitting file data ..
Committed revision 45979.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132439</commentid>
    <comment_count>25</comment_count>
    <who name="Albert Ma">gmajian</who>
    <bug_when>2009-07-16 18:42:21 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; We have a new fix for this.
&gt; 
&gt; The key here is on a largely uncached web page where cache revalidation still
&gt; gets a free pass around the connection limit, we&apos;re still running in to the
&gt; same issue we had before r45732

I just verified on build r45980. The problem with &quot;Etag&quot; and &quot;Last-Modified&quot; headers has been fixed. While, there is other bug in webkit that block Outlook Web Access. 

The changes fixed the problem with Javascript resources, but Image resources still get blocked with the XHR request.

I have updated my repro steps on http://www.ieasy.org/webkit26496/, I create a new page for images.

Repro steps:
1. visit http://www.ieasy.org/webkit26496/
2. click the first button to launch XHR stream request (which lasts for 40s)
3. click the third button to load images  (which contains 8 images to load)
4. see the content of the iframe

expected result:
totally there are 8 images displayed

actual result:
5~6 images are displayed

As I saw the webkit code, the bug  happens when parsedAndStylesheetsKnown==true @ loader.cpp: 293


Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132629</commentid>
    <comment_count>26</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-17 10:50:14 -0700</bug_when>
    <thetext>As the comment in the code indicates, the original intention of the prioritization was to have as lite a touch as possible and only enforce the connection-per-host limit when prioritizing things was necessary, and otherwise let the networking layer do whatever it likes.

We&apos;re not convinced this is necessary, and Darin has reviewed a simple patch that changes this behavior so that WebCore always manages this limit itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132631</commentid>
    <comment_count>27</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-17 10:54:15 -0700</bug_when>
    <thetext>Sending        WebCore/ChangeLog
Sending        WebCore/loader/loader.cpp
Transmitting file data ..
Committed revision 46039.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132790</commentid>
    <comment_count>28</comment_count>
    <who name="Albert Ma">gmajian</who>
    <bug_when>2009-07-17 17:27:38 -0700</bug_when>
    <thetext>Just did a quick test on Outlook Web Access. The problem seems fixed. Thank you very much for your great effort! 
We will do a complete test of OWA on the new build later, and I will add comment here when the result is ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133106</commentid>
    <comment_count>29</comment_count>
    <who name="Albert Ma">gmajian</who>
    <bug_when>2009-07-20 03:45:28 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; Just did a quick test on Outlook Web Access. The problem seems fixed. Thank you
&gt; very much for your great effort! 
&gt; We will do a complete test of OWA on the new build later, and I will add
&gt; comment here when the result is ready.

OWA looks good on latest nightly build. 
Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134103</commentid>
    <comment_count>30</comment_count>
    <who name="Albert Ma">gmajian</who>
    <bug_when>2009-07-23 08:20:24 -0700</bug_when>
    <thetext>A bad news: from r46126 till now (r46237), Exchange 2010 Outlook Web Access has the problem again. The resource downloading is blocked by XHR stream connection.

This time I cannot find a simple test page to repro the problem of webkit.  I will deploy Exchange 2010 beta server for reproducing problem. The server information and repro steps will be sent to Brady Eidson by a separate email. Hope it will help finding the root cause of the problem. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134163</commentid>
    <comment_count>31</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-23 11:18:36 -0700</bug_when>
    <thetext>Using the server Albert sent me, I can&apos;t reproduce the problem with any recent WebKit nightly or a ToT Debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134165</commentid>
    <comment_count>32</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-23 11:20:33 -0700</bug_when>
    <thetext>Albert, you explicitly mention that the r46126 nightly and later reproduces this problem.  Can you please confirm that the most recent nightly before that - r46105 - does *not* reproduce the problem?

Between r46105 and r46126 there were no code changes that seem like they could affect this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134166</commentid>
    <comment_count>33</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-23 11:23:26 -0700</bug_when>
    <thetext>Oh, I was able to reproduce after about 6 tries, with /themes/base/clear1x1.gif

I still haven&apos;t been able to reproduce with a script, which would obviously block a frame load, but it&apos;s clear there is still a bug now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134499</commentid>
    <comment_count>34</comment_count>
      <attachid>32587</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-07-24 04:03:22 -0700</bug_when>
    <thetext>Comment on attachment 32587
Now as a patch


&gt; Index: xml/XMLHttpRequest.cpp
&gt; +#include &quot;Cache.h&quot;

Rather than flagging each instance below, I just do it once here:
Don&apos;t use cache() in XMLHttpRequest because XMLHttpRequest may be used on a thread (in a worker) and cache() isn&apos;t threadsafe.

From workers and in Documents, XHR eventually gets to DocumentThreadableLoader (on the main thread), so maybe you can do what you want in there.  (Note that DocumentThreadableLoader may be used by things other than XHR like importScripts in workers).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134500</commentid>
    <comment_count>35</comment_count>
      <attachid>32587</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-07-24 04:10:59 -0700</bug_when>
    <thetext>Comment on attachment 32587
Now as a patch

Sorry about that. Clearing my r-. Since I didn&apos;t see any commit messages in here, I thought this had not been landed (when I saw it in the commit queue) but it has been.

Committed as http://trac.webkit.org/changeset/45732

Then there was a follow up to address workers here: http://trac.webkit.org/changeset/45755</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134565</commentid>
    <comment_count>36</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-24 08:22:36 -0700</bug_when>
    <thetext>Except there were about 5 commit messages in here!  ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134566</commentid>
    <comment_count>37</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-24 08:23:26 -0700</bug_when>
    <thetext>(errrrr, commit messages combined with other revision numbers)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134573</commentid>
    <comment_count>38</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-07-24 08:52:09 -0700</bug_when>
    <thetext>&gt; Except there were about 5 commit messages in here!  ;)
In short: Yeah my bad :( -- sorry.

My only lame defense is that is was in the commit queue when it shouldn&apos;t be  -- due to the r+ and being open -- and I was dumb to be working at 4 am.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134574</commentid>
    <comment_count>39</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-07-24 08:59:33 -0700</bug_when>
    <thetext>Oh interesting.  Yah... an r+, then closing the bug, then reopening...  that shouldn&apos;t be in the commit queue and is seemingly a bug in the tool.  Quite understandable!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238537</commentid>
    <comment_count>40</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-15 14:08:16 -0700</bug_when>
    <thetext>Is this still an issue with Safari 5? I&apos;m not sure what exactly this bug is tracking now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>32192</attachid>
            <date>2009-07-02 13:00:57 -0700</date>
            <delta_ts>2009-07-02 13:00:57 -0700</delta_ts>
            <desc>php files for repro step</desc>
            <filename>webkit26496.tgz</filename>
            <type>application/octet-stream</type>
            <size>901</size>
            <attacher name="Albert Ma">gmajian</attacher>
            
              <data encoding="base64">H4sIAKwpTUoAA+1Y32/bNhD2a/xXHAQbktHW+mlltmUb3ZCtAdaXLA8F5mGQJdpiIlMaSdUOgv7v
O0quZztb85Kk3cbvwSTo0/F4FD/dxw1Z3FLphcEwtFvPBAdxfj7Ytd6u9et2h5brep7veUHohi3H
dc/doAWD5wroEJWQMQdoxTc0Zl+we+z/fyk2B/t/I/plVj79HGqDwzD4x/13A3+//77v4v77Djbg
PH0oD/E/3/9o1s5InBJuGT8UTBIm31zflWQEkmylfRN/jEXCaSmN3rhdcsrk0jLSIqnWaNnfcCqJ
ZXZFtOBTszeeM+M1dH7/6eL6V5Om5m/4zGza/tpL1PgCDs8/ZSnZPgMFPHL+ke29/fkPfMX//sAf
6PP/Eogyuc6n7UiRwLQNiEhSmZMpJyUvYFGtoH45IrsZbkwaTgCJTDExTpmisTlbViyRtGCwzbjV
g/tm9OwjZrvAIZgAIxv48P7nd1KWV+SPighpIWM0ZsqkX5SEWSbSifkazA/vrn6RnMRr9YbigOQV
OTYXhKV7D59OoojTlC55vCansVzWoxjOntZWRF7kRHW/v7tMLYMuXeOvmRr7vuAJPmM0PlVIxtHE
kd1kA1NrN7mNFkV6p5pKSowHCpbkNLmdGHV+xsYU3D6UnAgBGeEEZAFJwRhJJODSQdRrByuPhYRl
wSFwRC+yG29TRcB713vPB2tG/96p+7yIU7j88ert+wvYUJmB5ziw29olzYk4cd/4AppOMCOACcAZ
FkUlR4s8ZrcGhniX4/uQEbrK5Ch0usY0spuHVBp267ebN05/Fr4JHPL/0Ql7wjke4X/PDT/Xf+7A
rfk/8AJd/70IDuq/ax4zsST8zQVLipSy1QiSrGK3JFXs1xGK7hzX84NBeP7dUPd0T/f+qz0sZrDG
sDp04ow7NPLU76tXvfb9TgSCZXS3cz5nXaF+UfZhfZITBlZH9FADCmSMZV6JTNVjIiektDzsfdJ6
8BvDkf7b17JPO8dj9z/+wfffdwOl/8JQ678XQa3/YLvOmcDKHZXYyLY3m01/4/cLvrLd4XBob5WN
8Xci8VgVzmpdgqSBlYIzBmwjJSlUT3HHGdrct89U8/km6UhIzk+V5NyoRYbZ3EvOUHd0U3O6V1bq
rokiqdSOd3IPZg8E1wPl8bVTrqGhoaGhoaGhoaGhoaGhofGi+BPR6ZjjACgAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>32581</attachid>
            <date>2009-07-10 14:58:56 -0700</date>
            <delta_ts>2009-07-10 15:51:12 -0700</delta_ts>
            <desc>Patch that fixes XHR&apos;s confusing the max-connections-per-host count.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>7898</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQ1NzI5
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIwMDktMDct
MTAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNjQ5NiBhbmQgPHJkYXI6Ly9wcm9ibGVtLzcwNDY1MjA+CisgICAgICAg
IFJFR1JFU1NJT046IFhIUiBzdHJlYW0gY29ubmVjdGlvbiBibG9ja3MgaUZyYW1lIGxvYWRpbmcg
YW5kIHJlc291cmNlIGRvd25sb2FkaW5nCisKKyAgICAgICAgV2l0aCB0aGlzIHRlc3Qgd2UgZW5k
ZWQgdXAgZ29pbmcgb3ZlciB0aGUgbWF4aW11bS1jb25uZWN0aW9ucy1wZXItaG9zdCBsaW1pdCB0
aGF0IENGTmV0d29yayBleHBlY3RlZC4KKyAgICAgICAgV2hlbiB0aGF0IGhhcHBlbmVkLCB0aGUg
Zmlyc3QgcmVxdWVzdCB0aGF0IHdhcyBvdmVyIHRoZSBsaW1pdCBlbmRlZCB1cCBpbiBhIGJpemFy
cmUgc3RhdGUgd2hlcmUgaXQgCisgICAgICAgIHdhc24ndCBmdWxseSBzZXJ2aWNlZCB1bnRpbCBh
ZnRlciB0aGUgbG9uZyBydW5uaW5nIFhIUiB3YXMgY29tcGxldGUuCisKKyAgICAgICAgTG9hZGVy
IGFuZCBMb2FkZXI6Okhvc3Qgd29yayB0b2dldGhlciB0byB0cnkgdG8gbm90IGV4Y2VlZCB0aGUg
bWF4LWNvbm5lY3Rpb24gbGltaXQgYnV0IG5vbi1jYWNoZQorICAgICAgICByZXNvdXJjZXMgLSBz
dWNoIGFzIFhIUiAtIGNvdWxkIHN0aWxsIGVuZCB1cCBjYXVzaW5nIHRoaXMgbGltaXQgdG8gYmUg
ZXhjZWVkZWQuCisKKyAgICAgICAgVGhpcyBmaXggYWRkcyBhIHdvcmthcm91bmQgc3BlY2lmaWNh
bGx5IGZvciBYSFIgd2hpbGUgd2UgaGFzaCBvdXQgYSBtb3JlIHRob3JvdWdoIHNvbHV0aW9uIHRo
YXQgd2lsbAorICAgICAgICBoYW5kbGUgdGhpcyBhdCB0aGUgcmVzb3VyY2UgaGFuZGxlIGxldmVs
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogbG9hZGVyL2xv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkZXI6Om5vbkNhY2hlUmVxdWVzdEluRmxp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRlcjo6bm9uQ2FjaGVSZXF1ZXN0Q29tcGxldGUp
OgorICAgICAgICAoV2ViQ29yZTo6TG9hZGVyOjpIb3N0OjpIb3N0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxvYWRlcjo6SG9zdDo6bm9uQ2FjaGVSZXF1ZXN0SW5GbGlnaHQpOgorICAgICAgICAoV2Vi
Q29yZTo6TG9hZGVyOjpIb3N0Ojpub25DYWNoZVJlcXVlc3RDb21wbGV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMb2FkZXI6Okhvc3Q6OnNlcnZlUGVuZGluZ1JlcXVlc3RzKTogVGFrZSBub25DYWNo
ZVJlcXVlc3RzSW5GbGlnaHQgaW50byBhY2NvdW50LgorICAgICAgICAqIGxvYWRlci9sb2FkZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRlcjo6SG9zdDo6cHJvY2Vzc2luZ1Jlc291cmNlKTog
VGFrZSBub25DYWNoZVJlcXVlc3RzSW5GbGlnaHQgaW50byBhY2NvdW50LgorCisgICAgICAgICog
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
Ojp+WE1MSHR0cFJlcXVlc3QpOiAKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojps
b2FkUmVxdWVzdEFzeW5jaHJvbm91c2x5KTogQnVtcCB0aGUgbm9uQ2FjaGVSZXF1ZXN0SW5GbGln
aHQgY291bnQuCisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6aW50ZXJuYWxBYm9y
dCk6IERlY3JlbWVudCB0aGF0IGNvdW50IGlmIGEgaGFuZGxlIGV4aXN0cy4KKyAgICAgICAgKFdl
YkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRGYWlsKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6IERpdHRvLgorCiAyMDA5LTA3LTEw
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gdW5i
cmVhayBub24tTWFjIGJ1aWxkLgpJbmRleDogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwCShyZXZpc2lvbiA0NTY2MSkKKysrIHhtbC9Y
TUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgogCisjaW5jbHVkZSAi
Q2FjaGUuaCIKICNpbmNsdWRlICJDU3RyaW5nLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nl
c3NDb250cm9sLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5o
IgpAQCAtMTU0LDYgKzE1NSw5IEBACiAKIFhNTEh0dHBSZXF1ZXN0Ojp+WE1MSHR0cFJlcXVlc3Qo
KQogeworICAgIGlmIChtX2FzeW5jICYmIG1fbG9hZGVyKQorICAgICAgICBjYWNoZSgpLT5sb2Fk
ZXIoKS0+bm9uQ2FjaGVSZXF1ZXN0Q29tcGxldGUobV91cmwpOworCiAgICAgaWYgKG1fdXBsb2Fk
KQogICAgICAgICBtX3VwbG9hZC0+ZGlzY29ubmVjdFhNTEh0dHBSZXF1ZXN0KCk7CiB9CkBAIC02
ODEsNiArNjg1LDggQEAKICAgICAgICAgLy8gYSByZXF1ZXN0IGlzIGluIHByb2dyZXNzIGJlY2F1
c2Ugd2UgbmVlZCB0byBrZWVwIHRoZSBsaXN0ZW5lcnMgYWxpdmUsCiAgICAgICAgIC8vIGFuZCB0
aGV5IGFyZSByZWZlcmVuY2VkIGJ5IHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIuCiAgICAgICAgIHNl
dFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKKworICAgICAgICBjYWNoZSgpLT5sb2FkZXIoKS0+bm9u
Q2FjaGVSZXF1ZXN0SW5GbGlnaHQobV91cmwpOwogICAgIH0KIH0KIApAQCAtNzIzLDYgKzcyOSwx
MCBAQAogCiAgICAgaWYgKGhhZExvYWRlcikgewogICAgICAgICBtX2xvYWRlci0+Y2FuY2VsKCk7
CisgICAgICAgIAorICAgICAgICBpZiAobV9hc3luYyAmJiBtX2xvYWRlcikKKyAgICAgICAgICAg
IGNhY2hlKCktPmxvYWRlcigpLT5ub25DYWNoZVJlcXVlc3RDb21wbGV0ZShtX3VybCk7CisgICAg
ICAgIAogICAgICAgICBtX2xvYWRlciA9IDA7CiAgICAgfQogCkBAIC05NjEsNiArOTcxLDkgQEAK
IAogdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKIHsKKyAgICBpZiAobV9hc3luYyAmJiBtX2xvYWRlcikKKyAgICAgICAgY2FjaGUoKS0+bG9h
ZGVyKCktPm5vbkNhY2hlUmVxdWVzdENvbXBsZXRlKG1fdXJsKTsKKwogICAgIC8vIElmIHdlIGFy
ZSBhbHJlYWR5IGluIGFuIGVycm9yIHN0YXRlLCBmb3IgaW5zdGFuY2Ugd2UgY2FsbGVkIGFib3J0
KCksIGJhaWwgb3V0IGVhcmx5LgogICAgIGlmIChtX2Vycm9yKQogICAgICAgICByZXR1cm47CkBA
IC05OTksNiArMTAxMiw5IEBACiAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5yZXNvdXJj
ZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoaWRlbnRpZmllciwgbV9yZXNwb25zZVRleHQpOwog
ICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkTWVzc2FnZShJbnNwZWN0b3JDb250cm9s
bGVyRGVzdGluYXRpb24sIEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZUxldmVsLCAiWEhSIGZp
bmlzaGVkIGxvYWRpbmc6IFwiIiArIG1fdXJsICsgIlwiLiIsIG1fbGFzdFNlbmRMaW5lTnVtYmVy
LCBtX2xhc3RTZW5kVVJMKTsKIAorICAgIGlmIChtX2FzeW5jICYmIG1fbG9hZGVyKQorICAgICAg
ICBjYWNoZSgpLT5sb2FkZXIoKS0+bm9uQ2FjaGVSZXF1ZXN0Q29tcGxldGUobV91cmwpOworCiAg
ICAgYm9vbCBoYWRMb2FkZXIgPSBtX2xvYWRlcjsKICAgICBtX2xvYWRlciA9IDA7CiAKSW5kZXg6
IGxvYWRlci9sb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsb2FkZXIvbG9hZGVyLmgJKHJldmlzaW9u
IDQ1NjYxKQorKysgbG9hZGVyL2xvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3
IEBACiAKICAgICBjbGFzcyBDYWNoZWRSZXNvdXJjZTsKICAgICBjbGFzcyBEb2NMb2FkZXI7Cisg
ICAgY2xhc3MgS1VSTDsKICAgICBjbGFzcyBSZXF1ZXN0OwogCiAgICAgY2xhc3MgTG9hZGVyIDog
Tm9uY29weWFibGUgewpAQCAtNTIsNiArNTMsOSBAQAogICAgICAgICBib29sIGlzU3VzcGVuZGlu
Z1BlbmRpbmdSZXF1ZXN0cygpIHsgcmV0dXJuIG1faXNTdXNwZW5kaW5nUGVuZGluZ1JlcXVlc3Rz
OyB9CiAgICAgICAgIHZvaWQgc3VzcGVuZFBlbmRpbmdSZXF1ZXN0cygpOwogICAgICAgICB2b2lk
IHJlc3VtZVBlbmRpbmdSZXF1ZXN0cygpOworICAgICAgICAKKyAgICAgICAgdm9pZCBub25DYWNo
ZVJlcXVlc3RJbkZsaWdodChjb25zdCBLVVJMJik7CisgICAgICAgIHZvaWQgbm9uQ2FjaGVSZXF1
ZXN0Q29tcGxldGUoY29uc3QgS1VSTCYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUHJpb3Jp
dHkgZGV0ZXJtaW5lUHJpb3JpdHkoY29uc3QgQ2FjaGVkUmVzb3VyY2UqKSBjb25zdDsKQEAgLTY5
LDExICs3MywxMyBAQAogICAgICAgICAgICAgCiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICAgICAgICAgIHZvaWQgYWRk
UmVxdWVzdChSZXF1ZXN0KiwgUHJpb3JpdHkpOworICAgICAgICAgICAgdm9pZCBub25DYWNoZVJl
cXVlc3RJbkZsaWdodCgpOworICAgICAgICAgICAgdm9pZCBub25DYWNoZVJlcXVlc3RDb21wbGV0
ZSgpOwogICAgICAgICAgICAgdm9pZCBzZXJ2ZVBlbmRpbmdSZXF1ZXN0cyhQcmlvcml0eSBtaW5p
bXVtUHJpb3JpdHkgPSBMb3cpOwogICAgICAgICAgICAgdm9pZCBjYW5jZWxSZXF1ZXN0cyhEb2NM
b2FkZXIqKTsKICAgICAgICAgICAgIGJvb2wgaGFzUmVxdWVzdHMoKSBjb25zdDsKIAotICAgICAg
ICAgICAgYm9vbCBwcm9jZXNzaW5nUmVzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX251bVJlc291
cmNlc1Byb2Nlc3NpbmcgIT0gMDsgfQorICAgICAgICAgICAgYm9vbCBwcm9jZXNzaW5nUmVzb3Vy
Y2UoKSBjb25zdCB7IHJldHVybiBtX251bVJlc291cmNlc1Byb2Nlc3NpbmcgIT0gMCB8fCBtX25v
bkNhY2hlZFJlcXVlc3RzSW5GbGlnaHQgIT0wOyB9CiAKICAgICAgICAgcHJpdmF0ZToKICAgICAg
ICAgICAgIEhvc3QoY29uc3QgQXRvbWljU3RyaW5nJiwgdW5zaWduZWQpOwpAQCAtOTQsNiArMTAw
LDcgQEAKICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyBtX25hbWU7CiAgICAgICAgICAg
ICBjb25zdCBpbnQgbV9tYXhSZXF1ZXN0c0luRmxpZ2h0OwogICAgICAgICAgICAgaW50IG1fbnVt
UmVzb3VyY2VzUHJvY2Vzc2luZzsKKyAgICAgICAgICAgIGludCBtX25vbkNhY2hlZFJlcXVlc3Rz
SW5GbGlnaHQ7CiAgICAgICAgIH07CiAgICAgICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJp
bmdJbXBsKiwgUmVmUHRyPEhvc3Q+ID4gSG9zdE1hcDsKICAgICAgICAgSG9zdE1hcCBtX2hvc3Rz
OwpJbmRleDogbG9hZGVyL2xvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbG9hZGVyL2xvYWRlci5j
cHAJKHJldmlzaW9uIDQ1NjYxKQorKysgbG9hZGVyL2xvYWRlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE3Niw2ICsxNzYsMzUgQEAKICAgICAgICAgc2NoZWR1bGVTZXJ2ZVBlbmRpbmdSZXF1ZXN0
cygpOwogfQogCit2b2lkIExvYWRlcjo6bm9uQ2FjaGVSZXF1ZXN0SW5GbGlnaHQoY29uc3QgS1VS
TCYgdXJsKQoreworICAgIGlmICghdXJsLnByb3RvY29sSW5IVFRQRmFtaWx5KCkpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBBdG9taWNTdHJpbmcgaG9zdE5hbWUgPSB1cmwuaG9zdCgpOwor
ICAgIFJlZlB0cjxIb3N0PiBob3N0ID0gbV9ob3N0cy5nZXQoaG9zdE5hbWUuaW1wbCgpKTsKKyAg
ICBpZiAoIWhvc3QpIHsKKyAgICAgICAgaG9zdCA9IEhvc3Q6OmNyZWF0ZShob3N0TmFtZSwgbWF4
UmVxdWVzdHNJbkZsaWdodFBlckhvc3QpOworICAgICAgICBtX2hvc3RzLmFkZChob3N0TmFtZS5p
bXBsKCksIGhvc3QpOworICAgIH0KKyAgICAKKyAgICBob3N0LT5ub25DYWNoZVJlcXVlc3RJbkZs
aWdodCgpOworfQorCit2b2lkIExvYWRlcjo6bm9uQ2FjaGVSZXF1ZXN0Q29tcGxldGUoY29uc3Qg
S1VSTCYgdXJsKQoreworICAgIGlmICghdXJsLnByb3RvY29sSW5IVFRQRmFtaWx5KCkpCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICBBdG9taWNTdHJpbmcgaG9zdE5hbWUgPSB1cmwuaG9zdCgp
OworICAgIFJlZlB0cjxIb3N0PiBob3N0ID0gbV9ob3N0cy5nZXQoaG9zdE5hbWUuaW1wbCgpKTsK
KyAgICBBU1NFUlQoaG9zdCk7CisgICAgaWYgKCFob3N0KQorICAgICAgICByZXR1cm47CisgICAg
ICAgIAorICAgIGhvc3QtPm5vbkNhY2hlUmVxdWVzdENvbXBsZXRlKCk7Cit9CisKIHZvaWQgTG9h
ZGVyOjpjYW5jZWxSZXF1ZXN0cyhEb2NMb2FkZXIqIGRvY0xvYWRlcikKIHsKICAgICBkb2NMb2Fk
ZXItPmNsZWFyUGVuZGluZ1ByZWxvYWRzKCk7CkBAIC0yMDQsNiArMjMzLDcgQEAKICAgICA6IG1f
bmFtZShuYW1lKQogICAgICwgbV9tYXhSZXF1ZXN0c0luRmxpZ2h0KG1heFJlcXVlc3RzSW5GbGln
aHQpCiAgICAgLCBtX251bVJlc291cmNlc1Byb2Nlc3NpbmcoMCkKKyAgICAsIG1fbm9uQ2FjaGVk
UmVxdWVzdHNJbkZsaWdodCgwKQogewogfQogCkBAIC0yMTksNiArMjQ5LDE3IEBACiAgICAgbV9y
ZXF1ZXN0c1BlbmRpbmdbcHJpb3JpdHldLmFwcGVuZChyZXF1ZXN0KTsKIH0KICAgICAKK3ZvaWQg
TG9hZGVyOjpIb3N0Ojpub25DYWNoZVJlcXVlc3RJbkZsaWdodCgpCit7CisgICAgKyttX25vbkNh
Y2hlZFJlcXVlc3RzSW5GbGlnaHQ7Cit9CisKK3ZvaWQgTG9hZGVyOjpIb3N0Ojpub25DYWNoZVJl
cXVlc3RDb21wbGV0ZSgpCit7CisgICAgLS1tX25vbkNhY2hlZFJlcXVlc3RzSW5GbGlnaHQ7Cisg
ICAgQVNTRVJUKG1fbm9uQ2FjaGVkUmVxdWVzdHNJbkZsaWdodCA+PSAwKTsKK30KKwogYm9vbCBM
b2FkZXI6Okhvc3Q6Omhhc1JlcXVlc3RzKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVxdWVzdHNM
b2FkaW5nLmlzRW1wdHkoKSkKQEAgLTI1MCw3ICsyOTEsNyBAQAogICAgICAgICAvLyByZXNvdXJj
ZXMgdGhhdCB3ZSB3b3VsZCB3YW50IHRvIHB1c2ggdG8gdGhlIGZyb250IG9mIHRoZSBxdWV1ZS4g
SnVzdCBoYW5kIG9mZiB0aGUgcmVtYWluaW5nIHJlc291cmNlcwogICAgICAgICAvLyB0byB0aGUg
bmV0d29ya2luZyBsYXllci4KICAgICAgICAgYm9vbCBwYXJzZWRBbmRTdHlsZXNoZWV0c0tub3du
ID0gIWRvY0xvYWRlci0+ZG9jKCktPnBhcnNpbmcoKSAmJiBkb2NMb2FkZXItPmRvYygpLT5oYXZl
U3R5bGVzaGVldHNMb2FkZWQoKTsKLSAgICAgICAgaWYgKCFwYXJzZWRBbmRTdHlsZXNoZWV0c0tu
b3duICYmICFyZXNvdXJjZUlzQ2FjaGVWYWxpZGF0b3IgJiYgbV9yZXF1ZXN0c0xvYWRpbmcuc2l6
ZSgpID49IG1fbWF4UmVxdWVzdHNJbkZsaWdodCkgeworICAgICAgICBpZiAoIXBhcnNlZEFuZFN0
eWxlc2hlZXRzS25vd24gJiYgIXJlc291cmNlSXNDYWNoZVZhbGlkYXRvciAmJiBtX3JlcXVlc3Rz
TG9hZGluZy5zaXplKCkgKyBtX25vbkNhY2hlZFJlcXVlc3RzSW5GbGlnaHQgPj0gbV9tYXhSZXF1
ZXN0c0luRmxpZ2h0KSB7CiAgICAgICAgICAgICBzZXJ2ZUxvd2VyUHJpb3JpdHkgPSBmYWxzZTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQo=
</data>
<flag name="review"
          id="16999"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32585</attachid>
            <date>2009-07-10 15:51:12 -0700</date>
            <delta_ts>2009-07-10 15:54:23 -0700</delta_ts>
            <desc>Updated (removed overzealous decrement in internalAbort())</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>8362</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQ1NzMx
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIwMDktMDct
MTAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNjQ5NiBhbmQgPHJkYXI6Ly9wcm9ibGVtLzcwNDY1MjA+CisgICAgICAg
IFJFR1JFU1NJT046IFhIUiBzdHJlYW0gY29ubmVjdGlvbiBibG9ja3MgaUZyYW1lIGxvYWRpbmcg
YW5kIHJlc291cmNlIGRvd25sb2FkaW5nCisKKyAgICAgICAgV2l0aCB0aGlzIHRlc3Qgd2UgZW5k
ZWQgdXAgZ29pbmcgb3ZlciB0aGUgbWF4aW11bS1jb25uZWN0aW9ucy1wZXItaG9zdCBsaW1pdCB0
aGF0IENGTmV0d29yayBleHBlY3RlZC4KKyAgICAgICAgV2hlbiB0aGF0IGhhcHBlbmVkLCB0aGUg
Zmlyc3QgcmVxdWVzdCB0aGF0IHdhcyBvdmVyIHRoZSBsaW1pdCBlbmRlZCB1cCBpbiBhIGJpemFy
cmUgc3RhdGUgd2hlcmUgaXQgCisgICAgICAgIHdhc24ndCBmdWxseSBzZXJ2aWNlZCB1bnRpbCBh
ZnRlciB0aGUgbG9uZyBydW5uaW5nIFhIUiB3YXMgY29tcGxldGUuCisKKyAgICAgICAgTG9hZGVy
IGFuZCBMb2FkZXI6Okhvc3Qgd29yayB0b2dldGhlciB0byB0cnkgdG8gbm90IGV4Y2VlZCB0aGUg
bWF4LWNvbm5lY3Rpb24gbGltaXQgYnV0IG5vbi1jYWNoZQorICAgICAgICByZXNvdXJjZXMgLSBz
dWNoIGFzIFhIUiAtIGNvdWxkIHN0aWxsIGVuZCB1cCBjYXVzaW5nIHRoaXMgbGltaXQgdG8gYmUg
ZXhjZWVkZWQuCisKKyAgICAgICAgVGhpcyBmaXggYWRkcyBhIHdvcmthcm91bmQgc3BlY2lmaWNh
bGx5IGZvciBYSFIgd2hpbGUgd2UgaGFzaCBvdXQgYSBtb3JlIHRob3JvdWdoIHNvbHV0aW9uIHRo
YXQgd2lsbAorICAgICAgICBoYW5kbGUgdGhpcyBhdCB0aGUgcmVzb3VyY2UgaGFuZGxlIGxldmVs
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogbG9hZGVyL2xv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkZXI6Om5vbkNhY2hlUmVxdWVzdEluRmxp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRlcjo6bm9uQ2FjaGVSZXF1ZXN0Q29tcGxldGUp
OgorICAgICAgICAoV2ViQ29yZTo6TG9hZGVyOjpIb3N0OjpIb3N0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxvYWRlcjo6SG9zdDo6bm9uQ2FjaGVSZXF1ZXN0SW5GbGlnaHQpOgorICAgICAgICAoV2Vi
Q29yZTo6TG9hZGVyOjpIb3N0Ojpub25DYWNoZVJlcXVlc3RDb21wbGV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMb2FkZXI6Okhvc3Q6OnNlcnZlUGVuZGluZ1JlcXVlc3RzKTogVGFrZSBub25DYWNo
ZVJlcXVlc3RzSW5GbGlnaHQgaW50byBhY2NvdW50LgorICAgICAgICAqIGxvYWRlci9sb2FkZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRlcjo6SG9zdDo6cHJvY2Vzc2luZ1Jlc291cmNlKTog
VGFrZSBub25DYWNoZVJlcXVlc3RzSW5GbGlnaHQgaW50byBhY2NvdW50LgorCisgICAgICAgICog
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
OjpYTUxIdHRwUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6flhN
TEh0dHBSZXF1ZXN0KTogCisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6bG9hZFJl
cXVlc3RBc3luY2hyb25vdXNseSk6IEJ1bXAgdGhlIG5vbkNhY2hlUmVxdWVzdEluRmxpZ2h0IGNv
dW50LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZEZhaWwpOiBEZWNyZW1l
bnQgdGhhdCBjb3VudCBpZiB0aGUgTG9hZGVyIHdhcyBub3RpZmllZC4KKyAgICAgICAgKFdlYkNv
cmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKTogRGl0dG8uCisKIDIwMDktMDct
MTAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSB0byB1
bmJyZWFrIG5vbi1NYWMgYnVpbGQuCkluZGV4OiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHJldmlzaW9uIDQ1NjYxKQorKysgeG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCiAKKyNpbmNsdWRl
ICJDYWNoZS5oIgogI2luY2x1ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hl
LmgiCkBAIC0xNDUsNiArMTQ2LDcgQEAKICAgICAsIG1fdXBsb2FkQ29tcGxldGUoZmFsc2UpCiAg
ICAgLCBtX3NhbWVPcmlnaW5SZXF1ZXN0KHRydWUpCiAgICAgLCBtX2luUHJlZmxpZ2h0KGZhbHNl
KQorICAgICwgbV9kaWRUZWxsTG9hZGVyQWJvdXRSZXF1ZXN0KGZhbHNlKQogICAgICwgbV9yZWNl
aXZlZExlbmd0aCgwKQogICAgICwgbV9sYXN0U2VuZExpbmVOdW1iZXIoMCkKICAgICAsIG1fZXhj
ZXB0aW9uQ29kZSgwKQpAQCAtMTU0LDYgKzE1NiwxMCBAQAogCiBYTUxIdHRwUmVxdWVzdDo6flhN
TEh0dHBSZXF1ZXN0KCkKIHsKKyAgICBpZiAobV9kaWRUZWxsTG9hZGVyQWJvdXRSZXF1ZXN0KSB7
CisgICAgICAgICAgICBjYWNoZSgpLT5sb2FkZXIoKS0+bm9uQ2FjaGVSZXF1ZXN0Q29tcGxldGUo
bV91cmwpOworICAgICAgICAgICAgbV9kaWRUZWxsTG9hZGVyQWJvdXRSZXF1ZXN0ID0gZmFsc2U7
CisgICAgfQogICAgIGlmIChtX3VwbG9hZCkKICAgICAgICAgbV91cGxvYWQtPmRpc2Nvbm5lY3RY
TUxIdHRwUmVxdWVzdCgpOwogfQpAQCAtNjgxLDYgKzY4NywxMCBAQAogICAgICAgICAvLyBhIHJl
cXVlc3QgaXMgaW4gcHJvZ3Jlc3MgYmVjYXVzZSB3ZSBuZWVkIHRvIGtlZXAgdGhlIGxpc3RlbmVy
cyBhbGl2ZSwKICAgICAgICAgLy8gYW5kIHRoZXkgYXJlIHJlZmVyZW5jZWQgYnkgdGhlIEphdmFT
Y3JpcHQgd3JhcHBlci4KICAgICAgICAgc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOworICAgICAg
ICAKKyAgICAgICAgQVNTRVJUKCFtX2RpZFRlbGxMb2FkZXJBYm91dFJlcXVlc3QpOworICAgICAg
ICBjYWNoZSgpLT5sb2FkZXIoKS0+bm9uQ2FjaGVSZXF1ZXN0SW5GbGlnaHQobV91cmwpOworICAg
ICAgICBtX2RpZFRlbGxMb2FkZXJBYm91dFJlcXVlc3QgPSB0cnVlOwogICAgIH0KIH0KIApAQCAt
OTYxLDYgKzk3MSwxMSBAQAogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGYWlsKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQogeworICAgIGlmIChtX2RpZFRlbGxMb2FkZXJBYm91dFJlcXVl
c3QpIHsKKyAgICAgICAgY2FjaGUoKS0+bG9hZGVyKCktPm5vbkNhY2hlUmVxdWVzdENvbXBsZXRl
KG1fdXJsKTsKKyAgICAgICAgbV9kaWRUZWxsTG9hZGVyQWJvdXRSZXF1ZXN0ID0gZmFsc2U7Cisg
ICAgfQorICAgIAogICAgIC8vIElmIHdlIGFyZSBhbHJlYWR5IGluIGFuIGVycm9yIHN0YXRlLCBm
b3IgaW5zdGFuY2Ugd2UgY2FsbGVkIGFib3J0KCksIGJhaWwgb3V0IGVhcmx5LgogICAgIGlmICht
X2Vycm9yKQogICAgICAgICByZXR1cm47CkBAIC05ODIsNiArOTk3LDExIEBACiAKIHZvaWQgWE1M
SHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQog
eworICAgIGlmIChtX2RpZFRlbGxMb2FkZXJBYm91dFJlcXVlc3QpIHsKKyAgICAgICAgY2FjaGUo
KS0+bG9hZGVyKCktPm5vbkNhY2hlUmVxdWVzdENvbXBsZXRlKG1fdXJsKTsKKyAgICAgICAgbV9k
aWRUZWxsTG9hZGVyQWJvdXRSZXF1ZXN0ID0gZmFsc2U7CisgICAgfQorCiAgICAgaWYgKG1fZXJy
b3IpCiAgICAgICAgIHJldHVybjsKIApJbmRleDogeG1sL1hNTEh0dHBSZXF1ZXN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0geG1sL1hNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDQ1NjYxKQorKysgeG1sL1hN
TEh0dHBSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNSw2ICsyMjUsNyBAQAogICAgIGJv
b2wgbV9zYW1lT3JpZ2luUmVxdWVzdDsKICAgICBib29sIG1fYWxsb3dBY2Nlc3M7CiAgICAgYm9v
bCBtX2luUHJlZmxpZ2h0OworICAgIGJvb2wgbV9kaWRUZWxsTG9hZGVyQWJvdXRSZXF1ZXN0Owog
CiAgICAgLy8gVXNlZCBmb3Igb25wcm9ncmVzcyB0cmFja2luZwogICAgIGxvbmcgbG9uZyBtX3Jl
Y2VpdmVkTGVuZ3RoOwpJbmRleDogbG9hZGVyL2xvYWRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxvYWRl
ci9sb2FkZXIuaAkocmV2aXNpb24gNDU2NjEpCisrKyBsb2FkZXIvbG9hZGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM1LDYgKzM1LDcgQEAKIAogICAgIGNsYXNzIENhY2hlZFJlc291cmNlOwogICAg
IGNsYXNzIERvY0xvYWRlcjsKKyAgICBjbGFzcyBLVVJMOwogICAgIGNsYXNzIFJlcXVlc3Q7CiAK
ICAgICBjbGFzcyBMb2FkZXIgOiBOb25jb3B5YWJsZSB7CkBAIC01Miw2ICs1Myw5IEBACiAgICAg
ICAgIGJvb2wgaXNTdXNwZW5kaW5nUGVuZGluZ1JlcXVlc3RzKCkgeyByZXR1cm4gbV9pc1N1c3Bl
bmRpbmdQZW5kaW5nUmVxdWVzdHM7IH0KICAgICAgICAgdm9pZCBzdXNwZW5kUGVuZGluZ1JlcXVl
c3RzKCk7CiAgICAgICAgIHZvaWQgcmVzdW1lUGVuZGluZ1JlcXVlc3RzKCk7CisgICAgICAgIAor
ICAgICAgICB2b2lkIG5vbkNhY2hlUmVxdWVzdEluRmxpZ2h0KGNvbnN0IEtVUkwmKTsKKyAgICAg
ICAgdm9pZCBub25DYWNoZVJlcXVlc3RDb21wbGV0ZShjb25zdCBLVVJMJik7CiAKICAgICBwcml2
YXRlOgogICAgICAgICBQcmlvcml0eSBkZXRlcm1pbmVQcmlvcml0eShjb25zdCBDYWNoZWRSZXNv
dXJjZSopIGNvbnN0OwpAQCAtNjksMTEgKzczLDEzIEBACiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQog
ICAgICAgICAgICAgdm9pZCBhZGRSZXF1ZXN0KFJlcXVlc3QqLCBQcmlvcml0eSk7CisgICAgICAg
ICAgICB2b2lkIG5vbkNhY2hlUmVxdWVzdEluRmxpZ2h0KCk7CisgICAgICAgICAgICB2b2lkIG5v
bkNhY2hlUmVxdWVzdENvbXBsZXRlKCk7CiAgICAgICAgICAgICB2b2lkIHNlcnZlUGVuZGluZ1Jl
cXVlc3RzKFByaW9yaXR5IG1pbmltdW1Qcmlvcml0eSA9IExvdyk7CiAgICAgICAgICAgICB2b2lk
IGNhbmNlbFJlcXVlc3RzKERvY0xvYWRlciopOwogICAgICAgICAgICAgYm9vbCBoYXNSZXF1ZXN0
cygpIGNvbnN0OwogCi0gICAgICAgICAgICBib29sIHByb2Nlc3NpbmdSZXNvdXJjZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbnVtUmVzb3VyY2VzUHJvY2Vzc2luZyAhPSAwOyB9CisgICAgICAgICAgICBi
b29sIHByb2Nlc3NpbmdSZXNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fbnVtUmVzb3VyY2VzUHJv
Y2Vzc2luZyAhPSAwIHx8IG1fbm9uQ2FjaGVkUmVxdWVzdHNJbkZsaWdodCAhPTA7IH0KIAogICAg
ICAgICBwcml2YXRlOgogICAgICAgICAgICAgSG9zdChjb25zdCBBdG9taWNTdHJpbmcmLCB1bnNp
Z25lZCk7CkBAIC05NCw2ICsxMDAsNyBAQAogICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5n
IG1fbmFtZTsKICAgICAgICAgICAgIGNvbnN0IGludCBtX21heFJlcXVlc3RzSW5GbGlnaHQ7CiAg
ICAgICAgICAgICBpbnQgbV9udW1SZXNvdXJjZXNQcm9jZXNzaW5nOworICAgICAgICAgICAgaW50
IG1fbm9uQ2FjaGVkUmVxdWVzdHNJbkZsaWdodDsKICAgICAgICAgfTsKICAgICAgICAgdHlwZWRl
ZiBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBSZWZQdHI8SG9zdD4gPiBIb3N0TWFwOwogICAg
ICAgICBIb3N0TWFwIG1faG9zdHM7CkluZGV4OiBsb2FkZXIvbG9hZGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBsb2FkZXIvbG9hZGVyLmNwcAkocmV2aXNpb24gNDU2NjEpCisrKyBsb2FkZXIvbG9hZGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc2LDYgKzE3NiwzNSBAQAogICAgICAgICBzY2hlZHVs
ZVNlcnZlUGVuZGluZ1JlcXVlc3RzKCk7CiB9CiAKK3ZvaWQgTG9hZGVyOjpub25DYWNoZVJlcXVl
c3RJbkZsaWdodChjb25zdCBLVVJMJiB1cmwpCit7CisgICAgaWYgKCF1cmwucHJvdG9jb2xJbkhU
VFBGYW1pbHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIEF0b21pY1N0cmluZyBob3N0
TmFtZSA9IHVybC5ob3N0KCk7CisgICAgUmVmUHRyPEhvc3Q+IGhvc3QgPSBtX2hvc3RzLmdldCho
b3N0TmFtZS5pbXBsKCkpOworICAgIGlmICghaG9zdCkgeworICAgICAgICBob3N0ID0gSG9zdDo6
Y3JlYXRlKGhvc3ROYW1lLCBtYXhSZXF1ZXN0c0luRmxpZ2h0UGVySG9zdCk7CisgICAgICAgIG1f
aG9zdHMuYWRkKGhvc3ROYW1lLmltcGwoKSwgaG9zdCk7CisgICAgfQorCisgICAgaG9zdC0+bm9u
Q2FjaGVSZXF1ZXN0SW5GbGlnaHQoKTsKK30KKwordm9pZCBMb2FkZXI6Om5vbkNhY2hlUmVxdWVz
dENvbXBsZXRlKGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICBpZiAoIXVybC5wcm90b2NvbEluSFRU
UEZhbWlseSgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgQXRvbWljU3RyaW5nIGhvc3RO
YW1lID0gdXJsLmhvc3QoKTsKKyAgICBSZWZQdHI8SG9zdD4gaG9zdCA9IG1faG9zdHMuZ2V0KGhv
c3ROYW1lLmltcGwoKSk7CisgICAgQVNTRVJUKGhvc3QpOworICAgIGlmICghaG9zdCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaG9zdC0+bm9uQ2FjaGVSZXF1ZXN0Q29tcGxldGUoKTsKK30KKwog
dm9pZCBMb2FkZXI6OmNhbmNlbFJlcXVlc3RzKERvY0xvYWRlciogZG9jTG9hZGVyKQogewogICAg
IGRvY0xvYWRlci0+Y2xlYXJQZW5kaW5nUHJlbG9hZHMoKTsKQEAgLTIwNCw2ICsyMzMsNyBAQAog
ICAgIDogbV9uYW1lKG5hbWUpCiAgICAgLCBtX21heFJlcXVlc3RzSW5GbGlnaHQobWF4UmVxdWVz
dHNJbkZsaWdodCkKICAgICAsIG1fbnVtUmVzb3VyY2VzUHJvY2Vzc2luZygwKQorICAgICwgbV9u
b25DYWNoZWRSZXF1ZXN0c0luRmxpZ2h0KDApCiB7CiB9CiAKQEAgLTIxOSw2ICsyNDksMTcgQEAK
ICAgICBtX3JlcXVlc3RzUGVuZGluZ1twcmlvcml0eV0uYXBwZW5kKHJlcXVlc3QpOwogfQogICAg
IAordm9pZCBMb2FkZXI6Okhvc3Q6Om5vbkNhY2hlUmVxdWVzdEluRmxpZ2h0KCkKK3sKKyAgICAr
K21fbm9uQ2FjaGVkUmVxdWVzdHNJbkZsaWdodDsKK30KKwordm9pZCBMb2FkZXI6Okhvc3Q6Om5v
bkNhY2hlUmVxdWVzdENvbXBsZXRlKCkKK3sKKyAgICAtLW1fbm9uQ2FjaGVkUmVxdWVzdHNJbkZs
aWdodDsKKyAgICBBU1NFUlQobV9ub25DYWNoZWRSZXF1ZXN0c0luRmxpZ2h0ID49IDApOworfQor
CiBib29sIExvYWRlcjo6SG9zdDo6aGFzUmVxdWVzdHMoKSBjb25zdAogewogICAgIGlmICghbV9y
ZXF1ZXN0c0xvYWRpbmcuaXNFbXB0eSgpKQpAQCAtMjUwLDcgKzI5MSw3IEBACiAgICAgICAgIC8v
IHJlc291cmNlcyB0aGF0IHdlIHdvdWxkIHdhbnQgdG8gcHVzaCB0byB0aGUgZnJvbnQgb2YgdGhl
IHF1ZXVlLiBKdXN0IGhhbmQgb2ZmIHRoZSByZW1haW5pbmcgcmVzb3VyY2VzCiAgICAgICAgIC8v
IHRvIHRoZSBuZXR3b3JraW5nIGxheWVyLgogICAgICAgICBib29sIHBhcnNlZEFuZFN0eWxlc2hl
ZXRzS25vd24gPSAhZG9jTG9hZGVyLT5kb2MoKS0+cGFyc2luZygpICYmIGRvY0xvYWRlci0+ZG9j
KCktPmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpOwotICAgICAgICBpZiAoIXBhcnNlZEFuZFN0eWxl
c2hlZXRzS25vd24gJiYgIXJlc291cmNlSXNDYWNoZVZhbGlkYXRvciAmJiBtX3JlcXVlc3RzTG9h
ZGluZy5zaXplKCkgPj0gbV9tYXhSZXF1ZXN0c0luRmxpZ2h0KSB7CisgICAgICAgIGlmICghcGFy
c2VkQW5kU3R5bGVzaGVldHNLbm93biAmJiAhcmVzb3VyY2VJc0NhY2hlVmFsaWRhdG9yICYmIG1f
cmVxdWVzdHNMb2FkaW5nLnNpemUoKSArIG1fbm9uQ2FjaGVkUmVxdWVzdHNJbkZsaWdodCA+PSBt
X21heFJlcXVlc3RzSW5GbGlnaHQpIHsKICAgICAgICAgICAgIHNlcnZlTG93ZXJQcmlvcml0eSA9
IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32587</attachid>
            <date>2009-07-10 15:54:23 -0700</date>
            <delta_ts>2010-06-10 17:52:16 -0700</delta_ts>
            <desc>Now as a patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>8362</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQ1NzMx
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIwMDktMDct
MTAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNjQ5NiBhbmQgPHJkYXI6Ly9wcm9ibGVtLzcwNDY1MjA+CisgICAgICAg
IFJFR1JFU1NJT046IFhIUiBzdHJlYW0gY29ubmVjdGlvbiBibG9ja3MgaUZyYW1lIGxvYWRpbmcg
YW5kIHJlc291cmNlIGRvd25sb2FkaW5nCisKKyAgICAgICAgV2l0aCB0aGlzIHRlc3Qgd2UgZW5k
ZWQgdXAgZ29pbmcgb3ZlciB0aGUgbWF4aW11bS1jb25uZWN0aW9ucy1wZXItaG9zdCBsaW1pdCB0
aGF0IENGTmV0d29yayBleHBlY3RlZC4KKyAgICAgICAgV2hlbiB0aGF0IGhhcHBlbmVkLCB0aGUg
Zmlyc3QgcmVxdWVzdCB0aGF0IHdhcyBvdmVyIHRoZSBsaW1pdCBlbmRlZCB1cCBpbiBhIGJpemFy
cmUgc3RhdGUgd2hlcmUgaXQgCisgICAgICAgIHdhc24ndCBmdWxseSBzZXJ2aWNlZCB1bnRpbCBh
ZnRlciB0aGUgbG9uZyBydW5uaW5nIFhIUiB3YXMgY29tcGxldGUuCisKKyAgICAgICAgTG9hZGVy
IGFuZCBMb2FkZXI6Okhvc3Qgd29yayB0b2dldGhlciB0byB0cnkgdG8gbm90IGV4Y2VlZCB0aGUg
bWF4LWNvbm5lY3Rpb24gbGltaXQgYnV0IG5vbi1jYWNoZQorICAgICAgICByZXNvdXJjZXMgLSBz
dWNoIGFzIFhIUiAtIGNvdWxkIHN0aWxsIGVuZCB1cCBjYXVzaW5nIHRoaXMgbGltaXQgdG8gYmUg
ZXhjZWVkZWQuCisKKyAgICAgICAgVGhpcyBmaXggYWRkcyBhIHdvcmthcm91bmQgc3BlY2lmaWNh
bGx5IGZvciBYSFIgd2hpbGUgd2UgaGFzaCBvdXQgYSBtb3JlIHRob3JvdWdoIHNvbHV0aW9uIHRo
YXQgd2lsbAorICAgICAgICBoYW5kbGUgdGhpcyBhdCB0aGUgcmVzb3VyY2UgaGFuZGxlIGxldmVs
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogbG9hZGVyL2xv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkZXI6Om5vbkNhY2hlUmVxdWVzdEluRmxp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRlcjo6bm9uQ2FjaGVSZXF1ZXN0Q29tcGxldGUp
OgorICAgICAgICAoV2ViQ29yZTo6TG9hZGVyOjpIb3N0OjpIb3N0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxvYWRlcjo6SG9zdDo6bm9uQ2FjaGVSZXF1ZXN0SW5GbGlnaHQpOgorICAgICAgICAoV2Vi
Q29yZTo6TG9hZGVyOjpIb3N0Ojpub25DYWNoZVJlcXVlc3RDb21wbGV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMb2FkZXI6Okhvc3Q6OnNlcnZlUGVuZGluZ1JlcXVlc3RzKTogVGFrZSBub25DYWNo
ZVJlcXVlc3RzSW5GbGlnaHQgaW50byBhY2NvdW50LgorICAgICAgICAqIGxvYWRlci9sb2FkZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRlcjo6SG9zdDo6cHJvY2Vzc2luZ1Jlc291cmNlKTog
VGFrZSBub25DYWNoZVJlcXVlc3RzSW5GbGlnaHQgaW50byBhY2NvdW50LgorCisgICAgICAgICog
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
OjpYTUxIdHRwUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6flhN
TEh0dHBSZXF1ZXN0KTogCisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6bG9hZFJl
cXVlc3RBc3luY2hyb25vdXNseSk6IEJ1bXAgdGhlIG5vbkNhY2hlUmVxdWVzdEluRmxpZ2h0IGNv
dW50LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZEZhaWwpOiBEZWNyZW1l
bnQgdGhhdCBjb3VudCBpZiB0aGUgTG9hZGVyIHdhcyBub3RpZmllZC4KKyAgICAgICAgKFdlYkNv
cmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKTogRGl0dG8uCisKIDIwMDktMDct
MTAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSB0byB1
bmJyZWFrIG5vbi1NYWMgYnVpbGQuCkluZGV4OiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHJldmlzaW9uIDQ1NjYxKQorKysgeG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCiAKKyNpbmNsdWRl
ICJDYWNoZS5oIgogI2luY2x1ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hl
LmgiCkBAIC0xNDUsNiArMTQ2LDcgQEAKICAgICAsIG1fdXBsb2FkQ29tcGxldGUoZmFsc2UpCiAg
ICAgLCBtX3NhbWVPcmlnaW5SZXF1ZXN0KHRydWUpCiAgICAgLCBtX2luUHJlZmxpZ2h0KGZhbHNl
KQorICAgICwgbV9kaWRUZWxsTG9hZGVyQWJvdXRSZXF1ZXN0KGZhbHNlKQogICAgICwgbV9yZWNl
aXZlZExlbmd0aCgwKQogICAgICwgbV9sYXN0U2VuZExpbmVOdW1iZXIoMCkKICAgICAsIG1fZXhj
ZXB0aW9uQ29kZSgwKQpAQCAtMTU0LDYgKzE1NiwxMCBAQAogCiBYTUxIdHRwUmVxdWVzdDo6flhN
TEh0dHBSZXF1ZXN0KCkKIHsKKyAgICBpZiAobV9kaWRUZWxsTG9hZGVyQWJvdXRSZXF1ZXN0KSB7
CisgICAgICAgICAgICBjYWNoZSgpLT5sb2FkZXIoKS0+bm9uQ2FjaGVSZXF1ZXN0Q29tcGxldGUo
bV91cmwpOworICAgICAgICAgICAgbV9kaWRUZWxsTG9hZGVyQWJvdXRSZXF1ZXN0ID0gZmFsc2U7
CisgICAgfQogICAgIGlmIChtX3VwbG9hZCkKICAgICAgICAgbV91cGxvYWQtPmRpc2Nvbm5lY3RY
TUxIdHRwUmVxdWVzdCgpOwogfQpAQCAtNjgxLDYgKzY4NywxMCBAQAogICAgICAgICAvLyBhIHJl
cXVlc3QgaXMgaW4gcHJvZ3Jlc3MgYmVjYXVzZSB3ZSBuZWVkIHRvIGtlZXAgdGhlIGxpc3RlbmVy
cyBhbGl2ZSwKICAgICAgICAgLy8gYW5kIHRoZXkgYXJlIHJlZmVyZW5jZWQgYnkgdGhlIEphdmFT
Y3JpcHQgd3JhcHBlci4KICAgICAgICAgc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOworICAgICAg
ICAKKyAgICAgICAgQVNTRVJUKCFtX2RpZFRlbGxMb2FkZXJBYm91dFJlcXVlc3QpOworICAgICAg
ICBjYWNoZSgpLT5sb2FkZXIoKS0+bm9uQ2FjaGVSZXF1ZXN0SW5GbGlnaHQobV91cmwpOworICAg
ICAgICBtX2RpZFRlbGxMb2FkZXJBYm91dFJlcXVlc3QgPSB0cnVlOwogICAgIH0KIH0KIApAQCAt
OTYxLDYgKzk3MSwxMSBAQAogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGYWlsKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQogeworICAgIGlmIChtX2RpZFRlbGxMb2FkZXJBYm91dFJlcXVl
c3QpIHsKKyAgICAgICAgY2FjaGUoKS0+bG9hZGVyKCktPm5vbkNhY2hlUmVxdWVzdENvbXBsZXRl
KG1fdXJsKTsKKyAgICAgICAgbV9kaWRUZWxsTG9hZGVyQWJvdXRSZXF1ZXN0ID0gZmFsc2U7Cisg
ICAgfQorICAgIAogICAgIC8vIElmIHdlIGFyZSBhbHJlYWR5IGluIGFuIGVycm9yIHN0YXRlLCBm
b3IgaW5zdGFuY2Ugd2UgY2FsbGVkIGFib3J0KCksIGJhaWwgb3V0IGVhcmx5LgogICAgIGlmICht
X2Vycm9yKQogICAgICAgICByZXR1cm47CkBAIC05ODIsNiArOTk3LDExIEBACiAKIHZvaWQgWE1M
SHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQog
eworICAgIGlmIChtX2RpZFRlbGxMb2FkZXJBYm91dFJlcXVlc3QpIHsKKyAgICAgICAgY2FjaGUo
KS0+bG9hZGVyKCktPm5vbkNhY2hlUmVxdWVzdENvbXBsZXRlKG1fdXJsKTsKKyAgICAgICAgbV9k
aWRUZWxsTG9hZGVyQWJvdXRSZXF1ZXN0ID0gZmFsc2U7CisgICAgfQorCiAgICAgaWYgKG1fZXJy
b3IpCiAgICAgICAgIHJldHVybjsKIApJbmRleDogeG1sL1hNTEh0dHBSZXF1ZXN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0geG1sL1hNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDQ1NjYxKQorKysgeG1sL1hN
TEh0dHBSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNSw2ICsyMjUsNyBAQAogICAgIGJv
b2wgbV9zYW1lT3JpZ2luUmVxdWVzdDsKICAgICBib29sIG1fYWxsb3dBY2Nlc3M7CiAgICAgYm9v
bCBtX2luUHJlZmxpZ2h0OworICAgIGJvb2wgbV9kaWRUZWxsTG9hZGVyQWJvdXRSZXF1ZXN0Owog
CiAgICAgLy8gVXNlZCBmb3Igb25wcm9ncmVzcyB0cmFja2luZwogICAgIGxvbmcgbG9uZyBtX3Jl
Y2VpdmVkTGVuZ3RoOwpJbmRleDogbG9hZGVyL2xvYWRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxvYWRl
ci9sb2FkZXIuaAkocmV2aXNpb24gNDU2NjEpCisrKyBsb2FkZXIvbG9hZGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM1LDYgKzM1LDcgQEAKIAogICAgIGNsYXNzIENhY2hlZFJlc291cmNlOwogICAg
IGNsYXNzIERvY0xvYWRlcjsKKyAgICBjbGFzcyBLVVJMOwogICAgIGNsYXNzIFJlcXVlc3Q7CiAK
ICAgICBjbGFzcyBMb2FkZXIgOiBOb25jb3B5YWJsZSB7CkBAIC01Miw2ICs1Myw5IEBACiAgICAg
ICAgIGJvb2wgaXNTdXNwZW5kaW5nUGVuZGluZ1JlcXVlc3RzKCkgeyByZXR1cm4gbV9pc1N1c3Bl
bmRpbmdQZW5kaW5nUmVxdWVzdHM7IH0KICAgICAgICAgdm9pZCBzdXNwZW5kUGVuZGluZ1JlcXVl
c3RzKCk7CiAgICAgICAgIHZvaWQgcmVzdW1lUGVuZGluZ1JlcXVlc3RzKCk7CisgICAgICAgIAor
ICAgICAgICB2b2lkIG5vbkNhY2hlUmVxdWVzdEluRmxpZ2h0KGNvbnN0IEtVUkwmKTsKKyAgICAg
ICAgdm9pZCBub25DYWNoZVJlcXVlc3RDb21wbGV0ZShjb25zdCBLVVJMJik7CiAKICAgICBwcml2
YXRlOgogICAgICAgICBQcmlvcml0eSBkZXRlcm1pbmVQcmlvcml0eShjb25zdCBDYWNoZWRSZXNv
dXJjZSopIGNvbnN0OwpAQCAtNjksMTEgKzczLDEzIEBACiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQog
ICAgICAgICAgICAgdm9pZCBhZGRSZXF1ZXN0KFJlcXVlc3QqLCBQcmlvcml0eSk7CisgICAgICAg
ICAgICB2b2lkIG5vbkNhY2hlUmVxdWVzdEluRmxpZ2h0KCk7CisgICAgICAgICAgICB2b2lkIG5v
bkNhY2hlUmVxdWVzdENvbXBsZXRlKCk7CiAgICAgICAgICAgICB2b2lkIHNlcnZlUGVuZGluZ1Jl
cXVlc3RzKFByaW9yaXR5IG1pbmltdW1Qcmlvcml0eSA9IExvdyk7CiAgICAgICAgICAgICB2b2lk
IGNhbmNlbFJlcXVlc3RzKERvY0xvYWRlciopOwogICAgICAgICAgICAgYm9vbCBoYXNSZXF1ZXN0
cygpIGNvbnN0OwogCi0gICAgICAgICAgICBib29sIHByb2Nlc3NpbmdSZXNvdXJjZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbnVtUmVzb3VyY2VzUHJvY2Vzc2luZyAhPSAwOyB9CisgICAgICAgICAgICBi
b29sIHByb2Nlc3NpbmdSZXNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fbnVtUmVzb3VyY2VzUHJv
Y2Vzc2luZyAhPSAwIHx8IG1fbm9uQ2FjaGVkUmVxdWVzdHNJbkZsaWdodCAhPTA7IH0KIAogICAg
ICAgICBwcml2YXRlOgogICAgICAgICAgICAgSG9zdChjb25zdCBBdG9taWNTdHJpbmcmLCB1bnNp
Z25lZCk7CkBAIC05NCw2ICsxMDAsNyBAQAogICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5n
IG1fbmFtZTsKICAgICAgICAgICAgIGNvbnN0IGludCBtX21heFJlcXVlc3RzSW5GbGlnaHQ7CiAg
ICAgICAgICAgICBpbnQgbV9udW1SZXNvdXJjZXNQcm9jZXNzaW5nOworICAgICAgICAgICAgaW50
IG1fbm9uQ2FjaGVkUmVxdWVzdHNJbkZsaWdodDsKICAgICAgICAgfTsKICAgICAgICAgdHlwZWRl
ZiBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBSZWZQdHI8SG9zdD4gPiBIb3N0TWFwOwogICAg
ICAgICBIb3N0TWFwIG1faG9zdHM7CkluZGV4OiBsb2FkZXIvbG9hZGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBsb2FkZXIvbG9hZGVyLmNwcAkocmV2aXNpb24gNDU2NjEpCisrKyBsb2FkZXIvbG9hZGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc2LDYgKzE3NiwzNSBAQAogICAgICAgICBzY2hlZHVs
ZVNlcnZlUGVuZGluZ1JlcXVlc3RzKCk7CiB9CiAKK3ZvaWQgTG9hZGVyOjpub25DYWNoZVJlcXVl
c3RJbkZsaWdodChjb25zdCBLVVJMJiB1cmwpCit7CisgICAgaWYgKCF1cmwucHJvdG9jb2xJbkhU
VFBGYW1pbHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIEF0b21pY1N0cmluZyBob3N0
TmFtZSA9IHVybC5ob3N0KCk7CisgICAgUmVmUHRyPEhvc3Q+IGhvc3QgPSBtX2hvc3RzLmdldCho
b3N0TmFtZS5pbXBsKCkpOworICAgIGlmICghaG9zdCkgeworICAgICAgICBob3N0ID0gSG9zdDo6
Y3JlYXRlKGhvc3ROYW1lLCBtYXhSZXF1ZXN0c0luRmxpZ2h0UGVySG9zdCk7CisgICAgICAgIG1f
aG9zdHMuYWRkKGhvc3ROYW1lLmltcGwoKSwgaG9zdCk7CisgICAgfQorCisgICAgaG9zdC0+bm9u
Q2FjaGVSZXF1ZXN0SW5GbGlnaHQoKTsKK30KKwordm9pZCBMb2FkZXI6Om5vbkNhY2hlUmVxdWVz
dENvbXBsZXRlKGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICBpZiAoIXVybC5wcm90b2NvbEluSFRU
UEZhbWlseSgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgQXRvbWljU3RyaW5nIGhvc3RO
YW1lID0gdXJsLmhvc3QoKTsKKyAgICBSZWZQdHI8SG9zdD4gaG9zdCA9IG1faG9zdHMuZ2V0KGhv
c3ROYW1lLmltcGwoKSk7CisgICAgQVNTRVJUKGhvc3QpOworICAgIGlmICghaG9zdCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaG9zdC0+bm9uQ2FjaGVSZXF1ZXN0Q29tcGxldGUoKTsKK30KKwog
dm9pZCBMb2FkZXI6OmNhbmNlbFJlcXVlc3RzKERvY0xvYWRlciogZG9jTG9hZGVyKQogewogICAg
IGRvY0xvYWRlci0+Y2xlYXJQZW5kaW5nUHJlbG9hZHMoKTsKQEAgLTIwNCw2ICsyMzMsNyBAQAog
ICAgIDogbV9uYW1lKG5hbWUpCiAgICAgLCBtX21heFJlcXVlc3RzSW5GbGlnaHQobWF4UmVxdWVz
dHNJbkZsaWdodCkKICAgICAsIG1fbnVtUmVzb3VyY2VzUHJvY2Vzc2luZygwKQorICAgICwgbV9u
b25DYWNoZWRSZXF1ZXN0c0luRmxpZ2h0KDApCiB7CiB9CiAKQEAgLTIxOSw2ICsyNDksMTcgQEAK
ICAgICBtX3JlcXVlc3RzUGVuZGluZ1twcmlvcml0eV0uYXBwZW5kKHJlcXVlc3QpOwogfQogICAg
IAordm9pZCBMb2FkZXI6Okhvc3Q6Om5vbkNhY2hlUmVxdWVzdEluRmxpZ2h0KCkKK3sKKyAgICAr
K21fbm9uQ2FjaGVkUmVxdWVzdHNJbkZsaWdodDsKK30KKwordm9pZCBMb2FkZXI6Okhvc3Q6Om5v
bkNhY2hlUmVxdWVzdENvbXBsZXRlKCkKK3sKKyAgICAtLW1fbm9uQ2FjaGVkUmVxdWVzdHNJbkZs
aWdodDsKKyAgICBBU1NFUlQobV9ub25DYWNoZWRSZXF1ZXN0c0luRmxpZ2h0ID49IDApOworfQor
CiBib29sIExvYWRlcjo6SG9zdDo6aGFzUmVxdWVzdHMoKSBjb25zdAogewogICAgIGlmICghbV9y
ZXF1ZXN0c0xvYWRpbmcuaXNFbXB0eSgpKQpAQCAtMjUwLDcgKzI5MSw3IEBACiAgICAgICAgIC8v
IHJlc291cmNlcyB0aGF0IHdlIHdvdWxkIHdhbnQgdG8gcHVzaCB0byB0aGUgZnJvbnQgb2YgdGhl
IHF1ZXVlLiBKdXN0IGhhbmQgb2ZmIHRoZSByZW1haW5pbmcgcmVzb3VyY2VzCiAgICAgICAgIC8v
IHRvIHRoZSBuZXR3b3JraW5nIGxheWVyLgogICAgICAgICBib29sIHBhcnNlZEFuZFN0eWxlc2hl
ZXRzS25vd24gPSAhZG9jTG9hZGVyLT5kb2MoKS0+cGFyc2luZygpICYmIGRvY0xvYWRlci0+ZG9j
KCktPmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpOwotICAgICAgICBpZiAoIXBhcnNlZEFuZFN0eWxl
c2hlZXRzS25vd24gJiYgIXJlc291cmNlSXNDYWNoZVZhbGlkYXRvciAmJiBtX3JlcXVlc3RzTG9h
ZGluZy5zaXplKCkgPj0gbV9tYXhSZXF1ZXN0c0luRmxpZ2h0KSB7CisgICAgICAgIGlmICghcGFy
c2VkQW5kU3R5bGVzaGVldHNLbm93biAmJiAhcmVzb3VyY2VJc0NhY2hlVmFsaWRhdG9yICYmIG1f
cmVxdWVzdHNMb2FkaW5nLnNpemUoKSArIG1fbm9uQ2FjaGVkUmVxdWVzdHNJbkZsaWdodCA+PSBt
X21heFJlcXVlc3RzSW5GbGlnaHQpIHsKICAgICAgICAgICAgIHNlcnZlTG93ZXJQcmlvcml0eSA9
IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>