<?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>23116</bug_id>
          
          <creation_ts>2009-01-05 06:40:03 -0800</creation_ts>
          <short_desc>[GTK] Fix crash due a callback called from GIO after the destruction of the ResourceHandle</short_desc>
          <delta_ts>2009-02-09 12:42:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Otte">otte</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>poincare</cc>
    
    <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>104421</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2009-01-05 06:40:03 -0800</bug_when>
    <thetext>libsoup causes random crashes when async callbacks fire after a ResourceHandle has already been removed. The attached patch fixes this by ref/deref&apos;ing the resource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104422</commentid>
    <comment_count>1</comment_count>
      <attachid>26429</attachid>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2009-01-05 06:41:08 -0800</bug_when>
    <thetext>Created attachment 26429
suggested fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104621</commentid>
    <comment_count>2</comment_count>
      <attachid>26429</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-06 13:59:55 -0800</bug_when>
    <thetext>Comment on attachment 26429
suggested fix

This needs a ChangeLog and should use spaces instead of tabs.  Please review http://webkit.org/coding/coding-style.html

Is there no way to use a RefPtr here instead of manual ref/deref?  We try hard to avoid manual ref/deref because it&apos;s very error prone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104705</commentid>
    <comment_count>3</comment_count>
      <attachid>26488</attachid>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2009-01-07 02:42:39 -0800</bug_when>
    <thetext>Created attachment 26488
patch 1

Yay, looks like I stepped right into all newcomer traps at once.

Anyway, I&apos;m cleaning up the patch, and here&apos;s the first and uncontroversial fix: keeping track of the idle source and removing it in the destructor.

For the second part the problem is more complex: It is not possible to remove the async callback (yes, this is a bug in the GIO API), so the data passed to the GIO callbacks must stay valid until this callback is called. The easiest method is to just ref the ResourceHandle, but that means Webkit has no control about the lifetime of the ResourceHandle. I&apos;m going to prepare a patch for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104719</commentid>
    <comment_count>4</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-07 08:37:57 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=26488) [review]
&gt; patch 1

We always use four (4) spaces. Your patch still has a style issue...


&gt; Anyway, I&apos;m cleaning up the patch, and here&apos;s the first and uncontroversial
&gt; fix: keeping track of the idle source and removing it in the destructor.
&gt; 
&gt; For the second part the problem is more complex: It is not possible to remove
&gt; the async callback (yes, this is a bug in the GIO API), so the data passed to
&gt; the GIO callbacks must stay valid until this callback is called. The easiest
&gt; method is to just ref the ResourceHandle, but that means Webkit has no control
&gt; about the lifetime of the ResourceHandle. I&apos;m going to prepare a patch for
&gt; that.

This is backwards and will be ugly. You would need to know when the WebCore side is detached from the ResourceHandle... and then never ever call into the ResourceClient callbacks... It might be best to not use GIO for file/data at all...

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104720</commentid>
    <comment_count>5</comment_count>
      <attachid>26492</attachid>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2009-01-07 08:39:33 -0800</bug_when>
    <thetext>Created attachment 26492
patch 2

And this is the only way I could come up with a patch for the GIO crash that wouldn&apos;t involve a separate GioOperation object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104721</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2009-01-07 09:17:16 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; We always use four (4) spaces. Your patch still has a style issue...
&gt;
Yeah, sorry, I missed 2 lines. On the plus side, I fixed indentation in ::startData, so my patch doesn&apos;t make the situation worse. Go me!
 
&gt; This is backwards and will be ugly. You would need to know when the WebCore
&gt; side is detached from the ResourceHandle... and then never ever call into the
&gt; ResourceClient callbacks... It might be best to not use GIO for file/data at
&gt; all...
&gt; 
Not using GIO is not an option as far as I can see unless we want to manually code up all formats - and that&apos;s not just file, but at least ftp, too.
And I&apos;m sure I don&apos;t want to write another ftp backend, the one for GIO was enough. So at least long term GIO is the way to go.

I&apos;m fine with someone just ripping it out if he doesn&apos;t like my patch. But I&apos;d prefer to have a solution that does not make ~30 tests crash in every LayoutTests run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104742</commentid>
    <comment_count>7</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-07 11:45:23 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=26492) [review]
&gt; patch 2
&gt; 
&gt; And this is the only way I could come up with a patch for the GIO crash that
&gt; wouldn&apos;t involve a separate GioOperation object.
&gt; 

And another coding style violation and the rest sounded too unfriendly, I will try to catch you on irc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104772</commentid>
    <comment_count>8</comment_count>
      <attachid>26488</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-07 13:46:51 -0800</bug_when>
    <thetext>Comment on attachment 26488
patch 1


&gt; +    if (m_idleHandler) {
&gt; +      g_source_remove (m_idleHandler);
&gt; +      m_idleHandler = 0;
&gt; +    }

style issue... please change when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104797</commentid>
    <comment_count>9</comment_count>
      <attachid>26488</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-07 15:45:00 -0800</bug_when>
    <thetext>Comment on attachment 26488
patch 1

Landed in r39690. Tabs in the ChangeLog are forbidden as well... at least the commit hook rejected it...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104799</commentid>
    <comment_count>10</comment_count>
      <attachid>26488</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-07 15:45:11 -0800</bug_when>
    <thetext>Comment on attachment 26488
patch 1

Landed in r39690. Tabs in the ChangeLog are forbidden as well... at least the commit hook rejected it...

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104924</commentid>
    <comment_count>11</comment_count>
      <attachid>26530</attachid>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2009-01-08 13:33:26 -0800</bug_when>
    <thetext>Created attachment 26530
patch 2, try 2

This got a bit bigger than I had expected, but it&apos;s working perfectly fine now.
The code is using Holger&apos;s suggested method of using g_object_set_data() for GIO operations, so it can unset the ResourceHandle when it gets cancelled or deleted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104951</commentid>
    <comment_count>12</comment_count>
      <attachid>26530</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-08 15:51:33 -0800</bug_when>
    <thetext>Comment on attachment 26530
patch 2, try 2

Sorry, there are way too many style issues to fix them when landing. Please indent with spaces. Please try to avoid using NULL in C++ code. E.g. when you shuffle code around also remove the NULL and use 0? thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105066</commentid>
    <comment_count>13</comment_count>
      <attachid>26577</attachid>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2009-01-09 14:41:49 -0800</bug_when>
    <thetext>Created attachment 26577
patch 2, try 3

Same patch without style issues.
I hope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105166</commentid>
    <comment_count>14</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-10 16:33:52 -0800</bug_when>
    <thetext>This is no crash in libsoup, and not a crash with the usage of Soup, but coming from GIO... which is used by the Soup backend...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105217</commentid>
    <comment_count>15</comment_count>
      <attachid>26577</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-11 08:27:11 -0800</bug_when>
    <thetext>Comment on attachment 26577
patch 2, try 3

&gt; commit 675d7e669ec7147a4f6c1d0972574b4ffe441f6b
&gt; Author: Benjamin Otte &lt;otte@gnome.org&gt;
&gt; Date:   Thu Jan 8 22:26:33 2009 +0100
&gt; 
&gt;     [SOUP] bug 23116, part 2

like in the previous bug, extra points if you could create a proper description here. Now I would have to do git commit --amend after taking your patch, or go though svn-apply..



&gt; +        Also included is a crash fix for when a file:// url is a directory.


Hmm, we talked about this didn&apos;t we? One patch per issue... So far I see a GIO crash from the callback and you see a second crash, split it up.


&gt;  ResourceHandle::~ResourceHandle()
&gt;  {
&gt; +    cancel();
&gt;  }

This is creating a interesting question. If cancel was already called and we call cancel again nothing will happen. If it was not called before we will invoke call the ResourceHandleClient. This is something that this backend was not doing before and at least Qt is not doing that. I would prefer to not change the behavior without a good reason. 


&gt;  static void fillResponseFromMessage(SoupMessage* msg, ResourceResponse* response)
&gt;  {
&gt;      SoupMessageHeadersIter iter;
&gt; -    const char* name = NULL;
&gt; -    const char* value = NULL;
&gt; +    const char* name = 0;
&gt; +    const char* value = 0;

Okay, unrelated cleanup :)


&gt;  static void restartedCallback(SoupMessage* msg, gpointer data)
&gt;  {
&gt;      ResourceHandle* handle = static_cast&lt;ResourceHandle*&gt;(data);
&gt; -    if (!handle)
&gt; -        return;

unrelated cleanup...

Handle* handle = static_cast&lt;ResourceHandle*&gt;(data);
&gt; -    if (!handle)
&gt; -        return;

unrelated cleanup


&gt;      if (SOUP_STATUS_IS_TRANSPORT_ERROR(msg-&gt;status_code)) {
&gt;          char* uri = soup_uri_to_string(soup_message_get_uri(msg), FALSE);
&gt;          ResourceError error(&quot;webkit-network-error&quot;, ERROR_TRANSPORT, uri, String::fromUTF8(msg-&gt;reason_phrase));
&gt;          g_free(uri);
&gt; +        g_object_unref(d-&gt;m_msg);
&gt; +        d-&gt;m_msg = 0;

unrelated...



&gt; +        SoupMessage *msg = d-&gt;m_msg;

style

....

smaller patches (one patch per issue) would be so much easier to review. The only reason for a big patch doing more than one thing is a rewrite because something is inherently wrong with the current implementation...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105237</commentid>
    <comment_count>16</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-11 10:42:50 -0800</bug_when>
    <thetext>Proposed order of changes (each in a separate patch):
   1.) Call into the client after giving up references (like you do with ResourceError and cleanupGioOperation)
   2.) Use g_object_set_data/get_data
   3.) Kill m_cancelled
   4.) Your file as directory fix (which I didn&apos;t find in the patch)
   5.) Failing immediately and giving up the references to the SoupMessage and such.

So 1.) and 2.) will fix the GIO crashes we are seeing.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105312</commentid>
    <comment_count>17</comment_count>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2009-01-12 01:43:46 -0800</bug_when>
    <thetext>I&apos;m very unlikely to split this up into small separate patches anytime soon, because:
- I&apos;m at LCA/holidays now
- The svn/ChangeLog workflow is incredibly depressing for small-patch workflow
- every time I compile Webkit it takes at least 5 minutes on my box, because the linking is swapping like mad, so this will cost me some hours just for compiling
- I consider it a rewrite at this point, because it quite fundamentally changes the behavior of the SOUP ResourceHandle.

In retrospect it would have been easier to split this patch up, had I known about the multiple crashers and leaks this patch now fixes in advance, but most of those were hidden bugs that just showed up while I refactored.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105313</commentid>
    <comment_count>18</comment_count>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2009-01-12 01:54:27 -0800</bug_when>
    <thetext>On to the patch in detail:

&gt; like in the previous bug, extra points if you could create a proper description
&gt; here. Now I would have to do git commit --amend after taking your patch, or go
&gt; though svn-apply..
&gt; 
Yup, next patch will have the commit message as the ChangeLog. Bonus points if I can attach patches with a git log, but without a ChangeLog entry.

&gt; &gt;  ResourceHandle::~ResourceHandle()
&gt; &gt;  {
&gt; &gt; +    cancel();
&gt; &gt;  }
&gt; 
&gt; This is creating a interesting question. If cancel was already called and we
&gt; call cancel again nothing will happen. If it was not called before we will
&gt; invoke call the ResourceHandleClient. This is something that this backend was
&gt; not doing before and at least Qt is not doing that. I would prefer to not
&gt; change the behavior without a good reason. 
&gt; 
I actually looked into various backends and CURL calls cancel() unconditionally in the destructor, so I guess it is fine.

&gt; Okay, unrelated cleanup :)
&gt; 
As said above, I considered it a rewrite, so I just made it a clean one :)

&gt; &gt; +        SoupMessage *msg = d-&gt;m_msg;
&gt; 
&gt; style
&gt; 
Care toelaborate what I did wrong here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105323</commentid>
    <comment_count>19</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-12 05:43:31 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; I&apos;m very unlikely to split this up into small separate patches anytime soon,
&gt; because:

&gt; - I consider it a rewrite at this point, because it quite fundamentally changes
&gt; the behavior of the SOUP ResourceHandle.

And this is where it is getting an attitude problem (CADT). You have done something, you have done more, then even more and suddenly it is working and then you declare you are done. But in reality fixing a GIO crash and changing when you unref a SoupMessage are two different things. The only thing they have in common is the file they are in.

Anyway I will post my patch set then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105351</commentid>
    <comment_count>20</comment_count>
      <attachid>26640</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-12 12:09:57 -0800</bug_when>
    <thetext>Created attachment 26640
Cleanup before calling didFail

Cleanup before calling didFail because after didFail the ResourceHandle might be gone....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105355</commentid>
    <comment_count>21</comment_count>
      <attachid>26641</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-12 12:12:52 -0800</bug_when>
    <thetext>Created attachment 26641
Be able to detach from an async GIO operation

the GIO callback might be called even after we did cancel the operation. Place the ResourceHandle* in the GObject* and set it to null when the ResourceHandle forgot about the m_gfile/input_stream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105356</commentid>
    <comment_count>22</comment_count>
      <attachid>26642</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-12 12:14:13 -0800</bug_when>
    <thetext>Created attachment 26642
Make sure to unref the m_gfile and such

On destruction make sure to cleanup the GIO objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105359</commentid>
    <comment_count>23</comment_count>
      <attachid>26644</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-12 12:31:44 -0800</bug_when>
    <thetext>Created attachment 26644
Be able to detach from an async GIO operation

0 -&gt; NULL, spotted by Company.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105536</commentid>
    <comment_count>24</comment_count>
      <attachid>26678</attachid>
    <who name="Alexander Butenko">a.butenka</who>
    <bug_when>2009-01-13 11:43:53 -0800</bug_when>
    <thetext>Created attachment 26678
one more crash fix extracted from Company patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105800</commentid>
    <comment_count>25</comment_count>
      <attachid>26678</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-01-14 14:36:17 -0800</bug_when>
    <thetext>Comment on attachment 26678
one more crash fix extracted from Company patch


&gt; +        if (client())
&gt; +	    client()-&gt;didFinishLoading(this);

Coding Style issue... probably tabs... the one who lands need to fix that. and to the one who lands please add a reference to this bug here so people see from which patchset this is coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106291</commentid>
    <comment_count>26</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-01-19 16:17:36 -0800</bug_when>
    <thetext>2009-01-20  Alexander V. Butenko  &lt;alex@digiqube.com&gt;

        Reviewed by Holger Freyther.

        http://bugs.webkit.org/show_bug.cgi?id=23116
        [GTK] Fix crash due a callback called from GIO after the
        destruction of the ResourceHandle

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::cancel): Only call didFinishLoading if
        &apos;client&apos; is set, otherwise cancelling a load could lead to a crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109010</commentid>
    <comment_count>27</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-02-09 12:42:47 -0800</bug_when>
    <thetext>Closing this for now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26429</attachid>
            <date>2009-01-05 06:41:08 -0800</date>
            <delta_ts>2009-01-07 02:42:39 -0800</delta_ts>
            <desc>suggested fix</desc>
            <filename>diff</filename>
            <type>text/plain</type>
            <size>2622</size>
            <attacher name="Benjamin Otte">otte</attacher>
            
              <data encoding="base64">Y29tbWl0IGIxN2U4OGExOTk2OWNkNzcxZWEzYjJmYTVhOGRjMWQ3MjE3ZDU4NGUKQXV0aG9yOiBC
ZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KRGF0ZTogICBNb24gSmFuIDUgMTU6MDE6NTgg
MjAwOSArMDEwMAoKICAgIFtTT1VQXSByZWZlcmVuY2UgdGhlIGhhbmRsZSB3aGVuIG1haW4gbG9v
cCBjYWxsYmFja3MgcnVuIG9uIGl0CiAgICAKICAgIFRoaXMgYXZvaWRzIHJhbmRvbSBjcmFzaGVy
cyBkdXJpbmcgcnVuLXdlYmtpdC10ZXN0cwoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IGY5ZTkwMDMuLmE3YjUwYjYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5k
bGVTb3VwLmNwcApAQCAtMTk5LDggKzE5OSwxMCBAQCBzdGF0aWMgZ2Jvb2xlYW4gcGFyc2VEYXRh
VXJsKGdwb2ludGVyIGNhbGxiYWNrX2RhdGEpCiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNs
aWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7CiAKICAgICBBU1NFUlQoY2xpZW50KTsKLSAgICBpZiAo
IWNsaWVudCkKKyAgICBpZiAoIWNsaWVudCkgeworCWhhbmRsZS0+ZGVyZWYgKCk7CiAgICAgICAg
IHJldHVybiBGQUxTRTsKKyAgICB9CiAKICAgICBTdHJpbmcgdXJsID0gaGFuZGxlLT5yZXF1ZXN0
KCkudXJsKCkuc3RyaW5nKCk7CiAgICAgQVNTRVJUKHVybC5zdGFydHNXaXRoKCJkYXRhOiIsIGZh
bHNlKSk7CkBAIC0yMDgsNiArMjEwLDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlRGF0YVVybChn
cG9pbnRlciBjYWxsYmFja19kYXRhKQogICAgIGludCBpbmRleCA9IHVybC5maW5kKCcsJyk7CiAg
ICAgaWYgKGluZGV4ID09IC0xKSB7CiAgICAgICAgIGNsaWVudC0+Y2Fubm90U2hvd1VSTChoYW5k
bGUpOworCWhhbmRsZS0+ZGVyZWYgKCk7CiAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICB9CiAK
QEAgLTI1Nyw2ICsyNjAsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gcGFyc2VEYXRhVXJsKGdwb2ludGVy
IGNhbGxiYWNrX2RhdGEpCiAKICAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlKTsK
IAorICAgIGhhbmRsZS0+ZGVyZWYgKCk7CiAgICAgcmV0dXJuIEZBTFNFOwogfQogCkBAIC0yNjQs
NiArMjY4LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnREYXRhKFN0cmluZyB1cmxTdHJp
bmcpCiB7CiAgICAgICAgIC8vIElmIHBhcnNlRGF0YVVybCBpcyBjYWxsZWQgc3luY2hyb25vdXNs
eSB0aGUgam9iIGlzIG5vdCB5ZXQgZWZmZWN0aXZlbHkgc3RhcnRlZAogICAgICAgICAvLyBhbmQg
d2Via2l0IHdvbid0IG5ldmVyIGtub3cgdGhhdCB0aGUgZGF0YSBoYXMgYmVlbiBwYXJzZWQgZXZl
biBkaWRGaW5pc2hMb2FkaW5nIGlzIGNhbGxlZC4KKwl0aGlzLT5yZWYgKCk7CiAgICAgICAgIGdf
aWRsZV9hZGQocGFyc2VEYXRhVXJsLCB0aGlzKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC00MjksNiArNDM0LDcgQEAgc3RhdGljIHZvaWQgY2xlYW51cEdpb09wZXJhdGlvbihSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlKQogICAgICAgICBnX2ZyZWUoZC0+bV9idWZmZXIpOwogICAgICAgICBk
LT5tX2J1ZmZlciA9IE5VTEw7CiAgICAgfQorICAgIGhhbmRsZS0+ZGVyZWYgKCk7CiB9CiAKIHN0
YXRpYyB2b2lkIGNsb3NlQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJl
cywgZ3BvaW50ZXIgZGF0YSkKQEAgLTQzOCw4ICs0NDQsOCBAQCBzdGF0aWMgdm9pZCBjbG9zZUNh
bGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEp
CiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7CiAK
ICAgICBnX2lucHV0X3N0cmVhbV9jbG9zZV9maW5pc2goZC0+bV9pbnB1dF9zdHJlYW0sIHJlcywg
TlVMTCk7Ci0gICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUpOwogICAgIGNsaWVudC0+ZGlk
RmluaXNoTG9hZGluZyhoYW5kbGUpOworICAgIGNsZWFudXBHaW9PcGVyYXRpb24oaGFuZGxlKTsK
IH0KIAogc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVz
dWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCkBAIC01NzUsNiArNTgxLDcgQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3RhcnRHaW8oU3RyaW5nIHVybFN0cmluZykKIAogICAgIGQtPm1fZ2ZpbGUgPSBn
X2ZpbGVfbmV3X2Zvcl91cmkodXJsU3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwogICAgIGQtPm1fY2Fu
Y2VsbGFibGUgPSBnX2NhbmNlbGxhYmxlX25ldygpOworICAgIHRoaXMtPnJlZiAoKTsKICAgICBn
X2ZpbGVfcXVlcnlfaW5mb19hc3luYyhkLT5tX2dmaWxlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfVFlQRSAiLCIKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX0NPTlRFTlRfVFlQRSAiLCIK
</data>
<flag name="review"
          id="12533"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26488</attachid>
            <date>2009-01-07 02:42:39 -0800</date>
            <delta_ts>2009-01-12 12:09:57 -0800</delta_ts>
            <desc>patch 1</desc>
            <filename>diff</filename>
            <type>text/plain</type>
            <size>3007</size>
            <attacher name="Benjamin Otte">otte</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTI2MzU2Ny4uODg0YmU2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wMS0wNyAgQmVuamFtaW4gT3R0
ZSAgPG90dGVAZ25vbWUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRs
ZUludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5k
bGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6On5S
ZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRGF0YVVybCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnREYXRhKToga2VlcCB0cmFj
ayBvZiB0aGUgaWRsZSBoYW5kbGVyCisJd2UgYWRkIGFuZCByZW1vdmUgaXQgaW4gdGhlIGRlc3Ry
dWN0b3IKKwogMjAwOS0wMS0wNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDVhZGEyZjUuLjY2YWE0YzEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVy
bmFsLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJu
YWwuaApAQCAtMTE2LDYgKzExNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAg
ICwgbV9idWZmZXIoMCkKICAgICAgICAgICAgICwgbV9idWZzaXplKDApCiAgICAgICAgICAgICAs
IG1fdG90YWwoMCkKKyAgICAgICAgICAgICwgbV9pZGxlSGFuZGxlcigwKQogI2VuZGlmCiAjaWYg
UExBVEZPUk0oUVQpCiAgICAgICAgICAgICAsIG1fam9iKDApCkBAIC0xODUsNiArMTg2LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBHQ2FuY2VsbGFibGUqIG1fY2FuY2VsbGFibGU7
CiAgICAgICAgIGNoYXIqIG1fYnVmZmVyOwogICAgICAgICBnc2l6ZSBtX2J1ZnNpemUsIG1fdG90
YWw7CisgICAgICAgIGd1aW50IG1faWRsZUhhbmRsZXI7CiAjZW5kaWYKICNpZiBQTEFURk9STShR
VCkKICNpZiBRVF9WRVJTSU9OIDwgMHgwNDA0MDAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IGY5ZTkwMDMuLmQ2ZmQ3
MTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcApAQCAtNjMsNiArNjMsMTAgQEAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6
flJlc291cmNlSGFuZGxlSW50ZXJuYWwoKQogICAgICAgICBnX29iamVjdF91bnJlZihtX21zZyk7
CiAgICAgICAgIG1fbXNnID0gMDsKICAgICB9CisgICAgaWYgKG1faWRsZUhhbmRsZXIpIHsKKyAg
ICAgIGdfc291cmNlX3JlbW92ZSAobV9pZGxlSGFuZGxlcik7CisgICAgICBtX2lkbGVIYW5kbGVy
ID0gMDsKKyAgICB9CiB9CiAKIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQpAQCAt
MTk4LDYgKzIwMiw4IEBAIHN0YXRpYyBnYm9vbGVhbiBwYXJzZURhdGFVcmwoZ3BvaW50ZXIgY2Fs
bGJhY2tfZGF0YSkKICAgICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVz
b3VyY2VIYW5kbGUqPihjYWxsYmFja19kYXRhKTsKICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50ID0gaGFuZGxlLT5jbGllbnQoKTsKIAorICAgIGhhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+
bV9pZGxlSGFuZGxlciA9IDA7CisKICAgICBBU1NFUlQoY2xpZW50KTsKICAgICBpZiAoIWNsaWVu
dCkKICAgICAgICAgcmV0dXJuIEZBTFNFOwpAQCAtMjYyLDEwICsyNjgsMTIgQEAgc3RhdGljIGdi
b29sZWFuIHBhcnNlRGF0YVVybChncG9pbnRlciBjYWxsYmFja19kYXRhKQogCiBib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydERhdGEoU3RyaW5nIHVybFN0cmluZykKIHsKLSAgICAgICAgLy8gSWYg
cGFyc2VEYXRhVXJsIGlzIGNhbGxlZCBzeW5jaHJvbm91c2x5IHRoZSBqb2IgaXMgbm90IHlldCBl
ZmZlY3RpdmVseSBzdGFydGVkCi0gICAgICAgIC8vIGFuZCB3ZWJraXQgd29uJ3QgbmV2ZXIga25v
dyB0aGF0IHRoZSBkYXRhIGhhcyBiZWVuIHBhcnNlZCBldmVuIGRpZEZpbmlzaExvYWRpbmcgaXMg
Y2FsbGVkLgotICAgICAgICBnX2lkbGVfYWRkKHBhcnNlRGF0YVVybCwgdGhpcyk7Ci0gICAgICAg
IHJldHVybiB0cnVlOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSB0aGlzLT5nZXRJ
bnRlcm5hbCgpOworCisgICAgLy8gSWYgcGFyc2VEYXRhVXJsIGlzIGNhbGxlZCBzeW5jaHJvbm91
c2x5IHRoZSBqb2IgaXMgbm90IHlldCBlZmZlY3RpdmVseSBzdGFydGVkCisgICAgLy8gYW5kIHdl
YmtpdCB3b24ndCBuZXZlciBrbm93IHRoYXQgdGhlIGRhdGEgaGFzIGJlZW4gcGFyc2VkIGV2ZW4g
ZGlkRmluaXNoTG9hZGluZyBpcyBjYWxsZWQuCisgICAgZC0+bV9pZGxlSGFuZGxlciA9IGdfaWRs
ZV9hZGQocGFyc2VEYXRhVXJsLCB0aGlzKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBS
ZXNvdXJjZUhhbmRsZTo6c3RhcnRIdHRwKFN0cmluZyB1cmxTdHJpbmcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26492</attachid>
            <date>2009-01-07 08:39:33 -0800</date>
            <delta_ts>2009-01-08 13:33:26 -0800</delta_ts>
            <desc>patch 2</desc>
            <filename>diff</filename>
            <type>text/plain</type>
            <size>1747</size>
            <attacher name="Benjamin Otte">otte</attacher>
            
              <data encoding="base64">Y29tbWl0IDZjMzhkZGFiNTUxMjQxNTQ1Yjc5ZmRiYTMzNTZhZjA4Mjk1NGQ1NjYKQXV0aG9yOiBC
ZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KRGF0ZTogICBXZWQgSmFuIDcgMTc6MzY6MDcg
MjAwOSArMDEwMAoKICAgIFtTT1VQXSBidWcgMjMxMTYgcGF0Y2ggMgoKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODg0YmU2OS4uNzZhY2Fj
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTIsNiArMiwxNSBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgog
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjbGVhbnVwR2lvT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpzdGFydEdpbyk6IGF2b2lkIGNyYXNoZXMgZnJvbSBhc3luYyBH
SU8KKwljYWxsYmFja3MgYnkgdGFraW5nIGEgcmVmZXJlbmNlIHRvIHRoZSBoYW5kbGUgd2hpbGUg
R0lPIG9wZXJhdGlvbnMgcnVuCisKKzIwMDktMDEtMDcgIEJlbmphbWluIE90dGUgIDxvdHRlQGdu
b21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgogICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6
CiAgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcAppbmRleCBkNmZkNzEzLi5iOTQwZmE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTQzNyw2ICs0Mzcs
NyBAQCBzdGF0aWMgdm9pZCBjbGVhbnVwR2lvT3BlcmF0aW9uKFJlc291cmNlSGFuZGxlKiBoYW5k
bGUpCiAgICAgICAgIGdfZnJlZShkLT5tX2J1ZmZlcik7CiAgICAgICAgIGQtPm1fYnVmZmVyID0g
TlVMTDsKICAgICB9CisgICAgaGFuZGxlLT5kZXJlZiAoKTsKIH0KIAogc3RhdGljIHZvaWQgY2xv
c2VDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBk
YXRhKQpAQCAtNTgzLDYgKzU4NCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0R2lvKFN0
cmluZyB1cmxTdHJpbmcpCiAKICAgICBkLT5tX2dmaWxlID0gZ19maWxlX25ld19mb3JfdXJpKHVy
bFN0cmluZy51dGY4KCkuZGF0YSgpKTsKICAgICBkLT5tX2NhbmNlbGxhYmxlID0gZ19jYW5jZWxs
YWJsZV9uZXcoKTsKKyAgICB0aGlzLT5yZWYgKCk7CiAgICAgZ19maWxlX3F1ZXJ5X2luZm9fYXN5
bmMoZC0+bV9nZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklC
VVRFX1NUQU5EQVJEX1RZUEUgIiwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19GSUxF
X0FUVFJJQlVURV9TVEFOREFSRF9DT05URU5UX1RZUEUgIiwiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26530</attachid>
            <date>2009-01-08 13:33:26 -0800</date>
            <delta_ts>2009-01-12 12:09:57 -0800</delta_ts>
            <desc>patch 2, try 2</desc>
            <filename>diff</filename>
            <type>text/plain</type>
            <size>14555</size>
            <attacher name="Benjamin Otte">otte</attacher>
            
              <data encoding="base64">Y29tbWl0IDEwZTViZjY0MDQyODkwOWI3OTM0MGMyNWI0NDE4MDg5ZTRiNzk4YjIKQXV0aG9yOiBC
ZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KRGF0ZTogICBUaHUgSmFuIDggMjI6MjY6MzMg
MjAwOSArMDEwMAoKICAgIFtTT1VQXSBidWcgMjMxMTYsIHBhcnQgMgoKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTU1ZWI3ZC4uYzA0Nzlh
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMCBAQAorMjAwOS0wMS0wOCAgQmVuamFtaW4gT3R0ZSAgPG90dGVAZ25vbWUu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
d29yayBjYW5jZWxsYXRpb24vZGVzdHJ1Y3Rpb24gb2YgcmVzb3VyY2VzIHRvIG5vdCBjcmFzaCBh
bnltb3JlLgorICAgICAgICBJbnN0ZWFkIG9mIGxhemlseSByZWxlYXNpbmcgcmVzb3VyY2VzLCB0
aGV5IGdldCByZWxlYXNlZCBpbW1lZGlhdGVseQorICAgICAgICB3aGVuIGFuIGVycm9yIG9yIGNh
bmNlbGxhdGlvbiByZXF1ZXN0IGlzIGVuY291bnRlcmVkLiAKKworICAgICAgICBBbHNvIGluY2x1
ZGVkIGlzIGEgY3Jhc2ggZml4IGZvciB3aGVuIGEgZmlsZTovLyB1cmwgaXMgYSBkaXJlY3Rvcnku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxl
SW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6flJl
c291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
On5SZXNvdXJjZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpyZXN0YXJ0ZWRDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFkZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6Z290Q2h1bmtDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpmaW5pc2hlZENhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OmNsZWFudXBHaW9PcGVyYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OmNhbmNlbCk6CisgICAgICAgIChXZWJDb3JlOjpjbG9zZUNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnJlYWRDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpvcGVuQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6cXVlcnlJbmZvQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0R2lvKToKKwogMjAwOS0w
MS0wOCAgUGllcnJlLU9saXZpZXIgTGF0b3VyICA8cG9sQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggNjZhYTRjMS4uNGM4YmVmMCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBA
IC0xMDksNyArMTA5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNP
VVApCiAgICAgICAgICAgICAsIG1fbXNnKDApCi0gICAgICAgICAgICAsIG1fY2FuY2VsbGVkKGZh
bHNlKQogICAgICAgICAgICAgLCBtX2dmaWxlKDApCiAgICAgICAgICAgICAsIG1faW5wdXRfc3Ry
ZWFtKDApCiAgICAgICAgICAgICAsIG1fY2FuY2VsbGFibGUoMCkKQEAgLTE4MCw3ICsxNzksNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgVVNFKFNPVVApCiAgICAgICAgIFNvdXBNZXNzYWdl
KiBtX21zZzsKICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwotICAgICAgICBi
b29sIG1fY2FuY2VsbGVkOwogICAgICAgICBHRmlsZSogbV9nZmlsZTsKICAgICAgICAgR0lucHV0
U3RyZWFtKiBtX2lucHV0X3N0cmVhbTsKICAgICAgICAgR0NhbmNlbGxhYmxlKiBtX2NhbmNlbGxh
YmxlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHAKaW5kZXggZDdlZDMzZi4uOGQzYzc3NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC01OSwxMSAr
NTksNiBAQCBlbnVtCiAKIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6On5SZXNvdXJjZUhhbmRsZUlu
dGVybmFsKCkKIHsKLSAgICBpZiAobV9tc2cpIHsKLSAgICAgICAgZ19vYmplY3RfdW5yZWYobV9t
c2cpOwotICAgICAgICBtX21zZyA9IDA7Ci0gICAgfQotCiAgICAgaWYgKG1faWRsZUhhbmRsZXIp
IHsKICAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1faWRsZUhhbmRsZXIpOwogICAgICAgICBtX2lk
bGVIYW5kbGVyID0gMDsKQEAgLTcyLDYgKzY3LDcgQEAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6
flJlc291cmNlSGFuZGxlSW50ZXJuYWwoKQogCiBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFu
ZGxlKCkKIHsKKyAgICBjYW5jZWwoKTsKIH0KIAogc3RhdGljIHZvaWQgZmlsbFJlc3BvbnNlRnJv
bU1lc3NhZ2UoU291cE1lc3NhZ2UqIG1zZywgUmVzb3VyY2VSZXNwb25zZSogcmVzcG9uc2UpCkBA
IC05OSwxMCArOTUsOCBAQCBzdGF0aWMgdm9pZCBmaWxsUmVzcG9uc2VGcm9tTWVzc2FnZShTb3Vw
TWVzc2FnZSogbXNnLCBSZXNvdXJjZVJlc3BvbnNlKiByZXNwb25zZQogc3RhdGljIHZvaWQgcmVz
dGFydGVkQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKIHsKICAgICBS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRh
KTsKLSAgICBpZiAoIWhhbmRsZSkKLSAgICAgICAgcmV0dXJuOwogICAgIFJlc291cmNlSGFuZGxl
SW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0gICAgaWYgKGQtPm1fY2FuY2Vs
bGVkKQorICAgIGlmICghZC0+bV9tc2cpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNoYXIqIHVy
aSA9IHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwX21lc3NhZ2VfZ2V0X3VyaShtc2cpLCBGQUxTRSk7
CkBAIC0xMjYsMTAgKzEyMCw4IEBAIHN0YXRpYyB2b2lkIGdvdEhlYWRlcnNDYWxsYmFjayhTb3Vw
TWVzc2FnZSogbXNnLCBncG9pbnRlciBkYXRhKQogICAgICAgICByZXR1cm47CiAKICAgICBSZXNv
dXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsK
LSAgICBpZiAoIWhhbmRsZSkKLSAgICAgICAgcmV0dXJuOwogICAgIFJlc291cmNlSGFuZGxlSW50
ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0gICAgaWYgKGQtPm1fY2FuY2VsbGVk
KQorICAgIGlmICghZC0+bV9tc2cpCiAgICAgICAgIHJldHVybjsKICAgICBSZXNvdXJjZUhhbmRs
ZUNsaWVudCogY2xpZW50ID0gaGFuZGxlLT5jbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKQEAg
LTE0NiwxMCArMTM4LDggQEAgc3RhdGljIHZvaWQgZ290Q2h1bmtDYWxsYmFjayhTb3VwTWVzc2Fn
ZSogbXNnLCBTb3VwQnVmZmVyKiBjaHVuaywgZ3BvaW50ZXIgZGF0YSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFu
ZGxlKj4oZGF0YSk7Ci0gICAgaWYgKCFoYW5kbGUpCi0gICAgICAgIHJldHVybjsKICAgICBSZXNv
dXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIGlmIChk
LT5tX2NhbmNlbGxlZCkKKyAgICBpZiAoIWQtPm1fbXNnKQogICAgICAgICByZXR1cm47CiAgICAg
UmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7CiAgICAgaWYg
KCFjbGllbnQpCkBAIC0xNjQsMjIgKzE1NCwxNyBAQCBzdGF0aWMgdm9pZCBmaW5pc2hlZENhbGxi
YWNrKFNvdXBTZXNzaW9uICpzZXNzaW9uLCBTb3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYQog
ewogICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRs
ZSo+KGRhdGEpOwogICAgIC8vIFRPRE86IG1heWJlIHdlIHNob3VsZCBydW4gdGhpcyBjb2RlIGV2
ZW4gaWYgdGhlcmUncyBubyBjbGllbnQ/Ci0gICAgaWYgKCFoYW5kbGUpCi0gICAgICAgIHJldHVy
bjsKLQogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFs
KCk7Ci0KICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gaGFuZGxlLT5jbGllbnQo
KTsKLSAgICBpZiAoIWNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGQtPm1fY2Fu
Y2VsbGVkKQorICAgIGlmICghY2xpZW50IHx8ICFkLT5tX21zZykKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKFNPVVBfU1RBVFVTX0lTX1RSQU5TUE9SVF9FUlJPUihtc2ctPnN0YXR1c19jb2Rl
KSkgewogICAgICAgICBjaGFyKiB1cmkgPSBzb3VwX3VyaV90b19zdHJpbmcoc291cF9tZXNzYWdl
X2dldF91cmkobXNnKSwgRkFMU0UpOwogICAgICAgICBSZXNvdXJjZUVycm9yIGVycm9yKCJ3ZWJr
aXQtbmV0d29yay1lcnJvciIsIEVSUk9SX1RSQU5TUE9SVCwgdXJpLCBTdHJpbmc6OmZyb21VVEY4
KG1zZy0+cmVhc29uX3BocmFzZSkpOwogICAgICAgICBnX2ZyZWUodXJpKTsKKyAgICAgICAgZ19v
YmplY3RfdW5yZWYoZC0+bV9tc2cpOworICAgICAgICBkLT5tX21zZyA9IDA7CiAgICAgICAgIGNs
aWVudC0+ZGlkRmFpbChoYW5kbGUsIGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0gZWxz
ZSBpZiAoIVNPVVBfU1RBVFVTX0lTX1NVQ0NFU1NGVUwobXNnLT5zdGF0dXNfY29kZSkpIHsKQEAg
LTE4NywxMyArMTcyLDE0IEBAIHN0YXRpYyB2b2lkIGZpbmlzaGVkQ2FsbGJhY2soU291cFNlc3Np
b24gKnNlc3Npb24sIFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRhCiAgICAgICAgIGNsaWVu
dC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgZC0+bV9yZXNwb25zZSk7CiAKICAgICAgICAg
Ly8gV2ViQ29yZSBtaWdodCBoYXZlIGNhbmNlbGxlZCB0aGUgam9iIGluIHRoZSB3aGlsZQotICAg
ICAgICBpZiAoZC0+bV9jYW5jZWxsZWQpCisgICAgICAgIGlmICghZC0+bV9tc2cpCiAgICAgICAg
ICAgICByZXR1cm47Ci0KICAgICAgICAgaWYgKG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSkKICAg
ICAgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBtc2ctPnJlc3BvbnNlX2Jv
ZHktPmRhdGEsIG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCB0cnVlKTsKICAgICB9CiAKKyAg
ICBnX29iamVjdF91bnJlZihkLT5tX21zZyk7CisgICAgZC0+bV9tc2cgPSAwOwogICAgIGNsaWVu
dC0+ZGlkRmluaXNoTG9hZGluZyhoYW5kbGUpOwogfQogCkBAIC0zNTksMTYgKzM0NSw0NSBAQCBi
b29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgfQogfQogCitzdGF0
aWMgdm9pZCBjbGVhbnVwR2lvT3BlcmF0aW9uKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCit7Cisg
ICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKKwor
ICAgIGlmIChkLT5tX2dmaWxlKSB7CisgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNU
KGQtPm1fZ2ZpbGUpLCAid2Via2l0LXJlc291cmNlIiwgTlVMTCk7CisgICAgICAgIGdfb2JqZWN0
X3VucmVmKGQtPm1fZ2ZpbGUpOworICAgICAgICBkLT5tX2dmaWxlID0gTlVMTDsKKyAgICB9Cisg
ICAgaWYgKGQtPm1fY2FuY2VsbGFibGUpIHsKKyAgICAgICAgZ19jYW5jZWxsYWJsZV9jYW5jZWwo
ZC0+bV9jYW5jZWxsYWJsZSk7CisgICAgICAgIGdfb2JqZWN0X3VucmVmKGQtPm1fY2FuY2VsbGFi
bGUpOworICAgICAgICBkLT5tX2NhbmNlbGxhYmxlID0gTlVMTDsKKyAgICB9CisgICAgaWYgKGQt
Pm1faW5wdXRfc3RyZWFtKSB7CisgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGQt
Pm1faW5wdXRfc3RyZWFtKSwgIndlYmtpdC1yZXNvdXJjZSIsIE5VTEwpOworICAgICAgICBnX29i
amVjdF91bnJlZihkLT5tX2lucHV0X3N0cmVhbSk7CisgICAgICAgIGQtPm1faW5wdXRfc3RyZWFt
ID0gTlVMTDsKKyAgICB9CisgICAgaWYgKGQtPm1fYnVmZmVyKSB7CisgICAgICAgIGdfZnJlZShk
LT5tX2J1ZmZlcik7CisgICAgICAgIGQtPm1fYnVmZmVyID0gTlVMTDsKKyAgICB9Cit9CisKIHZv
aWQgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiB7Ci0gICAgZC0+bV9jYW5jZWxsZWQgPSB0cnVl
OwogICAgIGlmIChkLT5tX21zZykgewotICAgICAgICBzb3VwX3Nlc3Npb25fY2FuY2VsX21lc3Nh
Z2Uoc2Vzc2lvbiwgZC0+bV9tc2csIFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7Ci0gICAgICAgIC8v
IEZvciByZS1lbnRyYW5jeSB0cm91YmxlcyB3ZSBjYWxsIGRpZEZpbmlzaExvYWRpbmcgd2hlbiB0
aGUgbWVzc2FnZSBoYXNuJ3QgYmVlbiBoYW5kbGVkIHlldC4KLSAgICAgICAgZC0+Y2xpZW50KCkt
PmRpZEZpbmlzaExvYWRpbmcodGhpcyk7CisgICAgICAgIFNvdXBNZXNzYWdlICptc2cgPSBkLT5t
X21zZzsKKyAgICAgICAgZC0+bV9tc2cgPSAwOworICAgICAgICBzb3VwX3Nlc3Npb25fY2FuY2Vs
X21lc3NhZ2Uoc2Vzc2lvbiwgbXNnLCBTT1VQX1NUQVRVU19DQU5DRUxMRUQpOworICAgICAgICBn
X29iamVjdF91bnJlZihtc2cpOworICAgICAgICBpZiAoY2xpZW50KCkpCisgICAgICAgICAgY2xp
ZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7CiAgICAgfSBlbHNlIGlmIChkLT5tX2NhbmNl
bGxhYmxlKSB7CiAgICAgICAgIGdfY2FuY2VsbGFibGVfY2FuY2VsKGQtPm1fY2FuY2VsbGFibGUp
OwotICAgICAgICBkLT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsKKyAgICAgICAg
Y2xlYW51cEdpb09wZXJhdGlvbih0aGlzKTsKKyAgICAgICAgaWYgKGNsaWVudCgpKQorICAgICAg
ICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMpOwogICAgIH0KIH0KIApAQCAtNDE4
LDMzICs0MzMsMTcgQEAgc3RhdGljIGlubGluZSBSZXNvdXJjZUVycm9yIG5ldHdvcmtFcnJvckZv
ckZpbGUoR0ZpbGUqIGZpbGUsIEdFcnJvciogZXJyb3IpCiAgICAgcmV0dXJuIHJlc291cmNlRXJy
b3I7CiB9CiAKLXN0YXRpYyB2b2lkIGNsZWFudXBHaW9PcGVyYXRpb24oUmVzb3VyY2VIYW5kbGUq
IGhhbmRsZSkKLXsKLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJ
bnRlcm5hbCgpOwotCi0gICAgaWYgKGQtPm1fZ2ZpbGUpIHsKLSAgICAgICAgZ19vYmplY3RfdW5y
ZWYoZC0+bV9nZmlsZSk7Ci0gICAgICAgIGQtPm1fZ2ZpbGUgPSBOVUxMOwotICAgIH0KLSAgICBp
ZiAoZC0+bV9jYW5jZWxsYWJsZSkgewotICAgICAgICBnX29iamVjdF91bnJlZihkLT5tX2NhbmNl
bGxhYmxlKTsKLSAgICAgICAgZC0+bV9jYW5jZWxsYWJsZSA9IE5VTEw7Ci0gICAgfQotICAgIGlm
IChkLT5tX2lucHV0X3N0cmVhbSkgewotICAgICAgICBnX29iamVjdF91bnJlZihkLT5tX2lucHV0
X3N0cmVhbSk7Ci0gICAgICAgIGQtPm1faW5wdXRfc3RyZWFtID0gTlVMTDsKLSAgICB9Ci0gICAg
aWYgKGQtPm1fYnVmZmVyKSB7Ci0gICAgICAgIGdfZnJlZShkLT5tX2J1ZmZlcik7Ci0gICAgICAg
IGQtPm1fYnVmZmVyID0gTlVMTDsKLSAgICB9Ci19Ci0KIHN0YXRpYyB2b2lkIGNsb3NlQ2FsbGJh
Y2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKIHsK
LSAgICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUq
PihkYXRhKTsKKyAgICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3Vy
Y2VIYW5kbGUqPihnX29iamVjdF9nZXRfZGF0YShzb3VyY2UsICJ3ZWJraXQtcmVzb3VyY2UiKSk7
CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybjsKICAgICBSZXNvdXJjZUhhbmRsZUlu
dGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgpOworICAgIGlmICghY2xpZW50KSB7CisgICAg
ICBjbGVhbnVwR2lvT3BlcmF0aW9uKGhhbmRsZSk7CisgICAgICByZXR1cm47CisgICAgfQogCiAg
ICAgZ19pbnB1dF9zdHJlYW1fY2xvc2VfZmluaXNoKGQtPm1faW5wdXRfc3RyZWFtLCByZXMsIE5V
TEwpOwogICAgIGNsZWFudXBHaW9PcGVyYXRpb24oaGFuZGxlKTsKQEAgLTQ1MywyNiArNDUyLDI3
IEBAIHN0YXRpYyB2b2lkIGNsb3NlQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1
bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKIAogc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmpl
Y3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiB7Ci0gICAgUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7
CisgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxl
Kj4oZ19vYmplY3RfZ2V0X2RhdGEoc291cmNlLCAid2Via2l0LXJlc291cmNlIikpOworICAgIGlm
ICghaGFuZGxlKQorICAgICAgICByZXR1cm47CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCog
ZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xp
ZW50ID0gaGFuZGxlLT5jbGllbnQoKTsKLQotICAgIGlmIChkLT5tX2NhbmNlbGxlZCB8fCAhY2xp
ZW50KSB7Ci0gICAgICAgIGNsZWFudXBHaW9PcGVyYXRpb24oaGFuZGxlKTsKLSAgICAgICAgcmV0
dXJuOworICAgIGlmICghY2xpZW50KSB7CisgICAgICBjbGVhbnVwR2lvT3BlcmF0aW9uKGhhbmRs
ZSk7CisgICAgICByZXR1cm47CiAgICAgfQotCiAgICAgZ3NzaXplIG5yZWFkOwogICAgIEdFcnJv
ciAqZXJyb3IgPSAwOwogCiAgICAgbnJlYWQgPSBnX2lucHV0X3N0cmVhbV9yZWFkX2ZpbmlzaChk
LT5tX2lucHV0X3N0cmVhbSwgcmVzLCAmZXJyb3IpOwogICAgIGlmIChlcnJvcikgewotICAgICAg
ICBjbGllbnQtPmRpZEZhaWwoaGFuZGxlLCBuZXR3b3JrRXJyb3JGb3JGaWxlKGQtPm1fZ2ZpbGUs
IGVycm9yKSk7CisgICAgICAgIFJlc291cmNlRXJyb3IgZSA9IG5ldHdvcmtFcnJvckZvckZpbGUo
ZC0+bV9nZmlsZSwgZXJyb3IpOwogICAgICAgICBjbGVhbnVwR2lvT3BlcmF0aW9uKGhhbmRsZSk7
CisgICAgICAgIGNsaWVudC0+ZGlkRmFpbChoYW5kbGUsIGUpOwogICAgICAgICByZXR1cm47CiAg
ICAgfSBlbHNlIGlmICghbnJlYWQpIHsKICAgICAgICAgZ19pbnB1dF9zdHJlYW1fY2xvc2VfYXN5
bmMoZC0+bV9pbnB1dF9zdHJlYW0sIEdfUFJJT1JJVFlfREVGQVVMVCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTlVMTCwgY2xvc2VDYWxsYmFjaywgaGFuZGxlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgY2xvc2VDYWxsYmFjaywgTlVMTCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQ4Niw0NCArNDg2LDQ2IEBAIHN0YXRpYyB2
b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9p
bnRlciBkYXRhKQogCiBzdGF0aWMgdm9pZCBvcGVuQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBH
QXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKIHsKLSAgICBSZXNvdXJjZUhhbmRsZSog
aGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKKyAgICBSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihnX29iamVjdF9n
ZXRfZGF0YShzb3VyY2UsICJ3ZWJraXQtcmVzb3VyY2UiKSk7CisgICAgaWYgKCFoYW5kbGUpCisg
ICAgICAgIHJldHVybjsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5n
ZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5kbGUt
PmNsaWVudCgpOwotCi0gICAgaWYgKGQtPm1fY2FuY2VsbGVkIHx8ICFjbGllbnQpIHsKLSAgICAg
ICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUpOwotICAgICAgICByZXR1cm47CisgICAgaWYg
KCFjbGllbnQpIHsKKyAgICAgIGNsZWFudXBHaW9PcGVyYXRpb24oaGFuZGxlKTsKKyAgICAgIHJl
dHVybjsKICAgICB9Ci0KICAgICBHRmlsZUlucHV0U3RyZWFtKiBpbjsKICAgICBHRXJyb3IgKmVy
cm9yID0gTlVMTDsKICAgICBpbiA9IGdfZmlsZV9yZWFkX2ZpbmlzaChHX0ZJTEUoc291cmNlKSwg
cmVzLCAmZXJyb3IpOwogICAgIGlmIChlcnJvcikgewotICAgICAgICBjbGllbnQtPmRpZEZhaWwo
aGFuZGxlLCBuZXR3b3JrRXJyb3JGb3JGaWxlKGQtPm1fZ2ZpbGUsIGVycm9yKSk7CisgICAgICAg
IFJlc291cmNlRXJyb3IgZSA9IG5ldHdvcmtFcnJvckZvckZpbGUoZC0+bV9nZmlsZSwgZXJyb3Ip
OwogICAgICAgICBjbGVhbnVwR2lvT3BlcmF0aW9uKGhhbmRsZSk7CisgICAgICAgIGNsaWVudC0+
ZGlkRmFpbChoYW5kbGUsIGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgZC0+bV9p
bnB1dF9zdHJlYW0gPSBHX0lOUFVUX1NUUkVBTShpbik7CisgICAgZ19vYmplY3Rfc2V0X2RhdGEo
R19PQkpFQ1QoZC0+bV9pbnB1dF9zdHJlYW0pLCAid2Via2l0LXJlc291cmNlIiwgaGFuZGxlKTsK
ICAgICBkLT5tX2J1ZnNpemUgPSA4MTkyOwogICAgIGQtPm1fYnVmZmVyID0gc3RhdGljX2Nhc3Q8
Y2hhcio+KGdfbWFsbG9jKGQtPm1fYnVmc2l6ZSkpOwogICAgIGQtPm1fdG90YWwgPSAwOwogICAg
IGdfaW5wdXRfc3RyZWFtX3JlYWRfYXN5bmMoZC0+bV9pbnB1dF9zdHJlYW0sIGQtPm1fYnVmZmVy
LCBkLT5tX2J1ZnNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BSSU9SSVRZ
X0RFRkFVTFQsIGQtPm1fY2FuY2VsbGFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWFkQ2FsbGJhY2ssIGhhbmRsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWFkQ2FsbGJhY2ssIE5VTEwpOwogfQogCiBzdGF0aWMgdm9pZCBxdWVyeUluZm9DYWxsYmFjayhH
T2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXRhKQogewotICAg
IFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRh
dGEpOworICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhh
bmRsZSo+KGdfb2JqZWN0X2dldF9kYXRhKHNvdXJjZSwgIndlYmtpdC1yZXNvdXJjZSIpKTsKKyAg
ICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuOwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJu
YWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQq
IGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7Ci0KLSAgICBpZiAoZC0+bV9jYW5jZWxsZWQpIHsK
LSAgICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUpOwotICAgICAgICByZXR1cm47Cisg
ICAgaWYgKCFjbGllbnQpIHsKKyAgICAgIGNsZWFudXBHaW9PcGVyYXRpb24oaGFuZGxlKTsKKyAg
ICAgIHJldHVybjsKICAgICB9Ci0KICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOwogCiAg
ICAgY2hhciogdXJpID0gZ19maWxlX2dldF91cmkoZC0+bV9nZmlsZSk7CkBAIC01NDAsMTggKzU0
MiwyMCBAQCBzdGF0aWMgdm9pZCBxdWVyeUluZm9DYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdB
c3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXRhKQogICAgICAgICAvLyBzZXJ2ZXIgKGFuZCB0
aGVuIGtlZXAgdHJhY2sgb2YgdGhlIGZhY3QgdGhhdCB3ZSBtb3VudGVkIGl0LAogICAgICAgICAv
LyBhbmQgc2V0IGEgdGltZW91dCB0byB1bm1vdW50IGl0IGxhdGVyIGFmdGVyIGl0J3MgYmVlbiBp
ZGxlCiAgICAgICAgIC8vIGZvciBhIHdoaWxlKS4KLQotICAgICAgICBjbGllbnQtPmRpZEZhaWwo
aGFuZGxlLCBuZXR3b3JrRXJyb3JGb3JGaWxlKGQtPm1fZ2ZpbGUsIGVycm9yKSk7CisgICAgICAg
IFJlc291cmNlRXJyb3IgZSA9IG5ldHdvcmtFcnJvckZvckZpbGUoZC0+bV9nZmlsZSwgZXJyb3Ip
OwogICAgICAgICBjbGVhbnVwR2lvT3BlcmF0aW9uKGhhbmRsZSk7CisgICAgICAgIGNsaWVudC0+
ZGlkRmFpbChoYW5kbGUsIGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGdf
ZmlsZV9pbmZvX2dldF9maWxlX3R5cGUoaW5mbykgIT0gR19GSUxFX1RZUEVfUkVHVUxBUikgewog
ICAgICAgICAvLyBGSVhNRTogd2hhdCBpZiB0aGUgVVJJIHBvaW50cyB0byBhIGRpcmVjdG9yeT8g
U2hvdWxkIHdlCiAgICAgICAgIC8vIGdlbmVyYXRlIGEgbGlzdGluZz8gSG93PyBXaGF0IGRvIG90
aGVyIGJhY2tlbmRzIGRvIGhlcmU/Ci0KLSAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZSwg
bmV0d29ya0Vycm9yRm9yRmlsZShkLT5tX2dmaWxlLCBlcnJvcikpOworICAgICAgICBnX3NldF9l
cnJvcl9saXRlcmFsKCZlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9OT1RfUkVHVUxBUl9G
SUxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGaWxlIGlzIG5vdCBhIGRpcmVjdG9y
eSIpOworICAgICAgICBSZXNvdXJjZUVycm9yIGUgPSBuZXR3b3JrRXJyb3JGb3JGaWxlKGQtPm1f
Z2ZpbGUsIGVycm9yKTsKICAgICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUpOworICAg
ICAgICBjbGllbnQtPmRpZEZhaWwoaGFuZGxlLCBlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtNTY2LDcgKzU3MCw3IEBAIHN0YXRpYyB2b2lkIHF1ZXJ5SW5mb0NhbGxiYWNrKEdPYmpl
Y3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiAgICAgY2xpZW50
LT5kaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlLCByZXNwb25zZSk7CiAKICAgICBnX2ZpbGVfcmVh
ZF9hc3luYyhkLT5tX2dmaWxlLCBHX1BSSU9SSVRZX0RFRkFVTFQsIGQtPm1fY2FuY2VsbGFibGUs
Ci0gICAgICAgICAgICAgICAgICAgICAgb3BlbkNhbGxiYWNrLCBoYW5kbGUpOworICAgICAgICAg
ICAgICAgICAgICAgIG9wZW5DYWxsYmFjaywgTlVMTCk7CiB9CiAKIGJvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0R2lvKFN0cmluZyB1cmxTdHJpbmcpCkBAIC01ODMsNiArNTg3LDExIEBAIGJvb2wg
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0R2lvKFN0cmluZyB1cmxTdHJpbmcpCiAgICAgICAgIHVybFN0
cmluZyA9IHVybFN0cmluZy5sZWZ0KGZyYWdQb3MpOwogCiAgICAgZC0+bV9nZmlsZSA9IGdfZmls
ZV9uZXdfZm9yX3VyaSh1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7CisgICAgLy8gV2UgY2FuJ3Qg
dXNlIHRoZSB1c2VyX2RhdGEgaW4gR0lPIGFzeW5jIGNhbGxiYWNrcyBiZWNhdXNlIHdlIG1pZ2h0
CisgICAgLy8gYmUgZGVzdHJveWVkIGJlZm9yZSB0aGUgY2FsbGJhY2sgZmlyZXMgYW5kIGluIHRo
YXQgY2FzZSB3ZSB3YW50IHRvCisgICAgLy8gYmUgYWJsZSB0byBOVUxMIHRoYXQgZGF0YS4KKyAg
ICAvLyBnX29iamVjdF9zZXRfZGF0YSgpIGFsbG93cyBkb2luZyB0aGlzLgorICAgIGdfb2JqZWN0
X3NldF9kYXRhKEdfT0JKRUNUKGQtPm1fZ2ZpbGUpLCAid2Via2l0LXJlc291cmNlIiwgdGhpcyk7
CiAgICAgZC0+bV9jYW5jZWxsYWJsZSA9IGdfY2FuY2VsbGFibGVfbmV3KCk7CiAgICAgZ19maWxl
X3F1ZXJ5X2luZm9fYXN5bmMoZC0+bV9nZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX1RZUEUgIiwiCkBAIC01OTAsNyArNTk5LDcgQEAg
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnRHaW8oU3RyaW5nIHVybFN0cmluZykKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX1NJWkUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR19GSUxFX1FVRVJZX0lORk9fTk9ORSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHX1BSSU9SSVRZX0RFRkFVTFQsIGQtPm1fY2FuY2VsbGFibGUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlJbmZvQ2FsbGJhY2ssIHRoaXMpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5SW5mb0NhbGxiYWNrLCBOVUxMKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAo=
</data>
<flag name="review"
          id="12604"
          type_id="1"
          status="-"
          setter="zecke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26577</attachid>
            <date>2009-01-09 14:41:49 -0800</date>
            <delta_ts>2009-01-12 12:09:57 -0800</delta_ts>
            <desc>patch 2, try 3</desc>
            <filename>diff</filename>
            <type>text/plain</type>
            <size>14831</size>
            <attacher name="Benjamin Otte">otte</attacher>
            
              <data encoding="base64">Y29tbWl0IDY3NWQ3ZTY2OWVjNzE0N2E0ZjZjMWQwOTcyNTc0YjRmZmU0NDFmNmIKQXV0aG9yOiBC
ZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KRGF0ZTogICBUaHUgSmFuIDggMjI6MjY6MzMg
MjAwOSArMDEwMAoKICAgIFtTT1VQXSBidWcgMjMxMTYsIHBhcnQgMgoKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTU1ZWI3ZC4uYzA0Nzlh
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMCBAQAorMjAwOS0wMS0wOCAgQmVuamFtaW4gT3R0ZSAgPG90dGVAZ25vbWUu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
d29yayBjYW5jZWxsYXRpb24vZGVzdHJ1Y3Rpb24gb2YgcmVzb3VyY2VzIHRvIG5vdCBjcmFzaCBh
bnltb3JlLgorICAgICAgICBJbnN0ZWFkIG9mIGxhemlseSByZWxlYXNpbmcgcmVzb3VyY2VzLCB0
aGV5IGdldCByZWxlYXNlZCBpbW1lZGlhdGVseQorICAgICAgICB3aGVuIGFuIGVycm9yIG9yIGNh
bmNlbGxhdGlvbiByZXF1ZXN0IGlzIGVuY291bnRlcmVkLiAKKworICAgICAgICBBbHNvIGluY2x1
ZGVkIGlzIGEgY3Jhc2ggZml4IGZvciB3aGVuIGEgZmlsZTovLyB1cmwgaXMgYSBkaXJlY3Rvcnku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxl
SW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6flJl
c291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
On5SZXNvdXJjZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpyZXN0YXJ0ZWRDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFkZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6Z290Q2h1bmtDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpmaW5pc2hlZENhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OmNsZWFudXBHaW9PcGVyYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OmNhbmNlbCk6CisgICAgICAgIChXZWJDb3JlOjpjbG9zZUNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnJlYWRDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpvcGVuQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6cXVlcnlJbmZvQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0R2lvKToKKwogMjAwOS0w
MS0wOCAgUGllcnJlLU9saXZpZXIgTGF0b3VyICA8cG9sQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggNjZhYTRjMS4uNGM4YmVmMCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBA
IC0xMDksNyArMTA5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNP
VVApCiAgICAgICAgICAgICAsIG1fbXNnKDApCi0gICAgICAgICAgICAsIG1fY2FuY2VsbGVkKGZh
bHNlKQogICAgICAgICAgICAgLCBtX2dmaWxlKDApCiAgICAgICAgICAgICAsIG1faW5wdXRfc3Ry
ZWFtKDApCiAgICAgICAgICAgICAsIG1fY2FuY2VsbGFibGUoMCkKQEAgLTE4MCw3ICsxNzksNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgVVNFKFNPVVApCiAgICAgICAgIFNvdXBNZXNzYWdl
KiBtX21zZzsKICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwotICAgICAgICBi
b29sIG1fY2FuY2VsbGVkOwogICAgICAgICBHRmlsZSogbV9nZmlsZTsKICAgICAgICAgR0lucHV0
U3RyZWFtKiBtX2lucHV0X3N0cmVhbTsKICAgICAgICAgR0NhbmNlbGxhYmxlKiBtX2NhbmNlbGxh
YmxlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHAKaW5kZXggZDdlZDMzZi4uMzAxYWY3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC01OSwxMSAr
NTksNiBAQCBlbnVtCiAKIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6On5SZXNvdXJjZUhhbmRsZUlu
dGVybmFsKCkKIHsKLSAgICBpZiAobV9tc2cpIHsKLSAgICAgICAgZ19vYmplY3RfdW5yZWYobV9t
c2cpOwotICAgICAgICBtX21zZyA9IDA7Ci0gICAgfQotCiAgICAgaWYgKG1faWRsZUhhbmRsZXIp
IHsKICAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1faWRsZUhhbmRsZXIpOwogICAgICAgICBtX2lk
bGVIYW5kbGVyID0gMDsKQEAgLTcyLDEzICs2NywxNCBAQCBSZXNvdXJjZUhhbmRsZUludGVybmFs
Ojp+UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCgpCiAKIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VI
YW5kbGUoKQogeworICAgIGNhbmNlbCgpOwogfQogCiBzdGF0aWMgdm9pZCBmaWxsUmVzcG9uc2VG
cm9tTWVzc2FnZShTb3VwTWVzc2FnZSogbXNnLCBSZXNvdXJjZVJlc3BvbnNlKiByZXNwb25zZSkK
IHsKICAgICBTb3VwTWVzc2FnZUhlYWRlcnNJdGVyIGl0ZXI7Ci0gICAgY29uc3QgY2hhciogbmFt
ZSA9IE5VTEw7Ci0gICAgY29uc3QgY2hhciogdmFsdWUgPSBOVUxMOworICAgIGNvbnN0IGNoYXIq
IG5hbWUgPSAwOworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gMDsKICAgICBzb3VwX21lc3NhZ2Vf
aGVhZGVyc19pdGVyX2luaXQoJml0ZXIsIG1zZy0+cmVzcG9uc2VfaGVhZGVycyk7CiAgICAgd2hp
bGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaXRlciwgJm5hbWUsICZ2YWx1ZSkp
CiAgICAgICAgIHJlc3BvbnNlLT5zZXRIVFRQSGVhZGVyRmllbGQobmFtZSwgdmFsdWUpOwpAQCAt
OTksMTAgKzk1LDggQEAgc3RhdGljIHZvaWQgZmlsbFJlc3BvbnNlRnJvbU1lc3NhZ2UoU291cE1l
c3NhZ2UqIG1zZywgUmVzb3VyY2VSZXNwb25zZSogcmVzcG9uc2UKIHN0YXRpYyB2b2lkIHJlc3Rh
cnRlZENhbGxiYWNrKFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7
Ci0gICAgaWYgKCFoYW5kbGUpCi0gICAgICAgIHJldHVybjsKICAgICBSZXNvdXJjZUhhbmRsZUlu
dGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIGlmIChkLT5tX2NhbmNlbGxl
ZCkKKyAgICBpZiAoIWQtPm1fbXNnKQogICAgICAgICByZXR1cm47CiAKICAgICBjaGFyKiB1cmkg
PSBzb3VwX3VyaV90b19zdHJpbmcoc291cF9tZXNzYWdlX2dldF91cmkobXNnKSwgRkFMU0UpOwpA
QCAtMTI2LDEwICsxMjAsOCBAQCBzdGF0aWMgdm9pZCBnb3RIZWFkZXJzQ2FsbGJhY2soU291cE1l
c3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7Ci0g
ICAgaWYgKCFoYW5kbGUpCi0gICAgICAgIHJldHVybjsKICAgICBSZXNvdXJjZUhhbmRsZUludGVy
bmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIGlmIChkLT5tX2NhbmNlbGxlZCkK
KyAgICBpZiAoIWQtPm1fbXNnKQogICAgICAgICByZXR1cm47CiAgICAgUmVzb3VyY2VIYW5kbGVD
bGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQpCkBAIC0x
NDYsMTAgKzEzOCw4IEBAIHN0YXRpYyB2b2lkIGdvdENodW5rQ2FsbGJhY2soU291cE1lc3NhZ2Uq
IG1zZywgU291cEJ1ZmZlciogY2h1bmssIGdwb2ludGVyIGRhdGEpCiAgICAgICAgIHJldHVybjsK
IAogICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRs
ZSo+KGRhdGEpOwotICAgIGlmICghaGFuZGxlKQotICAgICAgICByZXR1cm47CiAgICAgUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpZiAoZC0+
bV9jYW5jZWxsZWQpCisgICAgaWYgKCFkLT5tX21zZykKICAgICAgICAgcmV0dXJuOwogICAgIFJl
c291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgpOwogICAgIGlmICgh
Y2xpZW50KQpAQCAtMTY0LDIyICsxNTQsMTcgQEAgc3RhdGljIHZvaWQgZmluaXNoZWRDYWxsYmFj
ayhTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGEKIHsK
ICAgICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUq
PihkYXRhKTsKICAgICAvLyBUT0RPOiBtYXliZSB3ZSBzaG91bGQgcnVuIHRoaXMgY29kZSBldmVu
IGlmIHRoZXJlJ3Mgbm8gY2xpZW50PwotICAgIGlmICghaGFuZGxlKQotICAgICAgICByZXR1cm47
Ci0KICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgp
OwotCiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7
Ci0gICAgaWYgKCFjbGllbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChkLT5tX2NhbmNl
bGxlZCkKKyAgICBpZiAoIWNsaWVudCB8fCAhZC0+bV9tc2cpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmIChTT1VQX1NUQVRVU19JU19UUkFOU1BPUlRfRVJST1IobXNnLT5zdGF0dXNfY29kZSkp
IHsKICAgICAgICAgY2hhciogdXJpID0gc291cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2FnZV9n
ZXRfdXJpKG1zZyksIEZBTFNFKTsKICAgICAgICAgUmVzb3VyY2VFcnJvciBlcnJvcigid2Via2l0
LW5ldHdvcmstZXJyb3IiLCBFUlJPUl9UUkFOU1BPUlQsIHVyaSwgU3RyaW5nOjpmcm9tVVRGOCht
c2ctPnJlYXNvbl9waHJhc2UpKTsKICAgICAgICAgZ19mcmVlKHVyaSk7CisgICAgICAgIGdfb2Jq
ZWN0X3VucmVmKGQtPm1fbXNnKTsKKyAgICAgICAgZC0+bV9tc2cgPSAwOwogICAgICAgICBjbGll
bnQtPmRpZEZhaWwoaGFuZGxlLCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9IGVsc2Ug
aWYgKCFTT1VQX1NUQVRVU19JU19TVUNDRVNTRlVMKG1zZy0+c3RhdHVzX2NvZGUpKSB7CkBAIC0x
ODcsMTMgKzE3MiwxNCBAQCBzdGF0aWMgdm9pZCBmaW5pc2hlZENhbGxiYWNrKFNvdXBTZXNzaW9u
ICpzZXNzaW9uLCBTb3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYQogICAgICAgICBjbGllbnQt
PmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUsIGQtPm1fcmVzcG9uc2UpOwogCiAgICAgICAgIC8v
IFdlYkNvcmUgbWlnaHQgaGF2ZSBjYW5jZWxsZWQgdGhlIGpvYiBpbiB0aGUgd2hpbGUKLSAgICAg
ICAgaWYgKGQtPm1fY2FuY2VsbGVkKQorICAgICAgICBpZiAoIWQtPm1fbXNnKQogICAgICAgICAg
ICAgcmV0dXJuOwotCiAgICAgICAgIGlmIChtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEpCiAgICAg
ICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZSwgbXNnLT5yZXNwb25zZV9ib2R5
LT5kYXRhLCBtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aCwgdHJ1ZSk7CiAgICAgfQogCisgICAg
Z19vYmplY3RfdW5yZWYoZC0+bV9tc2cpOworICAgIGQtPm1fbXNnID0gMDsKICAgICBjbGllbnQt
PmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlKTsKIH0KIApAQCAtMzU5LDE2ICszNDUsNDUgQEAgYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgIH0KIH0KIAorc3RhdGlj
IHZvaWQgY2xlYW51cEdpb09wZXJhdGlvbihSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQoreworICAg
IFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisKKyAg
ICBpZiAoZC0+bV9nZmlsZSkgeworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChk
LT5tX2dmaWxlKSwgIndlYmtpdC1yZXNvdXJjZSIsIDApOworICAgICAgICBnX29iamVjdF91bnJl
ZihkLT5tX2dmaWxlKTsKKyAgICAgICAgZC0+bV9nZmlsZSA9IDA7CisgICAgfQorICAgIGlmIChk
LT5tX2NhbmNlbGxhYmxlKSB7CisgICAgICAgIGdfY2FuY2VsbGFibGVfY2FuY2VsKGQtPm1fY2Fu
Y2VsbGFibGUpOworICAgICAgICBnX29iamVjdF91bnJlZihkLT5tX2NhbmNlbGxhYmxlKTsKKyAg
ICAgICAgZC0+bV9jYW5jZWxsYWJsZSA9IDA7CisgICAgfQorICAgIGlmIChkLT5tX2lucHV0X3N0
cmVhbSkgeworICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChkLT5tX2lucHV0X3N0
cmVhbSksICJ3ZWJraXQtcmVzb3VyY2UiLCAwKTsKKyAgICAgICAgZ19vYmplY3RfdW5yZWYoZC0+
bV9pbnB1dF9zdHJlYW0pOworICAgICAgICBkLT5tX2lucHV0X3N0cmVhbSA9IDA7CisgICAgfQor
ICAgIGlmIChkLT5tX2J1ZmZlcikgeworICAgICAgICBnX2ZyZWUoZC0+bV9idWZmZXIpOworICAg
ICAgICBkLT5tX2J1ZmZlciA9IDA7CisgICAgfQorfQorCiB2b2lkIFJlc291cmNlSGFuZGxlOjpj
YW5jZWwoKQogewotICAgIGQtPm1fY2FuY2VsbGVkID0gdHJ1ZTsKICAgICBpZiAoZC0+bV9tc2cp
IHsKLSAgICAgICAgc291cF9zZXNzaW9uX2NhbmNlbF9tZXNzYWdlKHNlc3Npb24sIGQtPm1fbXNn
LCBTT1VQX1NUQVRVU19DQU5DRUxMRUQpOwotICAgICAgICAvLyBGb3IgcmUtZW50cmFuY3kgdHJv
dWJsZXMgd2UgY2FsbCBkaWRGaW5pc2hMb2FkaW5nIHdoZW4gdGhlIG1lc3NhZ2UgaGFzbid0IGJl
ZW4gaGFuZGxlZCB5ZXQuCi0gICAgICAgIGQtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRo
aXMpOworICAgICAgICBTb3VwTWVzc2FnZSAqbXNnID0gZC0+bV9tc2c7CisgICAgICAgIGQtPm1f
bXNnID0gMDsKKyAgICAgICAgc291cF9zZXNzaW9uX2NhbmNlbF9tZXNzYWdlKHNlc3Npb24sIG1z
ZywgU09VUF9TVEFUVVNfQ0FOQ0VMTEVEKTsKKyAgICAgICAgZ19vYmplY3RfdW5yZWYobXNnKTsK
KyAgICAgICAgaWYgKGNsaWVudCgpKQorICAgICAgICAgICAgY2xpZW50KCktPmRpZEZpbmlzaExv
YWRpbmcodGhpcyk7CiAgICAgfSBlbHNlIGlmIChkLT5tX2NhbmNlbGxhYmxlKSB7CiAgICAgICAg
IGdfY2FuY2VsbGFibGVfY2FuY2VsKGQtPm1fY2FuY2VsbGFibGUpOwotICAgICAgICBkLT5jbGll
bnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsKKyAgICAgICAgY2xlYW51cEdpb09wZXJhdGlv
bih0aGlzKTsKKyAgICAgICAgaWYgKGNsaWVudCgpKQorICAgICAgICAgICAgY2xpZW50KCktPmRp
ZEZpbmlzaExvYWRpbmcodGhpcyk7CiAgICAgfQogfQogCkBAIC00MTgsNjEgKzQzMyw0NiBAQCBz
dGF0aWMgaW5saW5lIFJlc291cmNlRXJyb3IgbmV0d29ya0Vycm9yRm9yRmlsZShHRmlsZSogZmls
ZSwgR0Vycm9yKiBlcnJvcikKICAgICByZXR1cm4gcmVzb3VyY2VFcnJvcjsKIH0KIAotc3RhdGlj
IHZvaWQgY2xlYW51cEdpb09wZXJhdGlvbihSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQotewotICAg
IFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0KLSAg
ICBpZiAoZC0+bV9nZmlsZSkgewotICAgICAgICBnX29iamVjdF91bnJlZihkLT5tX2dmaWxlKTsK
LSAgICAgICAgZC0+bV9nZmlsZSA9IE5VTEw7Ci0gICAgfQotICAgIGlmIChkLT5tX2NhbmNlbGxh
YmxlKSB7Ci0gICAgICAgIGdfb2JqZWN0X3VucmVmKGQtPm1fY2FuY2VsbGFibGUpOwotICAgICAg
ICBkLT5tX2NhbmNlbGxhYmxlID0gTlVMTDsKLSAgICB9Ci0gICAgaWYgKGQtPm1faW5wdXRfc3Ry
ZWFtKSB7Ci0gICAgICAgIGdfb2JqZWN0X3VucmVmKGQtPm1faW5wdXRfc3RyZWFtKTsKLSAgICAg
ICAgZC0+bV9pbnB1dF9zdHJlYW0gPSBOVUxMOwotICAgIH0KLSAgICBpZiAoZC0+bV9idWZmZXIp
IHsKLSAgICAgICAgZ19mcmVlKGQtPm1fYnVmZmVyKTsKLSAgICAgICAgZC0+bV9idWZmZXIgPSBO
VUxMOwotICAgIH0KLX0KLQogc3RhdGljIHZvaWQgY2xvc2VDYWxsYmFjayhHT2JqZWN0KiBzb3Vy
Y2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXRhKQogewotICAgIFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOworICAgIFJl
c291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGdfb2Jq
ZWN0X2dldF9kYXRhKHNvdXJjZSwgIndlYmtpdC1yZXNvdXJjZSIpKTsKKyAgICBpZiAoIWhhbmRs
ZSkKKyAgICAgICAgcmV0dXJuOwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5k
bGUtPmdldEludGVybmFsKCk7CiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhh
bmRsZS0+Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpIHsKKyAgICAgICAgY2xlYW51cEdpb09w
ZXJhdGlvbihoYW5kbGUpOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgZ19pbnB1dF9z
dHJlYW1fY2xvc2VfZmluaXNoKGQtPm1faW5wdXRfc3RyZWFtLCByZXMsIE5VTEwpOworICAgIGdf
aW5wdXRfc3RyZWFtX2Nsb3NlX2ZpbmlzaChkLT5tX2lucHV0X3N0cmVhbSwgcmVzLCAwKTsKICAg
ICBjbGVhbnVwR2lvT3BlcmF0aW9uKGhhbmRsZSk7CiAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2Fk
aW5nKGhhbmRsZSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiBzb3Vy
Y2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXRhKQogewotICAgIFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOworICAgIFJl
c291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGdfb2Jq
ZWN0X2dldF9kYXRhKHNvdXJjZSwgIndlYmtpdC1yZXNvdXJjZSIpKTsKKyAgICBpZiAoIWhhbmRs
ZSkKKyAgICAgICAgcmV0dXJuOwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5k
bGUtPmdldEludGVybmFsKCk7CiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhh
bmRsZS0+Y2xpZW50KCk7Ci0KLSAgICBpZiAoZC0+bV9jYW5jZWxsZWQgfHwgIWNsaWVudCkgewor
ICAgIGlmICghY2xpZW50KSB7CiAgICAgICAgIGNsZWFudXBHaW9PcGVyYXRpb24oaGFuZGxlKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KLQogICAgIGdzc2l6ZSBucmVhZDsKICAgICBHRXJyb3Ig
KmVycm9yID0gMDsKIAogICAgIG5yZWFkID0gZ19pbnB1dF9zdHJlYW1fcmVhZF9maW5pc2goZC0+
bV9pbnB1dF9zdHJlYW0sIHJlcywgJmVycm9yKTsKICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAg
Y2xpZW50LT5kaWRGYWlsKGhhbmRsZSwgbmV0d29ya0Vycm9yRm9yRmlsZShkLT5tX2dmaWxlLCBl
cnJvcikpOworICAgICAgICBSZXNvdXJjZUVycm9yIGUgPSBuZXR3b3JrRXJyb3JGb3JGaWxlKGQt
Pm1fZ2ZpbGUsIGVycm9yKTsKICAgICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUpOwor
ICAgICAgICBjbGllbnQtPmRpZEZhaWwoaGFuZGxlLCBlKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0gZWxzZSBpZiAoIW5yZWFkKSB7CiAgICAgICAgIGdfaW5wdXRfc3RyZWFtX2Nsb3NlX2FzeW5j
KGQtPm1faW5wdXRfc3RyZWFtLCBHX1BSSU9SSVRZX0RFRkFVTFQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5VTEwsIGNsb3NlQ2FsbGJhY2ssIGhhbmRsZSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGNsb3NlQ2FsbGJhY2ssIE5VTEwpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00ODYsNDQgKzQ4Niw0NiBAQCBzdGF0aWMgdm9p
ZCByZWFkQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50
ZXIgZGF0YSkKIAogc3RhdGljIHZvaWQgb3BlbkNhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0Fz
eW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiB7Ci0gICAgUmVzb3VyY2VIYW5kbGUqIGhh
bmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7CisgICAgUmVzb3VyY2VI
YW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZ19vYmplY3RfZ2V0
X2RhdGEoc291cmNlLCAid2Via2l0LXJlc291cmNlIikpOworICAgIGlmICghaGFuZGxlKQorICAg
ICAgICByZXR1cm47CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0
SW50ZXJuYWwoKTsKICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gaGFuZGxlLT5j
bGllbnQoKTsKLQotICAgIGlmIChkLT5tX2NhbmNlbGxlZCB8fCAhY2xpZW50KSB7CisgICAgaWYg
KCFjbGllbnQpIHsKICAgICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotCiAgICAgR0ZpbGVJbnB1dFN0cmVhbSogaW47CiAgICAgR0Vycm9y
ICplcnJvciA9IE5VTEw7CiAgICAgaW4gPSBnX2ZpbGVfcmVhZF9maW5pc2goR19GSUxFKHNvdXJj
ZSksIHJlcywgJmVycm9yKTsKICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgY2xpZW50LT5kaWRG
YWlsKGhhbmRsZSwgbmV0d29ya0Vycm9yRm9yRmlsZShkLT5tX2dmaWxlLCBlcnJvcikpOworICAg
ICAgICBSZXNvdXJjZUVycm9yIGUgPSBuZXR3b3JrRXJyb3JGb3JGaWxlKGQtPm1fZ2ZpbGUsIGVy
cm9yKTsKICAgICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUpOworICAgICAgICBjbGll
bnQtPmRpZEZhaWwoaGFuZGxlLCBlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGQt
Pm1faW5wdXRfc3RyZWFtID0gR19JTlBVVF9TVFJFQU0oaW4pOworICAgIGdfb2JqZWN0X3NldF9k
YXRhKEdfT0JKRUNUKGQtPm1faW5wdXRfc3RyZWFtKSwgIndlYmtpdC1yZXNvdXJjZSIsIGhhbmRs
ZSk7CiAgICAgZC0+bV9idWZzaXplID0gODE5MjsKICAgICBkLT5tX2J1ZmZlciA9IHN0YXRpY19j
YXN0PGNoYXIqPihnX21hbGxvYyhkLT5tX2J1ZnNpemUpKTsKICAgICBkLT5tX3RvdGFsID0gMDsK
ICAgICBnX2lucHV0X3N0cmVhbV9yZWFkX2FzeW5jKGQtPm1faW5wdXRfc3RyZWFtLCBkLT5tX2J1
ZmZlciwgZC0+bV9idWZzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QUklP
UklUWV9ERUZBVUxULCBkLT5tX2NhbmNlbGxhYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVhZENhbGxiYWNrLCBoYW5kbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVhZENhbGxiYWNrLCBOVUxMKTsKIH0KIAogc3RhdGljIHZvaWQgcXVlcnlJbmZvQ2FsbGJh
Y2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKIHsK
LSAgICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUq
PihkYXRhKTsKKyAgICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3Vy
Y2VIYW5kbGUqPihnX29iamVjdF9nZXRfZGF0YShzb3VyY2UsICJ3ZWJraXQtcmVzb3VyY2UiKSk7
CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybjsKICAgICBSZXNvdXJjZUhhbmRsZUlu
dGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgpOwotCi0gICAgaWYgKGQtPm1fY2FuY2VsbGVk
KSB7CisgICAgaWYgKCFjbGllbnQpIHsKICAgICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5k
bGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotCiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNw
b25zZTsKIAogICAgIGNoYXIqIHVyaSA9IGdfZmlsZV9nZXRfdXJpKGQtPm1fZ2ZpbGUpOwpAQCAt
NTQwLDE4ICs1NDIsMjAgQEAgc3RhdGljIHZvaWQgcXVlcnlJbmZvQ2FsbGJhY2soR09iamVjdCog
c291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKICAgICAgICAgLy8gc2Vy
dmVyIChhbmQgdGhlbiBrZWVwIHRyYWNrIG9mIHRoZSBmYWN0IHRoYXQgd2UgbW91bnRlZCBpdCwK
ICAgICAgICAgLy8gYW5kIHNldCBhIHRpbWVvdXQgdG8gdW5tb3VudCBpdCBsYXRlciBhZnRlciBp
dCdzIGJlZW4gaWRsZQogICAgICAgICAvLyBmb3IgYSB3aGlsZSkuCi0KLSAgICAgICAgY2xpZW50
LT5kaWRGYWlsKGhhbmRsZSwgbmV0d29ya0Vycm9yRm9yRmlsZShkLT5tX2dmaWxlLCBlcnJvcikp
OworICAgICAgICBSZXNvdXJjZUVycm9yIGUgPSBuZXR3b3JrRXJyb3JGb3JGaWxlKGQtPm1fZ2Zp
bGUsIGVycm9yKTsKICAgICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUpOworICAgICAg
ICBjbGllbnQtPmRpZEZhaWwoaGFuZGxlLCBlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIGlmIChnX2ZpbGVfaW5mb19nZXRfZmlsZV90eXBlKGluZm8pICE9IEdfRklMRV9UWVBFX1JF
R1VMQVIpIHsKICAgICAgICAgLy8gRklYTUU6IHdoYXQgaWYgdGhlIFVSSSBwb2ludHMgdG8gYSBk
aXJlY3Rvcnk/IFNob3VsZCB3ZQogICAgICAgICAvLyBnZW5lcmF0ZSBhIGxpc3Rpbmc/IEhvdz8g
V2hhdCBkbyBvdGhlciBiYWNrZW5kcyBkbyBoZXJlPwotCi0gICAgICAgIGNsaWVudC0+ZGlkRmFp
bChoYW5kbGUsIG5ldHdvcmtFcnJvckZvckZpbGUoZC0+bV9nZmlsZSwgZXJyb3IpKTsKKyAgICAg
ICAgZ19zZXRfZXJyb3JfbGl0ZXJhbCgmZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfTk9U
X1JFR1VMQVJfRklMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmlsZSBpcyBub3Qg
YSBkaXJlY3RvcnkiKTsKKyAgICAgICAgUmVzb3VyY2VFcnJvciBlID0gbmV0d29ya0Vycm9yRm9y
RmlsZShkLT5tX2dmaWxlLCBlcnJvcik7CiAgICAgICAgIGNsZWFudXBHaW9PcGVyYXRpb24oaGFu
ZGxlKTsKKyAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZSwgZSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTU2NSw4ICs1NjksMTEgQEAgc3RhdGljIHZvaWQgcXVlcnlJbmZvQ2Fs
bGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkK
IAogICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9uc2UpOwogCisg
ICAgLy8gV2ViQ29yZSBtaWdodCBoYXZlIGNhbmNlbGxlZCB0aGUgam9iIGluIHRoZSB3aGlsZQor
ICAgIGlmICghZC0+bV9nZmlsZSkKKyAgICAgICAgcmV0dXJuOwogICAgIGdfZmlsZV9yZWFkX2Fz
eW5jKGQtPm1fZ2ZpbGUsIEdfUFJJT1JJVFlfREVGQVVMVCwgZC0+bV9jYW5jZWxsYWJsZSwKLSAg
ICAgICAgICAgICAgICAgICAgICBvcGVuQ2FsbGJhY2ssIGhhbmRsZSk7CisgICAgICAgICAgICAg
ICAgICAgICAgb3BlbkNhbGxiYWNrLCAwKTsKIH0KIAogYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnRHaW8oU3RyaW5nIHVybFN0cmluZykKQEAgLTU4Myw2ICs1OTAsMTEgQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3RhcnRHaW8oU3RyaW5nIHVybFN0cmluZykKICAgICAgICAgdXJsU3RyaW5nID0g
dXJsU3RyaW5nLmxlZnQoZnJhZ1Bvcyk7CiAKICAgICBkLT5tX2dmaWxlID0gZ19maWxlX25ld19m
b3JfdXJpKHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsKKyAgICAvLyBXZSBjYW4ndCB1c2UgdGhl
IHVzZXJfZGF0YSBpbiBHSU8gYXN5bmMgY2FsbGJhY2tzIGJlY2F1c2Ugd2UgbWlnaHQKKyAgICAv
LyBiZSBkZXN0cm95ZWQgYmVmb3JlIHRoZSBjYWxsYmFjayBmaXJlcyBhbmQgaW4gdGhhdCBjYXNl
IHdlIHdhbnQgdG8KKyAgICAvLyBiZSBhYmxlIHRvIHVuc2V0IHRoYXQgZGF0YS4KKyAgICAvLyBn
X29iamVjdF9zZXRfZGF0YSgpIGFsbG93cyBkb2luZyB0aGlzLgorICAgIGdfb2JqZWN0X3NldF9k
YXRhKEdfT0JKRUNUKGQtPm1fZ2ZpbGUpLCAid2Via2l0LXJlc291cmNlIiwgdGhpcyk7CiAgICAg
ZC0+bV9jYW5jZWxsYWJsZSA9IGdfY2FuY2VsbGFibGVfbmV3KCk7CiAgICAgZ19maWxlX3F1ZXJ5
X2luZm9fYXN5bmMoZC0+bV9nZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJ
TEVfQVRUUklCVVRFX1NUQU5EQVJEX1RZUEUgIiwiCkBAIC01OTAsNyArNjAyLDcgQEAgYm9vbCBS
ZXNvdXJjZUhhbmRsZTo6c3RhcnRHaW8oU3RyaW5nIHVybFN0cmluZykKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX1NJWkUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR19GSUxFX1FVRVJZX0lORk9fTk9ORSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHX1BSSU9SSVRZX0RFRkFVTFQsIGQtPm1fY2FuY2VsbGFibGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlJbmZvQ2FsbGJhY2ssIHRoaXMpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5SW5mb0NhbGxiYWNrLCAwKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26640</attachid>
            <date>2009-01-12 12:09:57 -0800</date>
            <delta_ts>2009-01-13 11:56:05 -0800</delta_ts>
            <desc>Cleanup before calling didFail</desc>
            <filename>0001--GIO-Invoke-cleanupGioOperation-before-calling-didF.patch</filename>
            <type>text/plain</type>
            <size>4448</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">RnJvbSA4YzFkNWZlZGRmMWFmZDViM2NmMWYzMWYyZTYxYjU0OWVlNTViNDhkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciA8emVja2VAc2Vs
