<?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>18391</bug_id>
          
          <creation_ts>2008-04-09 11:19:06 -0700</creation_ts>
          <short_desc>return body data incrementally from libsoup backend</short_desc>
          <delta_ts>2008-05-01 10:08:10 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, Soup</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dan Winship">danw</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
    
    <cc>lethalman88</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>76747</commentid>
    <comment_count>0</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2008-04-09 11:19:06 -0700</bug_when>
    <thetext>Currently the libsoup backend returns the response body all at once at the end. This fixes it to return it incrementally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76748</commentid>
    <comment_count>1</comment_count>
      <attachid>20434</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2008-04-09 11:21:50 -0700</bug_when>
    <thetext>Created attachment 20434
return data to the loader incrementally</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76846</commentid>
    <comment_count>2</comment_count>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-09 11:34:33 -0700</bug_when>
    <thetext>It&apos;s a pretty good patch, thanks Dan.
In gotHeaders Maybe there might be a problem on didReceiveResponse, this will tell webcore about a new response of the same job for each redirect.
Same thing in gotChunk, this will give webcore further data with didReceiveData on redirects.

I think a SOUP_STATUS_IS_REDIRECTION check must be added to both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77101</commentid>
    <comment_count>3</comment_count>
      <attachid>20443</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-09 15:02:19 -0700</bug_when>
    <thetext>Created attachment 20443
incremental patch

Check for redirection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77102</commentid>
    <comment_count>4</comment_count>
      <attachid>20444</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-09 15:03:32 -0700</bug_when>
    <thetext>Created attachment 20444
02-limit connections

Using 20 and 2 seems a good thing for my slow connection, also seems more responsive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77116</commentid>
    <comment_count>5</comment_count>
      <attachid>20446</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2008-04-09 19:14:21 -0700</bug_when>
    <thetext>Created attachment 20446
revised patch

checking SOUP_STATUS_IS_REDIRECTION() isn&apos;t quite right though, because in the cases where it *doesn&apos;t* redirect on a 3xx response, we&apos;d end up with no body at the end...

Error messages should generally be short anyway, so I&apos;ve just changed it so that it provides the data incrementally for 2xx responses, and all at once at the end still for non-2xx responses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77135</commentid>
    <comment_count>6</comment_count>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-10 00:57:18 -0700</bug_when>
    <thetext>Hi, well i think the previous one was still better. This way you will lose many pages from being rendered, such as 404 pages, server errors, ecc.. I&apos;d suggest to check only for a &quot;Location&quot; in the header and for transport error, what do you think about?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77140</commentid>
    <comment_count>7</comment_count>
      <attachid>20449</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-10 02:22:05 -0700</bug_when>
    <thetext>Created attachment 20449
01-check for redirects

Is right to use &quot;Location&quot;? It seems libsoup is case-sensitive for headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77151</commentid>
    <comment_count>8</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2008-04-10 05:29:05 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Hi, well i think the previous one was still better. This way you will lose many
&gt; pages from being rendered, such as 404 pages, server errors, ecc..

It doesn&apos;t lose them; 2xx responses are returned incrementally, but non-2xx responses are returned all at once from finishedCallback() just like they were before this patch. So a 301 redirecting to a 200 would look like:

    gotHeadersCallback
        [msg-&gt;status_code == 301]
        return
    gotChunkCallback
        return
    restartedCallback
    gotHeadersCallback
        [msg-&gt;status_code == 200]
        didReceiveResponse()
    gotChunkCallback
        didReceiveData()
    [more gotChunkCallbacks...]
    finishedCallback
        didFinishLoading()

but if libsoup didn&apos;t follow the redirect (eg, because it was in response to a PUT, or was to an ftp: URL, etc), then instead of &quot;restarted&quot;, you&apos;d get &quot;finishedCallback&quot;, which would see that the final status was non-2xx, and so it would call didReceiveResponse(), didReceiveData(), and didFinishLoading() all at once to make up for the fact that it hadn&apos;t done that before.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77152</commentid>
    <comment_count>9</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2008-04-10 05:33:58 -0700</bug_when>
    <thetext>Re: 02-limit connections: maybe that should be a separate bug? (Or else we should change the summary here to &quot;fix loading speed problems in libsoup backend&quot;.)

It definitely looks like Firefox uses 6 for its equivalent of SOUP_SESSION_MAX_CONNS_PER_HOST.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77164</commentid>
    <comment_count>10</comment_count>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-10 10:45:23 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; It doesn&apos;t lose them; 2xx responses are returned incrementally, but non-2xx
&gt; responses are returned all at once from finishedCallback() just like they were
&gt; before this patch.

Yes I&apos;m sorry, I definitively missed the finishedCallback part. But why shouldn&apos;t 404, not found, and other errors be loaded incrementally too? Do you think there&apos;s a speedup the soup-side?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77166</commentid>
    <comment_count>11</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2008-04-10 11:13:16 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; But why
&gt; shouldn&apos;t 404, not found, and other errors be loaded incrementally too?

Incremental loading is mostly important for images and large web pages. Most 404s are tiny, and users would never be able to notice the difference between loading them incrementally and not. And anyway, trying to exhaustively distinguish between status codes that might cause libsoup to requeue the message, and status codes that definitely won&apos;t seems like a bad idea.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77172</commentid>
    <comment_count>12</comment_count>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-10 11:31:30 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Incremental loading is mostly important for images and large web pages. Most
&gt; 404s are tiny, and users would never be able to notice the difference between
&gt; loading them incrementally and not. And anyway, trying to exhaustively
&gt; distinguish between status codes that might cause libsoup to requeue the
&gt; message, and status codes that definitely won&apos;t seems like a bad idea.
&gt; 

For instance you mean it&apos;s not safe to check for &quot;Location&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77182</commentid>
    <comment_count>13</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2008-04-10 12:12:10 -0700</bug_when>
    <thetext>Yeah, just checking 3xx and Location header isn&apos;t sufficient.

At the moment, the rule is that if there&apos;s a Location header, AND it contains a valid http: or https: URL, AND either (a) the status is 302 or 303, or (b) the status is 301 or 307 AND the method is GET, HEAD, OPTIONS, or PROPFIND, then the message gets automatically redirected.

Once we deal with authentication, then that will add another set of cases in which libsoup requeues the message automatically (when there&apos;s a 401 or 407, and it already has a valid password cached).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77273</commentid>
    <comment_count>14</comment_count>
      <attachid>20449</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-11 06:12:22 -0700</bug_when>
    <thetext>Comment on attachment 20449
01-check for redirects

Ouch, you&apos;re patch is better then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77274</commentid>
    <comment_count>15</comment_count>
      <attachid>20444</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-11 06:12:53 -0700</bug_when>
    <thetext>Comment on attachment 20444
02-limit connections

Open another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77398</commentid>
    <comment_count>16</comment_count>
      <attachid>20446</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-04-13 10:39:24 -0700</bug_when>
    <thetext>Comment on attachment 20446
revised patch

r=me

