<?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>17917</bug_id>
          
          <creation_ts>2008-03-18 11:23:04 -0700</creation_ts>
          <short_desc>Cookie support for HTTP soup backend</short_desc>
          <delta_ts>2008-04-14 13:20:47 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xan Lopez">xan.lopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
    
    <cc>christian</cc>
    
    <cc>cosimoc</cc>
    
    <cc>danw</cc>
    
    <cc>jchaffraix</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>74281</commentid>
    <comment_count>0</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-03-18 11:23:04 -0700</bug_when>
    <thetext>See attached patch summary for details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74282</commentid>
    <comment_count>1</comment_count>
      <attachid>19866</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-03-18 11:24:44 -0700</bug_when>
    <thetext>Created attachment 19866
0001-Initial-implementation-of-cookies-for-the-http-soup.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74562</commentid>
    <comment_count>2</comment_count>
      <attachid>19866</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-03-20 14:18:51 -0700</bug_when>
    <thetext>Comment on attachment 19866
0001-Initial-implementation-of-cookies-for-the-http-soup.patch

A few coding style issues here (I fixed them up, will attach the fixes).

We shouldn&apos;t really land this till the feature hits soup upstream or there&apos;s a clear indication that it will go in unchanged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74563</commentid>
    <comment_count>3</comment_count>
      <attachid>19909</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-03-20 14:19:51 -0700</bug_when>
    <thetext>Created attachment 19909
Cleaned up patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74994</commentid>
    <comment_count>4</comment_count>
      <attachid>20009</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-03-24 11:51:24 -0700</bug_when>
    <thetext>Created attachment 20009
0001-Initial-implementation-of-cookies-for-the-http-soup.patch

Updated to new APIs after Dan&apos;s review, and also updated to build on trunk (needed changes in ResourceHandle.h). Added the getCookieJar hack so people can actually test the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74995</commentid>
    <comment_count>5</comment_count>
      <attachid>20010</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-03-24 11:55:59 -0700</bug_when>
    <thetext>Created attachment 20010
0001-Initial-implementation-of-cookies-for-the-http-soup.patch

Updated to new APIs after Dan&apos;s review, and also updated to build on trunk
(needed changes in ResourceHandle.h). Added the getCookieJar hack so people can
actually test the patch. (Fix style issue)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76061</commentid>
    <comment_count>6</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-04-01 07:15:09 -0700</bug_when>
    <thetext>I do not know libsoup, so I will just comment on the interaction with the other backend.

CookieJar.h and CookieJarGtk.h are currently shared with the cURL backend and your changes do not take that into account.

For CookieJarGtk, we have the choice between 
adding the proper #if USE guards or split it into two files.
I do not really think we can share code in this case so I would vote for splitting the files and moving them in their own directory.


diff --git a/WebCore/platform/CookieJar.h b/WebCore/platform/CookieJar.h

index 38efd04..3cd86dd 100644

--- a/WebCore/platform/CookieJar.h

+++ b/WebCore/platform/CookieJar.h

@@ -26,6 +26,10 @@

 #ifndef CookieJar_h

 #define CookieJar_h

 

+#if PLATFORM(GTK)


Shoud be USE(SOUP).

+#include &lt;libsoup/soup.h&gt;

+#endif