ZmlzaC5vcmc+CkRhdGU6IE1vbiwgMTIgSmFuIDIwMDkgMTc6Mjk6MTEgKzAxMDAKU3ViamVjdDog
W1BBVENIXSBbR0lPXSBJbnZva2UgY2xlYW51cEdpb09wZXJhdGlvbiBiZWZvcmUgY2FsbGluZyBk
aWRGYWlsIHRvIGF2b2lkIGNyYXNoZXMKCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzExNgoKVGhlIFJlc291cmNlSGFuZGxlIGJlY29tZXMgaW52YWxpZCAoZS5nLiBn
b3QgZGVzdHJ1Y3RlZCkgZnJvbSB3aXRoaW4KdGhlIGludm9jYXRpb24gb2YgZGlkRmFpbC4gQXZv
aWQgdGhpcyBieSBjbGVhbmluZyB1cCBldmVyeXRoaW5nIGJlZm9yZQpjYWxsaW5nIGRpZEZhaWwg
YW5kIHNpbXBseSByZXR1cm4gYWZ0ZXJ3YXJkcy4KClRoaXMgaXMgaGFwcGVuaW5nIHdpdGggbWFu
eSB0ZXN0cyBmcm9tIGRvbS9odG1sL2xldmVsMi9odG1sIGUuZy4KTGF5b3V0VGVzdHMvZG9tL2h0
bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDcuaHRtbC4KLS0tCiBXZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjAgKysrKysrKysrKysr
KysrKysrKysKIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cCAgIHwgICAxMyArKysrKysrKystLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMo
KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAwOWNiMmZlLi4zYzI0NzVhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDA5
LTAxLTEyICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHSU9dIElu
dm9rZSBjbGVhbnVwR2lvT3BlcmF0aW9uIGJlZm9yZSBjYWxsaW5nIGRpZEZhaWwgdG8gYXZvaWQg
Y3Jhc2hlcworICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTE2CisgICAgICAgIAorICAgICAgICBUaGUgUmVzb3VyY2VIYW5kbGUgYmVj
b21lcyBpbnZhbGlkIChlLmcuIGdvdCBkZXN0cnVjdGVkKSBmcm9tIHdpdGhpbgorICAgICAgICB0
aGUgaW52b2NhdGlvbiBvZiBkaWRGYWlsLiBBdm9pZCB0aGlzIGJ5IGNsZWFuaW5nIHVwIGV2ZXJ5
dGhpbmcgYmVmb3JlCisgICAgICAgIGNhbGxpbmcgZGlkRmFpbCBhbmQgc2ltcGx5IHJldHVybiBh
ZnRlcndhcmRzLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBoYXBwZW5pbmcgd2l0aCBtYW55
IHRlc3RzIGZyb20gZG9tL2h0bWwvbGV2ZWwyL2h0bWwgZS5nLgorICAgICAgICBMYXlvdXRUZXN0
cy9kb20vaHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwNy5odG1sLgorCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpyZWFkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6b3BlbkNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OnF1ZXJ5SW5mb0NhbGxiYWNrKToKKwogMjAwOS0wMS0xMiAg
SnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAcGxleW8uY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggZDdlZDMzZi4uOGI2MzY5YSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAu
Y3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxw
QGF0b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggWGFuIExvcGV6IDx4YW5AZ25vbWUu
b3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtNDY3LDggKzQ2OCw5IEBAIHN0YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiBzb3Vy
Y2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXRhKQogCiAgICAgbnJlYWQgPSBnX2lu
cHV0X3N0cmVhbV9yZWFkX2ZpbmlzaChkLT5tX2lucHV0X3N0cmVhbSwgcmVzLCAmZXJyb3IpOwog
ICAgIGlmIChlcnJvcikgewotICAgICAgICBjbGllbnQtPmRpZEZhaWwoaGFuZGxlLCBuZXR3b3Jr
RXJyb3JGb3JGaWxlKGQtPm1fZ2ZpbGUsIGVycm9yKSk7CisgICAgICAgIFJlc291cmNlRXJyb3Ig
cmVzb3VyY2VFcnJvciA9IG5ldHdvcmtFcnJvckZvckZpbGUoZC0+bV9nZmlsZSwgZXJyb3IpOwog
ICAgICAgICBjbGVhbnVwR2lvT3BlcmF0aW9uKGhhbmRsZSk7CisgICAgICAgIGNsaWVudC0+ZGlk
RmFpbChoYW5kbGUsIHJlc291cmNlRXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfSBlbHNl
IGlmICghbnJlYWQpIHsKICAgICAgICAgZ19pbnB1dF9zdHJlYW1fY2xvc2VfYXN5bmMoZC0+bV9p
bnB1dF9zdHJlYW0sIEdfUFJJT1JJVFlfREVGQVVMVCwKQEAgLTQ5OSw4ICs1MDEsOSBAQCBzdGF0
aWMgdm9pZCBvcGVuQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywg
Z3BvaW50ZXIgZGF0YSkKICAgICBHRXJyb3IgKmVycm9yID0gTlVMTDsKICAgICBpbiA9IGdfZmls
ZV9yZWFkX2ZpbmlzaChHX0ZJTEUoc291cmNlKSwgcmVzLCAmZXJyb3IpOwogICAgIGlmIChlcnJv
cikgewotICAgICAgICBjbGllbnQtPmRpZEZhaWwoaGFuZGxlLCBuZXR3b3JrRXJyb3JGb3JGaWxl
KGQtPm1fZ2ZpbGUsIGVycm9yKSk7CisgICAgICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJv
ciA9IG5ldHdvcmtFcnJvckZvckZpbGUoZC0+bV9nZmlsZSwgZXJyb3IpOwogICAgICAgICBjbGVh
bnVwR2lvT3BlcmF0aW9uKGhhbmRsZSk7CisgICAgICAgIGNsaWVudC0+ZGlkRmFpbChoYW5kbGUs
IHJlc291cmNlRXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01NDEsOCArNTQ0
LDkgQEAgc3RhdGljIHZvaWQgcXVlcnlJbmZvQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5
bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKICAgICAgICAgLy8gYW5kIHNldCBhIHRpbWVv
dXQgdG8gdW5tb3VudCBpdCBsYXRlciBhZnRlciBpdCdzIGJlZW4gaWRsZQogICAgICAgICAvLyBm
b3IgYSB3aGlsZSkuCiAKLSAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZSwgbmV0d29ya0Vy
cm9yRm9yRmlsZShkLT5tX2dmaWxlLCBlcnJvcikpOworICAgICAgICBSZXNvdXJjZUVycm9yIHJl
c291cmNlRXJyb3IgPSBuZXR3b3JrRXJyb3JGb3JGaWxlKGQtPm1fZ2ZpbGUsIGVycm9yKTsKICAg
ICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUpOworICAgICAgICBjbGllbnQtPmRpZEZh
aWwoaGFuZGxlLCByZXNvdXJjZUVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
NTUwLDggKzU1NCw5IEBAIHN0YXRpYyB2b2lkIHF1ZXJ5SW5mb0NhbGxiYWNrKEdPYmplY3QqIHNv
dXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiAgICAgICAgIC8vIEZJWE1F
OiB3aGF0IGlmIHRoZSBVUkkgcG9pbnRzIHRvIGEgZGlyZWN0b3J5PyBTaG91bGQgd2UKICAgICAg
ICAgLy8gZ2VuZXJhdGUgYSBsaXN0aW5nPyBIb3c/IFdoYXQgZG8gb3RoZXIgYmFja2VuZHMgZG8g
aGVyZT8KIAotICAgICAgICBjbGllbnQtPmRpZEZhaWwoaGFuZGxlLCBuZXR3b3JrRXJyb3JGb3JG
aWxlKGQtPm1fZ2ZpbGUsIGVycm9yKSk7CisgICAgICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VF
cnJvciA9IG5ldHdvcmtFcnJvckZvckZpbGUoZC0+bV9nZmlsZSwgZXJyb3IpOwogICAgICAgICBj
bGVhbnVwR2lvT3BlcmF0aW9uKGhhbmRsZSk7CisgICAgICAgIGNsaWVudC0+ZGlkRmFpbChoYW5k
bGUsIHJlc291cmNlRXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0tIAoxLjUuNi4z
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26641</attachid>
            <date>2009-01-12 12:12:52 -0800</date>
            <delta_ts>2009-01-12 12:31:44 -0800</delta_ts>
            <desc>Be able to detach from an async GIO operation</desc>
            <filename>0002--GIO-Attach-the-ResourceHandle-to-the-GObject-and-g.patch</filename>
            <type>text/plain</type>
            <size>7853</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">RnJvbSBkYWY1MzNhZDIzMDQ4MGEzYjZmNTViOGVjMWU4NDg1NTFhMTUyMmM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciA8emVja2VAc2Vs