Code is fine. (ChangeLog entry should use eight spaces though for next time)

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77399</commentid>
    <comment_count>17</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-04-13 10:40:38 -0700</bug_when>
    <thetext>Landed in r31852.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77543</commentid>
    <comment_count>18</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2008-04-14 05:41:14 -0700</bug_when>
    <thetext>Hm... I realized this weekend while trying to figure out the APIs that I had confused

    ResourceLoader::didReceiveData(const char*, int, long long lengthReceived, bool allAtOnce)

and

    ResourceHandleClient::didReceiveData(ResourceHandle*, const char*, int, int lengthReceived)


here:

+    client-&gt;didReceiveData(handle, chunk-&gt;data, chunk-&gt;length, false);

ie, the last argument should actually be an int, not a bool. I couldn&apos;t figure out what that argument is actually supposed to mean, since AFAICT it currently ends up going unused in WebKitGtk. The old code passed &quot;0&quot; there but I don&apos;t know if that&apos;s right or wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78844</commentid>
    <comment_count>19</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-04-24 17:58:21 -0700</bug_when>
    <thetext>Dan, was the change that was landed incorrect?  If so, I think a new bug should be used to track that.  It&apos;s not clear to me why this was reopened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78847</commentid>
    <comment_count>20</comment_count>
      <attachid>20446</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-04-24 18:02:22 -0700</bug_when>
    <thetext>Comment on attachment 20446
revised patch

Clearing review flag as this was landed already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79366</commentid>
    <comment_count>21</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2008-05-01 10:08:10 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Dan, was the change that was landed incorrect?  If so, I think a new bug should
&gt; be used to track that.  It&apos;s not clear to me why this was reopened.

ok, i&apos;ll reclose it. (the patch is a teeny bit incorrect; it uses &quot;false&quot; where it should have used &quot;0&quot;)
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20434</attachid>
            <date>2008-04-09 11:21:50 -0700</date>
            <delta_ts>2008-04-09 19:14:21 -0700</delta_ts>
            <desc>return data to the loader incrementally</desc>
            <filename>libsoup-return-data-incrementally.diff</filename>
            <type>text/plain</type>
            <size>4541</size>
            <attacher name="Dan Winship">danw</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMTc1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDgtMDQtMDkgIERhbiBXaW5zaGlwICA8ZGFud0Bnbm9tZS5vcmc+