+

 namespace WebCore {

 

     class KURL;

@@ -35,7 +39,9 @@ namespace WebCore {

     String cookies(const Document* document, const KURL&amp;);

     void setCookies(Document* document, const KURL&amp;, const KURL&amp; policyBaseURL, const String&amp;);

     bool cookiesEnabled(const Document* document);

-

+#if PLATFORM(GTK)


Same as above.

+    SoupCookieJar* getCookieJar(void);

+#endif

 }

 

 #endif

diff --git a/WebCore/platform/gtk/CookieJarGtk.cpp b/WebCore/platform/gtk/CookieJarGtk.cpp

index 2f76ebc..eace692 100644

--- a/WebCore/platform/gtk/CookieJarGtk.cpp

+++ b/WebCore/platform/gtk/CookieJarGtk.cpp

@@ -1,4 +1,7 @@

+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; -*- */

 /*

+ *  Copyright (C) 2008 Xan Lopez &lt;xan@gnome.org&gt;

+ *

  *  This library is free software; you can redistribute it and/or

  *  modify it under the terms of the GNU Lesser General Public

  *  License as published by the Free Software Foundation; either

@@ -15,31 +18,56 @@

  */

 

 #include &quot;config.h&quot;

+#include &quot;CString.h&quot;

 #include &quot;CookieJar.h&quot;

 

 #include &quot;KURL.h&quot;

 #include &quot;PlatformString.h&quot;

 #include &quot;StringHash.h&quot;

 

-#include &lt;wtf/HashMap.h&gt;

+#include &lt;libsoup/soup.h&gt;

 

 namespace WebCore {

 

-static HashMap&lt;String, String&gt; cookieJar;

+SoupCookieJar* getCookieJar()

+{

+    static SoupCookieJar* jar = NULL;

+

+    if (!jar)

+        jar = soup_cookie_jar_new ();

+

+    return jar;

+}

 

-void setCookies(Document* /*document*/, const KURL&amp; url, const KURL&amp; /*policyURL*/, const String&amp; value)

+void setCookies(Document* document, const KURL&amp; url, const KURL&amp; policyURL, const String&amp; value)


Why do you change this line while you do not use the parameters?

 {

-    cookieJar.set(url.string(), value);

+    SoupCookieJar* jar = getCookieJar();

+    if (!jar) return;


We usually put the if and the return on two different lines.
+

+    SoupURI* origin = soup_uri_new(url.string().utf8().data());

+

+    soup_cookie_jar_set_cookie(jar, origin, value.utf8().data());

+    soup_uri_free(origin);

 }

 

-String cookies(const Document* /*document*/, const KURL&amp; url)

+String cookies(const Document* document, const KURL&amp; url)


Same as above.

 {

-    return cookieJar.get(url.string());

+    SoupCookieJar* jar = getCookieJar();

+    if (!jar) return String();


Same as above.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76473</commentid>
    <comment_count>7</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-04-07 03:12:39 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I do not know libsoup, so I will just comment on the interaction with the other
&gt; backend.
&gt; 
&gt; CookieJar.h and CookieJarGtk.h are currently shared with the cURL backend and
&gt; your changes do not take that into account.
&gt; 
&gt; For CookieJarGtk, we have the choice between 
&gt; adding the proper #if USE guards or split it into two files.
&gt; I do not really think we can share code in this case so I would vote for
&gt; splitting the files and moving them in their own directory.

As I said it was not meant to be a good solution or anything, just a quick hack to actually test the code. So you think a proper solution would be to add CookieJarSoup or something like that?

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76616</commentid>
    <comment_count>8</comment_count>
      <attachid>20407</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-04-08 08:52:29 -0700</bug_when>
    <thetext>Created attachment 20407
0001-Initial-implementation-of-cookies-for-the-http-soup.patch

Update the patch to trunk and address review points (still pending jar sharing).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76619</commentid>
    <comment_count>9</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-04-08 09:13:48 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; I do not know libsoup, so I will just comment on the interaction with the other
&gt; &gt; backend.
&gt; &gt; 
&gt; &gt; CookieJar.h and CookieJarGtk.h are currently shared with the cURL backend and
&gt; &gt; your changes do not take that into account.
&gt; &gt; 
&gt; &gt; For CookieJarGtk, we have the choice between 
&gt; &gt; adding the proper #if USE guards or split it into two files.
&gt; &gt; I do not really think we can share code in this case so I would vote for
&gt; &gt; splitting the files and moving them in their own directory.
&gt; 
&gt; As I said it was not meant to be a good solution or anything, just a quick hack
&gt; to actually test the code. So you think a proper solution would be to add
&gt; CookieJarSoup or something like that?
&gt; 

Exactly. As the code is going to be really different, it is better to remove the current CookieJarGtk and create CookieJarCurl and CookieJarSoup (it may also be a good idea to move them to their platform/network directory).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76669</commentid>
    <comment_count>10</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2008-04-08 19:22:11 -0700</bug_when>
    <thetext>the cookie code is committed to libsoup svn now.

it may make sense to have configure.ac check for &quot;libsoup-2.4 &gt;= 2.23&quot; to see if you have unstable libsoup, and define something in that case (which would be used to enable cookie support, etc), but if not, fall back to checking &quot;libsoup-2.4 &gt;= 2.4&quot;. just to make it easier for people to test with. Or maybe not...
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76705</commentid>
    <comment_count>11</comment_count>
      <attachid>20424</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2008-04-09 04:17:14 -0700</bug_when>
    <thetext>Created attachment 20424
soup-cookies.patch

Ok, I added CookieJar{Soup,Curl} and removed the old CookieJarGtk.

I&apos;ve bumped the soup version required to 2.23, I don&apos;t think we want people testing against (soon to be) old code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77608</commentid>
    <comment_count>12</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-04-14 13:20:47 -0700</bug_when>
    <thetext>Landed in r31878.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19866</attachid>
            <date>2008-03-18 11:24:44 -0700</date>
            <delta_ts>2008-03-20 14:19:51 -0700</delta_ts>
            <desc>0001-Initial-implementation-of-cookies-for-the-http-soup.patch</desc>
            <filename>0001-Initial-implementation-of-cookies-for-the-http-soup.patch</filename>
            <type>text/plain</type>
            <size>4098</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA4NzEzNjFiN2I3N2ZiMmVhZTI0NmRiNjU1NTYxZTQ5YzI2YjczYzBmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFR1ZSwg
MTggTWFyIDIwMDggMTg6Mzc6MDIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBJbml0aWFsIGltcGxl
bWVudGF0aW9uIG9mIGNvb2tpZXMgZm9yIHRoZSBodHRwIHNvdXAgYmFja2VuZC4KClRoZSBiYXNp
YyByZW1haW5pbmcgcG9pbnQgaXMgaG93IHRvIHNoYXJlIHRoZSBhY2Nlc3MgdG8gdGhlIGNvb2tp
ZSBqYXIuClByZXZpb3VzbHkgSSBhZGRlZCBhIG1ldGhvZCBXZWJDb3JlOjpnZXRDb29raWVKYXIg
dGhhdCBjb3VsZCBiZSBjYWxsZWQKZnJvbSB0aGUgbmV0d29yayBjb2RlLCBidXQgaXQncyBhIGJp
dCB1Z2x5LiBTbyBJJ3ZlIGNyZWF0ZWQgaXQgaW4gdGhlCm5ldHdvcmsgY29kZSBmb3Igbm93IGFu
ZCBsZWZ0IFRPRE8gaG93IHRvIHNoYXJlIGl0IHdpdGggdGhlIENvb2tpZUphci4KClRoaXMgcGF0
Y2ggcmVxdWlyZXMgdGhlIGV4cGVyaW1lbnRhbCBsaWJzb3VwIGNvb2tpZXMgYnJhbmNoLCB5b3Ug
Y2FuIGNoZWNrCml0IGF0IGdpdDovL3Blb3BsZS5mcmVlZGVza3RvcC5vcmcvfnhhbi9saWJzb3Vw
Ci0tLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29va2llSmFyR3RrLmNwcCAgICAgICAgICAgICAg
fCAgIDQ3ICsrKysrKysrKysrKysrKystLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcCAgIHwgICAgNiArKy0KIDIgZmlsZXMgY2hhbmdlZCwgNDQgaW5z
ZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Db29raWVKYXJHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29va2llSmFyR3Rr
LmNwcAppbmRleCAyZjc2ZWJjLi40MDdjNWE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Db29raWVKYXJHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Nvb2tpZUph
ckd0ay5jcHAKQEAgLTEsNCArMSw3IEBACisvKiAtKi0gTW9kZTogQzsgdGFiLXdpZHRoOiA0OyBp
bmRlbnQtdGFicy1tb2RlOiBuaWw7IGMtYmFzaWMtb2Zmc2V0OiA0OyAtKi0gKi8KIC8qCisgKiAg
Q29weXJpZ2h0IChDKSAyMDA4IFhhbiBMb3BleiA8eGFuQGdub21lLm9yZz4KKyAqCiAgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKICAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKQEAgLTE1LDMxICsxOCw1OSBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAK
ICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRl
ICJTdHJpbmdIYXNoLmgiCiAKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPGxp
YnNvdXAvc291cC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiBjb29raWVKYXI7CitzdGF0aWMgU291cENvb2tpZUphciogZ2V0Q29va2ll
SmFyKCkKK3sKKyAgICAvLyBGSVhNRTogd2UgbmVlZCB0aGUgU291cENvb2tpZUphciBmcm9tIFJl
c291cmNlSGFuZGxlU291cC5jcHAgaGVyZQorICAgIHJldHVybiAwOworfQogCi12b2lkIHNldENv
b2tpZXMoRG9jdW1lbnQqIC8qZG9jdW1lbnQqLywgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBLVVJM
JiAvKnBvbGljeVVSTCovLCBjb25zdCBTdHJpbmcmIHZhbHVlKQordm9pZCBzZXRDb29raWVzKERv
Y3VtZW50KiBkb2N1bWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBLVVJMJiBwb2xpY3lVUkws
IGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgY29va2llSmFyLnNldCh1cmwuc3RyaW5nKCks
IHZhbHVlKTsKKyAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBnZXRDb29raWVKYXIoKTsKKyAgICBp
ZiAoIWphcikgcmV0dXJuOworCisgICAgU291cFVSSSogb3JpZ2luID0gc291cF91cmlfbmV3KHVy
bC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBTb3VwQ29va2llKiBjb29raWUgPSBzb3Vw
X2Nvb2tpZV9wYXJzZSh2YWx1ZS51dGY4KCkuZGF0YSgpLCBvcmlnaW4pOworCisgICAgc291cF9j
b29raWVfamFyX3NldF9jb29raWUoamFyLCBjb29raWUpOworICAgIHNvdXBfdXJpX2ZyZWUob3Jp
Z2luKTsKIH0KIAotU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIC8qZG9jdW1lbnQqLywg
Y29uc3QgS1VSTCYgdXJsKQorU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50
LCBjb25zdCBLVVJMJiB1cmwpCiB7Ci0gICAgcmV0dXJuIGNvb2tpZUphci5nZXQodXJsLnN0cmlu
ZygpKTsKKyAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBnZXRDb29raWVKYXIoKTsKKyAgICBpZiAo
IWphcikgcmV0dXJuIFN0cmluZygpOworCisgICAgR1NMaXN0KiBjb29raWVzID0gc291cF9jb29r
aWVfamFyX2dldF9jb29raWVzX2Zvcl9kb21haW4oamFyLCB1cmwuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CisgICAgR1N0cmluZyAqc3RyaW5nID0gZ19zdHJpbmdfbmV3IChOVUxMKTsKKworICAg
IGZvciAoR1NMaXN0ICpwID0gY29va2llczsgcDsgcCA9IHAtPm5leHQpIHsKKyAgICAgICAgR1N0
cmluZyAqdG1wID0gZ19zdHJpbmdfbmV3IChOVUxMKTsKKyAgICAgICAgc291cF9jb29raWVfc2Vy
aWFsaXplKChTb3VwQ29va2llKilwLT5kYXRhLCB0bXAsIFRSVUUpOworICAgICAgICBnX3N0cmlu
Z19hcHBlbmRfcHJpbnRmKHN0cmluZywgIjsgJXMiLCB0bXAtPnN0cik7CisgICAgICAgIGdfc3Ry
aW5nX2ZyZWUodG1wLCBUUlVFKTsKKyAgICB9CisKKyAgICBTdHJpbmcgcmVzdWx0KHN0cmluZy0+
c3RyKTsKKyAgICBnX3N0cmluZ19mcmVlKHN0cmluZywgVFJVRSk7CisKKyAgICByZXR1cm4gcmVz
dWx0OwogfQogCi1ib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50KiAvKmRvY3VtZW50
Ki8pCitib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZ2V0Q29va2llSmFyKCkgPyB0cnVlIDogZmFsc2U7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlSGFuZGxlU291cC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCmluZGV4IDI3NzZhZGIuLjA5MGJlYzIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtMzks
NiArMzksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgU291cFNlc3Npb24qIHNl
c3Npb24gPSAwOworc3RhdGljIFNvdXBDb29raWVKYXIqIGphciA9IDA7CiAKIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWw6On5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkKIHsKQEAgLTE2OCw4ICsxNjks
MTEgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICBk
LT5tX3Jlc3BvbnNlLnNldE1pbWVUeXBlKE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9y
UGF0aChTdHJpbmcodXJsU3RyaW5nKSkpOwogICAgIH0KIAotICAgIGlmICghc2Vzc2lvbikKKyAg
ICBpZiAoIXNlc3Npb24pIHsKICAgICAgICAgc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9hc3luY19u
ZXcoKTsKKyAgICAgICAgamFyID0gc291cF9jb29raWVfamFyX25ldygpOworICAgICAgICBzb3Vw
X2Nvb2tpZV9qYXJfYXR0YWNoKGphciwgc2Vzc2lvbik7CisgICAgfQogCiAgICAgU291cE1lc3Nh
Z2UqIG1zZzsKICAgICBjb25zdCBjaGFyKiBtZXRob2QgPSAwOwotLSAKMS41LjQuNAoK
</data>
<flag name="review"
          id="8692"
          type_id="1"
          status="-"
          setter="alp"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19909</attachid>
            <date>2008-03-20 14:19:51 -0700</date>
            <delta_ts>2008-03-24 11:51:24 -0700</delta_ts>
            <desc>Cleaned up patch</desc>
            <filename>cookies-cleanup.patch</filename>
            <type>text/plain</type>
            <size>3244</size>
            <attacher name="Alp Toker">alp</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0Nvb2tpZUphckd0ay5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29va2llSmFyR3RrLmNwcAkocmV2aXNpb24gMzExODUp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Db29raWVKYXJHdGsuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQgKzEsNyBAQAorLyogLSotIE1vZGU6IEM7IHRhYi13aWR0aDogNDsgaW5kZW50LXRh
YnMtbW9kZTogbmlsOyBjLWJhc2ljLW9mZnNldDogNDsgLSotICovCiAvKgorICogIENvcHlyaWdo
dCAoQykgMjAwOCBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CisgKgogICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CiAgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCkBAIC0xNSwzMSArMTgsNjEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgogCiAjaW5jbHVk
ZSAiS1VSTC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiU3RyaW5n
SGFzaC5oIgogCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3Nv
dXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4gY29va2llSmFyOworc3RhdGljIFNvdXBDb29raWVKYXIqIGdldENvb2tpZUphcigpCit7
CisgICAgLy8gRklYTUU6IHdlIG5lZWQgdGhlIFNvdXBDb29raWVKYXIgZnJvbSBSZXNvdXJjZUhh
bmRsZVNvdXAuY3BwIGhlcmUKKyAgICByZXR1cm4gMDsKK30KIAotdm9pZCBzZXRDb29raWVzKERv
Y3VtZW50KiAvKmRvY3VtZW50Ki8sIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgS1VSTCYgLypwb2xp
Y3lVUkwqLywgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgc2V0Q29va2llcyhEb2N1bWVudCog
ZG9jdW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgS1VSTCYgcG9saWN5VVJMLCBjb25zdCBT
dHJpbmcmIHZhbHVlKQogewotICAgIGNvb2tpZUphci5zZXQodXJsLnN0cmluZygpLCB2YWx1ZSk7
CisgICAgU291cENvb2tpZUphciogamFyID0gZ2V0Q29va2llSmFyKCk7CisgICAgaWYgKCFqYXIp
CisgICAgICAgIHJldHVybjsKKworICAgIFNvdXBVUkkqIG9yaWdpbiA9IHNvdXBfdXJpX25ldyh1
cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgU291cENvb2tpZSogY29va2llID0gc291
cF9jb29raWVfcGFyc2UodmFsdWUudXRmOCgpLmRhdGEoKSwgb3JpZ2luKTsKKworICAgIHNvdXBf
Y29va2llX2phcl9zZXRfY29va2llKGphciwgY29va2llKTsKKyAgICBzb3VwX3VyaV9mcmVlKG9y
aWdpbik7CiB9CiAKLVN0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50KiAvKmRvY3VtZW50Ki8s
IGNvbnN0IEtVUkwmIHVybCkKK1N0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50KiBkb2N1bWVu
dCwgY29uc3QgS1VSTCYgdXJsKQogewotICAgIHJldHVybiBjb29raWVKYXIuZ2V0KHVybC5zdHJp
bmcoKSk7CisgICAgU291cENvb2tpZUphciogamFyID0gZ2V0Q29va2llSmFyKCk7CisgICAgaWYg
KCFqYXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIEdTTGlzdCogY29va2llcyA9
IHNvdXBfY29va2llX2phcl9nZXRfY29va2llc19mb3JfZG9tYWluKGphciwgdXJsLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworICAgIEdTdHJpbmcqIHN0cmluZyA9IGdfc3RyaW5nX25ldyhOVUxM
KTsKKworICAgIGZvciAoR1NMaXN0ICpwID0gY29va2llczsgcDsgcCA9IHAtPm5leHQpIHsKKyAg
ICAgICAgR1N0cmluZyAqdG1wID0gZ19zdHJpbmdfbmV3KE5VTEwpOworICAgICAgICBzb3VwX2Nv
b2tpZV9zZXJpYWxpemUoKFNvdXBDb29raWUqKXAtPmRhdGEsIHRtcCwgVFJVRSk7CisgICAgICAg
IGdfc3RyaW5nX2FwcGVuZF9wcmludGYoc3RyaW5nLCAiOyAlcyIsIHRtcC0+c3RyKTsKKyAgICAg
ICAgZ19zdHJpbmdfZnJlZSh0bXAsIFRSVUUpOworICAgIH0KKworICAgIFN0cmluZyByZXN1bHQo
c3RyaW5nLT5zdHIpOworICAgIGdfc3RyaW5nX2ZyZWUoc3RyaW5nLCBUUlVFKTsKKworICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQqIC8q
ZG9jdW1lbnQqLykKK2Jvb2wgY29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50
KQogewotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBnZXRDb29raWVKYXIoKTsKIH0KIAog
fQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCShyZXZpc2lvbiAzMTE4NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYg
KzM5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFNvdXBTZXNzaW9uKiBzZXNz
aW9uID0gMDsKK3N0YXRpYyBTb3VwQ29va2llSmFyKiBqYXIgPSAwOwogCiBSZXNvdXJjZUhhbmRs
ZUludGVybmFsOjp+UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCgpCiB7CkBAIC0xNjgsOCArMTY5LDEx
IEBACiAgICAgICAgIGQtPm1fcmVzcG9uc2Uuc2V0TWltZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6
Z2V0TUlNRVR5cGVGb3JQYXRoKFN0cmluZyh1cmxTdHJpbmcpKSk7CiAgICAgfQogCi0gICAgaWYg
KCFzZXNzaW9uKQorICAgIGlmICghc2Vzc2lvbikgewogICAgICAgICBzZXNzaW9uID0gc291cF9z
ZXNzaW9uX2FzeW5jX25ldygpOworICAgICAgICBqYXIgPSBzb3VwX2Nvb2tpZV9qYXJfbmV3KCk7
CisgICAgICAgIHNvdXBfY29va2llX2phcl9hdHRhY2goamFyLCBzZXNzaW9uKTsKKyAgICB9CiAK
ICAgICBTb3VwTWVzc2FnZSogbXNnOwogICAgIGNvbnN0IGNoYXIqIG1ldGhvZCA9IDA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20009</attachid>
            <date>2008-03-24 11:51:24 -0700</date>
            <delta_ts>2008-03-24 11:55:59 -0700</delta_ts>
            <desc>0001-Initial-implementation-of-cookies-for-the-http-soup.patch</desc>
            <filename>0001-Initial-implementation-of-cookies-for-the-http-soup.patch</filename>
            <type>text/plain</type>
            <size>4939</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAwODgwYTg0MjAyMzA5MDMzOWZhNDRlOGNkYTI2ODg2NjhiYzJiYzM3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFR1ZSwg
MTggTWFyIDIwMDggMTg6Mzc6MDIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBJbml0aWFsIGltcGxl
bWVudGF0aW9uIG9mIGNvb2tpZXMgZm9yIHRoZSBodHRwIHNvdXAgYmFja2VuZC4KCkkndmUgYWRk
ZWQgdGhlIGhhY2sgZ2V0Q29va2llSmFyIGluIENvb2tpZUphciB0byBhbGxvdyBvdGhlcnMgdG8g
dGVzdAp0aGUgY29kZSwgc3RpbGwgbmVlZHMgYSBjbGVhbiBzb2x1dGlvbi4KClRoaXMgcGF0Y2gg
cmVxdWlyZXMgdGhlIGV4cGVyaW1lbnRhbCBsaWJzb3VwIGNvb2tpZXMgYnJhbmNoLCB5b3UgY2Fu
IGNoZWNrCml0IGF0IGh0dHA6Ly9nbm9tZS5vcmcvfmRhbncvbGlic291cC5naXQKLS0tCiBXZWJD
b3JlL3BsYXRmb3JtL0Nvb2tpZUphci5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKysr
LQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29va2llSmFyR3RrLmNwcCAgICAgICAgICAgICAgfCAg
IDQ0ICsrKysrKysrKysrKysrKystLS0tCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaCAgICAgICAgICB8ICAgIDIgKy0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcCAgIHwgICAgNSArKy0KIDQgZmlsZXMgY2hhbmdlZCwgNDgg
aW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9Db29raWVKYXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vQ29va2llSmFyLmgKaW5kZXggMzhl
ZmQwNC4uM2NkODZkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Db29raWVKYXIuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZUphci5oCkBAIC0yNiw2ICsyNiwxMCBAQAogI2lm
bmRlZiBDb29raWVKYXJfaAogI2RlZmluZSBDb29raWVKYXJfaAogCisjaWYgUExBVEZPUk0oR1RL
KQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIGNsYXNzIEtVUkw7CkBAIC0zNSw3ICszOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEtV
UkwmKTsKICAgICB2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJM
JiwgY29uc3QgS1VSTCYgcG9saWN5QmFzZVVSTCwgY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBj
b29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQpOwotCisjaWYgUExBVEZPUk0o
R1RLKQorICAgIFNvdXBDb29raWVKYXIqIGdldENvb2tpZUphcih2b2lkKTsKKyNlbmRpZgogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Nvb2tpZUphckd0ay5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db29raWVKYXJHdGsuY3BwCmluZGV4IDJmNzZlYmMu
LmVhY2U2OTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Nvb2tpZUphckd0ay5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29va2llSmFyR3RrLmNwcApAQCAtMSw0ICsx
LDcgQEAKKy8qIC0qLSBNb2RlOiBDOyB0YWItd2lkdGg6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5p
bDsgYy1iYXNpYy1vZmZzZXQ6IDQ7IC0qLSAqLwogLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgg
WGFuIExvcGV6IDx4YW5AZ25vbWUub3JnPgorICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpA
QCAtMTUsMzEgKzE4LDU2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkNTdHJpbmcuaCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIKIAogI2luY2x1ZGUgIktVUkwuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIKIAot
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGNvb2tp
ZUphcjsKK1NvdXBDb29raWVKYXIqIGdldENvb2tpZUphcigpCit7CisgICAgc3RhdGljIFNvdXBD
b29raWVKYXIqIGphciA9IE5VTEw7CisKKyAgICBpZiAoIWphcikKKyAgICAgICAgamFyID0gc291
cF9jb29raWVfamFyX25ldyAoKTsKKworICAgIHJldHVybiBqYXI7Cit9CiAKLXZvaWQgc2V0Q29v
a2llcyhEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtVUkwm
IC8qcG9saWN5VVJMKi8sIGNvbnN0IFN0cmluZyYgdmFsdWUpCit2b2lkIHNldENvb2tpZXMoRG9j
dW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtVUkwmIHBvbGljeVVSTCwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBjb29raWVKYXIuc2V0KHVybC5zdHJpbmcoKSwg
dmFsdWUpOworICAgIFNvdXBDb29raWVKYXIqIGphciA9IGdldENvb2tpZUphcigpOworICAgIGlm
ICghamFyKSByZXR1cm47CisKKyAgICBTb3VwVVJJKiBvcmlnaW4gPSBzb3VwX3VyaV9uZXcodXJs
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgc291cF9jb29raWVfamFyX3NldF9jb29r
aWUoamFyLCBvcmlnaW4sIHZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgIHNvdXBfdXJpX2ZyZWUo
b3JpZ2luKTsKIH0KIAotU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIC8qZG9jdW1lbnQq
LywgY29uc3QgS1VSTCYgdXJsKQorU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIGRvY3Vt
ZW50LCBjb25zdCBLVVJMJiB1cmwpCiB7Ci0gICAgcmV0dXJuIGNvb2tpZUphci5nZXQodXJsLnN0
cmluZygpKTsKKyAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBnZXRDb29raWVKYXIoKTsKKyAgICBp
ZiAoIWphcikgcmV0dXJuIFN0cmluZygpOworCisgICAgU291cFVSSSogdXJpID0gc291cF91cmlf
bmV3KHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBjaGFyKiBjb29raWVzID0gc291
cF9jb29raWVfamFyX2dldF9jb29raWVzKGphciwgdXJpLCBGQUxTRSk7CisgICAgc291cF91cmlf
ZnJlZSh1cmkpOworCisgICAgU3RyaW5nIHJlc3VsdChjb29raWVzKTsKKyAgICBnX2ZyZWUoY29v
a2llcyk7CisKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIGNvb2tpZXNFbmFibGVkKGNv
bnN0IERvY3VtZW50KiAvKmRvY3VtZW50Ki8pCitib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERv
Y3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZ2V0Q29v
a2llSmFyKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmgKaW5kZXggZGRmOTE5Yi4uYjQ3NmQyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmgKQEAgLTE0Myw3ICsxNDMsNyBAQCBwdWJsaWM6CiAgICAgZnJpZW5kIExS
RVNVTFQgX19zdGRjYWxsIFJlc291cmNlSGFuZGxlV25kUHJvYyhIV05ELCB1bnNpZ25lZCBtZXNz
YWdlLCBXUEFSQU0sIExQQVJBTSk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFFUKSB8fCBVU0Uo
Q1VSTCkKKyNpZiBQTEFURk9STShRVCkgfHwgVVNFKENVUkwpIHx8IFVTRShTT1VQKQogICAgIFJl
c291cmNlSGFuZGxlSW50ZXJuYWwqIGdldEludGVybmFsKCkgeyByZXR1cm4gZC5nZXQoKTsgfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlSGFuZGxlU291cC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCmluZGV4IDI3NzZhZGIuLjkwOTBlNDEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIK
KyNpbmNsdWRlICJDb29raWVKYXIuaCIKIAogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogI2lu
Y2x1ZGUgPGxpYnNvdXAvc291cC1tZXNzYWdlLmg+CkBAIC0xNjgsOCArMTY5LDEwIEBAIGJvb2wg
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgZC0+bV9yZXNwb25z
ZS5zZXRNaW1lVHlwZShNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoU3RyaW5n
KHVybFN0cmluZykpKTsKICAgICB9CiAKLSAgICBpZiAoIXNlc3Npb24pCisgICAgaWYgKCFzZXNz
aW9uKSB7CiAgICAgICAgIHNlc3Npb24gPSBzb3VwX3Nlc3Npb25fYXN5bmNfbmV3KCk7CisgICAg
ICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1NFU1NJT05fRkVBVFVS
RShnZXRDb29raWVKYXIoKSkpOworICAgIH0KIAogICAgIFNvdXBNZXNzYWdlKiBtc2c7CiAgICAg
Y29uc3QgY2hhciogbWV0aG9kID0gMDsKLS0gCjEuNS40LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20010</attachid>
            <date>2008-03-24 11:55:59 -0700</date>
            <delta_ts>2008-04-08 08:52:29 -0700</delta_ts>
            <desc>0001-Initial-implementation-of-cookies-for-the-http-soup.patch</desc>
            <filename>0001-Initial-implementation-of-cookies-for-the-http-soup.patch</filename>
            <type>text/plain</type>
            <size>4939</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAwODgwYTg0MjAyMzA5MDMzOWZhNDRlOGNkYTI2ODg2NjhiYzJiYzM3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFR1ZSwg
MTggTWFyIDIwMDggMTg6Mzc6MDIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBJbml0aWFsIGltcGxl
bWVudGF0aW9uIG9mIGNvb2tpZXMgZm9yIHRoZSBodHRwIHNvdXAgYmFja2VuZC4KCkkndmUgYWRk
ZWQgdGhlIGhhY2sgZ2V0Q29va2llSmFyIGluIENvb2tpZUphciB0byBhbGxvdyBvdGhlcnMgdG8g
dGVzdAp0aGUgY29kZSwgc3RpbGwgbmVlZHMgYSBjbGVhbiBzb2x1dGlvbi4KClRoaXMgcGF0Y2gg
cmVxdWlyZXMgdGhlIGV4cGVyaW1lbnRhbCBsaWJzb3VwIGNvb2tpZXMgYnJhbmNoLCB5b3UgY2Fu
IGNoZWNrCml0IGF0IGh0dHA6Ly9nbm9tZS5vcmcvfmRhbncvbGlic291cC5naXQKLS0tCiBXZWJD
b3JlL3BsYXRmb3JtL0Nvb2tpZUphci5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKysr
LQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29va2llSmFyR3RrLmNwcCAgICAgICAgICAgICAgfCAg
IDQ0ICsrKysrKysrKysrKysrKystLS0tCiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaCAgICAgICAgICB8ICAgIDIgKy0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcCAgIHwgICAgNSArKy0KIDQgZmlsZXMgY2hhbmdlZCwgNDgg
aW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9Db29raWVKYXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vQ29va2llSmFyLmgKaW5kZXggMzhl
ZmQwNC4uM2NkODZkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Db29raWVKYXIuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZUphci5oCkBAIC0yNiw2ICsyNiwxMCBAQAogI2lm
bmRlZiBDb29raWVKYXJfaAogI2RlZmluZSBDb29raWVKYXJfaAogCisjaWYgUExBVEZPUk0oR1RL
KQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIGNsYXNzIEtVUkw7CkBAIC0zNSw3ICszOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEtV
UkwmKTsKICAgICB2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJM
JiwgY29uc3QgS1VSTCYgcG9saWN5QmFzZVVSTCwgY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBj
b29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQpOwotCisjaWYgUExBVEZPUk0o
R1RLKQorICAgIFNvdXBDb29raWVKYXIqIGdldENvb2tpZUphcih2b2lkKTsKKyNlbmRpZgogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Nvb2tpZUphckd0ay5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db29raWVKYXJHdGsuY3BwCmluZGV4IDJmNzZlYmMu
LmVhY2U2OTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Nvb2tpZUphckd0ay5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29va2llSmFyR3RrLmNwcApAQCAtMSw0ICsx
LDcgQEAKKy8qIC0qLSBNb2RlOiBDOyB0YWItd2lkdGg6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5p
bDsgYy1iYXNpYy1vZmZzZXQ6IDQ7IC0qLSAqLwogLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgg
WGFuIExvcGV6IDx4YW5AZ25vbWUub3JnPgorICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpA
QCAtMTUsMzEgKzE4LDU2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkNTdHJpbmcuaCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIKIAogI2luY2x1ZGUgIktVUkwuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIKIAot
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGNvb2tp
ZUphcjsKK1NvdXBDb29raWVKYXIqIGdldENvb2tpZUphcigpCit7CisgICAgc3RhdGljIFNvdXBD
b29raWVKYXIqIGphciA9IE5VTEw7CisKKyAgICBpZiAoIWphcikKKyAgICAgICAgamFyID0gc291
cF9jb29raWVfamFyX25ldyAoKTsKKworICAgIHJldHVybiBqYXI7Cit9CiAKLXZvaWQgc2V0Q29v
a2llcyhEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtVUkwm
IC8qcG9saWN5VVJMKi8sIGNvbnN0IFN0cmluZyYgdmFsdWUpCit2b2lkIHNldENvb2tpZXMoRG9j
dW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtVUkwmIHBvbGljeVVSTCwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBjb29raWVKYXIuc2V0KHVybC5zdHJpbmcoKSwg
dmFsdWUpOworICAgIFNvdXBDb29raWVKYXIqIGphciA9IGdldENvb2tpZUphcigpOworICAgIGlm
ICghamFyKSByZXR1cm47CisKKyAgICBTb3VwVVJJKiBvcmlnaW4gPSBzb3VwX3VyaV9uZXcodXJs
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgc291cF9jb29raWVfamFyX3NldF9jb29r
aWUoamFyLCBvcmlnaW4sIHZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgIHNvdXBfdXJpX2ZyZWUo
b3JpZ2luKTsKIH0KIAotU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIC8qZG9jdW1lbnQq
LywgY29uc3QgS1VSTCYgdXJsKQorU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIGRvY3Vt
ZW50LCBjb25zdCBLVVJMJiB1cmwpCiB7Ci0gICAgcmV0dXJuIGNvb2tpZUphci5nZXQodXJsLnN0
cmluZygpKTsKKyAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBnZXRDb29raWVKYXIoKTsKKyAgICBp
ZiAoIWphcikgcmV0dXJuIFN0cmluZygpOworCisgICAgU291cFVSSSogdXJpID0gc291cF91cmlf
bmV3KHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBjaGFyKiBjb29raWVzID0gc291
cF9jb29raWVfamFyX2dldF9jb29raWVzKGphciwgdXJpLCBGQUxTRSk7CisgICAgc291cF91cmlf
ZnJlZSh1cmkpOworCisgICAgU3RyaW5nIHJlc3VsdChjb29raWVzKTsKKyAgICBnX2ZyZWUoY29v
a2llcyk7CisKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIGNvb2tpZXNFbmFibGVkKGNv
bnN0IERvY3VtZW50KiAvKmRvY3VtZW50Ki8pCitib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERv
Y3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZ2V0Q29v
a2llSmFyKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmgKaW5kZXggZGRmOTE5Yi4uYjQ3NmQyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmgKQEAgLTE0Myw3ICsxNDMsNyBAQCBwdWJsaWM6CiAgICAgZnJpZW5kIExS
RVNVTFQgX19zdGRjYWxsIFJlc291cmNlSGFuZGxlV25kUHJvYyhIV05ELCB1bnNpZ25lZCBtZXNz
YWdlLCBXUEFSQU0sIExQQVJBTSk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFFUKSB8fCBVU0Uo
Q1VSTCkKKyNpZiBQTEFURk9STShRVCkgfHwgVVNFKENVUkwpIHx8IFVTRShTT1VQKQogICAgIFJl
c291cmNlSGFuZGxlSW50ZXJuYWwqIGdldEludGVybmFsKCkgeyByZXR1cm4gZC5nZXQoKTsgfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlSGFuZGxlU291cC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCmluZGV4IDI3NzZhZGIuLjkwOTBlNDEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIK
KyNpbmNsdWRlICJDb29raWVKYXIuaCIKIAogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogI2lu
Y2x1ZGUgPGxpYnNvdXAvc291cC1tZXNzYWdlLmg+CkBAIC0xNjgsOCArMTY5LDEwIEBAIGJvb2wg
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgZC0+bV9yZXNwb25z
ZS5zZXRNaW1lVHlwZShNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoU3RyaW5n
KHVybFN0cmluZykpKTsKICAgICB9CiAKLSAgICBpZiAoIXNlc3Npb24pCisgICAgaWYgKCFzZXNz
aW9uKSB7CiAgICAgICAgIHNlc3Npb24gPSBzb3VwX3Nlc3Npb25fYXN5bmNfbmV3KCk7CisgICAg
ICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1NFU1NJT05fRkVBVFVS
RShnZXRDb29raWVKYXIoKSkpOworICAgIH0KIAogICAgIFNvdXBNZXNzYWdlKiBtc2c7CiAgICAg
Y29uc3QgY2hhciogbWV0aG9kID0gMDsKLS0gCjEuNS40LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20407</attachid>
            <date>2008-04-08 08:52:29 -0700</date>
            <delta_ts>2008-04-09 04:17:14 -0700</delta_ts>
            <desc>0001-Initial-implementation-of-cookies-for-the-http-soup.patch</desc>
            <filename>0001-Initial-implementation-of-cookies-for-the-http-soup.patch</filename>
            <type>text/plain</type>
            <size>4239</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA0NzM1MjNkMzZkNzg0ZjIwY2EzOWRkZTg2MDE5MGQ3ODA2OTgyNDVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFR1ZSwg
MTggTWFyIDIwMDggMTg6Mzc6MDIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBJbml0aWFsIGltcGxl
bWVudGF0aW9uIG9mIGNvb2tpZXMgZm9yIHRoZSBodHRwIHNvdXAgYmFja2VuZC4KCkkndmUgYWRk
ZWQgdGhlIGhhY2sgZ2V0Q29va2llSmFyIGluIENvb2tpZUphciB0byBhbGxvdyBvdGhlcnMgdG8g
dGVzdAp0aGUgY29kZSwgc3RpbGwgbmVlZHMgYSBjbGVhbiBzb2x1dGlvbi4KClRoaXMgcGF0Y2gg
cmVxdWlyZXMgdGhlIGV4cGVyaW1lbnRhbCBsaWJzb3VwIGNvb2tpZXMgYnJhbmNoLCB5b3UgY2Fu
IGNoZWNrCml0IGF0IGh0dHA6Ly9nbm9tZS5vcmcvfmRhbncvbGlic291cC5naXQKLS0tCiBXZWJD
b3JlL3BsYXRmb3JtL0Nvb2tpZUphci5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKysr
LQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29va2llSmFyR3RrLmNwcCAgICAgICAgICAgICAgfCAg
IDQwICsrKysrKysrKysrKysrKysrLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcCAgIHwgICAgNSArKy0KIDMgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0
aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0Nv
b2tpZUphci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db29raWVKYXIuaAppbmRleCAzOGVmZDA0Li4y
MjYyN2YyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZUphci5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vQ29va2llSmFyLmgKQEAgLTI2LDYgKzI2LDEwIEBACiAjaWZuZGVmIENv
b2tpZUphcl9oCiAjZGVmaW5lIENvb2tpZUphcl9oCiAKKyNpZiBVU0UoU09VUCkKKyNpbmNsdWRl
IDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBj
bGFzcyBLVVJMOwpAQCAtMzUsNyArMzksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3Ry
aW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJMJik7CiAgICAg
dm9pZCBzZXRDb29raWVzKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgS1VSTCYsIGNvbnN0IEtV
UkwmIHBvbGljeUJhc2VVUkwsIGNvbnN0IFN0cmluZyYpOwogICAgIGJvb2wgY29va2llc0VuYWJs
ZWQoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50KTsKLQorI2lmIFVTRShTT1VQKQorICAgIFNvdXBD
b29raWVKYXIqIGdldENvb2tpZUphcih2b2lkKTsKKyNlbmRpZgogfQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Nvb2tpZUphckd0ay5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9Db29raWVKYXJHdGsuY3BwCmluZGV4IDJmNzZlYmMuLmFmODYxNTMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Nvb2tpZUphckd0ay5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvQ29va2llSmFyR3RrLmNwcApAQCAtMSw0ICsxLDcgQEAKKy8qIC0qLSBN
b2RlOiBDOyB0YWItd2lkdGg6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgYy1iYXNpYy1vZmZz
ZXQ6IDQ7IC0qLSAqLwogLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggWGFuIExvcGV6IDx4YW5A
Z25vbWUub3JnPgorICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtMTUsMzEgKzE4LDU4
IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKICNp
bmNsdWRlICJDb29raWVKYXIuaCIKIAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIKIAotI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotc3RhdGljIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGNvb2tpZUphcjsKK1NvdXBDb29r
aWVKYXIqIGdldENvb2tpZUphcigpCit7CisgICAgc3RhdGljIFNvdXBDb29raWVKYXIqIGphciA9
IE5VTEw7CisKKyAgICBpZiAoIWphcikKKyAgICAgICAgamFyID0gc291cF9jb29raWVfamFyX25l
dygpOworCisgICAgcmV0dXJuIGphcjsKK30KIAogdm9pZCBzZXRDb29raWVzKERvY3VtZW50KiAv
KmRvY3VtZW50Ki8sIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgS1VSTCYgLypwb2xpY3lVUkwqLywg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBjb29raWVKYXIuc2V0KHVybC5zdHJpbmcoKSwg
dmFsdWUpOworICAgIFNvdXBDb29raWVKYXIqIGphciA9IGdldENvb2tpZUphcigpOworICAgIGlm
ICghamFyKQorICAgICAgICByZXR1cm47CisKKyAgICBTb3VwVVJJKiBvcmlnaW4gPSBzb3VwX3Vy
aV9uZXcodXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgc291cF9jb29raWVfamFy
X3NldF9jb29raWUoamFyLCBvcmlnaW4sIHZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgIHNvdXBf
dXJpX2ZyZWUob3JpZ2luKTsKIH0KIAogU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIC8q
ZG9jdW1lbnQqLywgY29uc3QgS1VSTCYgdXJsKQogewotICAgIHJldHVybiBjb29raWVKYXIuZ2V0
KHVybC5zdHJpbmcoKSk7CisgICAgU291cENvb2tpZUphciogamFyID0gZ2V0Q29va2llSmFyKCk7
CisgICAgaWYgKCFqYXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIFNvdXBVUkkq
IHVyaSA9IHNvdXBfdXJpX25ldyh1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgY2hh
ciogY29va2llcyA9IHNvdXBfY29va2llX2phcl9nZXRfY29va2llcyhqYXIsIHVyaSwgRkFMU0Up
OworICAgIHNvdXBfdXJpX2ZyZWUodXJpKTsKKworICAgIFN0cmluZyByZXN1bHQoY29va2llcyk7
CisgICAgZ19mcmVlKGNvb2tpZXMpOworCisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBj
b29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCogLypkb2N1bWVudCovKQogewotICAgIHJldHVy
biB0cnVlOworICAgIHJldHVybiBnZXRDb29raWVKYXIoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXgg
OTY2NDI4ZS4uNTUyZjUyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUludGVybmFs
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorI2luY2x1ZGUgIkNvb2tpZUphci5o
IgogCiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLW1l
c3NhZ2UuaD4KQEAgLTI0NCw4ICsyNDUsMTAgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
RnJhbWUqIGZyYW1lKQogICAgICAgICBkLT5tX3Jlc3BvbnNlLnNldE1pbWVUeXBlKE1JTUVUeXBl
UmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yUGF0aChTdHJpbmcodXJsU3RyaW5nKSkpOwogICAgIH0K
IAotICAgIGlmICghc2Vzc2lvbikKKyAgICBpZiAoIXNlc3Npb24pIHsKICAgICAgICAgc2Vzc2lv
biA9IHNvdXBfc2Vzc2lvbl9hc3luY19uZXcoKTsKKyAgICAgICAgc291cF9zZXNzaW9uX2FkZF9m
ZWF0dXJlKHNlc3Npb24sIFNPVVBfU0VTU0lPTl9GRUFUVVJFKGdldENvb2tpZUphcigpKSk7Cisg
ICAgfQogCiAgICAgU291cE1lc3NhZ2UqIG1zZzsKICAgICBtc2cgPSBzb3VwX21lc3NhZ2VfbmV3
KHJlcXVlc3QoKS5odHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSwgdXJsU3RyaW5nLnV0ZjgoKS5k
YXRhKCkpOwotLSAKMS41LjQuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20424</attachid>
            <date>2008-04-09 04:17:14 -0700</date>
            <delta_ts>2008-04-14 13:18:14 -0700</delta_ts>
            <desc>soup-cookies.patch</desc>
            <filename>soup-cookies.patch</filename>
            <type>text/plain</type>
            <size>10103</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmOWE5NGZmLi44ODM1NTZl
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMDgtMDQtMDkgIFhhbiBMb3BleiAgPHhhbkBnbm9tZS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc5MTcKKyAgICAgICAgQnVnIDE3OTE3OiBDb29raWUgc3VwcG9ydCBm
b3IgSFRUUCBzb3VwIGJhY2tlbmQKKworICAgICAgICBCdW1wZWQgdGhlIGxpYnNvdXAgcmVxdWly
ZWQgdmVyc2lvbiB0byAyLjIzIGZvciBjb29raWUgc3VwcG9ydC4KKworICAgICAgICAqIGNvbmZp
Z3VyZS5hYzoKKwogMjAwOC0wNC0wNyAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9AdW5w
bHVnZ2FibGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCwgcnViYmVyLXN0YW1wZWQgYW5kIGxh
bmRlZCBieSBhcC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggOTJiYjhjZS4uMGFlNmE1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAwOC0wNC0wOSAg
WGFuIExvcGV6ICA8eGFuQGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzkxNworICAgICAgICBCdWcgMTc5MTc6IENvb2tpZSBzdXBwb3J0IGZvciBIVFRQIHNvdXAg
YmFja2VuZAorICAgICAgICAKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBjb29r
aWVzIGZvciB0aGUgaHR0cCBzb3VwIGJhY2tlbmQuCisgICAgICAgIAorICAgICAgICBNb3ZlZCBD
b29raWVKYXJHdGsgdG8gQ29va2llSmFyU291cCBpbiBuZXR3b3JrL3NvdXAgYW5kIGxlZnQgdGhl
IG9yaWdpbmFsCisgICAgICAgIG9uZSBhcyBDb29raWVKYXJDdXJsIGluIG5ldHdvcmsvY3VybC4K
KyAgICAgICAgCisgICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdF
RAorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogcGxhdGZvcm0vQ29va2ll
SmFyLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3Bw
OiBSZW5hbWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29va2llSmFyR3RrLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmU6OnNldENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llcyk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmdldENvb2tpZUphcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXMpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKwogMjAwOC0wNC0wOCAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CmluZGV4IGVkNGZjYjIuLmQ2OTQwZTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtOTg2LDcgKzk4Niw2IEBAIHdlYmtp
dGd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BhZ2UvZ3RrL0ZyYW1lR3RrLmNwcCBcCiAJV2Vi
Q29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0v
Z3RrL0NsaXBib2FyZEd0ay5jcHAgXAotCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL0Nvb2tpZUphckd0
ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAgXAogCVdlYkNvcmUv
cGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51R3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
Q29udGV4dE1lbnVJdGVtR3RrLmNwcCBcCkBAIC0xMDQ4LDYgKzEwNDcsNyBAQCB3ZWJjb3JlX2Nw
cGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybAog
CiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAorCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nv
b2tpZUphckN1cmwuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZUN1cmwuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZU1hbmFnZXIuY3BwCiAKQEAgLTEwNTksNiArMTA1OSw3IEBAIHdlYmNvcmVfY3BwZmxh
Z3MgKz0gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwCiAKIHdl
YmNvcmVfc291cmNlcyArPSBcCisJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2ll
SmFyU291cC5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHAKIGVuZGlmCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vQ29va2ll
SmFyLmggYi9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZUphci5oCmluZGV4IDM4ZWZkMDQuLjIyNjI3
ZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vQ29va2llSmFyLmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9Db29raWVKYXIuaApAQCAtMjYsNiArMjYsMTAgQEAKICNpZm5kZWYgQ29va2ll
SmFyX2gKICNkZWZpbmUgQ29va2llSmFyX2gKIAorI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgPGxp
YnNvdXAvc291cC5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNz
IEtVUkw7CkBAIC0zNSw3ICszOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBTdHJpbmcg
Y29va2llcyhjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEtVUkwmKTsKICAgICB2b2lk
IHNldENvb2tpZXMoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJMJiwgY29uc3QgS1VSTCYg
cG9saWN5QmFzZVVSTCwgY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChj
b25zdCBEb2N1bWVudCogZG9jdW1lbnQpOwotCisjaWYgVVNFKFNPVVApCisgICAgU291cENvb2tp
ZUphciogZ2V0Q29va2llSmFyKHZvaWQpOworI2VuZGlmCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29va2llSmFyR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0Nvb2tpZUphckd0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJm
NzZlYmMuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29va2llSmFyR3RrLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
ICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDb29raWVKYXIuaCIKLQot
I2luY2x1ZGUgIktVUkwuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUg
IlN0cmluZ0hhc2guaCIKLQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotc3RhdGljIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGNvb2tpZUphcjsKLQot
dm9pZCBzZXRDb29raWVzKERvY3VtZW50KiAvKmRvY3VtZW50Ki8sIGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgS1VSTCYgLypwb2xpY3lVUkwqLywgY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBj
b29raWVKYXIuc2V0KHVybC5zdHJpbmcoKSwgdmFsdWUpOwotfQotCi1TdHJpbmcgY29va2llcyhj
b25zdCBEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25zdCBLVVJMJiB1cmwpCi17Ci0gICAgcmV0
dXJuIGNvb2tpZUphci5nZXQodXJsLnN0cmluZygpKTsKLX0KLQotYm9vbCBjb29raWVzRW5hYmxl
ZChjb25zdCBEb2N1bWVudCogLypkb2N1bWVudCovKQotewotICAgIHJldHVybiB0cnVlOwotfQot
Ci19CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJD
dXJsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNzZlYmMKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcApA
QCAtMCwwICsxLDQ1IEBACisvKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCisKKyNpbmNsdWRlICJLVVJMLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTdHJpbmdIYXNoLmgiCisK
KyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRp
YyBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBjb29raWVKYXI7CisKK3ZvaWQgc2V0Q29va2llcyhE
b2N1bWVudCogLypkb2N1bWVudCovLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtVUkwmIC8qcG9s
aWN5VVJMKi8sIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgY29va2llSmFyLnNldCh1cmwu
c3RyaW5nKCksIHZhbHVlKTsKK30KKworU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIC8q
ZG9jdW1lbnQqLywgY29uc3QgS1VSTCYgdXJsKQoreworICAgIHJldHVybiBjb29raWVKYXIuZ2V0
KHVybC5zdHJpbmcoKSk7Cit9CisKK2Jvb2wgY29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQq
IC8qZG9jdW1lbnQqLykKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hZjg2MTUzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKQEAgLTAsMCArMSw3NSBAQAor
LyogLSotIE1vZGU6IEM7IHRhYi13aWR0aDogNDsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyBjLWJh
c2ljLW9mZnNldDogNDsgLSotICovCisvKgorICogIENvcHlyaWdodCAoQykgMjAwOCBYYW4gTG9w
ZXogPHhhbkBnbm9tZS5vcmc+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2Vy
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIkNvb2tpZUph
ci5oIgorCisjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisj
aW5jbHVkZSAiU3RyaW5nSGFzaC5oIgorCisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworU291cENvb2tpZUphciogZ2V0Q29va2llSmFyKCkKK3sKKyAg
ICBzdGF0aWMgU291cENvb2tpZUphciogamFyID0gTlVMTDsKKworICAgIGlmICghamFyKQorICAg
ICAgICBqYXIgPSBzb3VwX2Nvb2tpZV9qYXJfbmV3KCk7CisKKyAgICByZXR1cm4gamFyOworfQor
Cit2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQqIC8qZG9jdW1lbnQqLywgY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBLVVJMJiAvKnBvbGljeVVSTCovLCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAg
IFNvdXBDb29raWVKYXIqIGphciA9IGdldENvb2tpZUphcigpOworICAgIGlmICghamFyKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTb3VwVVJJKiBvcmlnaW4gPSBzb3VwX3VyaV9uZXcodXJsLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgc291cF9jb29raWVfamFyX3NldF9jb29raWUo
amFyLCBvcmlnaW4sIHZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgIHNvdXBfdXJpX2ZyZWUob3Jp
Z2luKTsKK30KKworU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIC8qZG9jdW1lbnQqLywg
Y29uc3QgS1VSTCYgdXJsKQoreworICAgIFNvdXBDb29raWVKYXIqIGphciA9IGdldENvb2tpZUph
cigpOworICAgIGlmICghamFyKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBTb3Vw
VVJJKiB1cmkgPSBzb3VwX3VyaV9uZXcodXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAg
IGNoYXIqIGNvb2tpZXMgPSBzb3VwX2Nvb2tpZV9qYXJfZ2V0X2Nvb2tpZXMoamFyLCB1cmksIEZB
TFNFKTsKKyAgICBzb3VwX3VyaV9mcmVlKHVyaSk7CisKKyAgICBTdHJpbmcgcmVzdWx0KGNvb2tp
ZXMpOworICAgIGdfZnJlZShjb29raWVzKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jv
b2wgY29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQqIC8qZG9jdW1lbnQqLykKK3sKKyAgICBy
ZXR1cm4gZ2V0Q29va2llSmFyKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDk2NjQyOGUuLjU1MmY1
MmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxl
Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUg
IlJlc291cmNlUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJDb29raWVKYXIuaCIKIAogI2luY2x1ZGUg
PGxpYnNvdXAvc291cC5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC1tZXNzYWdlLmg+CkBAIC0y
NDQsOCArMjQ1LDEwIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkK
ICAgICAgICAgZC0+bV9yZXNwb25zZS5zZXRNaW1lVHlwZShNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRN
SU1FVHlwZUZvclBhdGgoU3RyaW5nKHVybFN0cmluZykpKTsKICAgICB9CiAKLSAgICBpZiAoIXNl
c3Npb24pCisgICAgaWYgKCFzZXNzaW9uKSB7CiAgICAgICAgIHNlc3Npb24gPSBzb3VwX3Nlc3Np
b25fYXN5bmNfbmV3KCk7CisgICAgICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNzaW9u
LCBTT1VQX1NFU1NJT05fRkVBVFVSRShnZXRDb29raWVKYXIoKSkpOworICAgIH0KIAogICAgIFNv
dXBNZXNzYWdlKiBtc2c7CiAgICAgbXNnID0gc291cF9tZXNzYWdlX25ldyhyZXF1ZXN0KCkuaHR0
cE1ldGhvZCgpLnV0ZjgoKS5kYXRhKCksIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsKZGlmZiAt
LWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCAzYWIyYmFmLi40ZTllMTJi
IDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0yMjMsNyAr
MjIzLDcgQEAgR1RLX1JFUVVJUkVEX1ZFUlNJT049Mi44CiAKICMgb3B0aW9uYWwgbW9kdWxlcwog
TElCQ1VSTF9SRVFVSVJFRF9WRVJTSU9OPTcuMTUKLUxJQlNPVVBfUkVRVUlSRURfVkVSU0lPTj0y
LjQKK0xJQlNPVVBfUkVRVUlSRURfVkVSU0lPTj0yLjIzCiBMSUJYU0xUX1JFUVVJUkVEX1ZFUlNJ
T049MS4xLjcKIFNRTElURV9SRVFVSVJFRF9WRVJTSU9OPTMuMAogR1NUUkVBTUVSX1JFUVVJUkVE
X1ZFUlNJT049MC4xMAo=
</data>
<flag name="review"
          id="8893"
          type_id="1"
          status="+"
          setter="alp"
    />
          </attachment>
      

    </bug>

</bugzilla>