<?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>54836</bug_id>
          
          <creation_ts>2011-02-20 15:23:05 -0800</creation_ts>
          <short_desc>Get rid of posixThread in MachineStackMarker::Thread</short_desc>
          <delta_ts>2011-10-05 10:43:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68046</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>ap</cc>
    
    <cc>aroben</cc>
    
    <cc>barraclough</cc>
    
    <cc>eric</cc>
    
    <cc>ggaren</cc>
    
    <cc>mjs</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>354318</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-02-20 15:23:05 -0800</bug_when>
    <thetext>Get rid of posixThread in MachineStackMarker::Thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354319</commentid>
    <comment_count>1</comment_count>
      <attachid>83105</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-02-20 15:24:58 -0800</bug_when>
    <thetext>Created attachment 83105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354863</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-21 15:53:39 -0800</bug_when>
    <thetext>Did you verify that this doesn&apos;t re-break what &lt;http://trac.webkit.org/changeset/35440&gt; fixed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355100</commentid>
    <comment_count>3</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-02-22 00:30:10 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Did you verify that this doesn&apos;t re-break what &lt;http://trac.webkit.org/changeset/35440&gt; fixed?

What&apos;s the relation between r35440 and my patch? r35440 changed the type of m_currentThreadRegistrar from WTF::ThreadSpecific&lt;OwnPtr&lt;ThreadRegistrar&gt; &gt; to pthread_key_t. I didn&apos;t touched the pthread_getspecific and pthread_setspecific calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355102</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-22 00:36:41 -0800</bug_when>
    <thetext>You are right, I got confused looking at svn blame.

There obviously was some reason to have member variables with both platform and POSIX thread identifiers - will need to find out what it was...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355552</commentid>
    <comment_count>5</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-02-22 13:20:06 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; You are right, I got confused looking at svn blame.
&gt; 
&gt; There obviously was some reason to have member variables with both platform and POSIX thread identifiers - will need to find out what it was...

It was added as 
pthread_t posixThread;
mach_port_t machThread;
in r8067 &lt;http://trac.webkit.org/changeset/8067/trunk/JavaScriptCore/kjs/collector.cpp&gt;.

AFAICS this is only very very old code, which never received cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356925</commentid>
    <comment_count>6</comment_count>
      <attachid>83105</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-24 06:19:12 -0800</bug_when>
    <thetext>Comment on attachment 83105
Patch

I don&apos;t see anything obviously wrong with this patch, but I don&apos;t feel familiar enough with the code to r+ it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358260</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-25 16:13:24 -0800</bug_when>
    <thetext>I&apos;ll take a close look soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358888</commentid>
    <comment_count>8</comment_count>
      <attachid>83105</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-27 21:36:30 -0800</bug_when>
    <thetext>Comment on attachment 83105
Patch

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

&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:100
&gt; -        : posixThread(pthread)
&gt; -        , platformThread(platThread)
&gt; +    Thread(const PlatformThread&amp; platThread, void* base)
&gt; +        : platformThread(platThread)

One subtle thing about moving from pthreads to PlatformThreads could be whether the IDs are reused after thread termination. I didn&apos;t think much about this, because I have bigger concerns below.

&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:145
&gt; +    return GetCurrentThread();

MSDN says that GetCurrentThread() returns a special constant that you can pass to threading functions. Does this mean that all PlatformThreads will be numerically the same on Windows?

If this is indeed a mistake, I&apos;m concerned about our regression test coverage.