CisKKwlGaXggbGlic291cCBiYWNrZW5kIHRvIHBhc3MgZGF0YSB0byB0aGUgbG9hZGVyIGluY3Jl
bWVudGFsbHkKKwlyYXRoZXIgdGhhbiBhbGwgYXQgb25jZSBhdCB0aGUgZW5kLgorCisJaHR0cDov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTEKKworCVJldmlld2VkIGJ5ID8/
PworCisJKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorCShS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQpOiBjb25uZWN0IHRvICJnb3QtaGVhZGVycyIgYW5kICJnb3Qt
Y2h1bmsiCisJc2lnbmFscyBvbiB0aGUgbWVzc2FnZQorCShnb3RIZWFkZXJzQ2FsbGJhY2spOiBj
YWxsIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKCkgZnJvbSBoZXJlCisJKGdvdENodW5rQ2Fs
bGJhY2spOiBjYWxsIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoKSBmcm9tIGhlcmUKKwkoZmluaXNo
ZWRDYWxsYmFjayk6IHJlbmFtZWQgZnJvbSBkYXRhQ2FsbGJhY2suIG1vc3RseSBqdXN0IGNhbGxz
CisJY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKCkgbm93LgorCiAyMDA4LTA0LTA5ICBUaW1vdGh5
IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBBIG1vcmUgY29tcGxldGUg
Zml4IGZvcjogY2FuJ3QgZHJhZyB0aGUgV2ViIEluc3BlY3RvciB3aGVuIGdyYWJiaW5nCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAJKHJldmlzaW9uIDMxNzU1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBA
QAogICAgIGdfZnJlZSh1cmkpOwogICAgIHJlc3BvbnNlLT5zZXRNaW1lVHlwZShleHRyYWN0TUlN
RVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7CiAgICAgcmVzcG9uc2UtPnNldFRleHRF
bmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7Ci0g
ICAgcmVzcG9uc2UtPnNldEV4cGVjdGVkQ29udGVudExlbmd0aChtc2ctPnJlc3BvbnNlX2JvZHkt
Pmxlbmd0aCk7CisgICAgcmVzcG9uc2UtPnNldEV4cGVjdGVkQ29udGVudExlbmd0aChzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfY29udGVudF9sZW5ndGgobXNnLT5yZXNwb25zZV9oZWFkZXJzKSk7
CiAgICAgcmVzcG9uc2UtPnNldEhUVFBTdGF0dXNDb2RlKG1zZy0+c3RhdHVzX2NvZGUpOwogICAg
IHJlc3BvbnNlLT5zZXRTdWdnZXN0ZWRGaWxlbmFtZShmaWxlbmFtZUZyb21IVFRQQ29udGVudERp
c3Bvc2l0aW9uKHJlc3BvbnNlLT5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtRGlzcG9zaXRpb24i
KSkpOwogfQpAQCAtMTA0LDkgKzEwNCw0MiBAQAogICAgIGQtPm1fcmVxdWVzdC5zZXRVUkwobmV3
VVJMKTsKIH0KIAorc3RhdGljIHZvaWQgZ290SGVhZGVyc0NhbGxiYWNrKFNvdXBNZXNzYWdlKiBt
c2csIGdwb2ludGVyIGRhdGEpCit7CisgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRp
Y19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAg
IHJldHVybjsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRl
cm5hbCgpOworICAgIGlmIChkLT5tX2NhbmNlbGxlZCkKKyAgICAgICAgcmV0dXJuOworICAgIFJl
c291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgpOworICAgIGlmICgh
Y2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIVNPVVBfU1RBVFVTX0lTX1RSQU5T
UE9SVF9FUlJPUihtc2ctPnN0YXR1c19jb2RlKSkgeworICAgICAgICBmaWxsUmVzcG9uc2VGcm9t
TWVzc2FnZShtc2csICZkLT5tX3Jlc3BvbnNlKTsKKyAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZl
UmVzcG9uc2UoaGFuZGxlLCBkLT5tX3Jlc3BvbnNlKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lk
IGdvdENodW5rQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgU291cEJ1ZmZlciogY2h1bmssIGdw
b2ludGVyIGRhdGEpCit7CisgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0
PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVy
bjsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgp
OworICAgIGlmIChkLT5tX2NhbmNlbGxlZCkKKyAgICAgICAgcmV0dXJuOworICAgIFJlc291cmNl
SGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgpOworICAgIGlmICghY2xpZW50
KQorICAgICAgICByZXR1cm47CisKKyAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZSwg
Y2h1bmstPmRhdGEsIGNodW5rLT5sZW5ndGgsIGZhbHNlKTsKK30KKwogLy8gQ2FsbGVkIGF0IHRo
ZSBlbmQgb2YgdGhlIG1lc3NhZ2UsIHdpdGggYWxsIHRoZSBuZWNlc3NhcnkgYWJvdXQgdGhlIGxh
c3QgaW5mb3JtYXRpb25zLgogLy8gRG9lc24ndCBnZXQgY2FsbGVkIGZvciByZWRpcmVjdHMuCi1z
dGF0aWMgdm9pZCBkYXRhQ2FsbGJhY2soU291cFNlc3Npb24gKnNlc3Npb24sIFNvdXBNZXNzYWdl
KiBtc2csIGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCBmaW5pc2hlZENhbGxiYWNrKFNvdXBT
ZXNzaW9uICpzZXNzaW9uLCBTb3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYXRhKQogewogICAg
IFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRh
dGEpOwogICAgIC8vIFRPRE86IG1heWJlIHdlIHNob3VsZCBydW4gdGhpcyBjb2RlIGV2ZW4gaWYg
dGhlcmUncyBubyBjbGllbnQ/CkBAIC0xMzEsMTYgKzE2NCw3IEBACiAgICAgICAgIGNsaWVudC0+
ZGlkRmFpbChoYW5kbGUsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgIAotICAg
IGZpbGxSZXNwb25zZUZyb21NZXNzYWdlKG1zZywgJmQtPm1fcmVzcG9uc2UpOwotICAgIGNsaWVu
dC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgZC0+bV9yZXNwb25zZSk7CiAKLSAgICAvLyBX
ZWJDb3JlIG1pZ2h0IGhhdmUgY2FuY2VsbGVkIHRoZSBqb2IgaW4gdGhlIHdoaWxlCi0gICAgaWYg
KGQtPm1fY2FuY2VsbGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobXNnLT5yZXNwb25z
ZV9ib2R5LT5kYXRhKQotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZSwgbXNn
LT5yZXNwb25zZV9ib2R5LT5kYXRhLCBtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aCwgMCk7CiAg
ICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7CiB9CiAKQEAgLTI1MSw2ICsyNzUs
MTAgQEAKICAgICBtc2cgPSBzb3VwX21lc3NhZ2VfbmV3KHJlcXVlc3QoKS5odHRwTWV0aG9kKCku
dXRmOCgpLmRhdGEoKSwgdXJsU3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwogICAgIGdfc2lnbmFsX2Nv
bm5lY3QobXNnLCAicmVzdGFydGVkIiwgR19DQUxMQkFDSyhyZXN0YXJ0ZWRDYWxsYmFjayksIHRo
aXMpOwogCisgICAgZ19zaWduYWxfY29ubmVjdChtc2csICJnb3QtaGVhZGVycyIsIEdfQ0FMTEJB
Q0soZ290SGVhZGVyc0NhbGxiYWNrKSwgdGhpcyk7CisgICAgZ19zaWduYWxfY29ubmVjdChtc2cs
ICJnb3QtY2h1bmsiLCBHX0NBTExCQUNLKGdvdENodW5rQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBz
b3VwX21lc3NhZ2Vfc2V0X2ZsYWdzKG1zZywgU09VUF9NRVNTQUdFX09WRVJXUklURV9DSFVOS1Mp
OworCiAgICAgSFRUUEhlYWRlck1hcCBjdXN0b21IZWFkZXJzID0gZC0+bV9yZXF1ZXN0Lmh0dHBI
ZWFkZXJGaWVsZHMoKTsKICAgICBpZiAoIWN1c3RvbUhlYWRlcnMuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGN1c3RvbUhlYWRlcnMuZW5k
KCk7CkBAIC0yNzQsNyArMzAyLDcgQEAKICAgICB9CiAKICAgICBkLT5tX21zZyA9IHN0YXRpY19j
YXN0PFNvdXBNZXNzYWdlKj4oZ19vYmplY3RfcmVmKG1zZykpOwotICAgIHNvdXBfc2Vzc2lvbl9x
dWV1ZV9tZXNzYWdlKHNlc3Npb24sIGQtPm1fbXNnLCBkYXRhQ2FsbGJhY2ssIHRoaXMpOworICAg
IHNvdXBfc2Vzc2lvbl9xdWV1ZV9tZXNzYWdlKHNlc3Npb24sIGQtPm1fbXNnLCBmaW5pc2hlZENh
bGxiYWNrLCB0aGlzKTsKIAogICAgIHJldHVybiB0cnVlOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20443</attachid>
            <date>2008-04-09 15:02:19 -0700</date>
            <delta_ts>2008-04-10 02:22:05 -0700</delta_ts>
            <desc>incremental patch</desc>
            <filename>0001-incremental-data.patch</filename>
            <type>text/plain</type>
            <size>5377</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">RnJvbSAwYThiNjA4YmRkYTJiNGIyNmE2YmUzZGJmZTU5MTgxYjk1NGU4ZjhlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWNhIEJydW5vIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CkRh