ZmlzaC5vcmc+CkRhdGU6IE1vbiwgMTIgSmFuIDIwMDkgMTc6NDk6MjMgKzAxMDAKU3ViamVjdDog
W1BBVENIXSBbR0lPXSBBdHRhY2ggdGhlIFJlc291cmNlSGFuZGxlIHRvIHRoZSBHT2JqZWN0IGFu
ZCBnZXQgaXQgZnJvbSB0aGUgR09iamVjdAoKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTE2IGRpc2N1c3NlZCB3aXRoIEJlbmphbWluIE90dGUKClNvbWV0aW1lcyBp
dCBpcyBub3QgcG9zc2libGUgdG8gY2FuY2VsIGEgcGVuZGluZyBHSU8gb3BlcmF0aW9uIGFuZCB0
aGUKY2FsbGJhY2sgbWlnaHQgYmUgaW52b2tlZCB3aXRoIGEgcG9pbnRlciB0byBhbiBhbHJlYWR5
IGRlc3RydWN0ZWQKUmVzb3VyY2VIYW5kbGUuIFRvIGF2b2lkIHRoaXMgaXNzdWUgd2Ugd2lsbCBh
dHRhY2ggdGhlIFJlc291cmNlSGFuZGxlCnRvIHRoZSBHT2JqZWN0KiBhbmQgaW4gdGhlIGNhbGxi
YWNrIGF0dGVtcHQgdG8gZ2V0IHRoZSBSZXNvdXJjZUhhbmRsZQpmcm9tIHRoZSBHT2JqZWN0Ki4g
SWYgbm8gUmVzb3VyY2VIYW5kbGUgaXMgYXR0YWNoZWQgd2Ugc2lsZW50bHkgZmFpbAphcyB0aGUg
Y2xlYW51cCBoYXMgYmVlbiBhbHJlYWR5IGRvbmUuCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKysrKysrKwogLi4uL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwICAgfCAgIDQyICsrKysr
KysrKysrKystLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgMTMgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAzYzI0NzVhLi5mY2RkOTgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMiw2ICsyLDMyIEBACiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAgICAgICAgW0dJT10gQXR0YWNoIHRoZSBSZXNv
dXJjZUhhbmRsZSB0byB0aGUgR09iamVjdCBhbmQgZ2V0IGl0IGZyb20gdGhlIEdPYmplY3QKKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMTYgZGlz
Y3Vzc2VkIHdpdGggQmVuamFtaW4gT3R0ZQorCisgICAgICAgIFNvbWV0aW1lcyBpdCBpcyBub3Qg
cG9zc2libGUgdG8gY2FuY2VsIGEgcGVuZGluZyBHSU8gb3BlcmF0aW9uIGFuZCB0aGUKKyAgICAg
ICAgY2FsbGJhY2sgbWlnaHQgYmUgaW52b2tlZCB3aXRoIGEgcG9pbnRlciB0byBhbiBhbHJlYWR5
IGRlc3RydWN0ZWQKKyAgICAgICAgUmVzb3VyY2VIYW5kbGUuIFRvIGF2b2lkIHRoaXMgaXNzdWUg
d2Ugd2lsbCBhdHRhY2ggdGhlIFJlc291cmNlSGFuZGxlCisgICAgICAgIHRvIHRoZSBHT2JqZWN0
KiBhbmQgaW4gdGhlIGNhbGxiYWNrIGF0dGVtcHQgdG8gZ2V0IHRoZSBSZXNvdXJjZUhhbmRsZQor
ICAgICAgICBmcm9tIHRoZSBHT2JqZWN0Ki4gSWYgbm8gUmVzb3VyY2VIYW5kbGUgaXMgYXR0YWNo
ZWQgd2Ugc2lsZW50bHkgZmFpbAorICAgICAgICBhcyB0aGUgY2xlYW51cCBoYXMgYmVlbiBhbHJl
YWR5IGRvbmUuCisKKyAgICAgICAgVGhpcyBpcyBoYXBwZW5pbmcgd2l0aCBtYW55IHRlc3RzIGZy
b20gZG9tL2h0bWwvbGV2ZWwyL2h0bWwgZS5nLgorICAgICAgICBMYXlvdXRUZXN0cy9kb20vaHRt
bC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwNy5odG1sLgorCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjbGVhbnVwR2lvT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNsb3NlQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6cmVhZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om9w
ZW5DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpxdWVyeUluZm9DYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnRHaW8pOgorCisyMDA5LTAxLTEyICBI
b2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIFtHSU9dIEludm9rZSBjbGVh
bnVwR2lvT3BlcmF0aW9uIGJlZm9yZSBjYWxsaW5nIGRpZEZhaWwgdG8gYXZvaWQgY3Jhc2hlcwog
ICAgICAgICAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTE2CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcAppbmRleCA4YjYzNjlhLi4yZWZjMWVlIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTQyNCw2
ICs0MjQsNyBAQCBzdGF0aWMgdm9pZCBjbGVhbnVwR2lvT3BlcmF0aW9uKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUpCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50
ZXJuYWwoKTsKIAogICAgIGlmIChkLT5tX2dmaWxlKSB7CisgICAgICAgIGdfb2JqZWN0X3NldF9k
YXRhKEdfT0JKRUNUKGQtPm1fZ2ZpbGUpLCAid2Via2l0LXJlc291cmNlIiwgMCk7CiAgICAgICAg
IGdfb2JqZWN0X3VucmVmKGQtPm1fZ2ZpbGUpOwogICAgICAgICBkLT5tX2dmaWxlID0gTlVMTDsK
ICAgICB9CkBAIC00MzIsNiArNDMzLDcgQEAgc3RhdGljIHZvaWQgY2xlYW51cEdpb09wZXJhdGlv
bihSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgICAgICBkLT5tX2NhbmNlbGxhYmxlID0gTlVM
TDsKICAgICB9CiAgICAgaWYgKGQtPm1faW5wdXRfc3RyZWFtKSB7CisgICAgICAgIGdfb2JqZWN0
X3NldF9kYXRhKEdfT0JKRUNUKGQtPm1faW5wdXRfc3RyZWFtKSwgIndlYmtpdC1yZXNvdXJjZSIs
IDApOwogICAgICAgICBnX29iamVjdF91bnJlZihkLT5tX2lucHV0X3N0cmVhbSk7CiAgICAgICAg
IGQtPm1faW5wdXRfc3RyZWFtID0gTlVMTDsKICAgICB9CkBAIC00NDEsOSArNDQzLDEyIEBAIHN0
YXRpYyB2b2lkIGNsZWFudXBHaW9PcGVyYXRpb24oUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAg
ICB9CiB9CiAKLXN0YXRpYyB2b2lkIGNsb3NlQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5
bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKK3N0YXRpYyB2b2lkIGNsb3NlQ2FsbGJhY2so
R09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIpCiB7Ci0gICAgUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7
CisgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxl
Kj4oZ19vYmplY3RfZ2V0X2RhdGEoc291cmNlLCAid2Via2l0LXJlc291cmNlIikpOworICAgIGlm
ICghaGFuZGxlKQorICAgICAgICByZXR1cm47CisKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFs
KiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBj
bGllbnQgPSBoYW5kbGUtPmNsaWVudCgpOwogCkBAIC00NTIsOSArNDU3LDEyIEBAIHN0YXRpYyB2
b2lkIGNsb3NlQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3Bv
aW50ZXIgZGF0YSkKICAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlKTsKIH0KIAot
c3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiBy
ZXMsIGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCByZWFkQ2FsbGJhY2soR09iamVjdCogc291
cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIpCiB7Ci0gICAgUmVzb3VyY2VIYW5kbGUq
IGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7CisgICAgUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZ19vYmplY3Rf
Z2V0X2RhdGEoc291cmNlLCAid2Via2l0LXJlc291cmNlIikpOworICAgIGlmICghaGFuZGxlKQor
ICAgICAgICByZXR1cm47CisKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxl
LT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5k
bGUtPmNsaWVudCgpOwogCkBAIC00NzQsNyArNDgyLDcgQEAgc3RhdGljIHZvaWQgcmVhZENhbGxi
YWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiAg
ICAgICAgIHJldHVybjsKICAgICB9IGVsc2UgaWYgKCFucmVhZCkgewogICAgICAgICBnX2lucHV0
X3N0cmVhbV9jbG9zZV9hc3luYyhkLT5tX2lucHV0X3N0cmVhbSwgR19QUklPUklUWV9ERUZBVUxU
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBjbG9zZUNhbGxiYWNr
LCBoYW5kbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBjbG9z
ZUNhbGxiYWNrLCBOVUxMKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDgzLDEyICs0
OTEsMTUgQEAgc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5j
UmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiAKICAgICBnX2lucHV0X3N0cmVhbV9yZWFkX2Fz
eW5jKGQtPm1faW5wdXRfc3RyZWFtLCBkLT5tX2J1ZmZlciwgZC0+bV9idWZzaXplLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR19QUklPUklUWV9ERUZBVUxULCBkLT5tX2NhbmNlbGxh
YmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZENhbGxiYWNrLCBoYW5kbGUp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZENhbGxiYWNrLCBOVUxMKTsKIH0K
IAotc3RhdGljIHZvaWQgb3BlbkNhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0
KiByZXMsIGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCBvcGVuQ2FsbGJhY2soR09iamVjdCog
c291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIpCiB7Ci0gICAgUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7CisgICAgUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZ19vYmpl
Y3RfZ2V0X2RhdGEoc291cmNlLCAid2Via2l0LXJlc291cmNlIikpOworICAgIGlmICghaGFuZGxl
KQorICAgICAgICByZXR1cm47CisKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFu
ZGxlLT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBo
YW5kbGUtPmNsaWVudCgpOwogCkBAIC01MTEsMTQgKzUyMiwxOCBAQCBzdGF0aWMgdm9pZCBvcGVu
Q2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0
YSkKICAgICBkLT5tX2J1ZnNpemUgPSA4MTkyOwogICAgIGQtPm1fYnVmZmVyID0gc3RhdGljX2Nh
c3Q8Y2hhcio+KGdfbWFsbG9jKGQtPm1fYnVmc2l6ZSkpOwogICAgIGQtPm1fdG90YWwgPSAwOwor
ICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGQtPm1faW5wdXRfc3RyZWFtKSwgIndlYmtp
dC1yZXNvdXJjZSIsIGhhbmRsZSk7CiAgICAgZ19pbnB1dF9zdHJlYW1fcmVhZF9hc3luYyhkLT5t
X2lucHV0X3N0cmVhbSwgZC0+bV9idWZmZXIsIGQtPm1fYnVmc2l6ZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwgZC0+bV9jYW5jZWxsYWJsZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRDYWxsYmFjaywgaGFuZGxlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRDYWxsYmFjaywgTlVMTCk7CiB9CiAKLXN0YXRp
YyB2b2lkIHF1ZXJ5SW5mb0NhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiBy
ZXMsIGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCBxdWVyeUluZm9DYWxsYmFjayhHT2JqZWN0
KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlcikKIHsKLSAgICBSZXNvdXJjZUhh
bmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKKyAgICBS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihnX29i
amVjdF9nZXRfZGF0YShzb3VyY2UsICJ3ZWJraXQtcmVzb3VyY2UiKSk7CisgICAgaWYgKCFoYW5k
bGUpCisgICAgICAgIHJldHVybjsKKwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBo
YW5kbGUtPmdldEludGVybmFsKCk7CiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9
IGhhbmRsZS0+Y2xpZW50KCk7CiAKQEAgLTU3MSw3ICs1ODYsNyBAQCBzdGF0aWMgdm9pZCBxdWVy
eUluZm9DYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRl
ciBkYXRhKQogICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9uc2Up
OwogCiAgICAgZ19maWxlX3JlYWRfYXN5bmMoZC0+bV9nZmlsZSwgR19QUklPUklUWV9ERUZBVUxU
LCBkLT5tX2NhbmNlbGxhYmxlLAotICAgICAgICAgICAgICAgICAgICAgIG9wZW5DYWxsYmFjaywg
aGFuZGxlKTsKKyAgICAgICAgICAgICAgICAgICAgICBvcGVuQ2FsbGJhY2ssIDApOwogfQogCiBi
b29sIFJlc291cmNlSGFuZGxlOjpzdGFydEdpbyhTdHJpbmcgdXJsU3RyaW5nKQpAQCAtNTg4LDYg
KzYwMyw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0R2lvKFN0cmluZyB1cmxTdHJpbmcp
CiAgICAgICAgIHVybFN0cmluZyA9IHVybFN0cmluZy5sZWZ0KGZyYWdQb3MpOwogCiAgICAgZC0+
bV9nZmlsZSA9IGdfZmlsZV9uZXdfZm9yX3VyaSh1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7Cisg
ICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZC0+bV9nZmlsZSksICJ3ZWJraXQtcmVzb3Vy
Y2UiLCB0aGlzKTsKICAgICBkLT5tX2NhbmNlbGxhYmxlID0gZ19jYW5jZWxsYWJsZV9uZXcoKTsK
ICAgICBnX2ZpbGVfcXVlcnlfaW5mb19hc3luYyhkLT5tX2dmaWxlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfVFlQRSAiLCIKQEAgLTU5NSw3
ICs2MTEsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydEdpbyhTdHJpbmcgdXJsU3RyaW5n
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRf
U0laRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfUVVFUllfSU5GT19OT05F
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwgZC0+bV9j
YW5jZWxsYWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUluZm9DYWxsYmFj
aywgdGhpcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlJbmZvQ2FsbGJhY2ss
IE5VTEwpOwogICAgIHJldHVybiB0cnVlOwogfQogCi0tIAoxLjUuNi4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26642</attachid>
            <date>2009-01-12 12:14:13 -0800</date>
            <delta_ts>2009-01-13 11:58:04 -0800</delta_ts>
            <desc>Make sure to unref the m_gfile and such</desc>
            <filename>0003--GIO-Make-sure-to-untef-the-GFile-and-the-GInputStr.patch</filename>
            <type>text/plain</type>
            <size>5717</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">RnJvbSA5NzYyMjkwOTU0YTZiYTAzNWMzMWQyODdiYjhmOTdiMzdhYTI3ZWI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciA8emVja2VAc2Vs