&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:187
&gt; -    if (pthread_equal(currentPosixThread, m_registeredThreads-&gt;posixThread)) {
&gt; +    if (m_registeredThreads-&gt;platformThread == currentPlatformThread) {

Is it OK to compare handles and Mach ports numerically? Is that documented somewhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358889</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-27 21:41:15 -0800</bug_when>
    <thetext>&gt; AFAICS this is only very very old code, which never received cleanup.

Maciej might remember why he added both pthread_t and mach_port_t member variables. Both were added in the same patch, so there was probably a reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359431</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-28 15:34:51 -0800</bug_when>
    <thetext>Maybe because Mach API was needed to suspend threads? See also: bug 26838.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382962</commentid>
    <comment_count>11</comment_count>
      <attachid>83105</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-10 16:27:43 -0700</bug_when>
    <thetext>Comment on attachment 83105
Patch

Did we come to any conclusions here?  This looks reasonable to me.  If it doesn&apos;t break any tests seems it&apos;s worth doing... Or is this sort of thing not testable/tested?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383013</commentid>
    <comment_count>12</comment_count>
      <attachid>83105</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-10 20:39:38 -0700</bug_when>
    <thetext>Comment on attachment 83105
Patch

There were no answers to my questions yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466989</commentid>
    <comment_count>13</comment_count>
      <attachid>83105</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-09-14 06:29:02 -0700</bug_when>
    <thetext>Comment on attachment 83105
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:100
&gt;&gt; +        : platformThread(platThread)
&gt; 
&gt; One subtle thing about moving from pthreads to PlatformThreads could be whether the IDs are reused after thread termination. I didn&apos;t think much about this, because I have bigger concerns below.

it&apos;s possible that a pthread_t can be reused too (at least on windows) see http://sourceware.org/cgi-bin/cvsweb.cgi/pthreads/ptw32_reuse.c?rev=1.11&amp;cvsroot=pthreads-win32

&gt;&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:145
&gt;&gt; +    return GetCurrentThread();
&gt; 
&gt; MSDN says that GetCurrentThread() returns a special constant that you can pass to threading functions. Does this mean that all PlatformThreads will be numerically the same on Windows?
&gt; 
&gt; If this is indeed a mistake, I&apos;m concerned about our regression test coverage.

http://msdn.microsoft.com/en-us/library/ms683182%28v=vs.85%29.aspx says The return value is a pseudo handle for the current thread.
It behaves &quot;like&quot; GetCurrentThreadId() but uses HANDLE instead of DWORD as return value.

&gt;&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:187
&gt;&gt; +    if (m_registeredThreads-&gt;platformThread == currentPlatformThread) {
&gt; 
&gt; Is it OK to compare handles and Mach ports numerically? Is that documented somewhere?

any good idea where i can find this info?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469969</commentid>
    <comment_count>14</comment_count>
      <attachid>83105</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-09-20 02:39:57 -0700</bug_when>
    <thetext>Comment on attachment 83105
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/MachineStackMarker.cpp:187
&gt;&gt;&gt; +    if (m_registeredThreads-&gt;platformThread == currentPlatformThread) {
&gt;&gt; 
&gt;&gt; Is it OK to compare handles and Mach ports numerically? Is that documented somewhere?
&gt; 
&gt; any good idea where i can find this info?

If you have a look at http://www.opensource.apple.com/source/Libc/Libc-391/pthreads/pthread.c thread_t is compared with a simple &quot;==&quot; too. So this looks ok to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470093</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-20 08:52:41 -0700</bug_when>
    <thetext>&gt; If you have a look at http://www.opensource.apple.com/source/Libc/Libc-391/pthreads/pthread.c thread_t is compared with a simple &quot;==&quot; too. So this looks ok to me.

I&apos;m still not sure why not just use pthread_equal.

&gt; http://msdn.microsoft.com/en-us/library/ms683182%28v=vs.85%29.aspx says The return value is a 
&gt; pseudo handle for the current thread.
&gt; It behaves &quot;like&quot; GetCurrentThreadId() but uses HANDLE instead of DWORD as return value.

What do numeric values returned from it look like in practice? With MSDN saying that it&apos;s a constant, I don&apos;t know how we can use it for unique identifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470106</commentid>
    <comment_count>16</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-09-20 09:24:08 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; If you have a look at http://www.opensource.apple.com/source/Libc/Libc-391/pthreads/pthread.c thread_t is compared with a simple &quot;==&quot; too. So this looks ok to me.
&gt; 
&gt; I&apos;m still not sure why not just use pthread_equal.

To remove the pthread dependency. There is no working pthread implementation for WinCE ARM and WinCE is broken because of this dependecy at the moment.

&gt; &gt; http://msdn.microsoft.com/en-us/library/ms683182%28v=vs.85%29.aspx says The return value is a 
&gt; &gt; pseudo handle for the current thread.
&gt; &gt; It behaves &quot;like&quot; GetCurrentThreadId() but uses HANDLE instead of DWORD as return value.
&gt; 
&gt; What do numeric values returned from it look like in practice? With MSDN saying that it&apos;s a constant, I don&apos;t know how we can use it for unique identifier.

5 calls to GetCurrentThreadId() (from different threads; the same thread returns the same value again): 0x00002514, 0x00000940, 0x00002504, 0x00001b1c, 0x000028f4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473162</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-26 10:07:05 -0700</bug_when>
    <thetext>Thanks!

I don&apos;t have any objections to this patch. It should probably be reviewed by JSC experts (CC&apos;ed some of them). I&apos;m also sending an e-mail to webkit-dev to try and figure out what our policy about pthreads should be in general.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473510</commentid>
    <comment_count>18</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-26 16:20:00 -0700</bug_when>
    <thetext>&gt; I don&apos;t have any objections to this patch. It should probably be reviewed by JSC experts (CC&apos;ed some of them).

Seems OK to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477722</commentid>
    <comment_count>19</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-10-04 10:44:37 -0700</bug_when>
    <thetext>PING!
Can someone review the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478124</commentid>
    <comment_count>20</comment_count>
      <attachid>83105</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-04 19:45:48 -0700</bug_when>
    <thetext>Comment on attachment 83105
Patch

We know that comparing thread identifiers using == works on Darwin and Windows. However, on USE(PTHREADS) platforms that are not Darwin or Windows, it&apos;s technically a violation of the pthreads API to use == instead of pthread_equal.

I&apos;d like to see a follow-up patch that turns PlatformThread into a wrapper class that defines its own operator==, which calls pthread_equal on USE(PTHREADS) platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478126</commentid>
    <comment_count>21</comment_count>
      <attachid>83105</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-04 19:47:26 -0700</bug_when>
    <thetext>Comment on attachment 83105
Patch

Rejecting attachment 83105 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
unk #1 succeeded at 1 with fuzz 3.
patching file Source/JavaScriptCore/runtime/MachineStackMarker.cpp
Hunk #1 FAILED at 96.
Hunk #2 FAILED at 144.
Hunk #3 FAILED at 166.
Hunk #4 FAILED at 182.
Hunk #5 FAILED at 194.
Hunk #6 FAILED at 393.
Hunk #7 FAILED at 405.
7 out of 7 hunks FAILED -- saving rejects to file Source/JavaScriptCore/runtime/MachineStackMarker.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Geoffrey Garen&apos;, u&apos;--f...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/9958134</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478218</commentid>
    <comment_count>22</comment_count>
      <attachid>109758</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-10-05 01:17:39 -0700</bug_when>
    <thetext>Created attachment 109758
Patch

Rebased and fixed pthread_equal()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478223</commentid>
    <comment_count>23</comment_count>
      <attachid>109761</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-10-05 01:28:47 -0700</bug_when>
    <thetext>Created attachment 109761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478226</commentid>
    <comment_count>24</comment_count>
      <attachid>109762</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-10-05 01:37:45 -0700</bug_when>
    <thetext>Created attachment 109762
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478496</commentid>
    <comment_count>25</comment_count>
      <attachid>109762</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-05 10:43:34 -0700</bug_when>
    <thetext>Comment on attachment 109762
Patch

Clearing flags on attachment: 109762

Committed r96722: &lt;http://trac.webkit.org/changeset/96722&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478497</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-05 10:43:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83105</attachid>
            <date>2011-02-20 15:24:58 -0800</date>
            <delta_ts>2011-10-05 01:17:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54836-20110221002455.patch</filename>
            <type>text/plain</type>
            <size>4315</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzkxNTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGVk
MWI1ZTk2NzY2OTE5N2RkM2U5YjM1MWU3NDFjNjI5ZmU1OGQ4Y2EuLjJhNzFiYjgxM2U1ZTBkZjcy
NjExNzllMGZjZjZiOWFkNGJlMTc4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDExLTAyLTIwICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdl
dCByaWQgb2YgcG9zaXhUaHJlYWQgaW4gTWFjaGluZVN0YWNrTWFya2VyOjpUaHJlYWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0ODM2CisKKyAgICAg
ICAgKiBydW50aW1lL01hY2hpbmVTdGFja01hcmtlci5jcHA6CisgICAgICAgIChKU0M6Ok1hY2hp
bmVTdGFja01hcmtlcjo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAoSlNDOjpnZXRDdXJyZW50
UGxhdGZvcm1UaHJlYWQpOgorICAgICAgICAoSlNDOjpNYWNoaW5lU3RhY2tNYXJrZXI6OnJlZ2lz
dGVyVGhyZWFkKToKKyAgICAgICAgKEpTQzo6TWFjaGluZVN0YWNrTWFya2VyOjp1bnJlZ2lzdGVy
VGhyZWFkKToKKyAgICAgICAgKEpTQzo6TWFjaGluZVN0YWNrTWFya2VyOjptYXJrTWFjaGluZVN0
YWNrQ29uc2VydmF0aXZlbHkpOgorCiAyMDExLTAyLTE5ICBMYXN6bG8gR29tYm9zICA8bGFzemxv
LjEuZ29tYm9zQG5va2lhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3Ig
U3ltYmlhbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hp
bmVTdGFja01hcmtlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5l
U3RhY2tNYXJrZXIuY3BwCmluZGV4IDQ0MzA5NDc1MDJhNjVlNjNmM2ZhZjdiNTc4MTJmZTY5ZTg0
NmZkZjkuLjgzM2ZhNzBiYmUzNTY3MzMwYjI5YTRiYjgzNzEwZjE5OTI5ZTBkZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hpbmVTdGFja01hcmtlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmNw
cApAQCAtOTYsMTUgKzk2LDEzIEBAIHR5cGVkZWYgSEFORExFIFBsYXRmb3JtVGhyZWFkOwogCiBj
bGFzcyBNYWNoaW5lU3RhY2tNYXJrZXI6OlRocmVhZCB7CiBwdWJsaWM6Ci0gICAgVGhyZWFkKHB0
aHJlYWRfdCBwdGhyZWFkLCBjb25zdCBQbGF0Zm9ybVRocmVhZCYgcGxhdFRocmVhZCwgdm9pZCog
YmFzZSkgCi0gICAgICAgIDogcG9zaXhUaHJlYWQocHRocmVhZCkKLSAgICAgICAgLCBwbGF0Zm9y
bVRocmVhZChwbGF0VGhyZWFkKQorICAgIFRocmVhZChjb25zdCBQbGF0Zm9ybVRocmVhZCYgcGxh
dFRocmVhZCwgdm9pZCogYmFzZSkKKyAgICAgICAgOiBwbGF0Zm9ybVRocmVhZChwbGF0VGhyZWFk
KQogICAgICAgICAsIHN0YWNrQmFzZShiYXNlKQogICAgIHsKICAgICB9CiAKICAgICBUaHJlYWQq
IG5leHQ7Ci0gICAgcHRocmVhZF90IHBvc2l4VGhyZWFkOwogICAgIFBsYXRmb3JtVGhyZWFkIHBs
YXRmb3JtVGhyZWFkOwogICAgIHZvaWQqIHN0YWNrQmFzZTsKIH07CkBAIC0xNDQsNyArMTQyLDcg
QEAgc3RhdGljIGlubGluZSBQbGF0Zm9ybVRocmVhZCBnZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQo
KQogI2lmIE9TKERBUldJTikKICAgICByZXR1cm4gcHRocmVhZF9tYWNoX3RocmVhZF9ucChwdGhy
ZWFkX3NlbGYoKSk7CiAjZWxpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiBwdGhyZWFkX2dldHcz
MnRocmVhZGhhbmRsZV9ucChwdGhyZWFkX3NlbGYoKSk7CisgICAgcmV0dXJuIEdldEN1cnJlbnRU
aHJlYWQoKTsKICNlbmRpZgogfQogCkBAIC0xNjYsNyArMTY0LDcgQEAgdm9pZCBNYWNoaW5lU3Rh
Y2tNYXJrZXI6OnJlZ2lzdGVyVGhyZWFkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcHRocmVh
ZF9zZXRzcGVjaWZpYyhtX2N1cnJlbnRUaHJlYWRSZWdpc3RyYXIsIHRoaXMpOwotICAgIFRocmVh
ZCogdGhyZWFkID0gbmV3IFRocmVhZChwdGhyZWFkX3NlbGYoKSwgZ2V0Q3VycmVudFBsYXRmb3Jt
VGhyZWFkKCksIG1faGVhcC0+Z2xvYmFsRGF0YSgpLT5zdGFjaygpLm9yaWdpbigpKTsKKyAgICBU
aHJlYWQqIHRocmVhZCA9IG5ldyBUaHJlYWQoZ2V0Q3VycmVudFBsYXRmb3JtVGhyZWFkKCksIG1f
aGVhcC0+Z2xvYmFsRGF0YSgpLT5zdGFjaygpLm9yaWdpbigpKTsKIAogICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9yZWdpc3RlcmVkVGhyZWFkc011dGV4KTsKIApAQCAtMTgyLDExICsxODAsMTEgQEAg
dm9pZCBNYWNoaW5lU3RhY2tNYXJrZXI6OnVucmVnaXN0ZXJUaHJlYWQodm9pZCogcCkKIAogdm9p
ZCBNYWNoaW5lU3RhY2tNYXJrZXI6OnVucmVnaXN0ZXJUaHJlYWQoKQogewotICAgIHB0aHJlYWRf
dCBjdXJyZW50UG9zaXhUaHJlYWQgPSBwdGhyZWFkX3NlbGYoKTsKKyAgICBQbGF0Zm9ybVRocmVh
ZCBjdXJyZW50UGxhdGZvcm1UaHJlYWQgPSBnZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQoKTsKIAog
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9yZWdpc3RlcmVkVGhyZWFkc011dGV4KTsKIAotICAgIGlm
IChwdGhyZWFkX2VxdWFsKGN1cnJlbnRQb3NpeFRocmVhZCwgbV9yZWdpc3RlcmVkVGhyZWFkcy0+
cG9zaXhUaHJlYWQpKSB7CisgICAgaWYgKG1fcmVnaXN0ZXJlZFRocmVhZHMtPnBsYXRmb3JtVGhy
ZWFkID09IGN1cnJlbnRQbGF0Zm9ybVRocmVhZCkgewogICAgICAgICBUaHJlYWQqIHQgPSBtX3Jl
Z2lzdGVyZWRUaHJlYWRzOwogICAgICAgICBtX3JlZ2lzdGVyZWRUaHJlYWRzID0gbV9yZWdpc3Rl
cmVkVGhyZWFkcy0+bmV4dDsKICAgICAgICAgZGVsZXRlIHQ7CkBAIC0xOTQsNyArMTkyLDcgQEAg
dm9pZCBNYWNoaW5lU3RhY2tNYXJrZXI6OnVucmVnaXN0ZXJUaHJlYWQoKQogICAgICAgICBUaHJl
YWQqIGxhc3QgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOwogICAgICAgICBUaHJlYWQqIHQ7CiAgICAg
ICAgIGZvciAodCA9IG1fcmVnaXN0ZXJlZFRocmVhZHMtPm5leHQ7IHQ7IHQgPSB0LT5uZXh0KSB7
Ci0gICAgICAgICAgICBpZiAocHRocmVhZF9lcXVhbCh0LT5wb3NpeFRocmVhZCwgY3VycmVudFBv
c2l4VGhyZWFkKSkgeworICAgICAgICAgICAgaWYgKHQtPnBsYXRmb3JtVGhyZWFkID09IGN1cnJl
bnRQbGF0Zm9ybVRocmVhZCkgewogICAgICAgICAgICAgICAgIGxhc3QtPm5leHQgPSB0LT5uZXh0
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMzkzLDYgKzM5MSw3
IEBAIHZvaWQgTWFjaGluZVN0YWNrTWFya2VyOjptYXJrTWFjaGluZVN0YWNrQ29uc2VydmF0aXZl
bHkoQ29uc2VydmF0aXZlU2V0JiBjb25zZXJ2CiAjaWYgRU5BQkxFKEpTQ19NVUxUSVBMRV9USFJF
QURTKQogCiAgICAgaWYgKG1fY3VycmVudFRocmVhZFJlZ2lzdHJhcikgeworICAgICAgICBQbGF0
Zm9ybVRocmVhZCBjdXJyZW50UGxhdGZvcm1UaHJlYWQgPSBnZXRDdXJyZW50UGxhdGZvcm1UaHJl
YWQoKTsKIAogICAgICAgICBNdXRleExvY2tlciBsb2NrKG1fcmVnaXN0ZXJlZFRocmVhZHNNdXRl
eCk7CiAKQEAgLTQwNSw3ICs0MDQsNyBAQCB2b2lkIE1hY2hpbmVTdGFja01hcmtlcjo6bWFya01h
Y2hpbmVTdGFja0NvbnNlcnZhdGl2ZWx5KENvbnNlcnZhdGl2ZVNldCYgY29uc2VydgogICAgICAg
ICAvLyBJdCBpcyBzYWZlIHRvIGFjY2VzcyB0aGUgcmVnaXN0ZXJlZFRocmVhZHMgbGlzdCwgYmVj
YXVzZSB3ZSBlYXJsaWVyIGFzc2VydGVkIHRoYXQgbG9ja3MgYXJlIGJlaW5nIGhlbGQsCiAgICAg
ICAgIC8vIGFuZCBzaW5jZSB0aGlzIGlzIGEgc2hhcmVkIGhlYXAsIHRoZXkgYXJlIHJlYWwgbG9j
a3MuCiAgICAgICAgIGZvciAoVGhyZWFkKiB0aHJlYWQgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOyB0
aHJlYWQ7IHRocmVhZCA9IHRocmVhZC0+bmV4dCkgewotICAgICAgICAgICAgaWYgKCFwdGhyZWFk
X2VxdWFsKHRocmVhZC0+cG9zaXhUaHJlYWQsIHB0aHJlYWRfc2VsZigpKSkKKyAgICAgICAgICAg
IGlmICh0aHJlYWQtPnBsYXRmb3JtVGhyZWFkICE9IGN1cnJlbnRQbGF0Zm9ybVRocmVhZCkKICAg
ICAgICAgICAgICAgICBtYXJrT3RoZXJUaHJlYWRDb25zZXJ2YXRpdmVseShjb25zZXJ2YXRpdmVT
ZXQsIHRocmVhZCk7CiAgICAgICAgIH0KICNpZm5kZWYgTkRFQlVHCg==
</data>
<flag name="review"
          id="74856"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="74857"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109758</attachid>
            <date>2011-10-05 01:17:39 -0700</date>
            <delta_ts>2011-10-05 01:28:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54836.patch</filename>
            <type>text/plain</type>
            <size>4899</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDE5NGJiZDMuLjg4MTIwZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEwLTA1ICBQYXRyaWNrIEdhbnN0
ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgcG9zaXhUaHJl
YWQgaW4gTWFjaGluZVN0YWNrTWFya2VyOjpUaHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0ODM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBoZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHA6Cisg
ICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgIChK
U0M6OmdldEN1cnJlbnRQbGF0Zm9ybVRocmVhZCk6CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJl
YWRzOjphZGRDdXJyZW50VGhyZWFkKToKKyAgICAgICAgKEpTQzo6TWFjaGluZVRocmVhZHM6OnJl
bW92ZUN1cnJlbnRUaHJlYWQpOgorICAgICAgICAoSlNDOjplcXVhbFRocmVhZCk6CisgICAgICAg
IChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisKIDIwMTEt
MTAtMDQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEludHJv
ZHVjZSBmZWF0dXJlIGZsYWdzIGZvciBpbmNvbXBsZXRlIGlucHV0IHR5cGVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAppbmRleCA3NTI3
YTliLi4yZmFjNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNo
aW5lU3RhY2tNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hp
bmVTdGFja01hcmtlci5jcHAKQEAgLTExMSw5ICsxMTEsOCBAQCBzdGF0aWMgdm9pZCBwdGhyZWFk
U2lnbmFsSGFuZGxlclN1c3BlbmRSZXN1bWUoaW50IHNpZ25vKQogCiBjbGFzcyBNYWNoaW5lVGhy
ZWFkczo6VGhyZWFkIHsKIHB1YmxpYzoKLSAgICBUaHJlYWQocHRocmVhZF90IHB0aHJlYWQsIGNv
bnN0IFBsYXRmb3JtVGhyZWFkJiBwbGF0VGhyZWFkLCB2b2lkKiBiYXNlKSAKLSAgICAgICAgOiBw
b3NpeFRocmVhZChwdGhyZWFkKQotICAgICAgICAsIHBsYXRmb3JtVGhyZWFkKHBsYXRUaHJlYWQp
CisgICAgVGhyZWFkKGNvbnN0IFBsYXRmb3JtVGhyZWFkJiBwbGF0VGhyZWFkLCB2b2lkKiBiYXNl
KQorICAgICAgICA6IHBsYXRmb3JtVGhyZWFkKHBsYXRUaHJlYWQpCiAgICAgICAgICwgc3RhY2tC
YXNlKGJhc2UpCiAgICAgewogI2lmIFVTRShQVEhSRUFEUykgJiYgIU9TKFdJTkRPV1MpICYmICFP
UyhEQVJXSU4pICYmIGRlZmluZWQoU0FfUkVTVEFSVCkKQEAgLTEzMiw3ICsxMzEsNiBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgVGhyZWFkKiBuZXh0OwotICAgIHB0aHJlYWRfdCBwb3NpeFRocmVh
ZDsKICAgICBQbGF0Zm9ybVRocmVhZCBwbGF0Zm9ybVRocmVhZDsKICAgICB2b2lkKiBzdGFja0Jh
c2U7CiB9OwpAQCAtMTY0LDcgKzE2Miw3IEBAIHN0YXRpYyBpbmxpbmUgUGxhdGZvcm1UaHJlYWQg
Z2V0Q3VycmVudFBsYXRmb3JtVGhyZWFkKCkKICNpZiBPUyhEQVJXSU4pCiAgICAgcmV0dXJuIHB0
aHJlYWRfbWFjaF90aHJlYWRfbnAocHRocmVhZF9zZWxmKCkpOwogI2VsaWYgT1MoV0lORE9XUykK
LSAgICByZXR1cm4gcHRocmVhZF9nZXR3MzJ0aHJlYWRoYW5kbGVfbnAocHRocmVhZF9zZWxmKCkp
OworICAgIHJldHVybiBHZXRDdXJyZW50VGhyZWFkKCk7CiAjZWxpZiBVU0UoUFRIUkVBRFMpCiAg
ICAgcmV0dXJuIHB0aHJlYWRfc2VsZigpOwogI2VuZGlmCkBAIC0xODgsNyArMTg2LDcgQEAgdm9p
ZCBNYWNoaW5lVGhyZWFkczo6YWRkQ3VycmVudFRocmVhZCgpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIHB0aHJlYWRfc2V0c3BlY2lmaWMobV90aHJlYWRTcGVjaWZpYywgdGhpcyk7Ci0gICAgVGhy
ZWFkKiB0aHJlYWQgPSBuZXcgVGhyZWFkKHB0aHJlYWRfc2VsZigpLCBnZXRDdXJyZW50UGxhdGZv
cm1UaHJlYWQoKSwgbV9oZWFwLT5nbG9iYWxEYXRhKCktPnN0YWNrKCkub3JpZ2luKCkpOworICAg
IFRocmVhZCogdGhyZWFkID0gbmV3IFRocmVhZChnZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQoKSwg
bV9oZWFwLT5nbG9iYWxEYXRhKCktPnN0YWNrKCkub3JpZ2luKCkpOwogCiAgICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXgpOwogCkBAIC0yMDQsMTEgKzIwMiwxMSBA
QCB2b2lkIE1hY2hpbmVUaHJlYWRzOjpyZW1vdmVUaHJlYWQodm9pZCogcCkKIAogdm9pZCBNYWNo
aW5lVGhyZWFkczo6cmVtb3ZlQ3VycmVudFRocmVhZCgpCiB7Ci0gICAgcHRocmVhZF90IGN1cnJl
bnRQb3NpeFRocmVhZCA9IHB0aHJlYWRfc2VsZigpOworICAgIFBsYXRmb3JtVGhyZWFkIGN1cnJl
bnRQbGF0Zm9ybVRocmVhZCA9IGdldEN1cnJlbnRQbGF0Zm9ybVRocmVhZCgpOwogCiAgICAgTXV0
ZXhMb2NrZXIgbG9jayhtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXgpOwogCi0gICAgaWYgKHB0aHJl
YWRfZXF1YWwoY3VycmVudFBvc2l4VGhyZWFkLCBtX3JlZ2lzdGVyZWRUaHJlYWRzLT5wb3NpeFRo
cmVhZCkpIHsKKyAgICBpZiAoZXF1YWxUaHJlYWQoY3VycmVudFBsYXRmb3JtVGhyZWFkLCBtX3Jl
Z2lzdGVyZWRUaHJlYWRzLT5wbGF0Zm9ybVRocmVhZCkpIHsKICAgICAgICAgVGhyZWFkKiB0ID0g
bV9yZWdpc3RlcmVkVGhyZWFkczsKICAgICAgICAgbV9yZWdpc3RlcmVkVGhyZWFkcyA9IG1fcmVn
aXN0ZXJlZFRocmVhZHMtPm5leHQ7CiAgICAgICAgIGRlbGV0ZSB0OwpAQCAtMjE2LDcgKzIxNCw3
IEBAIHZvaWQgTWFjaGluZVRocmVhZHM6OnJlbW92ZUN1cnJlbnRUaHJlYWQoKQogICAgICAgICBU
aHJlYWQqIGxhc3QgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOwogICAgICAgICBUaHJlYWQqIHQ7CiAg
ICAgICAgIGZvciAodCA9IG1fcmVnaXN0ZXJlZFRocmVhZHMtPm5leHQ7IHQ7IHQgPSB0LT5uZXh0
KSB7Ci0gICAgICAgICAgICBpZiAocHRocmVhZF9lcXVhbCh0LT5wb3NpeFRocmVhZCwgY3VycmVu
dFBvc2l4VGhyZWFkKSkgeworICAgICAgICAgICAgaWYgKGVxdWFsVGhyZWFkKHQtPnBsYXRmb3Jt
VGhyZWFkLCBjdXJyZW50UGxhdGZvcm1UaHJlYWQpKSB7CiAgICAgICAgICAgICAgICAgbGFzdC0+
bmV4dCA9IHQtPm5leHQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBA
IC0yNTcsNiArMjU1LDE3IEBAIHZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50
VGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290CiAgICAgY29uc2VydmF0
aXZlUm9vdHMuYWRkKHN0YWNrQmVnaW4sIHN0YWNrRW5kKTsKIH0KIAorc3RhdGljIGlubGluZSBi
b29sIGVxdWFsVGhyZWFkKGNvbnN0IFBsYXRmb3JtVGhyZWFkJiBmaXJzdCwgY29uc3QgUGxhdGZv
cm1UaHJlYWQmIHNlY29uZCkKK3sKKyNpZiBPUyhEQVJXSU4pIHx8ICFPUyhXSU5ET1dTKQorICAg
IHJldHVybiBmaXJzdCA9PSBzZWNvbmQ7CisjZWxpZiBVU0UoUFRIUkVBRFMpCisgICAgcmV0dXJu
ICEhcHRocmVhZF9lcXVhbChmaXJzdCwgc2Vjb25kKTsKKyNlbHNlCisjZXJyb3IgTmVlZCBhIHdh
eSB0byBjb21wYXJlIHRocmVhZHMgb24gdGhpcyBwbGF0Zm9ybQorI2VuZGlmCit9CisKIHN0YXRp
YyBpbmxpbmUgdm9pZCBzdXNwZW5kVGhyZWFkKGNvbnN0IFBsYXRmb3JtVGhyZWFkJiBwbGF0Zm9y
bVRocmVhZCkKIHsKICNpZiBPUyhEQVJXSU4pCkBAIC00NjcsNiArNDc2LDcgQEAgdm9pZCBNYWNo
aW5lVGhyZWFkczo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIGNv
bnNlcnZhdGl2ZVJvb3QKICAgICBnYXRoZXJGcm9tQ3VycmVudFRocmVhZChjb25zZXJ2YXRpdmVS
b290cywgc3RhY2tDdXJyZW50KTsKIAogICAgIGlmIChtX3RocmVhZFNwZWNpZmljKSB7CisgICAg
ICAgIFBsYXRmb3JtVGhyZWFkIGN1cnJlbnRQbGF0Zm9ybVRocmVhZCA9IGdldEN1cnJlbnRQbGF0
Zm9ybVRocmVhZCgpOwogCiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV9yZWdpc3RlcmVkVGhy
ZWFkc011dGV4KTsKIApAQCAtNDc5LDcgKzQ4OSw3IEBAIHZvaWQgTWFjaGluZVRocmVhZHM6Omdh
dGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290
CiAgICAgICAgIC8vIEl0IGlzIHNhZmUgdG8gYWNjZXNzIHRoZSByZWdpc3RlcmVkVGhyZWFkcyBs
aXN0LCBiZWNhdXNlIHdlIGVhcmxpZXIgYXNzZXJ0ZWQgdGhhdCBsb2NrcyBhcmUgYmVpbmcgaGVs
ZCwKICAgICAgICAgLy8gYW5kIHNpbmNlIHRoaXMgaXMgYSBzaGFyZWQgaGVhcCwgdGhleSBhcmUg
cmVhbCBsb2Nrcy4KICAgICAgICAgZm9yIChUaHJlYWQqIHRocmVhZCA9IG1fcmVnaXN0ZXJlZFRo
cmVhZHM7IHRocmVhZDsgdGhyZWFkID0gdGhyZWFkLT5uZXh0KSB7Ci0gICAgICAgICAgICBpZiAo
IXB0aHJlYWRfZXF1YWwodGhyZWFkLT5wb3NpeFRocmVhZCwgcHRocmVhZF9zZWxmKCkpKQorICAg
ICAgICAgICAgaWYgKCFlcXVhbFRocmVhZCh0aHJlYWQtPnBsYXRmb3JtVGhyZWFkLCBjdXJyZW50
UGxhdGZvcm1UaHJlYWQpKQogICAgICAgICAgICAgICAgIGdhdGhlckZyb21PdGhlclRocmVhZChj
b25zZXJ2YXRpdmVSb290cywgdGhyZWFkKTsKICAgICAgICAgfQogI2lmbmRlZiBOREVCVUcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109761</attachid>
            <date>2011-10-05 01:28:47 -0700</date>
            <delta_ts>2011-10-05 01:37:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54836.patch</filename>
            <type>text/plain</type>
            <size>4898</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDE5NGJiZDMuLjg4MTIwZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEwLTA1ICBQYXRyaWNrIEdhbnN0
ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgcG9zaXhUaHJl
YWQgaW4gTWFjaGluZVN0YWNrTWFya2VyOjpUaHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0ODM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBoZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHA6Cisg
ICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgIChK
U0M6OmdldEN1cnJlbnRQbGF0Zm9ybVRocmVhZCk6CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJl
YWRzOjphZGRDdXJyZW50VGhyZWFkKToKKyAgICAgICAgKEpTQzo6TWFjaGluZVRocmVhZHM6OnJl
bW92ZUN1cnJlbnRUaHJlYWQpOgorICAgICAgICAoSlNDOjplcXVhbFRocmVhZCk6CisgICAgICAg
IChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisKIDIwMTEt
MTAtMDQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEludHJv
ZHVjZSBmZWF0dXJlIGZsYWdzIGZvciBpbmNvbXBsZXRlIGlucHV0IHR5cGVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAppbmRleCA3NTI3
YTliLi4yZmFjNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNo
aW5lU3RhY2tNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hp
bmVTdGFja01hcmtlci5jcHAKQEAgLTExMSw5ICsxMTEsOCBAQCBzdGF0aWMgdm9pZCBwdGhyZWFk
U2lnbmFsSGFuZGxlclN1c3BlbmRSZXN1bWUoaW50IHNpZ25vKQogCiBjbGFzcyBNYWNoaW5lVGhy
ZWFkczo6VGhyZWFkIHsKIHB1YmxpYzoKLSAgICBUaHJlYWQocHRocmVhZF90IHB0aHJlYWQsIGNv
bnN0IFBsYXRmb3JtVGhyZWFkJiBwbGF0VGhyZWFkLCB2b2lkKiBiYXNlKSAKLSAgICAgICAgOiBw
b3NpeFRocmVhZChwdGhyZWFkKQotICAgICAgICAsIHBsYXRmb3JtVGhyZWFkKHBsYXRUaHJlYWQp
CisgICAgVGhyZWFkKGNvbnN0IFBsYXRmb3JtVGhyZWFkJiBwbGF0VGhyZWFkLCB2b2lkKiBiYXNl
KQorICAgICAgICA6IHBsYXRmb3JtVGhyZWFkKHBsYXRUaHJlYWQpCiAgICAgICAgICwgc3RhY2tC
YXNlKGJhc2UpCiAgICAgewogI2lmIFVTRShQVEhSRUFEUykgJiYgIU9TKFdJTkRPV1MpICYmICFP
UyhEQVJXSU4pICYmIGRlZmluZWQoU0FfUkVTVEFSVCkKQEAgLTEzMiw3ICsxMzEsNiBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgVGhyZWFkKiBuZXh0OwotICAgIHB0aHJlYWRfdCBwb3NpeFRocmVh
ZDsKICAgICBQbGF0Zm9ybVRocmVhZCBwbGF0Zm9ybVRocmVhZDsKICAgICB2b2lkKiBzdGFja0Jh
c2U7CiB9OwpAQCAtMTY0LDcgKzE2Miw3IEBAIHN0YXRpYyBpbmxpbmUgUGxhdGZvcm1UaHJlYWQg
Z2V0Q3VycmVudFBsYXRmb3JtVGhyZWFkKCkKICNpZiBPUyhEQVJXSU4pCiAgICAgcmV0dXJuIHB0
aHJlYWRfbWFjaF90aHJlYWRfbnAocHRocmVhZF9zZWxmKCkpOwogI2VsaWYgT1MoV0lORE9XUykK
LSAgICByZXR1cm4gcHRocmVhZF9nZXR3MzJ0aHJlYWRoYW5kbGVfbnAocHRocmVhZF9zZWxmKCkp
OworICAgIHJldHVybiBHZXRDdXJyZW50VGhyZWFkKCk7CiAjZWxpZiBVU0UoUFRIUkVBRFMpCiAg
ICAgcmV0dXJuIHB0aHJlYWRfc2VsZigpOwogI2VuZGlmCkBAIC0xODgsNyArMTg2LDcgQEAgdm9p
ZCBNYWNoaW5lVGhyZWFkczo6YWRkQ3VycmVudFRocmVhZCgpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIHB0aHJlYWRfc2V0c3BlY2lmaWMobV90aHJlYWRTcGVjaWZpYywgdGhpcyk7Ci0gICAgVGhy
ZWFkKiB0aHJlYWQgPSBuZXcgVGhyZWFkKHB0aHJlYWRfc2VsZigpLCBnZXRDdXJyZW50UGxhdGZv
cm1UaHJlYWQoKSwgbV9oZWFwLT5nbG9iYWxEYXRhKCktPnN0YWNrKCkub3JpZ2luKCkpOworICAg
IFRocmVhZCogdGhyZWFkID0gbmV3IFRocmVhZChnZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQoKSwg
bV9oZWFwLT5nbG9iYWxEYXRhKCktPnN0YWNrKCkub3JpZ2luKCkpOwogCiAgICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXgpOwogCkBAIC0yMDQsMTEgKzIwMiwxMSBA
QCB2b2lkIE1hY2hpbmVUaHJlYWRzOjpyZW1vdmVUaHJlYWQodm9pZCogcCkKIAogdm9pZCBNYWNo
aW5lVGhyZWFkczo6cmVtb3ZlQ3VycmVudFRocmVhZCgpCiB7Ci0gICAgcHRocmVhZF90IGN1cnJl
bnRQb3NpeFRocmVhZCA9IHB0aHJlYWRfc2VsZigpOworICAgIFBsYXRmb3JtVGhyZWFkIGN1cnJl
bnRQbGF0Zm9ybVRocmVhZCA9IGdldEN1cnJlbnRQbGF0Zm9ybVRocmVhZCgpOwogCiAgICAgTXV0
ZXhMb2NrZXIgbG9jayhtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXgpOwogCi0gICAgaWYgKHB0aHJl
YWRfZXF1YWwoY3VycmVudFBvc2l4VGhyZWFkLCBtX3JlZ2lzdGVyZWRUaHJlYWRzLT5wb3NpeFRo
cmVhZCkpIHsKKyAgICBpZiAoZXF1YWxUaHJlYWQoY3VycmVudFBsYXRmb3JtVGhyZWFkLCBtX3Jl
Z2lzdGVyZWRUaHJlYWRzLT5wbGF0Zm9ybVRocmVhZCkpIHsKICAgICAgICAgVGhyZWFkKiB0ID0g
bV9yZWdpc3RlcmVkVGhyZWFkczsKICAgICAgICAgbV9yZWdpc3RlcmVkVGhyZWFkcyA9IG1fcmVn
aXN0ZXJlZFRocmVhZHMtPm5leHQ7CiAgICAgICAgIGRlbGV0ZSB0OwpAQCAtMjE2LDcgKzIxNCw3
IEBAIHZvaWQgTWFjaGluZVRocmVhZHM6OnJlbW92ZUN1cnJlbnRUaHJlYWQoKQogICAgICAgICBU
aHJlYWQqIGxhc3QgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOwogICAgICAgICBUaHJlYWQqIHQ7CiAg
ICAgICAgIGZvciAodCA9IG1fcmVnaXN0ZXJlZFRocmVhZHMtPm5leHQ7IHQ7IHQgPSB0LT5uZXh0
KSB7Ci0gICAgICAgICAgICBpZiAocHRocmVhZF9lcXVhbCh0LT5wb3NpeFRocmVhZCwgY3VycmVu
dFBvc2l4VGhyZWFkKSkgeworICAgICAgICAgICAgaWYgKGVxdWFsVGhyZWFkKHQtPnBsYXRmb3Jt
VGhyZWFkLCBjdXJyZW50UGxhdGZvcm1UaHJlYWQpKSB7CiAgICAgICAgICAgICAgICAgbGFzdC0+
bmV4dCA9IHQtPm5leHQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBA
IC0yNTcsNiArMjU1LDE3IEBAIHZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50
VGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290CiAgICAgY29uc2VydmF0
aXZlUm9vdHMuYWRkKHN0YWNrQmVnaW4sIHN0YWNrRW5kKTsKIH0KIAorc3RhdGljIGlubGluZSBi
b29sIGVxdWFsVGhyZWFkKGNvbnN0IFBsYXRmb3JtVGhyZWFkJiBmaXJzdCwgY29uc3QgUGxhdGZv
cm1UaHJlYWQmIHNlY29uZCkKK3sKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKFdJTkRPV1MpCisgICAg
cmV0dXJuIGZpcnN0ID09IHNlY29uZDsKKyNlbGlmIFVTRShQVEhSRUFEUykKKyAgICByZXR1cm4g
ISFwdGhyZWFkX2VxdWFsKGZpcnN0LCBzZWNvbmQpOworI2Vsc2UKKyNlcnJvciBOZWVkIGEgd2F5
IHRvIGNvbXBhcmUgdGhyZWFkcyBvbiB0aGlzIHBsYXRmb3JtCisjZW5kaWYKK30KKwogc3RhdGlj
IGlubGluZSB2b2lkIHN1c3BlbmRUaHJlYWQoY29uc3QgUGxhdGZvcm1UaHJlYWQmIHBsYXRmb3Jt
VGhyZWFkKQogewogI2lmIE9TKERBUldJTikKQEAgLTQ2Nyw2ICs0NzYsNyBAQCB2b2lkIE1hY2hp
bmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29u
c2VydmF0aXZlUm9vdAogICAgIGdhdGhlckZyb21DdXJyZW50VGhyZWFkKGNvbnNlcnZhdGl2ZVJv
b3RzLCBzdGFja0N1cnJlbnQpOwogCiAgICAgaWYgKG1fdGhyZWFkU3BlY2lmaWMpIHsKKyAgICAg
ICAgUGxhdGZvcm1UaHJlYWQgY3VycmVudFBsYXRmb3JtVGhyZWFkID0gZ2V0Q3VycmVudFBsYXRm
b3JtVGhyZWFkKCk7CiAKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3JlZ2lzdGVyZWRUaHJl
YWRzTXV0ZXgpOwogCkBAIC00NzksNyArNDg5LDcgQEAgdm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0
aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3QK
ICAgICAgICAgLy8gSXQgaXMgc2FmZSB0byBhY2Nlc3MgdGhlIHJlZ2lzdGVyZWRUaHJlYWRzIGxp
c3QsIGJlY2F1c2Ugd2UgZWFybGllciBhc3NlcnRlZCB0aGF0IGxvY2tzIGFyZSBiZWluZyBoZWxk
LAogICAgICAgICAvLyBhbmQgc2luY2UgdGhpcyBpcyBhIHNoYXJlZCBoZWFwLCB0aGV5IGFyZSBy
ZWFsIGxvY2tzLgogICAgICAgICBmb3IgKFRocmVhZCogdGhyZWFkID0gbV9yZWdpc3RlcmVkVGhy
ZWFkczsgdGhyZWFkOyB0aHJlYWQgPSB0aHJlYWQtPm5leHQpIHsKLSAgICAgICAgICAgIGlmICgh
cHRocmVhZF9lcXVhbCh0aHJlYWQtPnBvc2l4VGhyZWFkLCBwdGhyZWFkX3NlbGYoKSkpCisgICAg
ICAgICAgICBpZiAoIWVxdWFsVGhyZWFkKHRocmVhZC0+cGxhdGZvcm1UaHJlYWQsIGN1cnJlbnRQ
bGF0Zm9ybVRocmVhZCkpCiAgICAgICAgICAgICAgICAgZ2F0aGVyRnJvbU90aGVyVGhyZWFkKGNv
bnNlcnZhdGl2ZVJvb3RzLCB0aHJlYWQpOwogICAgICAgICB9CiAjaWZuZGVmIE5ERUJVRwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109762</attachid>
            <date>2011-10-05 01:37:45 -0700</date>
            <delta_ts>2011-10-05 10:43:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54836b.patch</filename>
            <type>text/plain</type>
            <size>4741</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDE5NGJiZDMuLmE3YTdlZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEwLTA1ICBQYXRyaWNrIEdhbnN0
ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIEdldCByaWQgb2YgcG9zaXhUaHJl
YWQgaW4gTWFjaGluZVN0YWNrTWFya2VyOjpUaHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0ODM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBoZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHA6Cisg
ICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgIChK
U0M6OmdldEN1cnJlbnRQbGF0Zm9ybVRocmVhZCk6CisgICAgICAgIChKU0M6OmVxdWFsVGhyZWFk
KToKKyAgICAgICAgKEpTQzo6TWFjaGluZVRocmVhZHM6OmFkZEN1cnJlbnRUaHJlYWQpOgorICAg
ICAgICAoSlNDOjpNYWNoaW5lVGhyZWFkczo6cmVtb3ZlQ3VycmVudFRocmVhZCk6CisgICAgICAg
IChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisKIDIwMTEt
MTAtMDQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEludHJv
ZHVjZSBmZWF0dXJlIGZsYWdzIGZvciBpbmNvbXBsZXRlIGlucHV0IHR5cGVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAppbmRleCA3NTI3
YTliLi44MDVjNjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNo
aW5lU3RhY2tNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hp
bmVTdGFja01hcmtlci5jcHAKQEAgLTExMSw5ICsxMTEsOCBAQCBzdGF0aWMgdm9pZCBwdGhyZWFk
U2lnbmFsSGFuZGxlclN1c3BlbmRSZXN1bWUoaW50IHNpZ25vKQogCiBjbGFzcyBNYWNoaW5lVGhy
ZWFkczo6VGhyZWFkIHsKIHB1YmxpYzoKLSAgICBUaHJlYWQocHRocmVhZF90IHB0aHJlYWQsIGNv
bnN0IFBsYXRmb3JtVGhyZWFkJiBwbGF0VGhyZWFkLCB2b2lkKiBiYXNlKSAKLSAgICAgICAgOiBw
b3NpeFRocmVhZChwdGhyZWFkKQotICAgICAgICAsIHBsYXRmb3JtVGhyZWFkKHBsYXRUaHJlYWQp
CisgICAgVGhyZWFkKGNvbnN0IFBsYXRmb3JtVGhyZWFkJiBwbGF0VGhyZWFkLCB2b2lkKiBiYXNl
KQorICAgICAgICA6IHBsYXRmb3JtVGhyZWFkKHBsYXRUaHJlYWQpCiAgICAgICAgICwgc3RhY2tC
YXNlKGJhc2UpCiAgICAgewogI2lmIFVTRShQVEhSRUFEUykgJiYgIU9TKFdJTkRPV1MpICYmICFP
UyhEQVJXSU4pICYmIGRlZmluZWQoU0FfUkVTVEFSVCkKQEAgLTEzMiw3ICsxMzEsNiBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgVGhyZWFkKiBuZXh0OwotICAgIHB0aHJlYWRfdCBwb3NpeFRocmVh
ZDsKICAgICBQbGF0Zm9ybVRocmVhZCBwbGF0Zm9ybVRocmVhZDsKICAgICB2b2lkKiBzdGFja0Jh
c2U7CiB9OwpAQCAtMTY0LDEyICsxNjIsMjMgQEAgc3RhdGljIGlubGluZSBQbGF0Zm9ybVRocmVh
ZCBnZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQoKQogI2lmIE9TKERBUldJTikKICAgICByZXR1cm4g
cHRocmVhZF9tYWNoX3RocmVhZF9ucChwdGhyZWFkX3NlbGYoKSk7CiAjZWxpZiBPUyhXSU5ET1dT
KQotICAgIHJldHVybiBwdGhyZWFkX2dldHczMnRocmVhZGhhbmRsZV9ucChwdGhyZWFkX3NlbGYo
KSk7CisgICAgcmV0dXJuIEdldEN1cnJlbnRUaHJlYWQoKTsKICNlbGlmIFVTRShQVEhSRUFEUykK
ICAgICByZXR1cm4gcHRocmVhZF9zZWxmKCk7CiAjZW5kaWYKIH0KIAorc3RhdGljIGlubGluZSBi
b29sIGVxdWFsVGhyZWFkKGNvbnN0IFBsYXRmb3JtVGhyZWFkJiBmaXJzdCwgY29uc3QgUGxhdGZv
cm1UaHJlYWQmIHNlY29uZCkKK3sKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKFdJTkRPV1MpCisgICAg
cmV0dXJuIGZpcnN0ID09IHNlY29uZDsKKyNlbGlmIFVTRShQVEhSRUFEUykKKyAgICByZXR1cm4g
ISFwdGhyZWFkX2VxdWFsKGZpcnN0LCBzZWNvbmQpOworI2Vsc2UKKyNlcnJvciBOZWVkIGEgd2F5
IHRvIGNvbXBhcmUgdGhyZWFkcyBvbiB0aGlzIHBsYXRmb3JtCisjZW5kaWYKK30KKwogdm9pZCBN
YWNoaW5lVGhyZWFkczo6bWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKQogewogICAgIGlm
IChtX3RocmVhZFNwZWNpZmljKQpAQCAtMTg4LDcgKzE5Nyw3IEBAIHZvaWQgTWFjaGluZVRocmVh
ZHM6OmFkZEN1cnJlbnRUaHJlYWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBwdGhyZWFkX3Nl
dHNwZWNpZmljKG1fdGhyZWFkU3BlY2lmaWMsIHRoaXMpOwotICAgIFRocmVhZCogdGhyZWFkID0g
bmV3IFRocmVhZChwdGhyZWFkX3NlbGYoKSwgZ2V0Q3VycmVudFBsYXRmb3JtVGhyZWFkKCksIG1f
aGVhcC0+Z2xvYmFsRGF0YSgpLT5zdGFjaygpLm9yaWdpbigpKTsKKyAgICBUaHJlYWQqIHRocmVh
ZCA9IG5ldyBUaHJlYWQoZ2V0Q3VycmVudFBsYXRmb3JtVGhyZWFkKCksIG1faGVhcC0+Z2xvYmFs
RGF0YSgpLT5zdGFjaygpLm9yaWdpbigpKTsKIAogICAgIE11dGV4TG9ja2VyIGxvY2sobV9yZWdp
c3RlcmVkVGhyZWFkc011dGV4KTsKIApAQCAtMjA0LDExICsyMTMsMTEgQEAgdm9pZCBNYWNoaW5l
VGhyZWFkczo6cmVtb3ZlVGhyZWFkKHZvaWQqIHApCiAKIHZvaWQgTWFjaGluZVRocmVhZHM6OnJl
bW92ZUN1cnJlbnRUaHJlYWQoKQogewotICAgIHB0aHJlYWRfdCBjdXJyZW50UG9zaXhUaHJlYWQg
PSBwdGhyZWFkX3NlbGYoKTsKKyAgICBQbGF0Zm9ybVRocmVhZCBjdXJyZW50UGxhdGZvcm1UaHJl
YWQgPSBnZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQoKTsKIAogICAgIE11dGV4TG9ja2VyIGxvY2so
bV9yZWdpc3RlcmVkVGhyZWFkc011dGV4KTsKIAotICAgIGlmIChwdGhyZWFkX2VxdWFsKGN1cnJl
bnRQb3NpeFRocmVhZCwgbV9yZWdpc3RlcmVkVGhyZWFkcy0+cG9zaXhUaHJlYWQpKSB7CisgICAg
aWYgKGVxdWFsVGhyZWFkKGN1cnJlbnRQbGF0Zm9ybVRocmVhZCwgbV9yZWdpc3RlcmVkVGhyZWFk
cy0+cGxhdGZvcm1UaHJlYWQpKSB7CiAgICAgICAgIFRocmVhZCogdCA9IG1fcmVnaXN0ZXJlZFRo
cmVhZHM7CiAgICAgICAgIG1fcmVnaXN0ZXJlZFRocmVhZHMgPSBtX3JlZ2lzdGVyZWRUaHJlYWRz
LT5uZXh0OwogICAgICAgICBkZWxldGUgdDsKQEAgLTIxNiw3ICsyMjUsNyBAQCB2b2lkIE1hY2hp
bmVUaHJlYWRzOjpyZW1vdmVDdXJyZW50VGhyZWFkKCkKICAgICAgICAgVGhyZWFkKiBsYXN0ID0g
bV9yZWdpc3RlcmVkVGhyZWFkczsKICAgICAgICAgVGhyZWFkKiB0OwogICAgICAgICBmb3IgKHQg
PSBtX3JlZ2lzdGVyZWRUaHJlYWRzLT5uZXh0OyB0OyB0ID0gdC0+bmV4dCkgewotICAgICAgICAg
ICAgaWYgKHB0aHJlYWRfZXF1YWwodC0+cG9zaXhUaHJlYWQsIGN1cnJlbnRQb3NpeFRocmVhZCkp
IHsKKyAgICAgICAgICAgIGlmIChlcXVhbFRocmVhZCh0LT5wbGF0Zm9ybVRocmVhZCwgY3VycmVu
dFBsYXRmb3JtVGhyZWFkKSkgewogICAgICAgICAgICAgICAgIGxhc3QtPm5leHQgPSB0LT5uZXh0
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtNDY3LDYgKzQ3Niw3
IEBAIHZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZh
dGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290CiAgICAgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQo
Y29uc2VydmF0aXZlUm9vdHMsIHN0YWNrQ3VycmVudCk7CiAKICAgICBpZiAobV90aHJlYWRTcGVj
aWZpYykgeworICAgICAgICBQbGF0Zm9ybVRocmVhZCBjdXJyZW50UGxhdGZvcm1UaHJlYWQgPSBn
ZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQoKTsKIAogICAgICAgICBNdXRleExvY2tlciBsb2NrKG1f
cmVnaXN0ZXJlZFRocmVhZHNNdXRleCk7CiAKQEAgLTQ3OSw3ICs0ODksNyBAQCB2b2lkIE1hY2hp
bmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29u
c2VydmF0aXZlUm9vdAogICAgICAgICAvLyBJdCBpcyBzYWZlIHRvIGFjY2VzcyB0aGUgcmVnaXN0
ZXJlZFRocmVhZHMgbGlzdCwgYmVjYXVzZSB3ZSBlYXJsaWVyIGFzc2VydGVkIHRoYXQgbG9ja3Mg
YXJlIGJlaW5nIGhlbGQsCiAgICAgICAgIC8vIGFuZCBzaW5jZSB0aGlzIGlzIGEgc2hhcmVkIGhl
YXAsIHRoZXkgYXJlIHJlYWwgbG9ja3MuCiAgICAgICAgIGZvciAoVGhyZWFkKiB0aHJlYWQgPSBt
X3JlZ2lzdGVyZWRUaHJlYWRzOyB0aHJlYWQ7IHRocmVhZCA9IHRocmVhZC0+bmV4dCkgewotICAg
ICAgICAgICAgaWYgKCFwdGhyZWFkX2VxdWFsKHRocmVhZC0+cG9zaXhUaHJlYWQsIHB0aHJlYWRf
c2VsZigpKSkKKyAgICAgICAgICAgIGlmICghZXF1YWxUaHJlYWQodGhyZWFkLT5wbGF0Zm9ybVRo
cmVhZCwgY3VycmVudFBsYXRmb3JtVGhyZWFkKSkKICAgICAgICAgICAgICAgICBnYXRoZXJGcm9t
T3RoZXJUaHJlYWQoY29uc2VydmF0aXZlUm9vdHMsIHRocmVhZCk7CiAgICAgICAgIH0KICNpZm5k
ZWYgTkRFQlVHCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>