dGU6IFdlZCwgOSBBcHIgMjAwOCAyMzo0MzowNiArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGluY3Jl
bWVudGFsIGRhdGEKCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNGYyODIwLi5hZDY1YTllIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDA4LTA0LTA5
ICBEYW4gV2luc2hpcCAgPGRhbndAZ25vbWUub3JnPgorCisgICAgICAgIEZpeCBsaWJzb3VwIGJh
Y2tlbmQgdG8gcGFzcyBkYXRhIHRvIHRoZSBsb2FkZXIgaW5jcmVtZW50YWxseQorICAgICAgICBy
YXRoZXIgdGhhbiBhbGwgYXQgb25jZSBhdCB0aGUgZW5kLgorCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzkxCisJcmV0dXJuIGJvZHkgZGF0YSBpbmNy
ZW1lbnRhbGx5IGZyb20gbGlic291cCBiYWNrZW5kCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgPz8/
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cAorICAgICAgICAoUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KTogY29ubmVjdCB0byAiZ290LWhlYWRl
cnMiIGFuZCAiZ290LWNodW5rIiBzaWduYWxzIG9uIHRoZSBtZXNzYWdlCisgICAgICAgIChnb3RI
ZWFkZXJzQ2FsbGJhY2spOiBjYWxsIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKCkgZnJvbSBo
ZXJlCisgICAgICAgIChnb3RDaHVua0NhbGxiYWNrKTogY2FsbCBjbGllbnQtPmRpZFJlY2VpdmVE
YXRhKCkgZnJvbSBoZXJlCisgICAgICAgIChmaW5pc2hlZENhbGxiYWNrKTogcmVuYW1lZCBmcm9t
IGRhdGFDYWxsYmFjay4gbW9zdGx5IGp1c3QgY2FsbHMgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5n
KCkgbm93LgorCiAyMDA4LTA0LTA5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBNaXR6LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggOTY2NDI4ZS4uZTQwMTBl
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5k
bGVTb3VwLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyB2b2lkIGZpbGxSZXNwb25zZUZy
b21NZXNzYWdlKFNvdXBNZXNzYWdlKiBtc2csIFJlc291cmNlUmVzcG9uc2UqIHJlc3BvbnNlCiAg
ICAgZ19mcmVlKHVyaSk7CiAgICAgcmVzcG9uc2UtPnNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlw
ZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAgICByZXNwb25zZS0+c2V0VGV4dEVuY29k
aW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKLSAgICBy
ZXNwb25zZS0+c2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKG1zZy0+cmVzcG9uc2VfYm9keS0+bGVu
Z3RoKTsKKyAgICByZXNwb25zZS0+c2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKHNvdXBfbWVzc2Fn
ZV9oZWFkZXJzX2dldF9jb250ZW50X2xlbmd0aChtc2ctPnJlc3BvbnNlX2hlYWRlcnMpKTsKICAg
ICByZXNwb25zZS0+c2V0SFRUUFN0YXR1c0NvZGUobXNnLT5zdGF0dXNfY29kZSk7CiAgICAgcmVz
cG9uc2UtPnNldFN1Z2dlc3RlZEZpbGVuYW1lKGZpbGVuYW1lRnJvbUhUVFBDb250ZW50RGlzcG9z
aXRpb24ocmVzcG9uc2UtPmh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1EaXNwb3NpdGlvbiIpKSk7
CiB9CkBAIC0xMDQsOSArMTA0LDQ1IEBAIHN0YXRpYyB2b2lkIHJlc3RhcnRlZENhbGxiYWNrKFNv
dXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRhdGEpCiAgICAgZC0+bV9yZXF1ZXN0LnNldFVSTChu
ZXdVUkwpOwogfQogCisvLyBDYWxsZWQgZWFjaCB0aW1lIGFsbCBoZWFkZXJzIGFyZSByZWFkeSBm
b3IgcHJvY2Vzc2luZywgYWxzbyBmb3IgcmVkaXJlY3RzLgorc3RhdGljIHZvaWQgZ290SGVhZGVy
c0NhbGxiYWNrKFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRhdGEpCit7CisgICAgUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7Cisg
ICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybjsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVy
bmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOworICAgIGlmIChkLT5tX2NhbmNlbGxlZCkK
KyAgICAgICAgcmV0dXJuOworICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5k
bGUtPmNsaWVudCgpOworICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoIVNPVVBfU1RBVFVTX0lTX1RSQU5TUE9SVF9FUlJPUihtc2ctPnN0YXR1c19jb2RlKSAmJiAh
U09VUF9TVEFUVVNfSVNfUkVESVJFQ1RJT04obXNnLT5zdGF0dXNfY29kZSkpIHsKKyAgICAgICAg
ZmlsbFJlc3BvbnNlRnJvbU1lc3NhZ2UobXNnLCAmZC0+bV9yZXNwb25zZSk7CisgICAgICAgIGNs
aWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgZC0+bV9yZXNwb25zZSk7CisgICAgfQor
fQorCisvLyBDYWxsZWQgZWFjaCB0aW1lIHNvbWUgZGF0YSBpcyByZWFkeSBmb3IgcHJvY2Vzc2lu
ZywgYWxzbyBmb3IgcmVkaXJlY3RzLgorc3RhdGljIHZvaWQgZ290Q2h1bmtDYWxsYmFjayhTb3Vw
TWVzc2FnZSogbXNnLCBTb3VwQnVmZmVyKiBjaHVuaywgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRh
KTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuOworICAgIFJlc291cmNlSGFuZGxl
SW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisgICAgaWYgKGQtPm1fY2FuY2Vs
bGVkKQorICAgICAgICByZXR1cm47CisgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9
IGhhbmRsZS0+Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmICghU09VUF9TVEFUVVNfSVNfVFJBTlNQT1JUX0VSUk9SKG1zZy0+c3RhdHVzX2NvZGUp
ICYmICFTT1VQX1NUQVRVU19JU19SRURJUkVDVElPTihtc2ctPnN0YXR1c19jb2RlKSkKKyAgICAg
ICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUsIGNodW5rLT5kYXRhLCBjaHVuay0+bGVu
Z3RoLCBmYWxzZSk7Cit9CisKIC8vIENhbGxlZCBhdCB0aGUgZW5kIG9mIHRoZSBtZXNzYWdlLCB3
aXRoIGFsbCB0aGUgbmVjZXNzYXJ5IGFib3V0IHRoZSBsYXN0IGluZm9ybWF0aW9ucy4KIC8vIERv
ZXNuJ3QgZ2V0IGNhbGxlZCBmb3IgcmVkaXJlY3RzLgotc3RhdGljIHZvaWQgZGF0YUNhbGxiYWNr
KFNvdXBTZXNzaW9uICpzZXNzaW9uLCBTb3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYXRhKQor
c3RhdGljIHZvaWQgZmluaXNoZWRDYWxsYmFjayhTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwgU291cE1l
c3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKIHsKICAgICBSZXNvdXJjZUhhbmRsZSogaGFuZGxl
ID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKICAgICAvLyBUT0RPOiBtYXli
ZSB3ZSBzaG91bGQgcnVuIHRoaXMgY29kZSBldmVuIGlmIHRoZXJlJ3Mgbm8gY2xpZW50PwpAQCAt
MTMxLDE2ICsxNjcsNyBAQCBzdGF0aWMgdm9pZCBkYXRhQ2FsbGJhY2soU291cFNlc3Npb24gKnNl
c3Npb24sIFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRhdGEpCiAgICAgICAgIGNsaWVudC0+
ZGlkRmFpbChoYW5kbGUsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgIAotICAg
IGZpbGxSZXNwb25zZUZyb21NZXNzYWdlKG1zZywgJmQtPm1fcmVzcG9uc2UpOwotICAgIGNsaWVu
dC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgZC0+bV9yZXNwb25zZSk7CiAKLSAgICAvLyBX
ZWJDb3JlIG1pZ2h0IGhhdmUgY2FuY2VsbGVkIHRoZSBqb2IgaW4gdGhlIHdoaWxlCi0gICAgaWYg
KGQtPm1fY2FuY2VsbGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobXNnLT5yZXNwb25z
ZV9ib2R5LT5kYXRhKQotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZSwgbXNn
LT5yZXNwb25zZV9ib2R5LT5kYXRhLCBtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aCwgMCk7CiAg
ICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7CiB9CiAKQEAgLTI1MSw2ICsyNzgs
MTAgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgIG1zZyA9
IHNvdXBfbWVzc2FnZV9uZXcocmVxdWVzdCgpLmh0dHBNZXRob2QoKS51dGY4KCkuZGF0YSgpLCB1
cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7CiAgICAgZ19zaWduYWxfY29ubmVjdChtc2csICJyZXN0
YXJ0ZWQiLCBHX0NBTExCQUNLKHJlc3RhcnRlZENhbGxiYWNrKSwgdGhpcyk7CiAKKyAgICBnX3Np
Z25hbF9jb25uZWN0KG1zZywgImdvdC1oZWFkZXJzIiwgR19DQUxMQkFDSyhnb3RIZWFkZXJzQ2Fs
bGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1zZywgImdvdC1jaHVuayIsIEdf
Q0FMTEJBQ0soZ290Q2h1bmtDYWxsYmFjayksIHRoaXMpOworICAgIHNvdXBfbWVzc2FnZV9zZXRf
ZmxhZ3MobXNnLCBTT1VQX01FU1NBR0VfT1ZFUldSSVRFX0NIVU5LUyk7CisKICAgICBIVFRQSGVh
ZGVyTWFwIGN1c3RvbUhlYWRlcnMgPSBkLT5tX3JlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpOwog
ICAgIGlmICghY3VzdG9tSGVhZGVycy5pc0VtcHR5KCkpIHsKICAgICAgICAgSFRUUEhlYWRlck1h
cDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY3VzdG9tSGVhZGVycy5lbmQoKTsKQEAgLTI3NCw3ICsz
MDUsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgfQog
CiAgICAgZC0+bV9tc2cgPSBzdGF0aWNfY2FzdDxTb3VwTWVzc2FnZSo+KGdfb2JqZWN0X3JlZiht
c2cpKTsKLSAgICBzb3VwX3Nlc3Npb25fcXVldWVfbWVzc2FnZShzZXNzaW9uLCBkLT5tX21zZywg
ZGF0YUNhbGxiYWNrLCB0aGlzKTsKKyAgICBzb3VwX3Nlc3Npb25fcXVldWVfbWVzc2FnZShzZXNz
aW9uLCBkLT5tX21zZywgZmluaXNoZWRDYWxsYmFjaywgdGhpcyk7CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KLS0gCjEuNS4zLjcKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20444</attachid>
            <date>2008-04-09 15:03:32 -0700</date>
            <delta_ts>2008-04-11 06:12:53 -0700</delta_ts>
            <desc>02-limit connections</desc>
            <filename>0002-limit-connections.patch</filename>
            <type>text/plain</type>
            <size>1747</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">RnJvbSA4YzFkYjczOGFmYWY4OTUyMzljOWM1YWY2MzJlYWE2MGEyMjE5MDIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWNhIEJydW5vIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CkRh