ZmlzaC5vcmc+CkRhdGU6IE1vbiwgMTIgSmFuIDIwMDkgMTg6MTA6MTQgKzAxMDAKU3ViamVjdDog
W1BBVENIXSBbR0lPXSBNYWtlIHN1cmUgdG8gdW50ZWYgdGhlIEdGaWxlIGFuZCB0aGUgR0lucHV0
U3RyZWFtIG9uIGRlc3RydWN0aW9uCgpNYWtlIHN1cmUgdG8gY2FsbCBjbGVhbnVwR2lvT3BlcmF0
aW9uIGZyb20gdGhlIFJlc291cmNlSGFuZGxlSW50ZXJuYWwKZCd0b3IuIENoYW5nZSB0aGUgc2ln
bmF0dXJlIG9mIGNsZWFudXBHaW9PcGVyYXRpb24gc28gd2UgY2FuIGRvIHRoZQpjbGVhbnVwIG9m
IEdJTyBuZXh0IHRvIHRoZSBjbGVhbnVwIG9mIFNPVVAuCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysrKysrKysrKysrKysr
CiAuLi4vcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgICB8ICAg
MjQgKysrKysrKysrKy0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCsp
LCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGZjZGQ5ODAuLjM1ZTc5N2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjcgQEAKIAogICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBbR0lPXSBNYWtlIHN1
cmUgdG8gdW50ZWYgdGhlIEdGaWxlIGFuZCB0aGUgR0lucHV0U3RyZWFtIG9uIGRlc3RydWN0aW9u
CisgICAgICAgIAorICAgICAgICBNYWtlIHN1cmUgdG8gY2FsbCBjbGVhbnVwR2lvT3BlcmF0aW9u
IGZyb20gdGhlIFJlc291cmNlSGFuZGxlSW50ZXJuYWwKKyAgICAgICAgZCd0b3IuIENoYW5nZSB0
aGUgc2lnbmF0dXJlIG9mIGNsZWFudXBHaW9PcGVyYXRpb24gc28gd2UgY2FuIGRvIHRoZQorICAg
ICAgICBjbGVhbnVwIG9mIEdJTyBuZXh0IHRvIHRoZSBjbGVhbnVwIG9mIFNPVVAuCisKKyAgICAg
ICAgVGhpcyBpcyBoYXBwZW5pbmcgd2l0aCBtYW55IHRlc3RzIGZyb20gZG9tL2h0bWwvbGV2ZWwy
L2h0bWwgZS5nLgorICAgICAgICBMYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDIvaHRtbC9IVE1M
Qm9keUVsZW1lbnQwNy5odG1sLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUlu
dGVybmFsOjp+UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpjbGVh
bnVwR2lvT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNsb3NlQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6cmVhZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZW5DYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpxdWVyeUluZm9DYWxsYmFjayk6CisKKzIwMDktMDEt
MTIgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgW0dJT10gQXR0YWNo
IHRoZSBSZXNvdXJjZUhhbmRsZSB0byB0aGUgR09iamVjdCBhbmQgZ2V0IGl0IGZyb20gdGhlIEdP
YmplY3QKIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMxMTYgZGlzY3Vzc2VkIHdpdGggQmVuamFtaW4gT3R0ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggMmVmYzFlZS4u
MDJhMGIwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCkBAIC01OCw2ICs1OCw4IEBAIGVudW0KICAgICBFUlJPUl9CQURf
Tk9OX0hUVFBfTUVUSE9ECiB9OwogCitzdGF0aWMgdm9pZCBjbGVhbnVwR2lvT3BlcmF0aW9uKFJl
c291cmNlSGFuZGxlSW50ZXJuYWwqIGhhbmRsZSk7CisKIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6
On5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkKIHsKICAgICBpZiAobV9tc2cpIHsKQEAgLTY1LDYg
KzY3LDggQEAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50ZXJuYWwo
KQogICAgICAgICBtX21zZyA9IDA7CiAgICAgfQogCisgICAgY2xlYW51cEdpb09wZXJhdGlvbih0
aGlzKTsKKwogICAgIGlmIChtX2lkbGVIYW5kbGVyKSB7CiAgICAgICAgIGdfc291cmNlX3JlbW92
ZShtX2lkbGVIYW5kbGVyKTsKICAgICAgICAgbV9pZGxlSGFuZGxlciA9IDA7CkBAIC00MTksMTAg
KzQyMyw4IEBAIHN0YXRpYyBpbmxpbmUgUmVzb3VyY2VFcnJvciBuZXR3b3JrRXJyb3JGb3JGaWxl
KEdGaWxlKiBmaWxlLCBHRXJyb3IqIGVycm9yKQogICAgIHJldHVybiByZXNvdXJjZUVycm9yOwog
fQogCi1zdGF0aWMgdm9pZCBjbGVhbnVwR2lvT3BlcmF0aW9uKFJlc291cmNlSGFuZGxlKiBoYW5k
bGUpCitzdGF0aWMgdm9pZCBjbGVhbnVwR2lvT3BlcmF0aW9uKFJlc291cmNlSGFuZGxlSW50ZXJu
YWwqIGQpCiB7Ci0gICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50
ZXJuYWwoKTsKLQogICAgIGlmIChkLT5tX2dmaWxlKSB7CiAgICAgICAgIGdfb2JqZWN0X3NldF9k
YXRhKEdfT0JKRUNUKGQtPm1fZ2ZpbGUpLCAid2Via2l0LXJlc291cmNlIiwgMCk7CiAgICAgICAg
IGdfb2JqZWN0X3VucmVmKGQtPm1fZ2ZpbGUpOwpAQCAtNDUzLDcgKzQ1NSw3IEBAIHN0YXRpYyB2
b2lkIGNsb3NlQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3Bv
aW50ZXIpCiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50
KCk7CiAKICAgICBnX2lucHV0X3N0cmVhbV9jbG9zZV9maW5pc2goZC0+bV9pbnB1dF9zdHJlYW0s
IHJlcywgTlVMTCk7Ci0gICAgY2xlYW51cEdpb09wZXJhdGlvbihoYW5kbGUpOworICAgIGNsZWFu
dXBHaW9PcGVyYXRpb24oZCk7CiAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7
CiB9CiAKQEAgLTQ2Nyw3ICs0NjksNyBAQCBzdGF0aWMgdm9pZCByZWFkQ2FsbGJhY2soR09iamVj
dCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIpCiAgICAgUmVzb3VyY2VIYW5k
bGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7CiAKICAgICBpZiAoZC0+bV9jYW5j
ZWxsZWQgfHwgIWNsaWVudCkgewotICAgICAgICBjbGVhbnVwR2lvT3BlcmF0aW9uKGhhbmRsZSk7
CisgICAgICAgIGNsZWFudXBHaW9PcGVyYXRpb24oZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTQ3Nyw3ICs0NzksNyBAQCBzdGF0aWMgdm9pZCByZWFkQ2FsbGJhY2soR09iamVjdCog
c291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIpCiAgICAgbnJlYWQgPSBnX2lucHV0
X3N0cmVhbV9yZWFkX2ZpbmlzaChkLT5tX2lucHV0X3N0cmVhbSwgcmVzLCAmZXJyb3IpOwogICAg
IGlmIChlcnJvcikgewogICAgICAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IgPSBuZXR3
b3JrRXJyb3JGb3JGaWxlKGQtPm1fZ2ZpbGUsIGVycm9yKTsKLSAgICAgICAgY2xlYW51cEdpb09w
ZXJhdGlvbihoYW5kbGUpOworICAgICAgICBjbGVhbnVwR2lvT3BlcmF0aW9uKGQpOwogICAgICAg
ICBjbGllbnQtPmRpZEZhaWwoaGFuZGxlLCByZXNvdXJjZUVycm9yKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0gZWxzZSBpZiAoIW5yZWFkKSB7CkBAIC01MDQsNyArNTA2LDcgQEAgc3RhdGljIHZv
aWQgb3BlbkNhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2lu
dGVyKQogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgp
OwogCiAgICAgaWYgKGQtPm1fY2FuY2VsbGVkIHx8ICFjbGllbnQpIHsKLSAgICAgICAgY2xlYW51
cEdpb09wZXJhdGlvbihoYW5kbGUpOworICAgICAgICBjbGVhbnVwR2lvT3BlcmF0aW9uKGQpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MTMsNyArNTE1LDcgQEAgc3RhdGljIHZvaWQg
b3BlbkNhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVy
KQogICAgIGluID0gZ19maWxlX3JlYWRfZmluaXNoKEdfRklMRShzb3VyY2UpLCByZXMsICZlcnJv
cik7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJv
ciA9IG5ldHdvcmtFcnJvckZvckZpbGUoZC0+bV9nZmlsZSwgZXJyb3IpOwotICAgICAgICBjbGVh
bnVwR2lvT3BlcmF0aW9uKGhhbmRsZSk7CisgICAgICAgIGNsZWFudXBHaW9PcGVyYXRpb24oZCk7
CiAgICAgICAgIGNsaWVudC0+ZGlkRmFpbChoYW5kbGUsIHJlc291cmNlRXJyb3IpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtNTM4LDcgKzU0MCw3IEBAIHN0YXRpYyB2b2lkIHF1ZXJ5SW5m
b0NhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyKQog
ICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgpOwogCiAg
ICAgaWYgKGQtPm1fY2FuY2VsbGVkKSB7Ci0gICAgICAgIGNsZWFudXBHaW9PcGVyYXRpb24oaGFu
ZGxlKTsKKyAgICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihkKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtNTYwLDcgKzU2Miw3IEBAIHN0YXRpYyB2b2lkIHF1ZXJ5SW5mb0NhbGxiYWNr
KEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyKQogICAgICAgICAv
LyBmb3IgYSB3aGlsZSkuCiAKICAgICAgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yID0g
bmV0d29ya0Vycm9yRm9yRmlsZShkLT5tX2dmaWxlLCBlcnJvcik7Ci0gICAgICAgIGNsZWFudXBH
aW9PcGVyYXRpb24oaGFuZGxlKTsKKyAgICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihkKTsKICAg
ICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZSwgcmVzb3VyY2VFcnJvcik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC01NzAsNyArNTcyLDcgQEAgc3RhdGljIHZvaWQgcXVlcnlJbmZvQ2Fs
bGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIpCiAgICAg
ICAgIC8vIGdlbmVyYXRlIGEgbGlzdGluZz8gSG93PyBXaGF0IGRvIG90aGVyIGJhY2tlbmRzIGRv
IGhlcmU/CiAKICAgICAgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yID0gbmV0d29ya0Vy
cm9yRm9yRmlsZShkLT5tX2dmaWxlLCBlcnJvcik7Ci0gICAgICAgIGNsZWFudXBHaW9PcGVyYXRp
b24oaGFuZGxlKTsKKyAgICAgICAgY2xlYW51cEdpb09wZXJhdGlvbihkKTsKICAgICAgICAgY2xp
ZW50LT5kaWRGYWlsKGhhbmRsZSwgcmVzb3VyY2VFcnJvcik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0tIAoxLjUuNi4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26644</attachid>
            <date>2009-01-12 12:31:44 -0800</date>
            <delta_ts>2009-01-19 17:02:29 -0800</delta_ts>
            <desc>Be able to detach from an async GIO operation</desc>
            <filename>0002--GIO-Attach-the-ResourceHandle-to-the-GObject-and-g.patch</filename>
            <type>text/plain</type>
            <size>7856</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">RnJvbSBkZTAyYzlhYWU5NmVhNjg5ZjcxMmJjYjY5MGI1OWI5NTNmNDkzNDRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciA8emVja2VAc2Vs