dGU6IFRodSwgMTAgQXByIDIwMDggMDA6MDA6MzAgKzAyMDAKU3ViamVjdDogW1BBVENIXSBsaW1p
dCBjb25uZWN0aW9ucwoKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGFkNjVhOWUuLjAwMzg4MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDgtMDQt
MDkgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisKKyAgICAgICAgQ2hhbmdl
IHRoZSBudW1iZXIgb2YgbWF4aW11bSBjb25uZWN0aW9ucyB0byBtYWtlIGl0IGZhc3Rlci4KKwkK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAor
ICAgICAgICAobWF4Q29ubmVjdGlvbnMpOiBhZGRlZAorICAgICAgICAobWF4Q29ubmVjdGlvbnNQ
ZXJIb3N0KTogYWRkZWQKKyAgICAgICAgKFJlc291cmNlSGFuZGxlOjpzdGFydCk6IGxpbWl0IHRo
ZSBudW1iZXIgb2YgY29ubmVjdGlvbnMKKwogMjAwOC0wNC0wOSAgRGFuIFdpbnNoaXAgIDxkYW53
QGdub21lLm9yZz4KIAogICAgICAgICBGaXggbGlic291cCBiYWNrZW5kIHRvIHBhc3MgZGF0YSB0
byB0aGUgbG9hZGVyIGluY3JlbWVudGFsbHkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IGU0MDEwZWIuLmQ0ZDkyMTUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5k
bGVTb3VwLmNwcApAQCAtMzksNiArMzksOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0
aWMgU291cFNlc3Npb24qIHNlc3Npb24gPSAwOworc3RhdGljIGNvbnN0IGludCBtYXhDb25uZWN0
aW9ucyA9IDIwOworc3RhdGljIGNvbnN0IGludCBtYXhDb25uZWN0aW9uc1Blckhvc3QgPSAyOwog
CiB0eXBlZGVmIGVudW0KIHsKQEAgLTI3Miw3ICsyNzQsOSBAQCBib29sIFJlc291cmNlSGFuZGxl
OjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgfQogCiAgICAgaWYgKCFzZXNzaW9uKQotICAgICAg
ICBzZXNzaW9uID0gc291cF9zZXNzaW9uX2FzeW5jX25ldygpOworICAgICAgICBzZXNzaW9uID0g
c291cF9zZXNzaW9uX2FzeW5jX25ld193aXRoX29wdGlvbnMoU09VUF9TRVNTSU9OX01BWF9DT05O
UywgbWF4Q29ubmVjdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTT1VQX1NFU1NJT05fTUFYX0NPTk5TX1BFUl9IT1NULCBtYXhDb25u
ZWN0aW9uc1Blckhvc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMKTsKIAogICAgIFNvdXBNZXNzYWdlKiBtc2c7CiAgICAgbXNnID0g
c291cF9tZXNzYWdlX25ldyhyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpLnV0ZjgoKS5kYXRhKCksIHVy
bFN0cmluZy51dGY4KCkuZGF0YSgpKTsKLS0gCjEuNS4zLjcKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20446</attachid>
            <date>2008-04-09 19:14:21 -0700</date>
            <delta_ts>2008-04-24 18:02:22 -0700</delta_ts>
            <desc>revised patch</desc>
            <filename>libsoup-return-data-incrementally.diff</filename>
            <type>text/plain</type>
            <size>5073</size>
            <attacher name="Dan Winship">danw</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMTc1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDgtMDQtMDkgIERhbiBXaW5zaGlwICA8ZGFud0Bnbm9tZS5vcmc+
CisKKwlGaXggbGlic291cCBiYWNrZW5kIHRvIHBhc3MgZGF0YSB0byB0aGUgbG9hZGVyIGluY3Jl
bWVudGFsbHkKKwlyYXRoZXIgdGhhbiBhbGwgYXQgb25jZSBhdCB0aGUgZW5kLgorCisJaHR0cDov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTEKKworCVJldmlld2VkIGJ5ID8/
PworCisJKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorCShS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQpOiBjb25uZWN0IHRvICJnb3QtaGVhZGVycyIgYW5kICJnb3Qt
Y2h1bmsiCisJc2lnbmFscyBvbiB0aGUgbWVzc2FnZQorCShnb3RIZWFkZXJzQ2FsbGJhY2spOiBj
YWxsIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKCkgZnJvbSBoZXJlCisJKGdvdENodW5rQ2Fs
bGJhY2spOiBjYWxsIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoKSBmcm9tIGhlcmUKKwkoZmluaXNo
ZWRDYWxsYmFjayk6IHJlbmFtZWQgZnJvbSBkYXRhQ2FsbGJhY2suIG1vc3RseSBqdXN0IGNhbGxz
CisJY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKCkgbm93LgorCiAyMDA4LTA0LTA5ICBUaW1vdGh5
IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBBIG1vcmUgY29tcGxldGUg
Zml4IGZvcjogY2FuJ3QgZHJhZyB0aGUgV2ViIEluc3BlY3RvciB3aGVuIGdyYWJiaW5nCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAJKHJldmlzaW9uIDMxNzU1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBA
QAogICAgIGdfZnJlZSh1cmkpOwogICAgIHJlc3BvbnNlLT5zZXRNaW1lVHlwZShleHRyYWN0TUlN
RVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7CiAgICAgcmVzcG9uc2UtPnNldFRleHRF
bmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7Ci0g
ICAgcmVzcG9uc2UtPnNldEV4cGVjdGVkQ29udGVudExlbmd0aChtc2ctPnJlc3BvbnNlX2JvZHkt
Pmxlbmd0aCk7CisgICAgcmVzcG9uc2UtPnNldEV4cGVjdGVkQ29udGVudExlbmd0aChzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfY29udGVudF9sZW5ndGgobXNnLT5yZXNwb25zZV9oZWFkZXJzKSk7
CiAgICAgcmVzcG9uc2UtPnNldEhUVFBTdGF0dXNDb2RlKG1zZy0+c3RhdHVzX2NvZGUpOwogICAg
IHJlc3BvbnNlLT5zZXRTdWdnZXN0ZWRGaWxlbmFtZShmaWxlbmFtZUZyb21IVFRQQ29udGVudERp
c3Bvc2l0aW9uKHJlc3BvbnNlLT5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtRGlzcG9zaXRpb24i
KSkpOwogfQpAQCAtMTA0LDkgKzEwNCw0NyBAQAogICAgIGQtPm1fcmVxdWVzdC5zZXRVUkwobmV3
VVJMKTsKIH0KIAorc3RhdGljIHZvaWQgZ290SGVhZGVyc0NhbGxiYWNrKFNvdXBNZXNzYWdlKiBt
c2csIGdwb2ludGVyIGRhdGEpCit7CisgICAgaWYgKCFTT1VQX1NUQVRVU19JU19TVUNDRVNTRlVM
KG1zZy0+c3RhdHVzX2NvZGUpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZXNvdXJjZUhhbmRs
ZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKKyAgICBpZiAo
IWhhbmRsZSkKKyAgICAgICAgcmV0dXJuOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQg
PSBoYW5kbGUtPmdldEludGVybmFsKCk7CisgICAgaWYgKGQtPm1fY2FuY2VsbGVkKQorICAgICAg
ICByZXR1cm47CisgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xp
ZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGZpbGxSZXNw
b25zZUZyb21NZXNzYWdlKG1zZywgJmQtPm1fcmVzcG9uc2UpOworICAgIGNsaWVudC0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlKGhhbmRsZSwgZC0+bV9yZXNwb25zZSk7CisgICAgc291cF9tZXNzYWdlX3Nl
dF9mbGFncyhtc2csIFNPVVBfTUVTU0FHRV9PVkVSV1JJVEVfQ0hVTktTKTsKK30KKworc3RhdGlj
IHZvaWQgZ290Q2h1bmtDYWxsYmFjayhTb3VwTWVzc2FnZSogbXNnLCBTb3VwQnVmZmVyKiBjaHVu
aywgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBpZiAoIVNPVVBfU1RBVFVTX0lTX1NVQ0NFU1NGVUwo
bXNnLT5zdGF0dXNfY29kZSkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlc291cmNlSGFuZGxl
KiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOworICAgIGlmICgh
aGFuZGxlKQorICAgICAgICByZXR1cm47CisgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9
IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKKyAgICBpZiAoZC0+bV9jYW5jZWxsZWQpCisgICAgICAg
IHJldHVybjsKKyAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gaGFuZGxlLT5jbGll
bnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2xpZW50LT5k
aWRSZWNlaXZlRGF0YShoYW5kbGUsIGNodW5rLT5kYXRhLCBjaHVuay0+bGVuZ3RoLCBmYWxzZSk7
Cit9CisKIC8vIENhbGxlZCBhdCB0aGUgZW5kIG9mIHRoZSBtZXNzYWdlLCB3aXRoIGFsbCB0aGUg
bmVjZXNzYXJ5IGFib3V0IHRoZSBsYXN0IGluZm9ybWF0aW9ucy4KIC8vIERvZXNuJ3QgZ2V0IGNh
bGxlZCBmb3IgcmVkaXJlY3RzLgotc3RhdGljIHZvaWQgZGF0YUNhbGxiYWNrKFNvdXBTZXNzaW9u
ICpzZXNzaW9uLCBTb3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYXRhKQorc3RhdGljIHZvaWQg
ZmluaXNoZWRDYWxsYmFjayhTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1zZywg
Z3BvaW50ZXIgZGF0YSkKIHsKICAgICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nh
c3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKICAgICAvLyBUT0RPOiBtYXliZSB3ZSBzaG91bGQg
cnVuIHRoaXMgY29kZSBldmVuIGlmIHRoZXJlJ3Mgbm8gY2xpZW50PwpAQCAtMTMwLDE3ICsxNjgs
MTggQEAKICAgICAgICAgZ19mcmVlKHVyaSk7CiAgICAgICAgIGNsaWVudC0+ZGlkRmFpbChoYW5k
bGUsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAoIVNPVVBfU1RBVFVT
X0lTX1NVQ0NFU1NGVUwobXNnLT5zdGF0dXNfY29kZSkpIHsKKyAgICAgICAgZmlsbFJlc3BvbnNl
RnJvbU1lc3NhZ2UobXNnLCAmZC0+bV9yZXNwb25zZSk7CisgICAgICAgIGNsaWVudC0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlKGhhbmRsZSwgZC0+bV9yZXNwb25zZSk7CisKKyAgICAgICAgLy8gV2ViQ29y
ZSBtaWdodCBoYXZlIGNhbmNlbGxlZCB0aGUgam9iIGluIHRoZSB3aGlsZQorICAgICAgICBpZiAo
ZC0+bV9jYW5jZWxsZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKG1zZy0+
cmVzcG9uc2VfYm9keS0+ZGF0YSkKKyAgICAgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEo
aGFuZGxlLCBtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEsIG1zZy0+cmVzcG9uc2VfYm9keS0+bGVu
Z3RoLCB0cnVlKTsKICAgICB9Ci0gICAKLSAgICBmaWxsUmVzcG9uc2VGcm9tTWVzc2FnZShtc2cs
ICZkLT5tX3Jlc3BvbnNlKTsKLSAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUs
IGQtPm1fcmVzcG9uc2UpOwogCi0gICAgLy8gV2ViQ29yZSBtaWdodCBoYXZlIGNhbmNlbGxlZCB0
aGUgam9iIGluIHRoZSB3aGlsZQotICAgIGlmIChkLT5tX2NhbmNlbGxlZCkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgaWYgKG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSkKLSAgICAgICAgY2xpZW50
LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUsIG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSwgbXNnLT5y
ZXNwb25zZV9ib2R5LT5sZW5ndGgsIDApOwogICAgIGNsaWVudC0+ZGlkRmluaXNoTG9hZGluZyho
YW5kbGUpOwogfQogCkBAIC0yNTEsNiArMjkwLDkgQEAKICAgICBtc2cgPSBzb3VwX21lc3NhZ2Vf
bmV3KHJlcXVlc3QoKS5odHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSwgdXJsU3RyaW5nLnV0Zjgo
KS5kYXRhKCkpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QobXNnLCAicmVzdGFydGVkIiwgR19DQUxM
QkFDSyhyZXN0YXJ0ZWRDYWxsYmFjayksIHRoaXMpOwogCisgICAgZ19zaWduYWxfY29ubmVjdCht
c2csICJnb3QtaGVhZGVycyIsIEdfQ0FMTEJBQ0soZ290SGVhZGVyc0NhbGxiYWNrKSwgdGhpcyk7
CisgICAgZ19zaWduYWxfY29ubmVjdChtc2csICJnb3QtY2h1bmsiLCBHX0NBTExCQUNLKGdvdENo
dW5rQ2FsbGJhY2spLCB0aGlzKTsKKwogICAgIEhUVFBIZWFkZXJNYXAgY3VzdG9tSGVhZGVycyA9
IGQtPm1fcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCk7CiAgICAgaWYgKCFjdXN0b21IZWFkZXJz
LmlzRW1wdHkoKSkgewogICAgICAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQg
PSBjdXN0b21IZWFkZXJzLmVuZCgpOwpAQCAtMjc0LDcgKzMxNiw3IEBACiAgICAgfQogCiAgICAg
ZC0+bV9tc2cgPSBzdGF0aWNfY2FzdDxTb3VwTWVzc2FnZSo+KGdfb2JqZWN0X3JlZihtc2cpKTsK
LSAgICBzb3VwX3Nlc3Npb25fcXVldWVfbWVzc2FnZShzZXNzaW9uLCBkLT5tX21zZywgZGF0YUNh
bGxiYWNrLCB0aGlzKTsKKyAgICBzb3VwX3Nlc3Npb25fcXVldWVfbWVzc2FnZShzZXNzaW9uLCBk
LT5tX21zZywgZmluaXNoZWRDYWxsYmFjaywgdGhpcyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20449</attachid>
            <date>2008-04-10 02:22:05 -0700</date>
            <delta_ts>2008-04-11 06:12:22 -0700</delta_ts>
            <desc>01-check for redirects</desc>
            <filename>0001-check-for-redirects.patch</filename>
            <type>text/plain</type>
            <size>5475</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">RnJvbSBmOGZmZTA0Y2U2NjY0ZWNjYzQ1OGRlZTBmMDNiZThlNmM2ODEwZjA0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWNhIEJydW5vIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CkRh