ZmlzaC5vcmc+CkRhdGU6IE1vbiwgMTIgSmFuIDIwMDkgMTc6NDk6MjMgKzAxMDAKU3ViamVjdDog
W1BBVENIXSBbR0lPXSBBdHRhY2ggdGhlIFJlc291cmNlSGFuZGxlIHRvIHRoZSBHT2JqZWN0IGFu
ZCBnZXQgaXQgZnJvbSB0aGUgR09iamVjdAoKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTE2IGRpc2N1c3NlZCB3aXRoIEJlbmphbWluIE90dGUKClNvbWV0aW1lcyBp
dCBpcyBub3QgcG9zc2libGUgdG8gY2FuY2VsIGEgcGVuZGluZyBHSU8gb3BlcmF0aW9uIGFuZCB0
aGUKY2FsbGJhY2sgbWlnaHQgYmUgaW52b2tlZCB3aXRoIGEgcG9pbnRlciB0byBhbiBhbHJlYWR5
IGRlc3RydWN0ZWQKUmVzb3VyY2VIYW5kbGUuIFRvIGF2b2lkIHRoaXMgaXNzdWUgd2Ugd2lsbCBh
dHRhY2ggdGhlIFJlc291cmNlSGFuZGxlCnRvIHRoZSBHT2JqZWN0KiBhbmQgaW4gdGhlIGNhbGxi
YWNrIGF0dGVtcHQgdG8gZ2V0IHRoZSBSZXNvdXJjZUhhbmRsZQpmcm9tIHRoZSBHT2JqZWN0Ki4g
SWYgbm8gUmVzb3VyY2VIYW5kbGUgaXMgYXR0YWNoZWQgd2Ugc2lsZW50bHkgZmFpbAphcyB0aGUg
Y2xlYW51cCBoYXMgYmVlbiBhbHJlYWR5IGRvbmUuCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKysrKysrKwogLi4uL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwICAgfCAgIDQyICsrKysr
KysrKysrKystLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgMTMgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAzYzI0NzVhLi5mY2RkOTgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMiw2ICsyLDMyIEBACiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAgICAgICAgW0dJT10gQXR0YWNoIHRoZSBSZXNv
dXJjZUhhbmRsZSB0byB0aGUgR09iamVjdCBhbmQgZ2V0IGl0IGZyb20gdGhlIEdPYmplY3QKKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMTYgZGlz
Y3Vzc2VkIHdpdGggQmVuamFtaW4gT3R0ZQorCisgICAgICAgIFNvbWV0aW1lcyBpdCBpcyBub3Qg
cG9zc2libGUgdG8gY2FuY2VsIGEgcGVuZGluZyBHSU8gb3BlcmF0aW9uIGFuZCB0aGUKKyAgICAg
ICAgY2FsbGJhY2sgbWlnaHQgYmUgaW52b2tlZCB3aXRoIGEgcG9pbnRlciB0byBhbiBhbHJlYWR5
IGRlc3RydWN0ZWQKKyAgICAgICAgUmVzb3VyY2VIYW5kbGUuIFRvIGF2b2lkIHRoaXMgaXNzdWUg
d2Ugd2lsbCBhdHRhY2ggdGhlIFJlc291cmNlSGFuZGxlCisgICAgICAgIHRvIHRoZSBHT2JqZWN0
KiBhbmQgaW4gdGhlIGNhbGxiYWNrIGF0dGVtcHQgdG8gZ2V0IHRoZSBSZXNvdXJjZUhhbmRsZQor
ICAgICAgICBmcm9tIHRoZSBHT2JqZWN0Ki4gSWYgbm8gUmVzb3VyY2VIYW5kbGUgaXMgYXR0YWNo
ZWQgd2Ugc2lsZW50bHkgZmFpbAorICAgICAgICBhcyB0aGUgY2xlYW51cCBoYXMgYmVlbiBhbHJl
YWR5IGRvbmUuCisKKyAgICAgICAgVGhpcyBpcyBoYXBwZW5pbmcgd2l0aCBtYW55IHRlc3RzIGZy
b20gZG9tL2h0bWwvbGV2ZWwyL2h0bWwgZS5nLgorICAgICAgICBMYXlvdXRUZXN0cy9kb20vaHRt
bC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwNy5odG1sLgorCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjbGVhbnVwR2lvT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNsb3NlQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6cmVhZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om9w
ZW5DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpxdWVyeUluZm9DYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnRHaW8pOgorCisyMDA5LTAxLTEyICBI
b2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIFtHSU9dIEludm9rZSBjbGVh
bnVwR2lvT3BlcmF0aW9uIGJlZm9yZSBjYWxsaW5nIGRpZEZhaWwgdG8gYXZvaWQgY3Jhc2hlcwog
ICAgICAgICAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTE2CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcAppbmRleCA4YjYzNjlhLi4yZThkM2ZhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTQyNCw2
ICs0MjQsNyBAQCBzdGF0aWMgdm9pZCBjbGVhbnVwR2lvT3BlcmF0aW9uKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUpCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50
ZXJuYWwoKTsKIAogICAgIGlmIChkLT5tX2dmaWxlKSB7CisgICAgICAgIGdfb2JqZWN0X3NldF9k
YXRhKEdfT0JKRUNUKGQtPm1fZ2ZpbGUpLCAid2Via2l0LXJlc291cmNlIiwgMCk7CiAgICAgICAg
IGdfb2JqZWN0X3VucmVmKGQtPm1fZ2ZpbGUpOwogICAgICAgICBkLT5tX2dmaWxlID0gTlVMTDsK
ICAgICB9CkBAIC00MzIsNiArNDMzLDcgQEAgc3RhdGljIHZvaWQgY2xlYW51cEdpb09wZXJhdGlv
bihSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgICAgICBkLT5tX2NhbmNlbGxhYmxlID0gTlVM
TDsKICAgICB9CiAgICAgaWYgKGQtPm1faW5wdXRfc3RyZWFtKSB7CisgICAgICAgIGdfb2JqZWN0
X3NldF9kYXRhKEdfT0JKRUNUKGQtPm1faW5wdXRfc3RyZWFtKSwgIndlYmtpdC1yZXNvdXJjZSIs
IDApOwogICAgICAgICBnX29iamVjdF91bnJlZihkLT5tX2lucHV0X3N0cmVhbSk7CiAgICAgICAg
IGQtPm1faW5wdXRfc3RyZWFtID0gTlVMTDsKICAgICB9CkBAIC00NDEsOSArNDQzLDEyIEBAIHN0
YXRpYyB2b2lkIGNsZWFudXBHaW9PcGVyYXRpb24oUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAg
ICB9CiB9CiAKLXN0YXRpYyB2b2lkIGNsb3NlQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5
bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKK3N0YXRpYyB2b2lkIGNsb3NlQ2FsbGJhY2so
R09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIpCiB7Ci0gICAgUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7
CisgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxl
Kj4oZ19vYmplY3RfZ2V0X2RhdGEoc291cmNlLCAid2Via2l0LXJlc291cmNlIikpOworICAgIGlm
ICghaGFuZGxlKQorICAgICAgICByZXR1cm47CisKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFs
KiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBj
bGllbnQgPSBoYW5kbGUtPmNsaWVudCgpOwogCkBAIC00NTIsOSArNDU3LDEyIEBAIHN0YXRpYyB2
b2lkIGNsb3NlQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3Bv
aW50ZXIgZGF0YSkKICAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlKTsKIH0KIAot
c3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiBy
ZXMsIGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCByZWFkQ2FsbGJhY2soR09iamVjdCogc291
cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIpCiB7Ci0gICAgUmVzb3VyY2VIYW5kbGUq
IGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7CisgICAgUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZ19vYmplY3Rf
Z2V0X2RhdGEoc291cmNlLCAid2Via2l0LXJlc291cmNlIikpOworICAgIGlmICghaGFuZGxlKQor
ICAgICAgICByZXR1cm47CisKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxl
LT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5k
bGUtPmNsaWVudCgpOwogCkBAIC00NzQsNyArNDgyLDcgQEAgc3RhdGljIHZvaWQgcmVhZENhbGxi
YWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiAg
ICAgICAgIHJldHVybjsKICAgICB9IGVsc2UgaWYgKCFucmVhZCkgewogICAgICAgICBnX2lucHV0
X3N0cmVhbV9jbG9zZV9hc3luYyhkLT5tX2lucHV0X3N0cmVhbSwgR19QUklPUklUWV9ERUZBVUxU
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBjbG9zZUNhbGxiYWNr
LCBoYW5kbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBjbG9z
ZUNhbGxiYWNrLCBOVUxMKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDgzLDEyICs0
OTEsMTUgQEAgc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5j
UmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdGEpCiAKICAgICBnX2lucHV0X3N0cmVhbV9yZWFkX2Fz
eW5jKGQtPm1faW5wdXRfc3RyZWFtLCBkLT5tX2J1ZmZlciwgZC0+bV9idWZzaXplLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR19QUklPUklUWV9ERUZBVUxULCBkLT5tX2NhbmNlbGxh
YmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZENhbGxiYWNrLCBoYW5kbGUp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZENhbGxiYWNrLCBOVUxMKTsKIH0K
IAotc3RhdGljIHZvaWQgb3BlbkNhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0
KiByZXMsIGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCBvcGVuQ2FsbGJhY2soR09iamVjdCog
c291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIpCiB7Ci0gICAgUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7CisgICAgUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZ19vYmpl
Y3RfZ2V0X2RhdGEoc291cmNlLCAid2Via2l0LXJlc291cmNlIikpOworICAgIGlmICghaGFuZGxl
KQorICAgICAgICByZXR1cm47CisKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFu
ZGxlLT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBo
YW5kbGUtPmNsaWVudCgpOwogCkBAIC01MTEsMTQgKzUyMiwxOCBAQCBzdGF0aWMgdm9pZCBvcGVu
Q2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0
YSkKICAgICBkLT5tX2J1ZnNpemUgPSA4MTkyOwogICAgIGQtPm1fYnVmZmVyID0gc3RhdGljX2Nh
c3Q8Y2hhcio+KGdfbWFsbG9jKGQtPm1fYnVmc2l6ZSkpOwogICAgIGQtPm1fdG90YWwgPSAwOwor
ICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGQtPm1faW5wdXRfc3RyZWFtKSwgIndlYmtp
dC1yZXNvdXJjZSIsIGhhbmRsZSk7CiAgICAgZ19pbnB1dF9zdHJlYW1fcmVhZF9hc3luYyhkLT5t
X2lucHV0X3N0cmVhbSwgZC0+bV9idWZmZXIsIGQtPm1fYnVmc2l6ZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwgZC0+bV9jYW5jZWxsYWJsZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRDYWxsYmFjaywgaGFuZGxlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRDYWxsYmFjaywgTlVMTCk7CiB9CiAKLXN0YXRp
YyB2b2lkIHF1ZXJ5SW5mb0NhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiBy
ZXMsIGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCBxdWVyeUluZm9DYWxsYmFjayhHT2JqZWN0
KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlcikKIHsKLSAgICBSZXNvdXJjZUhh
bmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKKyAgICBS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihnX29i
amVjdF9nZXRfZGF0YShzb3VyY2UsICJ3ZWJraXQtcmVzb3VyY2UiKSk7CisgICAgaWYgKCFoYW5k
bGUpCisgICAgICAgIHJldHVybjsKKwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBo
YW5kbGUtPmdldEludGVybmFsKCk7CiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9
IGhhbmRsZS0+Y2xpZW50KCk7CiAKQEAgLTU3MSw3ICs1ODYsNyBAQCBzdGF0aWMgdm9pZCBxdWVy
eUluZm9DYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRl
ciBkYXRhKQogICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9uc2Up
OwogCiAgICAgZ19maWxlX3JlYWRfYXN5bmMoZC0+bV9nZmlsZSwgR19QUklPUklUWV9ERUZBVUxU
LCBkLT5tX2NhbmNlbGxhYmxlLAotICAgICAgICAgICAgICAgICAgICAgIG9wZW5DYWxsYmFjaywg
aGFuZGxlKTsKKyAgICAgICAgICAgICAgICAgICAgICBvcGVuQ2FsbGJhY2ssIE5VTEwpOwogfQog
CiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydEdpbyhTdHJpbmcgdXJsU3RyaW5nKQpAQCAtNTg4
LDYgKzYwMyw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0R2lvKFN0cmluZyB1cmxTdHJp
bmcpCiAgICAgICAgIHVybFN0cmluZyA9IHVybFN0cmluZy5sZWZ0KGZyYWdQb3MpOwogCiAgICAg
ZC0+bV9nZmlsZSA9IGdfZmlsZV9uZXdfZm9yX3VyaSh1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7
CisgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZC0+bV9nZmlsZSksICJ3ZWJraXQtcmVz
b3VyY2UiLCB0aGlzKTsKICAgICBkLT5tX2NhbmNlbGxhYmxlID0gZ19jYW5jZWxsYWJsZV9uZXco
KTsKICAgICBnX2ZpbGVfcXVlcnlfaW5mb19hc3luYyhkLT5tX2dmaWxlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfVFlQRSAiLCIKQEAgLTU5
NSw3ICs2MTEsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydEdpbyhTdHJpbmcgdXJsU3Ry
aW5nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRB
UkRfU0laRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfUVVFUllfSU5GT19O
T05FLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwgZC0+
bV9jYW5jZWxsYWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUluZm9DYWxs
YmFjaywgdGhpcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlJbmZvQ2FsbGJh
Y2ssIE5VTEwpOwogICAgIHJldHVybiB0cnVlOwogfQogCi0tIAoxLjUuNi4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26678</attachid>
            <date>2009-01-13 11:43:53 -0800</date>
            <delta_ts>2009-01-19 16:18:16 -0800</delta_ts>
            <desc>one more crash fix extracted from Company patch</desc>
            <filename>didfinishloading-crash-fix.patch</filename>
            <type>text/plain</type>
            <size>1491</size>
            <attacher name="Alexander Butenko">a.butenka</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTg2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMDktMDEtMTMgIEFsZXhhbmRlciBWLiBCdXRlbmtvICA8YWxleEBk
aWdpcXViZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW0dUS10gRml4IGNyYXNoIG9uY2Ugd2Via2l0IGNhbGxzIGRpZEZpbmlzaExvYWRpbmco
KSBvbiBvYmplY3Qgd2hpY2gKKyAgICAgICAgaXMgc3RpbGwgbG9hZGluZyAoZmxhc2ggZm9yIGV4
YW1wbGUpCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjYW5jZWwpOgorCiAy
MDA5LTAxLTEzICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgogCiAg
ICAgICAgIEJ1aWxkIGZpeCwgU3RvcmFnZUV2ZW50IGlzIG9ubHkgZGVmaW5lZCBpZiB3ZSBoYXZl
IERPTV9TVE9SQUdFCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHJldmlzaW9uIDM5ODU4KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzcwLDEwICszNzAsMTIgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y2FuY2VsKCkKICAg
ICBpZiAoZC0+bV9tc2cpIHsKICAgICAgICAgc291cF9zZXNzaW9uX2NhbmNlbF9tZXNzYWdlKHNl
c3Npb24sIGQtPm1fbXNnLCBTT1VQX1NUQVRVU19DQU5DRUxMRUQpOwogICAgICAgICAvLyBGb3Ig
cmUtZW50cmFuY3kgdHJvdWJsZXMgd2UgY2FsbCBkaWRGaW5pc2hMb2FkaW5nIHdoZW4gdGhlIG1l
c3NhZ2UgaGFzbid0IGJlZW4gaGFuZGxlZCB5ZXQuCi0gICAgICAgIGQtPmNsaWVudCgpLT5kaWRG
aW5pc2hMb2FkaW5nKHRoaXMpOworICAgICAgICBpZiAoY2xpZW50KCkpCisgICAgICAgICAgICBj
bGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsKICAgICB9IGVsc2UgaWYgKGQtPm1fY2Fu
Y2VsbGFibGUpIHsKICAgICAgICAgZ19jYW5jZWxsYWJsZV9jYW5jZWwoZC0+bV9jYW5jZWxsYWJs
ZSk7Ci0gICAgICAgIGQtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMpOworICAgICAg
ICBpZiAoY2xpZW50KCkpCisJICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMpOwog
ICAgIH0KIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>