dGU6IFRodSwgMTAgQXByIDIwMDggMTE6MTc6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBjaGVj
ayBmb3IgcmVkaXJlY3RzCgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggOWYzNTI4NC4uOWE3YWMyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOC0w
NC0wOSAgRGFuIFdpbnNoaXAgIDxkYW53QGdub21lLm9yZz4KKworICAgICAgICBGaXggbGlic291
cCBiYWNrZW5kIHRvIHBhc3MgZGF0YSB0byB0aGUgbG9hZGVyIGluY3JlbWVudGFsbHkKKyAgICAg
ICAgcmF0aGVyIHRoYW4gYWxsIGF0IG9uY2UgYXQgdGhlIGVuZC4KKworICAgICAgICBodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MQorCisgICAgICAgIFJldmlld2Vk
IGJ5ID8/PworCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAKKyAgICAgICAgKFJlc291cmNlSGFuZGxlOjpzdGFydCk6IGNvbm5lY3QgdG8gImdv
dC1oZWFkZXJzIiBhbmQgImdvdC1jaHVuayIgc2lnbmFscyBvbiB0aGUgbWVzc2FnZQorICAgICAg
ICAoZ290SGVhZGVyc0NhbGxiYWNrKTogY2FsbCBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZSgp
IGZyb20gaGVyZQorICAgICAgICAoZ290Q2h1bmtDYWxsYmFjayk6IGNhbGwgY2xpZW50LT5kaWRS
ZWNlaXZlRGF0YSgpIGZyb20gaGVyZQorICAgICAgICAoZmluaXNoZWRDYWxsYmFjayk6IHJlbmFt
ZWQgZnJvbSBkYXRhQ2FsbGJhY2suIG1vc3RseSBqdXN0IGNhbGxzIGNsaWVudC0+ZGlkRmluaXNo
TG9hZGluZygpIG5vdy4KKwogMjAwOC0wNC0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWl0eiBQZXR0ZWwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDk2
NjQyOGUuLjViNWUzMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgdm9pZCBm
aWxsUmVzcG9uc2VGcm9tTWVzc2FnZShTb3VwTWVzc2FnZSogbXNnLCBSZXNvdXJjZVJlc3BvbnNl
KiByZXNwb25zZQogICAgIGdfZnJlZSh1cmkpOwogICAgIHJlc3BvbnNlLT5zZXRNaW1lVHlwZShl
eHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7CiAgICAgcmVzcG9uc2Ut
PnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRU
eXBlKSk7Ci0gICAgcmVzcG9uc2UtPnNldEV4cGVjdGVkQ29udGVudExlbmd0aChtc2ctPnJlc3Bv
bnNlX2JvZHktPmxlbmd0aCk7CisgICAgcmVzcG9uc2UtPnNldEV4cGVjdGVkQ29udGVudExlbmd0
aChzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfY29udGVudF9sZW5ndGgobXNnLT5yZXNwb25zZV9o
ZWFkZXJzKSk7CiAgICAgcmVzcG9uc2UtPnNldEhUVFBTdGF0dXNDb2RlKG1zZy0+c3RhdHVzX2Nv
ZGUpOwogICAgIHJlc3BvbnNlLT5zZXRTdWdnZXN0ZWRGaWxlbmFtZShmaWxlbmFtZUZyb21IVFRQ
Q29udGVudERpc3Bvc2l0aW9uKHJlc3BvbnNlLT5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtRGlz
cG9zaXRpb24iKSkpOwogfQpAQCAtMTA0LDkgKzEwNCw0NyBAQCBzdGF0aWMgdm9pZCByZXN0YXJ0
ZWRDYWxsYmFjayhTb3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYXRhKQogICAgIGQtPm1fcmVx
dWVzdC5zZXRVUkwobmV3VVJMKTsKIH0KIAorLy8gQ2FsbGVkIGVhY2ggdGltZSBhbGwgaGVhZGVy
cyBhcmUgcmVhZHkgZm9yIHByb2Nlc3NpbmcsIGFsc28gZm9yIHJlZGlyZWN0cy4KK3N0YXRpYyB2
b2lkIGdvdEhlYWRlcnNDYWxsYmFjayhTb3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYXRhKQor
eworICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRs
ZSo+KGRhdGEpOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm47CisgICAgUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKKyAgICBpZiAoZC0+
bV9jYW5jZWxsZWQpCisgICAgICAgIHJldHVybjsKKyAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50ID0gaGFuZGxlLT5jbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgY29uc3QgY2hhciogcmVkaXJlY3RfbG9jYXRpb24gPSBzb3VwX21lc3NhZ2Vf
aGVhZGVyc19nZXQobXNnLT5yZXNwb25zZV9oZWFkZXJzLCAiTG9jYXRpb24iKTsKKyAgICBpZiAo
IVNPVVBfU1RBVFVTX0lTX1RSQU5TUE9SVF9FUlJPUihtc2ctPnN0YXR1c19jb2RlKSAmJiAhcmVk
aXJlY3RfbG9jYXRpb24pIHsKKyAgICAgICAgZmlsbFJlc3BvbnNlRnJvbU1lc3NhZ2UobXNnLCAm
ZC0+bV9yZXNwb25zZSk7CisgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRs
ZSwgZC0+bV9yZXNwb25zZSk7CisgICAgfQorfQorCisvLyBDYWxsZWQgZWFjaCB0aW1lIHNvbWUg
ZGF0YSBpcyByZWFkeSBmb3IgcHJvY2Vzc2luZywgYWxzbyBmb3IgcmVkaXJlY3RzLgorc3RhdGlj
IHZvaWQgZ290Q2h1bmtDYWxsYmFjayhTb3VwTWVzc2FnZSogbXNnLCBTb3VwQnVmZmVyKiBjaHVu
aywgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGlj
X2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAg
cmV0dXJuOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVy
bmFsKCk7CisgICAgaWYgKGQtPm1fY2FuY2VsbGVkKQorICAgICAgICByZXR1cm47CisgICAgUmVz
b3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7CisgICAgaWYgKCFj
bGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IGNoYXIqIHJlZGlyZWN0X2xvY2F0
aW9uID0gc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0KG1zZy0+cmVzcG9uc2VfaGVhZGVycywgIkxv
Y2F0aW9uIik7CisgICAgaWYgKCFTT1VQX1NUQVRVU19JU19UUkFOU1BPUlRfRVJST1IobXNnLT5z
dGF0dXNfY29kZSkgJiYgIXJlZGlyZWN0X2xvY2F0aW9uKQorICAgICAgICBjbGllbnQtPmRpZFJl
Y2VpdmVEYXRhKGhhbmRsZSwgY2h1bmstPmRhdGEsIGNodW5rLT5sZW5ndGgsIGZhbHNlKTsKK30K
KwogLy8gQ2FsbGVkIGF0IHRoZSBlbmQgb2YgdGhlIG1lc3NhZ2UsIHdpdGggYWxsIHRoZSBuZWNl
c3NhcnkgYWJvdXQgdGhlIGxhc3QgaW5mb3JtYXRpb25zLgogLy8gRG9lc24ndCBnZXQgY2FsbGVk
IGZvciByZWRpcmVjdHMuCi1zdGF0aWMgdm9pZCBkYXRhQ2FsbGJhY2soU291cFNlc3Npb24gKnNl
c3Npb24sIFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCBmaW5p
c2hlZENhbGxiYWNrKFNvdXBTZXNzaW9uICpzZXNzaW9uLCBTb3VwTWVzc2FnZSogbXNnLCBncG9p
bnRlciBkYXRhKQogewogICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxS
ZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwogICAgIC8vIFRPRE86IG1heWJlIHdlIHNob3VsZCBydW4g
dGhpcyBjb2RlIGV2ZW4gaWYgdGhlcmUncyBubyBjbGllbnQ/CkBAIC0xMzEsMTYgKzE2OSw3IEBA
IHN0YXRpYyB2b2lkIGRhdGFDYWxsYmFjayhTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwgU291cE1lc3Nh
Z2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKICAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZSwg
ZXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgCi0gICAgZmlsbFJlc3BvbnNlRnJv
bU1lc3NhZ2UobXNnLCAmZC0+bV9yZXNwb25zZSk7Ci0gICAgY2xpZW50LT5kaWRSZWNlaXZlUmVz
cG9uc2UoaGFuZGxlLCBkLT5tX3Jlc3BvbnNlKTsKIAotICAgIC8vIFdlYkNvcmUgbWlnaHQgaGF2
ZSBjYW5jZWxsZWQgdGhlIGpvYiBpbiB0aGUgd2hpbGUKLSAgICBpZiAoZC0+bV9jYW5jZWxsZWQp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEpCi0g
ICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBtc2ctPnJlc3BvbnNlX2JvZHkt
PmRhdGEsIG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCAwKTsKICAgICBjbGllbnQtPmRpZEZp
bmlzaExvYWRpbmcoaGFuZGxlKTsKIH0KIApAQCAtMjUxLDYgKzI4MCwxMCBAQCBib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgbXNnID0gc291cF9tZXNzYWdlX25l
dyhyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpLnV0ZjgoKS5kYXRhKCksIHVybFN0cmluZy51dGY4KCku
ZGF0YSgpKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KG1zZywgInJlc3RhcnRlZCIsIEdfQ0FMTEJB
Q0socmVzdGFydGVkQ2FsbGJhY2spLCB0aGlzKTsKIAorICAgIGdfc2lnbmFsX2Nvbm5lY3QobXNn
LCAiZ290LWhlYWRlcnMiLCBHX0NBTExCQUNLKGdvdEhlYWRlcnNDYWxsYmFjayksIHRoaXMpOwor
ICAgIGdfc2lnbmFsX2Nvbm5lY3QobXNnLCAiZ290LWNodW5rIiwgR19DQUxMQkFDSyhnb3RDaHVu
a0NhbGxiYWNrKSwgdGhpcyk7CisgICAgc291cF9tZXNzYWdlX3NldF9mbGFncyhtc2csIFNPVVBf
TUVTU0FHRV9PVkVSV1JJVEVfQ0hVTktTKTsKKwogICAgIEhUVFBIZWFkZXJNYXAgY3VzdG9tSGVh
ZGVycyA9IGQtPm1fcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCk7CiAgICAgaWYgKCFjdXN0b21I
ZWFkZXJzLmlzRW1wdHkoKSkgewogICAgICAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRv
ciBlbmQgPSBjdXN0b21IZWFkZXJzLmVuZCgpOwpAQCAtMjc0LDcgKzMwNyw3IEBAIGJvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICB9CiAKICAgICBkLT5tX21zZyA9
IHN0YXRpY19jYXN0PFNvdXBNZXNzYWdlKj4oZ19vYmplY3RfcmVmKG1zZykpOwotICAgIHNvdXBf
c2Vzc2lvbl9xdWV1ZV9tZXNzYWdlKHNlc3Npb24sIGQtPm1fbXNnLCBkYXRhQ2FsbGJhY2ssIHRo
aXMpOworICAgIHNvdXBfc2Vzc2lvbl9xdWV1ZV9tZXNzYWdlKHNlc3Npb24sIGQtPm1fbXNnLCBm
aW5pc2hlZENhbGxiYWNrLCB0aGlzKTsKIAogICAgIHJldHVybiB0cnVlOwogfQotLSAKMS41LjMu
NwoK
</data>

          </attachment>
      

    </bug>

</bugzilla>